{ "info": { "author": "Jessy Williams", "author_email": "jessy@jessywilliams.com", "bugtrack_url": null, "classifiers": [], "description": "[![pypi](https://img.shields.io/pypi/v/mapi.svg?style=for-the-badge)](https://pypi.python.org/pypi/mapi)\n[![travis\\_ci](https://img.shields.io/travis/jkwill87/mapi/develop.svg?style=for-the-badge)](https://travis-ci.org/jkwill87/mapi)\n[![coverage](https://img.shields.io/codecov/c/github/jkwill87/mapi/develop.svg?style=for-the-badge)](https://codecov.io/gh/jkwill87/mapi)\n[![licence](https://img.shields.io/github/license/jkwill87/mapi.svg?style=for-the-badge)](https://en.wikipedia.org/wiki/MIT_License)\n![api](https://img.shields.io/badge/api-TMDb/TVDb/OMDb-D8D200.svg?style=for-the-badge)\n[![code style black](https://img.shields.io/badge/Code%20Style-Black-black.svg?style=for-the-badge)](https://github.com/ambv/black)\n\n\n# mapi\n\nmapi (**M**etadata **API**) is a python library which provides a high-level interface for media database providers, allowing users to efficiently search for television and movie metadata using a simple interface.\n\n\n# Installation\n\n- `$ pip install mapi`\n\n\n# Running Tests\n\n- `$ pip install -r requirements-testing.txt`\n- `$ python -m pytest`\n\n**Notes:**\n- Run `pip install -r requirements-dev.txt` first to install testing dependencies\n- Testing requires internet access\n- Testing requires `API_KEY_TMDB` and `TVDB_API_KEY` to be defined as environment variables\n\n\n# Examples\n\n## Searching for a television show by series using TVDb\n\nHere is a fairly straight forward example, say we just want to get a listing of episodes from Rick and Morty season 2:\n\n```python\nfrom mapi.providers import TVDb\nclient = TVDb() # API Key taken from environment variables\nresults = client.search(series='Rick and Morty', season=2)\nfor result in results:\n print(result)\n```\n Rick and Morty - 02x01 - A Rickle in Time\n Rick and Morty - 02x02 - Mortynight Run\n Rick and Morty - 02x03 - Auto Erotic Assimilation\n Rick and Morty - 02x04 - Total Rickall\n Rick and Morty - 02x05 - Get Schwifty\n Rick and Morty - 02x06 - The Ricks Must Be Crazy\n Rick and Morty - 02x07 - Big Trouble in Little Sanchez\n Rick and Morty - 02x08 - Interdimensional Cable 2: Tempting Fate\n Rick and Morty - 02x09 - Look Who's Purging Now\n Rick and Morty - 02x10 - The Wedding Squanchers\n\n## Searching for a movie by title and year\n\nOkay, so no we want to look up some movies. We can search for using a specific year, by an upper range using **'-year'**, by a lower range using **'year-'**, or between a range of years using **'year-year'**. Lets use the latter to get a listing of Star Trek movies from the 90s. As it turns out, there's a lot.\n\n```python\nfrom mapi.providers import TMDb\nclient = TMDb()\nresults = client.search(title='Star Trek', year='1990-1999')\nfor i, result in enumerate(results, 1):\n print('%d) %s' % (i, result))\n if i > 9: break\n```\n 1) Star Trek: Voyager (1995)\n 2) Star Trek: First Contact (1996)\n 3) Star Trek VI: The Undiscovered Country (1991)\n 4) Star Trek: Generations (1994)\n 5) Star Trek: Insurrection (1998)\n 6) Star Trek: The Experience - The Klingon Encounter (1998)\n 7) Journey's End: The Saga of Star Trek - The Next Generation (1994)\n 8) Star Trek: 30 Years and Beyond (1996)\n 9) Ultimate Trek: Star Trek's Greatest Moments (1999)\n 10) Star Trek: A Captain's Log (1994)\n\nSearches return a generator, so by breaking on 10, we only ask for what we need, reducing the bandwidth and time required for the request.\n\n## Looking up a movie by ID\n\nIf you just want to lookup metadata using an API Provider's ID code, you can do that too:\n\n```python\nfrom pprint import pprint\nfrom mapi.providers import TMDb\nclient = TMDb()\nresults = client.search(id_tmdb=9340) # Using TMDb ID\npprint(dict(next(results)))\n```\n {'date': '1985-06-06',\n 'id_tmdb': '9340',\n 'media': 'movie',\n 'synopsis': 'A young teenager named Mikey Walsh finds an old treasure map in '\n \"his father's attic. Hoping to save their homes from demolition, \"\n 'Mikey and his friends Data Wang, Chunk Cohen, and Mouth '\n 'Devereaux run off on a big quest to find the secret stash of '\n 'Pirate One-Eyed Willie.',\n 'title': 'The Goonies'}\n\nSome APIs, like TMDb, allow you to search by an IMDb **'tt-const'** as well:\n\n\n```python\nfrom pprint import pprint\nfrom mapi.providers import TMDb\nclient = TMDb()\nresults = client.search(id_imdb='tt0089218') # Using IMDb ID\npprint(dict(next(results)))\n```\n {'date': '1985-06-06',\n 'id_tmdb': 9340,\n 'media': 'movie',\n 'synopsis': 'A young teenager named Mikey Walsh finds an old treasure map in '\n \"his father's attic. Hoping to save their homes from demolition, \"\n 'Mikey and his friends Data Wang, Chunk Cohen, and Mouth '\n 'Devereaux run off on a big quest to find the secret stash of '\n 'Pirate One-Eyed Willie.',\n 'title': 'The Goonies'}\n\n## Handling a search gone awry\n\nNot all searches yield results; maybe you had a typo, maybe the data just isn't there, either way there is no need to fret, this can be handled gracefully using exception handling:\n\n```python\nfrom mapi.exceptions import MapiNotFoundException\nfrom mapi.providers import TMDb\nclient = TMDb()\ntry:\n print(next(client.search(id_imdb='invalid_id')))\nexcept MapiNotFoundException:\n print('Nothing found :(')\n```\n None found :(\n\n\n# Usage Details\n\n## Provider Configuration\n\n- TVDb, TMDb, and OMDb require an API key to successfully be initialized.\n- These can be provided using environment variables; `API_KEY_TMDB`, `API_KEY_TVDB`, and `API_KEY_OMDB` respectively.\n- These can also be provided as `api_key`, a parameter to the provider classes.\n\n## Searching\n\nThe following table describes the permissible fields which may be used for a given search query. Extra fields are simply ignored.\n\n| Field | API | Type | Description | Notes |\n|---------|--------------------|-----------|------------------------|-------|\n| id_imdb | TMDb, TVDb, OMDb | str | IMDb movie id key | 1, 2 |\n| id_tmdb | TMDb | str / int | TMDb movie id key | 2, 3 |\n| id_tvdb | TVDb series id key | str / int | TVDb season id key | 2, 3 |\n| title | TMDB, OMDb | str | Feature's title | |\n| year | TMDB, OMDb | str / int | Feature's release year | |\n| date | TVDB | str | YYYY-MM-DD formatted | 4 |\n| series | TVDB | str | Series' name | |\n| season | TVDB | str / int | Series' airing season | |\n| episode | TVDb | str / int | Series' airing episode | 3 |\n\n## Results\n\nEach provider is guaranteed to return the following fields for a successful search as strings. Notice that they are largely the fields as the search parameters-- in fact, you can even next search calls within each other if you so desire.\n\n| Field | API | Description |\n|----------|------|--------------------------------------------|\n| id_tmdb | TMDb | TMDb movie id key |\n| id_imdb | OMDb | IMDb movie id key |\n| id_tvdb | TVDb | TVDb season id key |\n| date | ALL | Media's release date (YYYY-MM-DD) |\n| synopsis | ALL | Media synopsis |\n| media | ALL | Media type; either `movie` or `television` |\n| series | TVDb | Series' name |\n| season | TVDb | Series' airing season |\n| episode | TVDB | Series' airing episode |\n\n## Formatting\n\nMapi uses Python's standard string format conventions. You can call the builtin `format()` function on a mapi object and use any of the results keys. You can use format specifiers on numeric fields like episodes and seasons. For instance `format(metadata, \"{series} S{season:02}E{episode:02}\")` would pad season and episode numbers to two digits.\n\n\n# License\n\nMIT. See [license.txt](https://github.com/jkwill87/mapi/blob/develop/license.txt) for details.\n\n\n# Notes\n\n1. id_imdb must be prefixed with `tt`.\n2. Although ID, title, and series are each optional, movie queries must have either an ID or title to yield any results, and television queries must have either and ID or series to yield any results.\n3. If this field is passed as a string it must be numeric.\n4. Dates may also be specified partially, i.e. as `YYYY-MM` or `YYYY`.\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/jkwill87/mapi", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "mapi", "package_url": "https://pypi.org/project/mapi/", "platform": "", "project_url": "https://pypi.org/project/mapi/", "project_urls": { "Homepage": "https://github.com/jkwill87/mapi" }, "release_url": "https://pypi.org/project/mapi/3.9.0/", "requires_dist": [ "appdirs (==1.*)", "requests (==2.*)", "requests-cache (>=0.4)" ], "requires_python": "", "summary": "Python library which provides a high-level interface for media database providers, allowing users to search for television and movie metadata using a simple interface", "version": "3.9.0" }, "last_serial": 6001867, "releases": { "1.0.3": [ { "comment_text": "", "digests": { "md5": "976176747f58536d12b850431e529eca", "sha256": "56b0531c7578c09b0843891d82af8f82f26481700cad4ed7a64f0efd1c697f36" }, "downloads": -1, "filename": "mapi-1.0.3.tar.gz", "has_sig": false, "md5_digest": "976176747f58536d12b850431e529eca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13188, "upload_time": "2017-09-01T19:59:32", "url": "https://files.pythonhosted.org/packages/b1/13/92df90ec04c2336ee4f93bd0aa6461c352409a5307e76f5a46551d9a0fbf/mapi-1.0.3.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "464e9a6294924b1cc1001d801ac7dcea", "sha256": "15a190a30930710bfef59a5e1a7763f39a714071915847c9dc4e35442c35aa21" }, "downloads": -1, "filename": "mapi-2.0.0.tar.gz", "has_sig": false, "md5_digest": "464e9a6294924b1cc1001d801ac7dcea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11863, "upload_time": "2017-09-11T17:54:54", "url": "https://files.pythonhosted.org/packages/be/db/42d71e4531f53eb00e6a48e8d599ec3323ab9780bd6c07e36c7634d02e37/mapi-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "91edcdd3ca0043a689e4ec95dd9aec0a", "sha256": "3f0a5515d700653b0d753fcb4fdffef4fa384d20db2177af32c5bfe14dafd508" }, "downloads": -1, "filename": "mapi-2.0.1.tar.gz", "has_sig": false, "md5_digest": "91edcdd3ca0043a689e4ec95dd9aec0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16628, "upload_time": "2017-09-13T03:41:31", "url": "https://files.pythonhosted.org/packages/bc/29/020edc6706855dd21844b59d0ed3419220c0a93d3ad16b8d574770af96bb/mapi-2.0.1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "06618f53850fa7b62bc68992691da342", "sha256": "62a07f2316c3bfb58247d1609f93cf5271f7e165ed35404c9746040b6e95dbd9" }, "downloads": -1, "filename": "mapi-2.0.2.tar.gz", "has_sig": false, "md5_digest": "06618f53850fa7b62bc68992691da342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16804, "upload_time": "2017-09-19T00:23:55", "url": "https://files.pythonhosted.org/packages/6c/74/b005d1148b0084637baaf299afb65250e6f5b314eec8208908c9c5ea4edd/mapi-2.0.2.tar.gz" } ], "2.0.3": [ { "comment_text": "", "digests": { "md5": "0aa9d2415f82072538348b25673c0c1b", "sha256": "e58ae2341035c4be527271d311d4f8292d3f908498d868c8434dda95abe41319" }, "downloads": -1, "filename": "mapi-2.0.3.tar.gz", "has_sig": false, "md5_digest": "0aa9d2415f82072538348b25673c0c1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16878, "upload_time": "2017-10-07T23:47:18", "url": "https://files.pythonhosted.org/packages/3d/ce/64a8208c84aed222d5b541c7670d1b21cbd04050be80f91349e9e42f5c11/mapi-2.0.3.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "4c869033bde05235dbd4042ba6cbf904", "sha256": "f7076c3bfe293f3c339105a60c660bbae369597f71288aaf70795d03e4ac8598" }, "downloads": -1, "filename": "mapi-2.1.0.tar.gz", "has_sig": false, "md5_digest": "4c869033bde05235dbd4042ba6cbf904", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17314, "upload_time": "2017-11-24T18:58:59", "url": "https://files.pythonhosted.org/packages/f2/83/fdd5bc0a51b98bc5a04732ac4507ffb3c6368bdae613b1cb2f8490cf4c98/mapi-2.1.0.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "7f1dc183e54395e5b7f080df293c0126", "sha256": "70aa9b1e031c7f63ec313ff44319238d4113ed91a3de1dd530bb4e91403621cb" }, "downloads": -1, "filename": "mapi-3.0.0.tar.gz", "has_sig": false, "md5_digest": "7f1dc183e54395e5b7f080df293c0126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17511, "upload_time": "2018-01-04T21:20:32", "url": "https://files.pythonhosted.org/packages/90/3b/995365dbe04c0b9488cc7da5e6f33a563f71ed8f31b68c96496c7e697318/mapi-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "8e3da744cc947944e4eca2e13c424b1c", "sha256": "ddce3b1a7137e8cfe83d7c1459adb99e5fd02f30b391543ae4985dd45760f65f" }, "downloads": -1, "filename": "mapi-3.0.1.tar.gz", "has_sig": false, "md5_digest": "8e3da744cc947944e4eca2e13c424b1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17507, "upload_time": "2018-01-27T23:02:13", "url": "https://files.pythonhosted.org/packages/60/5a/f070fb18101d10eb11c337c583812b02297c2e0cb8e4a3d9f40ff4aad8c5/mapi-3.0.1.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "e333686167eea5261570f13bc49b8ebf", "sha256": "7330ae77ce08e24731fc9ea464406526e2973136907aa98c8daccfb8a48ed5fc" }, "downloads": -1, "filename": "mapi-3.1.0.tar.gz", "has_sig": false, "md5_digest": "e333686167eea5261570f13bc49b8ebf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18093, "upload_time": "2018-04-20T02:27:45", "url": "https://files.pythonhosted.org/packages/fc/b4/0cef48b7339766a2f28de134e2e957872d76784e551537877c944b101cc3/mapi-3.1.0.tar.gz" } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "d7bbd794f45ab9507f279b452e6e0fac", "sha256": "921336f410ada37b04da9a29ecbdbcb443d895ba6c022a2d19939b24c8e01f96" }, "downloads": -1, "filename": "mapi-3.1.1.tar.gz", "has_sig": false, "md5_digest": "d7bbd794f45ab9507f279b452e6e0fac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18138, "upload_time": "2018-04-20T02:59:43", "url": "https://files.pythonhosted.org/packages/32/14/0d8f8a72eda305e365a480ff2d9d147208d4a3d2514689bd6e716d5efda6/mapi-3.1.1.tar.gz" } ], "3.4.1": [ { "comment_text": "", "digests": { "md5": "9148c1024d01c750efc4c9cc94866705", "sha256": "ea29e1504f852af1aa55638f364817c79503c59a8f174aa047fe1754965b0c98" }, "downloads": -1, "filename": "mapi-3.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9148c1024d01c750efc4c9cc94866705", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13667, "upload_time": "2018-06-19T01:56:31", "url": "https://files.pythonhosted.org/packages/fd/48/d045f63b2e1cc903a2eecbb57e6bec33b61b1e2a34404992d19b907f6792/mapi-3.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f94b4fdbdbc320eb291ba02f04fadecd", "sha256": "7594377d9fa4f1f33b9c1e53a2f6414ce6ee102a1f22b732323ec8a1502d1c1d" }, "downloads": -1, "filename": "mapi-3.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "f94b4fdbdbc320eb291ba02f04fadecd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13662, "upload_time": "2018-06-19T02:07:02", "url": "https://files.pythonhosted.org/packages/a5/ef/848fb2f2d435551bd0fc5065dba81636e41a7a3e9de0799e7a73cdccff09/mapi-3.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "efa321ff78606dc53dd3759cad49d099", "sha256": "5d344cc7862cf5f1b43b974518ee220ff7761cd110da399ffbcc848bceb14ae4" }, "downloads": -1, "filename": "mapi-3.4.1.tar.gz", "has_sig": false, "md5_digest": "efa321ff78606dc53dd3759cad49d099", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16364, "upload_time": "2018-06-19T01:56:32", "url": "https://files.pythonhosted.org/packages/1e/9a/fbf309ee4e08044840968250c412e8e58601dc3cdddbc5415817e53e983d/mapi-3.4.1.tar.gz" } ], "3.4.2": [ { "comment_text": "", "digests": { "md5": "c7afdc7b49fbfeea6e5ee2f3499267bc", "sha256": "1f2c1eebfaa62b5e4b45b4e4d32a63760da8808e83483b23afdef75af48f930f" }, "downloads": -1, "filename": "mapi-3.4.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c7afdc7b49fbfeea6e5ee2f3499267bc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13584, "upload_time": "2018-06-24T19:01:09", "url": "https://files.pythonhosted.org/packages/0d/6e/a06fd2c2c9aec0f32dbc6a235e555114c55a5bfa2502013a961567d3f0c1/mapi-3.4.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "66431ec043249ad91018da28ace6faaa", "sha256": "8aecd8fd3755a4ef92fcbead171a62ca364a3f554fe8d55a24e5d6b45710a4d2" }, "downloads": -1, "filename": "mapi-3.4.2.tar.gz", "has_sig": false, "md5_digest": "66431ec043249ad91018da28ace6faaa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16298, "upload_time": "2018-06-24T19:01:10", "url": "https://files.pythonhosted.org/packages/8a/34/67d41e0e81b13c7a32780b808a3ef8899b7edb53a8efcf6a5222c6055ded/mapi-3.4.2.tar.gz" } ], "3.4.3": [ { "comment_text": "", "digests": { "md5": "a7f04eab31d20ceba2d9d16db6fcae5b", "sha256": "c776ed79e1374cd47caa9c781ac3929f1a30511bf3ae767825e38642f87de227" }, "downloads": -1, "filename": "mapi-3.4.3-py2-none-any.whl", "has_sig": false, "md5_digest": "a7f04eab31d20ceba2d9d16db6fcae5b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13670, "upload_time": "2018-06-25T01:00:25", "url": "https://files.pythonhosted.org/packages/58/29/d7fc07831ff948836479b624dcd1c3609c9e1a011a39e6637152c546d40c/mapi-3.4.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4a291080224f559b602728ddeda8095", "sha256": "e605a80f104075ca12e8014c5d510c5d8b2254927d6e64ef98cb732f63d26f5d" }, "downloads": -1, "filename": "mapi-3.4.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b4a291080224f559b602728ddeda8095", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13675, "upload_time": "2018-06-25T00:53:42", "url": "https://files.pythonhosted.org/packages/88/6a/124dd57ba1df11eb03e3ce98263c164852f854e116ffac063e79950251e3/mapi-3.4.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ac3f7d49812221fe7488830c1c82818d", "sha256": "53d01e979150dfff1d2d71bbad382dcd5130be9b299f3f48e04c300182d82a39" }, "downloads": -1, "filename": "mapi-3.4.3-py3-none-any.whl", "has_sig": false, "md5_digest": "ac3f7d49812221fe7488830c1c82818d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13670, "upload_time": "2018-06-25T01:00:52", "url": "https://files.pythonhosted.org/packages/40/b0/2acabd82d146a809a6ac9b9cbf45caffcb255837ff198e5db3157b7bc7f7/mapi-3.4.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e72edc6d26bebe79baa549c2326206fe", "sha256": "ce975fb235d8c132c1e71f538bd31fed615ca9f6f8384dd131e9727c545f4873" }, "downloads": -1, "filename": "mapi-3.4.3.tar.gz", "has_sig": false, "md5_digest": "e72edc6d26bebe79baa549c2326206fe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16470, "upload_time": "2018-06-25T00:53:44", "url": "https://files.pythonhosted.org/packages/96/8a/060d2c2832c739c5da96b53cf7754d69a0d685a6ff135f455a7a8a843179/mapi-3.4.3.tar.gz" } ], "3.5": [ { "comment_text": "", "digests": { "md5": "8d7d8a67d33798391d5f89f38e8f58a7", "sha256": "340fa8af3e6c1e79b679f39857d0904f141183c02d97035705261838476bf806" }, "downloads": -1, "filename": "mapi-3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8d7d8a67d33798391d5f89f38e8f58a7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13810, "upload_time": "2018-08-22T02:06:23", "url": "https://files.pythonhosted.org/packages/30/42/e20387b08828d3ef07eab796bd820c25f2524d0f22d5f90015671ee84a63/mapi-3.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "345b677e937b5a9719bc2cb7bd857d77", "sha256": "e23483c00d6410e71dcbcb303b6287c01c4960dadd18a95d2b283265c1200520" }, "downloads": -1, "filename": "mapi-3.5.tar.gz", "has_sig": false, "md5_digest": "345b677e937b5a9719bc2cb7bd857d77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16530, "upload_time": "2018-08-22T02:06:25", "url": "https://files.pythonhosted.org/packages/74/d2/a3b12675d600335a8539e8a1b4529c02182f0e2fe238a566cdc36e6db55c/mapi-3.5.tar.gz" } ], "3.5.1": [ { "comment_text": "", "digests": { "md5": "f74ac074d0e07738730813ce3d0b8451", "sha256": "53495289c0afd01b8d54cfb70b59b0d386375f22f1a875c2db22886b947d7fc1" }, "downloads": -1, "filename": "mapi-3.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f74ac074d0e07738730813ce3d0b8451", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13832, "upload_time": "2018-08-22T16:28:08", "url": "https://files.pythonhosted.org/packages/2e/6f/2251baf7d422314af6b71a807055d282bea2d698223dabfb8293b310391c/mapi-3.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1bc3f665e99ef4e6eeddad5b1ea611d6", "sha256": "83af4d2d4313c1a69f1def680eff2a12c6d78bb18caaec5e01ee16b4aeadd4fd" }, "downloads": -1, "filename": "mapi-3.5.1.tar.gz", "has_sig": false, "md5_digest": "1bc3f665e99ef4e6eeddad5b1ea611d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16585, "upload_time": "2018-08-22T16:28:10", "url": "https://files.pythonhosted.org/packages/18/ec/54b7eaa83ef8f14584b44cf1938793b38a2475613ad8243021b98be349a8/mapi-3.5.1.tar.gz" } ], "3.6.0": [ { "comment_text": "", "digests": { "md5": "4ec9d44ae987277991bc7668e4c54143", "sha256": "6a48ab352ec257635baf8524382d5d51ca6c6188707975cc1f48f51d50b2e794" }, "downloads": -1, "filename": "mapi-3.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ec9d44ae987277991bc7668e4c54143", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13940, "upload_time": "2019-05-14T15:44:07", "url": "https://files.pythonhosted.org/packages/e2/80/23b9433746b93dd99fd91b2dcbc1adf311a41291f87c8899001cff2c2f99/mapi-3.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "128f57c9df52b2f1d1c17357f003b262", "sha256": "afff4b8729f7610448182ba515e4ec92efc833e15c5b9e144289bfb4f08d057f" }, "downloads": -1, "filename": "mapi-3.6.0.tar.gz", "has_sig": false, "md5_digest": "128f57c9df52b2f1d1c17357f003b262", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16928, "upload_time": "2019-05-14T15:44:09", "url": "https://files.pythonhosted.org/packages/96/2e/13a2dd175b69125e4c5c4aaec831897f110d36cd6accb477fa18322b663f/mapi-3.6.0.tar.gz" } ], "3.7.0": [ { "comment_text": "", "digests": { "md5": "70532450c40c771baf8004237cb2b0c5", "sha256": "8cecd3f62db8bc8da6d5cea2fe9b028cdd3d9f91640acb27b5b343ebafd9affa" }, "downloads": -1, "filename": "mapi-3.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "70532450c40c771baf8004237cb2b0c5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32502, "upload_time": "2019-06-30T22:54:10", "url": "https://files.pythonhosted.org/packages/a4/5f/9d77223afbc5d286b6b86ba5c8b971bf28ed5abf793cdb94d198e784930d/mapi-3.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eb5bafa6235f6a0f562946a1ffc8a3ca", "sha256": "9b89cc9854a5c1ff838d9b12516dc9bfea83b698adfbfa62624a466fc394d73e" }, "downloads": -1, "filename": "mapi-3.7.0.tar.gz", "has_sig": false, "md5_digest": "eb5bafa6235f6a0f562946a1ffc8a3ca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26539, "upload_time": "2019-06-30T22:54:11", "url": "https://files.pythonhosted.org/packages/9d/5a/e5f96db1923e796f80c271efe196f0d001e4649ae4f22d518ea0292aacc5/mapi-3.7.0.tar.gz" } ], "3.8.0": [ { "comment_text": "", "digests": { "md5": "0f3a6d6cb1a1ba39a4d0360dbd83fff4", "sha256": "a0291d548025e93d23309f2916acc459a873f94793b8285ae3d11388ff05fe8c" }, "downloads": -1, "filename": "mapi-3.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0f3a6d6cb1a1ba39a4d0360dbd83fff4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32744, "upload_time": "2019-09-13T01:42:29", "url": "https://files.pythonhosted.org/packages/98/94/74de1e8c67904cc1822592efb5a07b2279352214378bca420ce0cde6dcb6/mapi-3.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b20ac34b77a5b96c88d5fe7abf4ff06", "sha256": "f2feb61ffed40ae8230b6af27876080b0974faa8aadf9fe2b1aa24c109815605" }, "downloads": -1, "filename": "mapi-3.8.0.tar.gz", "has_sig": false, "md5_digest": "8b20ac34b77a5b96c88d5fe7abf4ff06", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26565, "upload_time": "2019-09-13T01:42:31", "url": "https://files.pythonhosted.org/packages/e9/7c/c7301dc35f44aea20ef66282366cf6bf453fa225574123ccb28edacd5780/mapi-3.8.0.tar.gz" } ], "3.8.1": [ { "comment_text": "", "digests": { "md5": "b9294145dfc4b9bfceac4fcd1c739bdc", "sha256": "f7c657ceb383e4de415cffbfa5d635a32f6526e82566ce27fb33524996f6d0e3" }, "downloads": -1, "filename": "mapi-3.8.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9294145dfc4b9bfceac4fcd1c739bdc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 32717, "upload_time": "2019-09-13T13:32:53", "url": "https://files.pythonhosted.org/packages/a6/e5/a77f94a1d7412f364e2782d959e74f868264c5974666a1c2b3a31701ee30/mapi-3.8.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ca5f4e10fabfd3c0ec07991cfdcde3c", "sha256": "b3ec141a26933a7da9d1dbdad5ddec4eb16802a14a357976cc29bd4a01fbad9a" }, "downloads": -1, "filename": "mapi-3.8.1.tar.gz", "has_sig": false, "md5_digest": "4ca5f4e10fabfd3c0ec07991cfdcde3c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26544, "upload_time": "2019-09-13T13:32:54", "url": "https://files.pythonhosted.org/packages/68/2c/a64add5870917cbf72fbac0c3ab7a64a62aac4e5aabec29b04205e048544/mapi-3.8.1.tar.gz" } ], "3.9.0": [ { "comment_text": "", "digests": { "md5": "53df35e7d3514cfd810be9e9610666ed", "sha256": "8f02e120b7c224f615115957f025eafa3ddc656900c506cf2dd7450dd14c06a2" }, "downloads": -1, "filename": "mapi-3.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "53df35e7d3514cfd810be9e9610666ed", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28467, "upload_time": "2019-10-20T04:11:24", "url": "https://files.pythonhosted.org/packages/49/e7/e18a1c704b9368836da00da3058c5589d05331533b83d5f97ae847e18d43/mapi-3.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fbf31eb51d10f2ffdb122c4444057d6", "sha256": "1a8657c9789142b2f0e720762a58ada90f6f3f7a4773d19cce3604389497ddf6" }, "downloads": -1, "filename": "mapi-3.9.0.tar.gz", "has_sig": false, "md5_digest": "8fbf31eb51d10f2ffdb122c4444057d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25869, "upload_time": "2019-10-20T04:11:26", "url": "https://files.pythonhosted.org/packages/92/24/40066047f70b1b348ba1acf3e38052ca19de24fb1b260cb30582d766ead2/mapi-3.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "53df35e7d3514cfd810be9e9610666ed", "sha256": "8f02e120b7c224f615115957f025eafa3ddc656900c506cf2dd7450dd14c06a2" }, "downloads": -1, "filename": "mapi-3.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "53df35e7d3514cfd810be9e9610666ed", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 28467, "upload_time": "2019-10-20T04:11:24", "url": "https://files.pythonhosted.org/packages/49/e7/e18a1c704b9368836da00da3058c5589d05331533b83d5f97ae847e18d43/mapi-3.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8fbf31eb51d10f2ffdb122c4444057d6", "sha256": "1a8657c9789142b2f0e720762a58ada90f6f3f7a4773d19cce3604389497ddf6" }, "downloads": -1, "filename": "mapi-3.9.0.tar.gz", "has_sig": false, "md5_digest": "8fbf31eb51d10f2ffdb122c4444057d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25869, "upload_time": "2019-10-20T04:11:26", "url": "https://files.pythonhosted.org/packages/92/24/40066047f70b1b348ba1acf3e38052ca19de24fb1b260cb30582d766ead2/mapi-3.9.0.tar.gz" } ] }