{ "info": { "author": "John Holbrook", "author_email": "contact@johnholbrook.us", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# python-vexdb\nA thin python wrapper for the VexDB API.\n\n## Installation\nNOTE: python-vexdb is only compatible with Python 3!\n\nInstall with pip: `pip install vexdb`.\n\nThen, `import vexdb` to get access to the functions in the package.\n\npython-vexdb requires the `urllib` and `json` modules, both of which should have come with your version of python.\n\n\n## Functions\npython-vexdb provides two functions for each of the data types listed at https://vexdb.io/the_data, where `DataType`\nis one of `Events`, `Teams`, `Matches`, `Rankings`, `SeasonRankings`, `Awards`, or `Skills`:\n\n- `getDataType` - Returns a list of dictionaries, each corresponding to a single result matching the criteria provided\nas function parameters.\n- `getNumDataType` - Returns the number of results matching the criteria provided as function parameters.\n\nFor each type of data, the `getDataType` and `getNumDataType` functions have a parameter for all of the parameters listed\non the corresponding page at https://vexdb.io/the_data, except for `limit_start`, `limit_number`, and `nodata`.\nAll parameters are optional, and more information about each parameter can be found on the vexdb API web page for each\ndata type.\n\n`getDataType` functions also have a boolean parameter `get_all`, which, when set to `True`, will make multiple API calls\nto ensure that it returns all matching results, since the API may not return all results for queries with a large number\n(more than a few thousand) matches. The default value of `get_all` is `False`, and passing `get_all=True` is only\nnecessary for queries with a large number of expected results.\n\n## Example Calls\nReturn a list of all matches played by team 8768A during the 2017-2018 season:\n` vexdb.getMatches(team=\"8768A\", season=\"In The Zone\")`\n\nFind all awards given so far in the current season:\n`vexdb.getAwards(season=\"current\")`\n\nFind every High School VRC team in the USA: \n`vexdb.getTeams(grade=\"High School\", country=\"United States\", get_all=True)`\n(note use of `get_all=True` since this will return a large number of results)\n\nFor more in-depth examples, see the example_scripts directory.\n\n## Help Text\nTo list every included function, run `help(vexdb)`, the output of which is reproduced below:\n\n```\nNAME\n vexdb - Thin python wrapper for the VexDB API\n\nFILE\n /Users/john/Library/Python/2.7/lib/python/site-packages/vexdb.py\n\nFUNCTIONS\n getAwards(sku=None, name=None, team=None, season=None, get_all=False)\n Return a list of awards matching the given criteria.\n\n For sets of criteria that match a large number of awards (a few thousand or so),\n a single request to the API will return only a limited number of results.\n Passing get_all=True will ensure that all matching awards are returned by making\n multiple requests if necessary.\n\n getEvents(sku=None, program=None, date=None, season=None, city=None, region=None, country=None, team=None, status=None, get_all=False)\n Return a list of events matching the given criteria.\n\n For sets of criteria that match a large number of events (a few thousand or so),\n a single request to the API will return only a limited number of events.\n Passing get_all=True will ensure that all matching events are returned by making\n multiple requests if necessary.\n\n getMatches(sku=None, division=None, round=None, instance=None, matchnum=None, scheduled=None, field=None, team=None, scored=None, season=None, get_all=False)\n Return a list of matches matching the given criteria.\n\n For sets of criteria that match a large number of matches (a few thousand or so),\n a single request to the API will return only a limited number of results.\n Passing get_all=True will ensure that all matching matches are returned by making\n multiple requests if necessary.\n\n getNumAwards(sku=None, name=None, team=None, season=None)\n Return the number of season rankings matching the given criteria\n\n getNumEvents(sku=None, program=None, date=None, season=None, city=None, region=None, country=None, team=None, status=None)\n Return the number of events matching the given criteria.\n\n getNumMatches(sku=None, division=None, round=None, instance=None, matchnum=None, scheduled=None, field=None, team=None, scored=None, season=None)\n Return the number of matches matching the given criteria\n\n getNumRankings(sku=None, division=None, rank=None, team=None, season=None)\n Return the number of rankings matching the given criteria\n\n getNumSeasonRankings(program=None, season=None, team=None, vrating_rank=None)\n Return the number of season rankings matching the given criteria\n\n getNumSkills(sku=None, program=None, type=None, team=None, season=None, season_rank=None, rank=None)\n Return the number of skills records matching the given criteria\n\n getNumTeams(team=None, program=None, organisation=None, city=None, region=None, country=None, grade=None, is_registered=None, sku=None)\n Return the number of teams matching the given criteria\n\n getRankings(sku=None, division=None, rank=None, team=None, season=None, get_all=False)\n Return a list of rankings matching the given criteria.\n\n For sets of criteria that match a large number of rankings (a few thousand or so),\n a single request to the API will return only a limited number of results.\n Passing get_all=True will ensure that all matching rankings are returned by making\n multiple requests if necessary.\n\n getSeasonRankings(program=None, season=None, team=None, vrating_rank=None, get_all=False)\n Return a list of season rankings matching the given criteria.\n\n For sets of criteria that match a large number of season rankings (a few thousand or so),\n a single request to the API will return only a limited number of results.\n Passing get_all=True will ensure that all matching season rankings are returned by making\n multiple requests if necessary.\n\n getSkills(sku=None, program=None, type=None, team=None, season=None, season_rank=None, rank=None, get_all=False)\n Return a list of skills records matching the given criteria.\n\n For sets of criteria that match a large number of skills records (a few thousand or so),\n a single request to the API will return only a limited number of results.\n Passing get_all=True will ensure that all matching skills records are returned by making\n multiple requests if necessary.\n\n getTeams(team=None, program=None, organisation=None, city=None, region=None, country=None, grade=None, is_registered=None, sku=None, get_all=False)\n Return a list of teams matching the given criteria.\n\n For sets of criteria that match a large number of teams (a few thousand or so),\n a single request to the API will return only a limited number of results.\n Passing get_all=True will ensure that all matching teams are returned by making\n multiple requests if necessary.\n\n urlToJSON(url)\n Makes a request to the specfied URL and returns a list of results.\n\n urlToSize(url)\n Makes a request to the specfied URL and returns the number of results.\n\n Useful mostly when making calls with the 'nodata' perameter set to true.\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dhmmjoph/python-vexdb", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "vexdb", "package_url": "https://pypi.org/project/vexdb/", "platform": "", "project_url": "https://pypi.org/project/vexdb/", "project_urls": { "Homepage": "https://github.com/dhmmjoph/python-vexdb" }, "release_url": "https://pypi.org/project/vexdb/1.0.14/", "requires_dist": null, "requires_python": "", "summary": "A thin python wrapper for the vexDB API", "version": "1.0.14" }, "last_serial": 4922652, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "de03261f7cdd2854d435472bcdb97e42", "sha256": "2ff6fdbba74e7055eab127a438184dcef945bd61060764ec31175f36413fd7e6" }, "downloads": -1, "filename": "vexdb-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "de03261f7cdd2854d435472bcdb97e42", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3655, "upload_time": "2019-02-11T00:54:54", "url": "https://files.pythonhosted.org/packages/ed/52/485bf6fd013ab1971fa9c202a332898533d968d91a16a9220932f09223ba/vexdb-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "27d7db7c8f96215c3bf78eb26ecc6e5a", "sha256": "983c2a25af4ed6e7826b50742ca044df016c9fffb5682bdc6e009a603f5ba48d" }, "downloads": -1, "filename": "vexdb-1.0.0.tar.gz", "has_sig": false, "md5_digest": "27d7db7c8f96215c3bf78eb26ecc6e5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3156, "upload_time": "2019-02-11T00:54:56", "url": "https://files.pythonhosted.org/packages/1e/e4/fc0530a289d7c92dc1ac51a6b321ab13de81cee9a1f0b58677a63e6c6151/vexdb-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "4e21e055a4573f2f72ab52624dccdfa3", "sha256": "a7293cfb61ed9af280469ceaf8f2757c92ce3b53cec40c5f879c0884ba354a98" }, "downloads": -1, "filename": "vexdb-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4e21e055a4573f2f72ab52624dccdfa3", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5988, "upload_time": "2019-02-11T01:03:57", "url": "https://files.pythonhosted.org/packages/b4/13/f31c26d1c1bb1733f081ee88b1865379605fdd3a2d3c5560ad040faa02b9/vexdb-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02f8027da4f1611705594552d7a5a75f", "sha256": "a14ce485d0b3217ef34f03777aec9d35db48e5074ff2c690a70122cca803934c" }, "downloads": -1, "filename": "vexdb-1.0.1.tar.gz", "has_sig": false, "md5_digest": "02f8027da4f1611705594552d7a5a75f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4906, "upload_time": "2019-02-11T01:03:59", "url": "https://files.pythonhosted.org/packages/af/fc/df966f5e2f2eb5a4211175b8fe715a0ca9babfc55c91a4dc975c9c4dd1ed/vexdb-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "11be266ac1a43113a190cfb716e36623", "sha256": "b758d158eb94859248bd12e4f8d51a64bb2df3999d555678b22bcf8b5b94e7d0" }, "downloads": -1, "filename": "vexdb-1.0.10-py2-none-any.whl", "has_sig": false, "md5_digest": "11be266ac1a43113a190cfb716e36623", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6189, "upload_time": "2019-02-14T16:22:23", "url": "https://files.pythonhosted.org/packages/ac/c8/c7ebc3d17d8a3c1fa54bf863c68af0480f8a6ad7282d0fc57a9a9be67509/vexdb-1.0.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "01348c893461ed79aa56154e021a791d", "sha256": "7029a8bd2e3ac1d30358c6422d5c5a1c55c3a88282a29bea381d7f971c830bf8" }, "downloads": -1, "filename": "vexdb-1.0.10.tar.gz", "has_sig": false, "md5_digest": "01348c893461ed79aa56154e021a791d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5001, "upload_time": "2019-02-14T16:22:24", "url": "https://files.pythonhosted.org/packages/cb/97/0e27f866e4657e9ce68df7e321276ae3226a78fce4c7e6b1c000aa031a3e/vexdb-1.0.10.tar.gz" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "069c5488f24170d661b07c1c0447b292", "sha256": "2393e2414d94254feec8db69c424fdb7f26bb214525324bd62327d4833da544d" }, "downloads": -1, "filename": "vexdb-1.0.11-py2-none-any.whl", "has_sig": false, "md5_digest": "069c5488f24170d661b07c1c0447b292", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6198, "upload_time": "2019-02-14T16:32:15", "url": "https://files.pythonhosted.org/packages/01/c6/b622bbc84b72734a8c003c3f98b5a0b905e04cb4c759ffdd773b2ca31955/vexdb-1.0.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e37e2141dff6336140b0b6e46869181b", "sha256": "06eb42b27a311d57edeb8062d031fccd47e74568b46138045e1ce74c083f918e" }, "downloads": -1, "filename": "vexdb-1.0.11.tar.gz", "has_sig": false, "md5_digest": "e37e2141dff6336140b0b6e46869181b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5008, "upload_time": "2019-02-14T16:32:16", "url": "https://files.pythonhosted.org/packages/ff/cb/cccf7566651bfb880f2c170cb4c2e8371b99fe5ddf5e7eb9398325beb563/vexdb-1.0.11.tar.gz" } ], "1.0.12": [ { "comment_text": "", "digests": { "md5": "0ca0094646c7bcaa0e87b6c8f7c9aa15", "sha256": "c304916c9d41f8bbe5204f165d22b195264d66f82f95d6a4656d1034460c2e0b" }, "downloads": -1, "filename": "vexdb-1.0.12-py2-none-any.whl", "has_sig": false, "md5_digest": "0ca0094646c7bcaa0e87b6c8f7c9aa15", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8333, "upload_time": "2019-03-10T20:21:52", "url": "https://files.pythonhosted.org/packages/d5/05/ddcd2f0a1a4c5f98239a46c0abda3bbf7bc961d895bddace15d989f7741c/vexdb-1.0.12-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be7f3defa392c9148db4f3b66f91eecf", "sha256": "d3d1a208523c2dadf356a33613f3561aaa65268fb765c26305bfcaf3a76a050c" }, "downloads": -1, "filename": "vexdb-1.0.12.tar.gz", "has_sig": false, "md5_digest": "be7f3defa392c9148db4f3b66f91eecf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5014, "upload_time": "2019-03-10T20:21:53", "url": "https://files.pythonhosted.org/packages/8a/77/db340de60ad81745a8dafa00ad82f9085732f95cfc920755028a71f13947/vexdb-1.0.12.tar.gz" } ], "1.0.13": [ { "comment_text": "", "digests": { "md5": "39d235770eda4ec8ed6cc69caf33bade", "sha256": "617de53af735f1ea21ad3488ef728a80cabd52a6ed17db58b5745ec9cb9ad390" }, "downloads": -1, "filename": "vexdb-1.0.13-py2-none-any.whl", "has_sig": false, "md5_digest": "39d235770eda4ec8ed6cc69caf33bade", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8340, "upload_time": "2019-03-10T20:27:36", "url": "https://files.pythonhosted.org/packages/98/a1/6313869270785a5c108875a09c12ba4b07c817314bd8f37032d87b14a48a/vexdb-1.0.13-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a9877cf01b490293064968c8263ef78f", "sha256": "38d7c9be97ac5cbadae857b1df9c1d2f3656e41749fd03d52f1d110853df789c" }, "downloads": -1, "filename": "vexdb-1.0.13.tar.gz", "has_sig": false, "md5_digest": "a9877cf01b490293064968c8263ef78f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5030, "upload_time": "2019-03-10T20:27:37", "url": "https://files.pythonhosted.org/packages/c1/0a/11f6600ddb47dfe12bcdf8e60d0b40a00e1287ef6b0978d02c94fb4c82dc/vexdb-1.0.13.tar.gz" } ], "1.0.14": [ { "comment_text": "", "digests": { "md5": "e4dee378da4649b3f12c400b9478b2fc", "sha256": "d33e041b2bda60c009297a16c3d5dd9390a1d0ccb35e2005a1585ed1630858b6" }, "downloads": -1, "filename": "vexdb-1.0.14-py2-none-any.whl", "has_sig": false, "md5_digest": "e4dee378da4649b3f12c400b9478b2fc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8348, "upload_time": "2019-03-10T20:55:43", "url": "https://files.pythonhosted.org/packages/d2/6c/a0813041a9e6c46c453af61d3c5ab3ca20c433ccb2810e8a422821e33273/vexdb-1.0.14-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff953a94c36950987f839b89ae27f5fd", "sha256": "70a6527e5150bfeb8210cca1a954c2d7a7837bf9b295a47381af17ae3431b82d" }, "downloads": -1, "filename": "vexdb-1.0.14.tar.gz", "has_sig": false, "md5_digest": "ff953a94c36950987f839b89ae27f5fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5034, "upload_time": "2019-03-10T20:55:44", "url": "https://files.pythonhosted.org/packages/16/47/6967fe9048175a2259ad15abeb498317adcc043f02338c99f5c6859f58a1/vexdb-1.0.14.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "9d52de4cb7877a1efb51c809621a2847", "sha256": "ca68e9caef053a45e4ce3abc20cc086c6d109078d7af4ca5c85a39f5472230f0" }, "downloads": -1, "filename": "vexdb-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "9d52de4cb7877a1efb51c809621a2847", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6005, "upload_time": "2019-02-11T01:13:30", "url": "https://files.pythonhosted.org/packages/27/27/1c166fd74f8d9ec7d6940560d2a7d5c6070024da124d2db4df7b0d813995/vexdb-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1649dec6ea5daf12082f4fef0a3e164c", "sha256": "fbd96537b4bf19aa7aa820c14f2d4f87a2d3b009948a61f343a4629e62a6e19f" }, "downloads": -1, "filename": "vexdb-1.0.2.tar.gz", "has_sig": false, "md5_digest": "1649dec6ea5daf12082f4fef0a3e164c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4908, "upload_time": "2019-02-11T01:13:31", "url": "https://files.pythonhosted.org/packages/d5/4e/3762cfab151a43f306251056ea8ffe8fd7a9db3e88d039b98fb0dba556aa/vexdb-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "ce909011af788378264b971a8995a170", "sha256": "86e7af22063a580bfcffe8380dc4581a03f519390abf169d7c77e5b904056c82" }, "downloads": -1, "filename": "vexdb-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "ce909011af788378264b971a8995a170", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6002, "upload_time": "2019-02-11T01:14:42", "url": "https://files.pythonhosted.org/packages/3d/46/0c464b5cf0290af107ecbe38e9cea83ef2a82ea8be31afe6cd1f7164de7b/vexdb-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "da2098bb09d20771a634ad35429e8f60", "sha256": "0eefe0361ba2c320db3a1cdbd6568dbd60ac19bb35e257bea21f5adb929e9263" }, "downloads": -1, "filename": "vexdb-1.0.3.tar.gz", "has_sig": false, "md5_digest": "da2098bb09d20771a634ad35429e8f60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4908, "upload_time": "2019-02-11T01:14:43", "url": "https://files.pythonhosted.org/packages/c1/4b/47f7bc57f33cbcd3bb77ff30590d7f43a702a7b78e18f1d682641cb1be54/vexdb-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "40750ca340f04bb14bc2dd9b965a69fe", "sha256": "a7cdbca1b557a60e1d13cb6468a73f0da038a8443220a8d34d0f4654db36740e" }, "downloads": -1, "filename": "vexdb-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "40750ca340f04bb14bc2dd9b965a69fe", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6010, "upload_time": "2019-02-11T01:39:29", "url": "https://files.pythonhosted.org/packages/0e/be/94e4aba3dc9efb94e7675a4c4b4fa745f869468c5f113e0135de2efbc7a9/vexdb-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c42d8a885a2dd0012d7792e48a2d0dab", "sha256": "ba8de103ab6ddd14949d11eeeee47672ab01d86fae53a443772adb136f2214e5" }, "downloads": -1, "filename": "vexdb-1.0.4.tar.gz", "has_sig": false, "md5_digest": "c42d8a885a2dd0012d7792e48a2d0dab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4922, "upload_time": "2019-02-11T01:39:30", "url": "https://files.pythonhosted.org/packages/73/1e/d1bed64c1c77e8e95fae19077ae56719c3857fdd517f81b22d9365fc736c/vexdb-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "39cb5c02cd2643561bd320fb6de38580", "sha256": "e493e2a7a245359875205a9d99617cefe36248499fdc16f1d7a7f3df62b311c2" }, "downloads": -1, "filename": "vexdb-1.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "39cb5c02cd2643561bd320fb6de38580", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3657, "upload_time": "2019-02-11T01:44:41", "url": "https://files.pythonhosted.org/packages/91/9f/c0c995aae9a844195ca315aff3f91a6b4dd0e894f55c56c98f0975f27626/vexdb-1.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "100933fba2f7b99bda0df8162b0d98b8", "sha256": "3f623dd3528435efbdd821987ec8d1dee803a106a7de6466cd856ecf5bce54d6" }, "downloads": -1, "filename": "vexdb-1.0.5.tar.gz", "has_sig": false, "md5_digest": "100933fba2f7b99bda0df8162b0d98b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3154, "upload_time": "2019-02-11T01:44:42", "url": "https://files.pythonhosted.org/packages/4a/bc/fcc53bb2d222833de26f7be94fc580d478358878e94bec76342f7ff5f72a/vexdb-1.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e4dee378da4649b3f12c400b9478b2fc", "sha256": "d33e041b2bda60c009297a16c3d5dd9390a1d0ccb35e2005a1585ed1630858b6" }, "downloads": -1, "filename": "vexdb-1.0.14-py2-none-any.whl", "has_sig": false, "md5_digest": "e4dee378da4649b3f12c400b9478b2fc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8348, "upload_time": "2019-03-10T20:55:43", "url": "https://files.pythonhosted.org/packages/d2/6c/a0813041a9e6c46c453af61d3c5ab3ca20c433ccb2810e8a422821e33273/vexdb-1.0.14-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff953a94c36950987f839b89ae27f5fd", "sha256": "70a6527e5150bfeb8210cca1a954c2d7a7837bf9b295a47381af17ae3431b82d" }, "downloads": -1, "filename": "vexdb-1.0.14.tar.gz", "has_sig": false, "md5_digest": "ff953a94c36950987f839b89ae27f5fd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5034, "upload_time": "2019-03-10T20:55:44", "url": "https://files.pythonhosted.org/packages/16/47/6967fe9048175a2259ad15abeb498317adcc043f02338c99f5c6859f58a1/vexdb-1.0.14.tar.gz" } ] }