{ "info": { "author": "Dima Koskin", "author_email": "dmksknn@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries" ], "description": "# THE MOVIE DATABASE PYTHON WRAPPER\n\n[![Build Status](https://travis-ci.org/dmkskn/isle.svg?branch=master)](https://travis-ci.org/dmkskn/isle)\n\n`isle` is a clear and distinct wrapper for The Movie Database API.\n\n## TABLE OF CONTENTS\n\n- [REQUIREMENTS](#REQUIREMENTS)\n- [INSTALLATION](#INSTALLATION)\n- [TMDB API KEY](#TMDB-API-KEY)\n- [FUNCTIONS](#FUNCTIONS)\n- [OBJECTS](#OBJECTS)\n- [ACCOUNT](#ACCOUNT)\n\n## REQUIREMENTS\n\n- **Python 3.6+**\n- **No dependencies** other than the standard library\n\n## INSTALLATION\n\nUsing `pip`:\n\n```python\npip install isle\n```\n\n## TMDB API KEY\n\nExport your TMDb API key as an environment variable:\n\n```bash\n$ export TMDB_API_KEY='YOUR_API_KEY'\n```\n\nOr set the `TMDB_API_KEY` variable:\n\n```python\nimport isle\n\nisle.TMDB_API_KEY = 'YOUR_API_KEY'\n```\n\n## FUNCTIONS\n\n### Search\nSearch functions look for movies, TV shows, people or companies by their names or titles.\n\nAll search functions are *generators*.\n\n```python\n>>> import inspect\n>>> import isle\n\n>>> inspect.isgenerator(isle.search_movie)\nTrue\n\n>>> inspect.isgenerator(isle.search_show)\nTrue\n\n>>> # and so on.\n```\n\n#### `isle.search_movie(query: str, **kwargs)`\n\nSearches for movies. It generates `Movie` instances.\n\nLet's search for Ozu's \"Tokyo Story\":\n\n```python\n>>> for movie in isle.search_movie(\"Tokyo Story\"):\n... print(movie)\n\nMovie(18148)\nMovie(528533)\n...\nMovie(104343)\n```\n\nLet's get only the first result:\n\n```python\n>>> tokyo_story = next(isle.search_movie(\"Tokyo Story\", year=1953))\n\n>>> tokyo_story\nMovie(18148)\n```\n\nThere are several keyword arguments:\n\n - `year` \u2014 filters a movie by release year\n - `region` \u2014 filters release dates. Must be an ISO 3166-1 code (uppercase).\n - `include_adults` \u2014 chooses whether to inlcude adult (pornography) content in the results (bool).\n - `language` \u2014 displays translated data for the fields that support it (some default values in `Movie` object). Must be an ISO 639-1 code.\n\n\n#### `isle.search_show(query: str, **kwargs)`\n\nSearches for a TV show. It generates `Show` instances.\n\n```python\n>>> castle_rock = next(isle.search_show(\"Castle Rock\"))\n\n>>> castle_rock\nShow(71116)\n```\nThere is a keyword argument `first_air_date_year`, which can be specified for more accurate results.\n\n#### `isle.search_person(query: str, **kwargs)`\n\nSearches for people. It generates `Person` instances.\n\n```python\n>>> john_cassavetes = next(isle.search_person(\"John Cassavetes\"))\n\n>>> john_cassavetes\nPerson(11147)\n```\n\nThere are `language`, `region` and `include_adults` keyword arguments (see the part about `search_movie` above to understand what they change).\n\n#### `isle.search_company(query: str, **kwargs)`\n\nSearches for companies. It generates `Company` instances.\n\n```python\n>>> lucasfilm_company = next(isle.search_company(\"Lucasfilm\"))\n\n>>> lucasfilm_company\nCompany(1)\n```\n\n### Discover\n\nLike search functions, all discover functions are also *generators*. But instead of searching by name or title, these ones descover movies or TV shows by different types of data like average rating, number of votes, genres and certifications.\n\n> To understand `options`, you need to read [this](https://developers.themoviedb.org/3/discover/movie-discover) and [this](https://developers.themoviedb.org/3/discover/tv-discover).\n\n#### `isle.discover_movies(options: dict)`\n\nDiscovers movies by different types of data.\n\nLet's discover the first 3 movies with Jason Schwartzman:\n\n```python\n>>> from itertools import islice\n\n>>> schwartzman = next(isle.search_person(\"Jason Schwartzman\"))\n\n>>> options = {\n \"sort_by\": \"release_date.asc\",\n \"with_cast\": schwartzman.tmdb_id\n}\n\n>>> for movie in islice(isle.discover_movies(options), 3):\n... print(f\"'{movie.year} - {movie.title['original']}'\")\n\n'1998 - Rushmore'\n'2001 - CQ'\n'2002 - Slackers'\n```\n\n#### `isle.discover_shows(options: dict)`\n\nDiscovers TV shows by different types of data. It works like `discover_movies`, but note that the options are different.\n\nLet's discover top 3 most popular TV shows on TMDb:\n\n```python\n>>> options = {'sort_by': 'popularity.desc'}\n\n>>> for show in islice(isle.discover_shows(options), 3):\n... print(f\"'{show.vote.average:<10} {show.title['original']}'\")\n\n'8 \u30c9\u30e9\u30b4\u30f3\u30dc\u30fc\u30eb'\n'6.7 The Flash'\n'6.8 The Big Bang Theory'\n```\n\n### Find\n\n#### `isle.find(external_id: str, *, src: str, **options)`\n\nThe `find` function searches for objects (movies, TV shows and people) by an external ID (for example, an IMDb ID). It returns the results in a single response.\n\n```python\n>>> results = tmdb.find(\"tt0053604\", src=\"imdb_id\")\n\n>>> results\n{'movie_results': [Movie(284)], 'person_results': [], 'tv_results': []}\n```\n\n### Others\n\nOther functions return some general information, such as genres, languages, time zones supported in TMDb.\n\nLet's just list them all (you always can use the build-in `help` function to see more information):\n\n- `isle.get_movie_certifications(country=None)`\n- `isle.get_show_certifications(country=None)`\n- `isle.get_movie_genres(objects=False)`\n- `isle.get_show_genres(objects=False)`\n- `isle.get_image_configurations()`\n- `isle.get_countries(objects=False)`\n- `isle.get_jobs()`\n- `isle.get_languages(objects=False)`\n- `isle.get_primary_translations()`\n- `isle.get_timezones()`\n\n## OBJECTS\n\nLet's take a close look at `Movie`, `Show`, `Person` and `Company` objects.\n\n- They can be initialized by a TMDb ID or obtained by *search* and *discover* functions (as we see above).\n\n- They can be used in two different ways: use *methods* that return raw responses or use *properties* that enrich objects with more functionality (you'll see this below)\n\n### `Movie`\n\nRepresents a movie. It can be initialized with a TMDb ID.\n\n```python\n>>> movie = isle.Movie(18148)\n```\n\nNow the `movie` doesn't contain any data except the ID. It hasn't made any requests to the API yet (You can see how many requests were made by the `n_requests` attribute).\n\n```python\n>>> movie.data\n{'id': 18148}\n\n>>> movie.n_requests\n0\n```\n\n#### Methods\n`Movie` (as well as other objects, such as `Show`, `Person` or `Company`) has `get_` and `iter_` methods. Let's list them:\n\n- `get_all()`\n- `get_alternative_titles()`\n- `get_changes()`\n- `get_credits()`\n- `get_details()`\n- `get_external_ids()`\n- `get_images()`\n- `get_keywords()`\n- `get_release_dates()`\n- `get_translations()`\n- `get_videos()`\n- `iter_lists()`\n- `iter_recommendations()`\n- `iter_reviews()`\n- `iter_similar_movies()`\n\nEach method makes only *one* request to the API. That's why the best practice is to use `get_all()` method instead of calling several other methods. So instead of doing the following:\n\n```python\n>>> movie = isle.Movie(18148)\n\n>>> credits = movie.get_credits() # making first request\n\n>>> movie.n_requests\n1\n\n>>> keywords = movie.get_keywords() # making second request\n\n>>> movie.n_requests\n2\n```\n\nDo this:\n\n```python\n>>> movie = isle.Movie(18148)\n\n>>> movie.n_requests\n0\n\n>>> all_data = movie.get_all() # making first request\n\n>>> movie.n_requests\n1\n\n>>> credits, keywords = all_data[\"credits\"], all_data[\"keywords\"]\n\n>>> movie.n_requests\n1\n```\n\nAll the received data is saved in the `data` attribute. Now it contains all the data, because we've called the `get_all()` method.\n\n```python\n>>> all_data == movie.data\nTrue\n\n>>> keywords == movie.data[\"keywords\"]\nTrue\n```\n\nAll the data received with methods is structured in the same way as in the [raw](https://developers.themoviedb.org/3/movies/get-movie-details) API responses.\n\n#### Properties \u261d\ufe0f\n\nAnother way to get data is to use properties (it is actually the best way).\n\nLet's see an example. What if you need to get the titles of a movie in different languages? You can call `get_all()` and retrieve the titles from the `data` attribute:\n\n```python\n>>> movie.get_all()\n\n>>> acc = {}\n\n>>> acc[\"original\"] = movie.data[\"original_title\"]\n\n>>> acc[\"default\"] = movie.data[\"title\"]\n\n>>> for item in movie.data[\"translations\"][\"translations\"]:\n... acc[item[\"iso_3166_1\"]] = item[\"data\"][\"title\"]\n\n>>> acc\n{'original': '\u6771\u4eac\u7269\u8a9e', 'default': 'Tokyo Story', 'RU': '\u0422\u043e\u043a\u0438\u0439\u0441\u043a\u0430\u044f \u043f\u043e\u0432\u0435\u0441\u0442\u044c', 'US': 'Tokyo Story', ..., 'FR': 'Voyage \u00e0 Tokyo'}\n\n```\n\nOr you can just use the `title` property:\n\n```python\n>>> movie = isle.Movie(18148)\n\n>>> movie.title\n{'original': '\u6771\u4eac\u7269\u8a9e', 'default': 'Tokyo Story', 'RU': '\u0422\u043e\u043a\u0438\u0439\u0441\u043a\u0430\u044f \u043f\u043e\u0432\u0435\u0441\u0442\u044c', 'US': 'Tokyo Story', ..., 'FR': 'Voyage \u00e0 Tokyo'}\n\n>>> movie.n_requests\n1\n```\n\nIn the same way you can use the `overview` property:\n\n```python\n>>> movie.overview[\"FR\"]\n\"Un couple de personnes \u00e2g\u00e9es rend visite \u00e0 leurs enfants \u00e0 Tokyo. D'abord re\u00e7us avec les \u00e9gards qui leur sont d\u00fbs, ils deviennent bient\u00f4t d\u00e9rangeants dans leur vie quotidienne.\"\n```\n\nWhen a property is called, it searches for the required data in the `data` attribute and if there is no such data, it calls `get_all()` behind the scenes. After calling the `title` attribute, all the raw data is downloaded to the `data` attribute.\n\n```python\n>>> movie.genres\n[Genre(tmdb_id=18, name='Drama')] # Genre is a `NamedTuple` object\n\n>>> person, credit = movie.crew[0]\n>>> person.name, credit.job\n('Yasujir\u014d Ozu', 'Director')\n\n>>> person, credit = movie.cast[0]\n>>> person.name, credit.job, credit.character\n('Chish\u016b Ry\u016b', 'Actor', 'Shukishi Hirayama')\n\n>>> movie.vote\nVote(average=8.3, count=292) # It is a `NamedTuple` object too\n\n>>> movie.releases[\"US\"]\n[{'certification': '', 'type': 3, 'date': '1972-03-13T00:00:00.000Z', 'note': ''}]\n\n>>> movie.n_requests\n1\n```\n\nWhen `search_movie` and `discover_movie` functions return `Movie` instances, they add initial data to the `data` atributes.\n\n```python\n>>> tokyo_story = next(isle.search_movie(\"Tokyo Story\", year=1953))\n\n>>> tokyo_story.n_requests\n0\n\n>>> tokyo_story.year\n1953\n\n>>> tokyo_story.is_adult\nFalse\n\n>>> tokyo_story.popularity\n5.816\n\n>>> tokyo_story.n_requests # it did not make API requests yet\n0\n\n>>> # but\n>>> person, credit = tokyo_story.crew[0]\n>>> tokyo_story.n_requests\n1\n```\n\nIn the same way, `Movie` adds some initial data to the `data` attribute of `Person` and `Company` instances:\n\n```python\n>>> person, _ = tokyo_story.crew[0]\n\n>>> person.name\n'Yasujir\u014d Ozu'\n\n>>> person.n_requests\n0\n\n>>> company = tokyo_story.companies[0]\n>>> company.name\n'Shochiku Co., Ltd.'\n\n>>> company.n_requests\n0\n```\n\nUse the build-in `help` function to see all available properties.\n\n### `Show`, `Person` and `Company`\n\nThese objects are similar to `Movie`. They also have `get_` and `iter_` methods and properties that do all the routine work.\n\nThe main difference is that `Company` doesn't have the `get_all()` method, so, behind the scenes, it can call several `get` methods (though the main information is returned by `get_details()`).\n\n```python\n>>> company = Company(1)\n\n>>> company.name\n'Lucasfilm'\n\n>>> company.homepage\n'http://www.lucasfilm.com'\n\n>>> company.n_requests\n1\n\n>>> company.logos # searches for images and calls `get_images` if there are no images in the `data` attribute\n[Image(heigh=99, width=295, _type=logo)]\n\n>>> company.n_requests\n2\n\n>>> company.also_known_as # searches for alternative_names and calls `get_alternative_names` if there are no names in the `data` attribute\n[]\n\n>>> company.n_requests\n3\n```\n\n### `Season`, `Episode`, `Credit` and others\n\nA `Season` is returned by a `Show` (and an `Episode` is returned by `Season`). These ones and `Credit` are also similar to the main objects above.\n\n```python\n>>> show = next(isle.search_show(\"Castle Rock\"))\n```\n\nSeason:\n\n```python\n>>> season = show.seasons[0]\n\n>>> all_raw_data = season.get_all()\n\n>>> season.n_requests\n1\n```\n\nEpisode:\n\n```python\n>>> season.title\n'Season 1'\n\n>>> episode = season.episodes[0]\n\n>>> f\"{episode.n} episode of {episode.sn} season\"\n'1 episode of 1 season'\n\n>>> episode.title['US']\n'Severance'\n\n>>> episode.n_requests\n1\n```\n\nCredit:\n\n```python\n>>> person, credit = episode.crew[0]\n\n>>> credit\nCredit(5b6192b09251414064012485)\n\n>>> credit.department, credit.job\n('Directing', 'Director')\n\n>>> person.name == credit.person.name\nTrue\n```\n\nThere are a few objects such as `Language`, `Country`, `Genre`, `Keyword` and `Vote`. They are just [`NamedTuple`](https://docs.python.org/3/library/typing.html#typing.NamedTuple)-like objects.\n\n```python\n>>> movie = isle.Movie(18148)\n\n>>> isinstance(movie.vote, tuple)\nTrue\n\n>>> movie.vote[0] == movie.vote.average\nTrue\n```\n\nAnd there is an `Image`. It contains attributes which are the same as in the [raw dict](https://developers.themoviedb.org/3/movies/get-movie-images): `aspect_ratio`, `file_path`, `width`, `height`, etc. And the property `url` that makes a request to the TMDb API for [image configurations](https://developers.themoviedb.org/3/configuration/get-api-configuration) and returns `dict` with full URLs to the image.\n\n```python\n>>> poster = movie.posters[0]\n\n>>> poster.height poster.width, poster.file_path\n(952, 666, '/3Zu3MojWSaV3rt5gX5fFdDO3GoF.jpg')\n\n>>> poster.url['original']\n'https://image.tmdb.org/t/p//original/3Zu3MojWSaV3rt5gX5fFdDO3GoF.jpg'\n\n>>> set(poster.sizes) == poster.url.keys()\nTrue\n```\n\n## ACCOUNT\n\nTo get started with a TMDb user account, create an instance of `Account` and log in with a user name and password:\n\n```python\n>>> import os\n\n>>> account = isle.Account()\n\n>>> account.login(os.getenv(\"TMDB_USERNAME\"), os.getenv(\"TMDB_PASSWORD\"))\n{'success': True, 'session_id': '7b2578cddffce240f5f3387527761802c0d5c1ef'}\n```\n\nDon't try to seek out how to rate a movie inside a `Movie` instance or how to add a new list inside a `List` instance. All that can be done with a user account, can be done by an `Account` instance.\n\nRate:\n```python\n>>> account.rate(isle.Movie(18148), 8.5)\n{'status_code': 1, 'status_message': 'Success.'}\n\n>>> for movie in account.iter_rated_movies():\n... print(movie)\nMovie(18148)\n\n>>> account.delete_rating(isle.Movie(18148))\n{'status_code': 13, 'status_message': 'The item/record was deleted successfully.'}\n```\n\nWatchlist:\n```python\n>>> account.add_to_watchlist(isle.Movie(18148))\n{'status_code': 1, 'status_message': 'Success.'}\n\n>>> for item in account.iter_movie_watchlist():\n... print(item)\nMovie(18148)\n\n>>> account.remove_from_watchlist(isle.Movie(18148))\n{'status_code': 13, 'status_message': 'The item/record was deleted successfully.'}\n```\n\nAnd other things:\n\n```python\n>>> account.mark_as_favorite(isle.Movie(18148))\n{'status_code': 1, 'status_message': 'Success.'}\n\n>>> for movie in account.iter_favorite_movies():\n... print(movie)\nMovie(18148)\n\n>>> for l in account.iter_lists():\n... print(l)\nList(96926)\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/dmkskn/isle/", "keywords": "themoviedb,the movie database,movie,tv,tmdb,imdb,tvdb,wrapper,api", "license": "MIT", "maintainer": "Dima Koskin", "maintainer_email": "dmksknn@gmail.com", "name": "isle", "package_url": "https://pypi.org/project/isle/", "platform": "", "project_url": "https://pypi.org/project/isle/", "project_urls": { "Homepage": "https://github.com/dmkskn/isle/", "Repository": "https://github.com/dmkskn/isle/" }, "release_url": "https://pypi.org/project/isle/0.6.0/", "requires_dist": null, "requires_python": ">=3.6,<4.0", "summary": "A clear and distinct wrapper of The Movie Database API.", "version": "0.6.0" }, "last_serial": 4764020, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "715201ab2a7c6785a798015ae2e3ed34", "sha256": "7ef273bc65f1e535101d004029b2b0a10d8be57e872d68870928e16927c73d6f" }, "downloads": -1, "filename": "isle-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "715201ab2a7c6785a798015ae2e3ed34", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 108839, "upload_time": "2018-12-18T13:23:45", "url": "https://files.pythonhosted.org/packages/2a/18/ca458a276d7881de67977abdf35bd7f1645a86b36415505876755e45e630/isle-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f9953d93d413e641ae12ad63dedcfef", "sha256": "2810816a93f393859ab90787cce8b93828314e818d588a4a54834daf476cb7f5" }, "downloads": -1, "filename": "isle-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6f9953d93d413e641ae12ad63dedcfef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 27304, "upload_time": "2018-12-18T13:23:48", "url": "https://files.pythonhosted.org/packages/83/10/6b1b88da59c4d9a14b966151ab80e4dfbe4a0d73b054cc8108892e1651a6/isle-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c09c008b307d20be82801b1c27ec5ec5", "sha256": "589f9c690fb8da7a8cd7c69ecf13b637a1d14babd20e5f99aa32f7473f648f89" }, "downloads": -1, "filename": "isle-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c09c008b307d20be82801b1c27ec5ec5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 111022, "upload_time": "2018-12-19T14:20:06", "url": "https://files.pythonhosted.org/packages/ae/73/e6b61eed3895a55693e6621c8c1721778a71a7a22981334c0435afe96380/isle-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d92819de12beae8a1131e90bb1a1d49a", "sha256": "27a64b424e82560e96912adb9d596b76a0627e912e7022575c72e62146b655ef" }, "downloads": -1, "filename": "isle-0.1.1.tar.gz", "has_sig": false, "md5_digest": "d92819de12beae8a1131e90bb1a1d49a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 27622, "upload_time": "2018-12-19T14:20:07", "url": "https://files.pythonhosted.org/packages/a6/06/e85169938a55d56dd9aaa754663f601c18dd944dcb3475bdcd71e80dff6f/isle-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a576d35bcaa0694b085c3dbd352313c0", "sha256": "d072a950064a5ed2f742b3d660a68f64a03c22aee1795b2c5b34e327efbb7525" }, "downloads": -1, "filename": "isle-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a576d35bcaa0694b085c3dbd352313c0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 111970, "upload_time": "2018-12-24T15:08:09", "url": "https://files.pythonhosted.org/packages/70/ee/1632e28c5f85d2ace3a188fbabf4ec6a22a5c313919a9b5c9bcc99443dca/isle-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d796e39bfc41f120bf8857ebd76efaa", "sha256": "401d2a333ce34c514a53618344b6d2afdb9fdc7985d70c6de6b0b8fb369f0fff" }, "downloads": -1, "filename": "isle-0.2.0.tar.gz", "has_sig": false, "md5_digest": "3d796e39bfc41f120bf8857ebd76efaa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 27876, "upload_time": "2018-12-24T15:08:11", "url": "https://files.pythonhosted.org/packages/9f/cd/01c09a0d07499530c4d5feea2bb23e7346a023163969ecce485b3592d574/isle-0.2.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "a6c119b55bdb16c7afa3f53af392bd0b", "sha256": "2de0755aca1023712d79e4c199d07d52b27b4ee665ffae7650cff5beffbf4953" }, "downloads": -1, "filename": "isle-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a6c119b55bdb16c7afa3f53af392bd0b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 112525, "upload_time": "2018-12-28T11:04:07", "url": "https://files.pythonhosted.org/packages/02/61/10ff76734a70fbe143dd5bbcf3843069145ee3610c9411eccd44d2c9cb8d/isle-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c9c19ddb562430e8cbd06bda34545b81", "sha256": "000082e345a78a4a5b730bf684a31d4ff300fa824d5ffc0f2e72ec259bb9c530" }, "downloads": -1, "filename": "isle-0.3.1.tar.gz", "has_sig": false, "md5_digest": "c9c19ddb562430e8cbd06bda34545b81", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 27936, "upload_time": "2018-12-28T11:04:09", "url": "https://files.pythonhosted.org/packages/1e/2f/1b4b41bbc9ae0abbb5e2c3e0ae15be4ee2f352ebc4a2e63bb77f61c4ee38/isle-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ce98fbbe54028598169f87ae44ae7677", "sha256": "c06c89c5945134c77b0a1dd0281cdfda8a2016a900e22339de7fdba2fb855450" }, "downloads": -1, "filename": "isle-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ce98fbbe54028598169f87ae44ae7677", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 115001, "upload_time": "2019-01-21T12:27:45", "url": "https://files.pythonhosted.org/packages/25/c3/b0dbfd43730ff6cc53cf0292c8ebbef947cc35ebb9d95d20b1c54a7d8058/isle-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2aff79d442f88e58c1e5c51ac449a74", "sha256": "b1c7b18d63dcc76dc1ef58bd1bf5c788fd6e0642a2671d5a73e489bcb6d59f48" }, "downloads": -1, "filename": "isle-0.4.0.tar.gz", "has_sig": false, "md5_digest": "f2aff79d442f88e58c1e5c51ac449a74", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 28400, "upload_time": "2019-01-21T12:27:47", "url": "https://files.pythonhosted.org/packages/9a/dc/616f271df95e0c02ce2948fb168e5b629d3672408e638d19022fdf64b64c/isle-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "7f018c24ac25e20d8ce8b3213e8f0ebd", "sha256": "229ddd9a989a09f5dc3dbe0b7331c8d583cd45e502b8245660b87afe8dbd50c9" }, "downloads": -1, "filename": "isle-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7f018c24ac25e20d8ce8b3213e8f0ebd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 107946, "upload_time": "2019-01-23T10:43:17", "url": "https://files.pythonhosted.org/packages/eb/83/5e41feb3af8602f31e7eea2e56759746466ddd7da92fdb1fa3f4ded739b6/isle-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d5224818c66ff07f18a474f2f4a0e6dc", "sha256": "7a769e6927c241ceedfaf42f81edb4aebc7ecbb4db239680d4b3fc176358e1d3" }, "downloads": -1, "filename": "isle-0.4.1.tar.gz", "has_sig": false, "md5_digest": "d5224818c66ff07f18a474f2f4a0e6dc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 26130, "upload_time": "2019-01-23T10:43:18", "url": "https://files.pythonhosted.org/packages/10/b7/b41f0ef90e754d370a5c843f7f59f698faa6291ac711d27b671d0e152ce5/isle-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "e5a748e70f4331ab7477ceeeaa6bbb70", "sha256": "903ac77a99a1443a0f9523888fd9ac5271d23629d14880e7f724e8404c79ce99" }, "downloads": -1, "filename": "isle-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e5a748e70f4331ab7477ceeeaa6bbb70", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 110185, "upload_time": "2019-01-23T11:39:21", "url": "https://files.pythonhosted.org/packages/98/c3/b89a82db6df3adee01f7c0563bfb335c868bb9c9ce44ee51f56a0e7ca8c6/isle-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55fb001de80b4c9ee2bc6e36baaf290a", "sha256": "977cc5db0bfad184b65663aae1d4475698eb9a43c6b5b5831dcc1c075a120cb3" }, "downloads": -1, "filename": "isle-0.5.0.tar.gz", "has_sig": false, "md5_digest": "55fb001de80b4c9ee2bc6e36baaf290a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 26723, "upload_time": "2019-01-23T11:39:22", "url": "https://files.pythonhosted.org/packages/b8/23/cd7721be17c8b1bb0c583f726819fdd3157389bf3b97bcca2f3f84b8a2ae/isle-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "05adcd5aff66c0e4dcc52ee179d8ae59", "sha256": "28ab9ed85251aa5ec5e3f0ef5e75723c3ee59f53dca99586d08fb35cf1a83e75" }, "downloads": -1, "filename": "isle-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "05adcd5aff66c0e4dcc52ee179d8ae59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 111182, "upload_time": "2019-01-31T14:54:16", "url": "https://files.pythonhosted.org/packages/f9/b3/4c5b390de7f97effe65ef307a3b61e6d9b0004ca65d9b17d0b5b94152c25/isle-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbc169e9445c350fd338a4dc1bff93ce", "sha256": "6bfe645f1491f24bf188ee240a60ab5f9d65afed1bbbcdd24356f7cad1bf91d6" }, "downloads": -1, "filename": "isle-0.6.0.tar.gz", "has_sig": false, "md5_digest": "dbc169e9445c350fd338a4dc1bff93ce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 26811, "upload_time": "2019-01-31T14:54:18", "url": "https://files.pythonhosted.org/packages/53/6a/ba0c233ce3bd3a2f23bd1b2831dfd598ace2c1f0ba37f348ccf84dbd601d/isle-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "05adcd5aff66c0e4dcc52ee179d8ae59", "sha256": "28ab9ed85251aa5ec5e3f0ef5e75723c3ee59f53dca99586d08fb35cf1a83e75" }, "downloads": -1, "filename": "isle-0.6.0-py3-none-any.whl", "has_sig": false, "md5_digest": "05adcd5aff66c0e4dcc52ee179d8ae59", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6,<4.0", "size": 111182, "upload_time": "2019-01-31T14:54:16", "url": "https://files.pythonhosted.org/packages/f9/b3/4c5b390de7f97effe65ef307a3b61e6d9b0004ca65d9b17d0b5b94152c25/isle-0.6.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dbc169e9445c350fd338a4dc1bff93ce", "sha256": "6bfe645f1491f24bf188ee240a60ab5f9d65afed1bbbcdd24356f7cad1bf91d6" }, "downloads": -1, "filename": "isle-0.6.0.tar.gz", "has_sig": false, "md5_digest": "dbc169e9445c350fd338a4dc1bff93ce", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6,<4.0", "size": 26811, "upload_time": "2019-01-31T14:54:18", "url": "https://files.pythonhosted.org/packages/53/6a/ba0c233ce3bd3a2f23bd1b2831dfd598ace2c1f0ba37f348ccf84dbd601d/isle-0.6.0.tar.gz" } ] }