{
"info": {
"author": "Danny Whalen",
"author_email": "daniel.r.whalen@gmail.com",
"bugtrack_url": null,
"classifiers": [
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Natural Language :: English",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
],
"description": "=========\nPartridge\n=========\n\n\n.. image:: https://img.shields.io/pypi/v/partridge.svg\n :target: https://pypi.python.org/pypi/partridge\n\n.. image:: https://img.shields.io/travis/remix/partridge.svg\n :target: https://travis-ci.org/remix/partridge\n\n\nPartridge is a Python 3.6+ library for working with `GTFS `__ feeds using `pandas `__ DataFrames.\n\nPartridge is heavily influenced by our experience at `Remix `__ analyzing and debugging every GTFS feed we could find.\n\nAt the core of Partridge is a dependency graph rooted at ``trips.txt``. Disconnected data is pruned away according to this graph when reading the contents of a feed.\n\nFeeds can also be filtered to create a view specific to your needs. It's most common to filter a feed down to specific dates (``service_id``) or routes (``route_id``), but any field can be filtered.\n\n.. figure:: dependency-graph.png\n :alt: dependency graph\n\n\nPhilosphy\n---------\n\nThe design of Partridge is guided by the following principles:\n\n**As much as possible**\n\n- Favor speed\n- Allow for extension\n- Succeed lazily on expensive paths\n- Fail eagerly on inexpensive paths\n\n**As little as possible**\n\n- Do anything other than efficiently read GTFS files into DataFrames\n- Take an opinion on the GTFS spec\n\n\nInstallation\n------------\n\n.. code:: console\n\n pip install partridge\n\n\n**GeoPandas support**\n\n.. code:: console\n\n pip install partridge[full]\n\n\nUsage\n-----\n\n**Setup**\n\n.. code:: python\n\n import partridge as ptg\n\n inpath = 'path/to/caltrain-2017-07-24/'\n\n\nInspecting the calendar\n~~~~~~~~~~~~~~~~~~~~~~~\n\n\n**The date with the most trips**\n\n.. code:: python\n\n date, service_ids = ptg.read_busiest_date(inpath)\n # datetime.date(2017, 7, 17), frozenset({'CT-17JUL-Combo-Weekday-01'})\n\n\n**The week with the most trips**\n\n\n.. code:: python\n\n service_ids_by_date = ptg.read_busiest_week(inpath)\n # {datetime.date(2017, 7, 17): frozenset({'CT-17JUL-Combo-Weekday-01'}),\n # datetime.date(2017, 7, 18): frozenset({'CT-17JUL-Combo-Weekday-01'}),\n # datetime.date(2017, 7, 19): frozenset({'CT-17JUL-Combo-Weekday-01'}),\n # datetime.date(2017, 7, 20): frozenset({'CT-17JUL-Combo-Weekday-01'}),\n # datetime.date(2017, 7, 21): frozenset({'CT-17JUL-Combo-Weekday-01'}),\n # datetime.date(2017, 7, 22): frozenset({'CT-17JUL-Caltrain-Saturday-03'}),\n # datetime.date(2017, 7, 23): frozenset({'CT-17JUL-Caltrain-Sunday-01'})}\n\n\n**Dates with active service**\n\n.. code:: python\n\n service_ids_by_date = ptg.read_service_ids_by_date(path)\n\n date, service_ids = min(service_ids_by_date.items())\n # datetime.date(2017, 7, 15), frozenset({'CT-17JUL-Caltrain-Saturday-03'})\n\n date, service_ids = max(service_ids_by_date.items())\n # datetime.date(2019, 7, 20), frozenset({'CT-17JUL-Caltrain-Saturday-03'})\n\n\n**Dates with identical service**\n\n\n.. code:: python\n\n dates_by_service_ids = ptg.read_dates_by_service_ids(inpath)\n\n busiest_date, busiest_service = ptg.read_busiest_date(inpath)\n dates = dates_by_service_ids[busiest_service]\n\n min(dates), max(dates)\n # datetime.date(2017, 7, 17), datetime.date(2019, 7, 19)\n\n\nReading a feed\n~~~~~~~~~~~~~~\n\n\n.. code:: python\n\n _date, service_ids = ptg.read_busiest_date(inpath)\n\n view = {\n 'trips.txt': {'service_id': service_ids},\n 'stops.txt': {'stop_name': 'Gilroy Caltrain'},\n }\n\n feed = ptg.load_feed(path, view)\n\n\n**Read shapes and stops as GeoDataFrames**\n\n.. code:: python\n\n service_ids = ptg.read_busiest_date(inpath)[1]\n view = {'trips.txt': {'service_id': service_ids}}\n\n feed = ptg.load_geo_feed(path, view)\n\n feed.shapes.head()\n # shape_id geometry\n # 0 cal_gil_sf LINESTRING (-121.5661454200744 37.003512297983...\n # 1 cal_sf_gil LINESTRING (-122.3944115638733 37.776439059278...\n # 2 cal_sf_sj LINESTRING (-122.3944115638733 37.776439059278...\n # 3 cal_sf_tam LINESTRING (-122.3944115638733 37.776439059278...\n # 4 cal_sj_sf LINESTRING (-121.9031703472137 37.330157067882...\n\n minlon, minlat, maxlon, maxlat = feed.stops.total_bounds\n # -122.412076, 37.003485, -121.566088, 37.77639\n\n\nExtracting a new feed\n~~~~~~~~~~~~~~~~~~~~~\n\n.. code:: python\n\n outpath = 'gtfs-slim.zip'\n\n view = {'trips.txt': {'service_id': ptg.read_busiest_date(inpath)[1]}}\n\n ptg.extract_feed(inpath, outpath, view)\n feed = ptg.load_feed(outpath)\n\n assert service_ids == set(feed.trips.service_id)\n\n\nFeatures\n--------\n\n- Surprisingly fast :)\n- Load only what you need into memory\n- Built-in support for resolving service dates\n- Easily extended to support fields and files outside the official spec\n (TODO: document this)\n- Handle nested folders and bad data in zips\n- Predictable type conversions\n\nThank You\n---------\n\nI hope you find this library useful. If you have suggestions for\nimproving Partridge, please open an `issue on\nGitHub `__.\n\n\n=======\nHistory\n=======\n\n1.1.1 (2019-09-13)\n------------------\n\n* Improve file encoding sniffer, which was misidentifying some Finnish/emoji unicode. Thanks to @dyakovlev!\n\n\n1.1.0 (2019-02-21)\n------------------\n\n* Add ``partridge.load_geo_feed`` for reading stops and shapes into GeoPandas GeoDataFrames.\n\n\n1.0.0 (2018-12-18)\n------------------\n\nThis release is a combination of major internal refactorings and some minor interface changes. Overall, you should expect your upgrade from pre-1.0 versions to be relatively painless. A big thank you to @genhernandez and @csb19815 for their valuable design feedback. If you still need Python 2 support, please continue using version 0.11.0.\n\nHere is a list of interface changes:\n\n* The class ``partridge.gtfs.feed`` has been renamed to ``partridge.gtfs.Feed``.\n* The public interface for instantiating feeds is ``partridge.load_feed``. This function replaces the previously undocumented function ``partridge.get_filtered_feed``.\n* A new function has been added for identifying the busiest week in a feed: ``partridge.read_busiest_date``\n* The public function ``partridge.get_representative_feed`` has been removed in favor of using ``partridge.read_busiest_date`` directly.\n* The public function ``partridge.writers.extract_feed`` is now available via the top level module: ``partridge.extract_feed``.\n\nMiscellaneous minor changes:\n\n* Character encoding detection is now done by the ``cchardet`` package instead of ``chardet``. ``cchardet`` is faster, but may not always return the same result as ``chardet``.\n* Zip files are unpacked into a temporary directory instead of reading directly from the zip. These temporary directories are cleaned up when the feed is garbage collected or when the process exits.\n* The code base is now annotated with type hints and the build runs ``mypy`` to verify the types.\n* DataFrames are cached in a dictionary instead of the ``functools.lru_cache`` decorator.\n* The ``partridge.extract_feed`` function now writes files concurrently to improve performance.\n\n\n0.11.0 (2018-08-01)\n-------------------\n\n* Fix major performance issue related to encoding detection. Thank you to @cjer for reporting the issue and advising on a solution.\n\n\n0.10.0 (2018-04-30)\n-------------------\n\n* Improved handling of non-standard compliant file encodings\n* Only require functools32 for Python < 3\n* ``ptg.parsers.parse_date`` no longer accepts dates, only strings\n\n\n0.9.0 (2018-03-24)\n------------------\n\n* Improves read time for large feeds by adding LRU caching to ``ptg.parsers.parse_time``.\n\n\n0.8.0 (2018-03-14)\n------------------\n\n* Gracefully handle completely empty files. This change unifies the behavior of reading from a CSV with a header only (no data rows) and a completely empty (zero bytes) file in the zip.\n\n\n0.7.0 (2018-03-09)\n------------------\n\n* Fix handling of nested folders and zip containing nested folders.\n* Add ``ptg.get_filtered_feed`` for multi-file filtering.\n\n\n0.6.1 (2018-02-24)\n------------------\n\n* Fix bug in ``ptg.read_service_ids_by_date``. Reported by @cjer in #27.\n\n\n0.6.0 (2018-02-21)\n------------------\n\n* Published package no longer includes unnecessary fixtures to reduce the size.\n* Naively write a feed object to a zip file with ``ptg.write_feed_dangerously``.\n* Read the earliest, busiest date and its ``service_id``'s from a feed with ``ptg.read_busiest_date``.\n* Bug fix: Handle ``calendar.txt``/``calendar_dates.txt`` entries w/o applicable trips.\n\n\n0.6.0.dev1 (2018-01-23)\n-----------------------\n\n* Add support for reading files from a folder. Thanks again @danielsclint!\n\n\n0.5.0 (2017-12-22)\n------------------\n\n* Easily build a representative view of a zip with ``ptg.get_representative_feed``. Inspired by `peartree `_.\n* Extract out GTFS zips by agency_id/route_id with ``ptg.extract_{agencies,routes}``.\n* Read arbitrary files from a zip with ``feed.get('myfile.txt')``.\n* Remove ``service_ids_by_date``, ``dates_by_service_ids``, and ``trip_counts_by_date`` from the feed class. Instead use ``ptg.{read_service_ids_by_date,read_dates_by_service_ids,read_trip_counts_by_date}``.\n\n\n0.4.0 (2017-12-10)\n------------------\n\n* Add support for Python 2.7. Thanks @danielsclint!\n\n\n0.3.0 (2017-10-12)\n------------------\n\n* Fix service date resolution for raw_feed. Previously raw_feed considered all days of the week from calendar.txt to be active regardless of 0/1 value.\n\n\n0.2.0 (2017-09-30)\n------------------\n\n* Add missing edge from fare_rules.txt to routes.txt in default dependency graph.\n\n\n0.1.0 (2017-09-23)\n------------------\n\n* First release on PyPI.\n",
"description_content_type": "",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/remix/partridge",
"keywords": "partridge",
"license": "MIT license",
"maintainer": "",
"maintainer_email": "",
"name": "partridge",
"package_url": "https://pypi.org/project/partridge/",
"platform": "",
"project_url": "https://pypi.org/project/partridge/",
"project_urls": {
"Homepage": "https://github.com/remix/partridge"
},
"release_url": "https://pypi.org/project/partridge/1.1.1/",
"requires_dist": null,
"requires_python": "",
"summary": "Partridge is a python library for working with GTFS feeds using pandas DataFrames.",
"version": "1.1.1"
},
"last_serial": 5827606,
"releases": {
"0.1.0": [
{
"comment_text": "",
"digests": {
"md5": "5082675b085313f88f88c20033a34e10",
"sha256": "a658cd59bf685764830b44cb425bbb99f156168c598c7bffac0b5e1e4a829d23"
},
"downloads": -1,
"filename": "partridge-0.1.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "5082675b085313f88f88c20033a34e10",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 9673,
"upload_time": "2017-09-23T17:40:08",
"url": "https://files.pythonhosted.org/packages/92/ce/c006298e7c954e5430e31c7bdd169d5d74767d2e373a5c018a863db7adce/partridge-0.1.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3abd15d72600027840f9cd73b556b0a1",
"sha256": "c7d332d357b4add92f23ec6c4762a7ad9e3d3c617a719a2700f5cf43d4a1416a"
},
"downloads": -1,
"filename": "partridge-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "3abd15d72600027840f9cd73b556b0a1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 314756,
"upload_time": "2017-09-23T17:40:04",
"url": "https://files.pythonhosted.org/packages/08/b9/c7052de201d3f8b8c9cd1515d99fedf59b5389c942c873093634902b273a/partridge-0.1.0.tar.gz"
}
],
"0.10.0": [
{
"comment_text": "",
"digests": {
"md5": "3987963b51e1c9377ad78f501040e3c7",
"sha256": "598edaf43a4400332d037d40e0693b858fc8f53f743d7d6dc89559ffb7d0f656"
},
"downloads": -1,
"filename": "partridge-0.10.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "3987963b51e1c9377ad78f501040e3c7",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 14938,
"upload_time": "2018-04-30T22:28:56",
"url": "https://files.pythonhosted.org/packages/1f/2f/79e20d0421bce3cdc521c33b2ce6d06c5245bbd346bf71b2e6adce7ef3e1/partridge-0.10.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3ce34438f1439dfee1f4d019f537d5c9",
"sha256": "7a22f9305a25d31329b9dc1b1c9e869068f77c1676aa5554a9d163154fe034ed"
},
"downloads": -1,
"filename": "partridge-0.10.0.tar.gz",
"has_sig": false,
"md5_digest": "3ce34438f1439dfee1f4d019f537d5c9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 595371,
"upload_time": "2018-04-30T22:28:53",
"url": "https://files.pythonhosted.org/packages/20/45/eed9fbbfc6218c264cb320d5dcf1a32892f49170e3d01e96226359426bd4/partridge-0.10.0.tar.gz"
}
],
"0.11.0": [
{
"comment_text": "",
"digests": {
"md5": "c695e624d5506714ba3dd96c8f96596a",
"sha256": "c423f743935992625920056d5d1085ac262e8ff096d7bb3529461a4cf003028e"
},
"downloads": -1,
"filename": "partridge-0.11.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c695e624d5506714ba3dd96c8f96596a",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 15374,
"upload_time": "2018-08-01T21:58:45",
"url": "https://files.pythonhosted.org/packages/87/81/42b7fcabaf818f9b2c64417f05a16cd7aea37578ef94eec24e198c569152/partridge-0.11.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9caece496c03d10aa282bc96510216f0",
"sha256": "8fd9e020029d0fbe6df4f0f021dc26b932a99be17aabe2074abf19876ae4d753"
},
"downloads": -1,
"filename": "partridge-0.11.0.tar.gz",
"has_sig": false,
"md5_digest": "9caece496c03d10aa282bc96510216f0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 596011,
"upload_time": "2018-08-01T21:58:42",
"url": "https://files.pythonhosted.org/packages/01/39/84804b15f3bcc1268abbd6f5c0c16d37791ff332e8859f14091b1b26f896/partridge-0.11.0.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "6973be9e49225eb2033f481e18d348d6",
"sha256": "242e47f140431b4d713d47055df0b0cd3ee7ca5d4dfc3163cac12a049b7aa509"
},
"downloads": -1,
"filename": "partridge-0.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "6973be9e49225eb2033f481e18d348d6",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 9779,
"upload_time": "2017-09-30T17:52:38",
"url": "https://files.pythonhosted.org/packages/3f/c4/57ed2746330a4408c71a4da3b357bd6e7b02d0448f43f3539f3ea1ff8706/partridge-0.2.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3dfe07c8cbfb81d627cccf7f6f402e01",
"sha256": "a7b9f387783c445b02b07b9f15970a7ff72c4b1e0004831e1b12320d64b9bffc"
},
"downloads": -1,
"filename": "partridge-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "3dfe07c8cbfb81d627cccf7f6f402e01",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 314793,
"upload_time": "2017-09-30T17:52:35",
"url": "https://files.pythonhosted.org/packages/0b/47/48a20946599d96f0ccf66efeaf3a75d1abbcbd95986e710d5ed6979fb371/partridge-0.2.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "3208e74ed44ea826dbbb85b4a866772b",
"sha256": "ddc01fed91f6dc54339ffe1e82b67799caa62e3768156c0ec95a112beae753d7"
},
"downloads": -1,
"filename": "partridge-0.3.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "3208e74ed44ea826dbbb85b4a866772b",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 9941,
"upload_time": "2017-10-12T15:32:19",
"url": "https://files.pythonhosted.org/packages/62/71/30f7ca11ad920a27c1dc4bef4f5a748fada101c5f249c45516d2f1d2b60b/partridge-0.3.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "78a1e5513c6206e762aa3f8d5ad8b204",
"sha256": "d64b3b141e719c2986b03914cde1aa4dbee30220fd0fdac89a452cfadd534c3c"
},
"downloads": -1,
"filename": "partridge-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "78a1e5513c6206e762aa3f8d5ad8b204",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 319274,
"upload_time": "2017-10-12T15:32:14",
"url": "https://files.pythonhosted.org/packages/8f/f8/5511ed018c385cf3dd5f4525f313a02488b90d235c65c95cadaf02ad8b6d/partridge-0.3.0.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "1e516cbd2e5432c81085276b74bc17de",
"sha256": "ad735550638290a3cdab4209387e9d34ad4a1586610a86f16d72c75f96bd8b23"
},
"downloads": -1,
"filename": "partridge-0.4.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "1e516cbd2e5432c81085276b74bc17de",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 10328,
"upload_time": "2017-12-10T19:46:54",
"url": "https://files.pythonhosted.org/packages/07/5c/e9a6c5fdd57dabef754c792e6bf0c3368062020602b8a774e76c5c9ec65f/partridge-0.4.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "91c2d765939157c7c7530b62bd7b11a9",
"sha256": "0c05c69aee1d8f4121a5bf780af9f0ade84d7d857dd735abfd9cf3bb8a93dbc9"
},
"downloads": -1,
"filename": "partridge-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "91c2d765939157c7c7530b62bd7b11a9",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 889124,
"upload_time": "2017-12-10T19:46:51",
"url": "https://files.pythonhosted.org/packages/4f/20/a805b64862d8eea4298f9672d60014f6d83ebfae2958ad0b417216e9b9e6/partridge-0.4.0.tar.gz"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "6add100da9e250adb6d8e9bb4ad1286d",
"sha256": "1346d2a2aba336200908b8cfe6b9f9272420be85986b849417a5d4795ec2c839"
},
"downloads": -1,
"filename": "partridge-0.5.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "6add100da9e250adb6d8e9bb4ad1286d",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 11894,
"upload_time": "2017-12-22T20:47:11",
"url": "https://files.pythonhosted.org/packages/33/26/d5aa6f902e303f22fc66f7a028ff0e84f57b1ef76342d3b719fda1d7bcd9/partridge-0.5.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "84aea591ea4b93b02d20effa425c7cf1",
"sha256": "1d7bee786c5f97bbd9f8d57ea943c3cdedd14267539d8f08733c3571300b560c"
},
"downloads": -1,
"filename": "partridge-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "84aea591ea4b93b02d20effa425c7cf1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1673667,
"upload_time": "2017-12-22T20:47:07",
"url": "https://files.pythonhosted.org/packages/4a/0f/96f94ef9c1a2a7cf71b844cffb03bc75faa03c69961a5ec0c64c61e1887d/partridge-0.5.0.tar.gz"
}
],
"0.6.0": [
{
"comment_text": "",
"digests": {
"md5": "e96cc156a917bfc2d0a8ddf85074a12b",
"sha256": "2d9a378d62715a76889698d4002c5ae907c8aecafc5e10c4849d4b2439ff5292"
},
"downloads": -1,
"filename": "partridge-0.6.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "e96cc156a917bfc2d0a8ddf85074a12b",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 13231,
"upload_time": "2018-02-22T05:57:05",
"url": "https://files.pythonhosted.org/packages/90/be/1a5e4e98e8c8fb34d93c249698e8dbb707ccc3d6fef64283996b23a5d6a4/partridge-0.6.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "52de2fbc6bb0dd19e095cbc4d3411a19",
"sha256": "2bdc5c058293284a885d7b13fac71fc8c4b1462512e383ad36fd3587c1b417e4"
},
"downloads": -1,
"filename": "partridge-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "52de2fbc6bb0dd19e095cbc4d3411a19",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 593604,
"upload_time": "2018-02-22T05:57:02",
"url": "https://files.pythonhosted.org/packages/e6/40/d00ec78f4ba450c3176b6f3edacc251358244b4db3d370528ddae7f783ee/partridge-0.6.0.tar.gz"
}
],
"0.6.0.dev1": [
{
"comment_text": "",
"digests": {
"md5": "c7dca3f592b2ceea65269508e7558efb",
"sha256": "bb459f87361a574272b20c01247a4970eec381e1b4429e504ee839b1167867af"
},
"downloads": -1,
"filename": "partridge-0.6.0.dev1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "c7dca3f592b2ceea65269508e7558efb",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 12673,
"upload_time": "2018-01-24T01:07:45",
"url": "https://files.pythonhosted.org/packages/25/71/7daa4cea599ccdd08c9de027bdbebe302524aadc3ba178004c060ab3ccf7/partridge-0.6.0.dev1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "8256f0e2f69d96e821a311ec6f021217",
"sha256": "32c14b034fbceb0b33f9b366460a489351517cb52a3c8b4b81af5b4af3cc1312"
},
"downloads": -1,
"filename": "partridge-0.6.0.dev1.tar.gz",
"has_sig": false,
"md5_digest": "8256f0e2f69d96e821a311ec6f021217",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 1734244,
"upload_time": "2018-01-24T01:07:42",
"url": "https://files.pythonhosted.org/packages/b4/e0/7b3cd3e87c50fb0b58e78ab84776c394b60f6559637290cbec57c63870e8/partridge-0.6.0.dev1.tar.gz"
}
],
"0.6.1": [
{
"comment_text": "",
"digests": {
"md5": "5f106380b33b574a4414a70e0c9b6585",
"sha256": "4e0f5dea2f717a807dda30d791b6f3e0093dded19dc9f59c6cceef453df1e617"
},
"downloads": -1,
"filename": "partridge-0.6.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f106380b33b574a4414a70e0c9b6585",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 13297,
"upload_time": "2018-02-24T17:18:10",
"url": "https://files.pythonhosted.org/packages/27/cf/f9801f9688126addcb4b6d378baa0e066b7f672ebbe5cc7468f16e89af5f/partridge-0.6.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "fbdc28618efc377636d3245cc05368e1",
"sha256": "4d1759e67986cc4d339b92bfa507d85dc5b84802fabc4372ed0bc74db5b6d278"
},
"downloads": -1,
"filename": "partridge-0.6.1.tar.gz",
"has_sig": false,
"md5_digest": "fbdc28618efc377636d3245cc05368e1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 593695,
"upload_time": "2018-02-24T17:18:07",
"url": "https://files.pythonhosted.org/packages/86/29/4c1206c3891d5ee445e9c207c14f2258f2a6f3d07385730110dc383d25ec/partridge-0.6.1.tar.gz"
}
],
"0.7.0": [
{
"comment_text": "",
"digests": {
"md5": "3f60f3a5187161df0f78ecdd8bb1795d",
"sha256": "dfcaa4217f77373c7982105a5a9a7bea5b48cabbf79705c2b375a81ed23d2194"
},
"downloads": -1,
"filename": "partridge-0.7.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "3f60f3a5187161df0f78ecdd8bb1795d",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 14081,
"upload_time": "2018-03-09T23:47:12",
"url": "https://files.pythonhosted.org/packages/00/83/4c8a5be29a971efd43c58551110a8ba5a450414f9f8aff2c7a028c3aae83/partridge-0.7.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "4a706db068be6e1e94a34531c5c82a60",
"sha256": "c788b8193a0a96d8320f21fee2ee7188d72b7fbb5cb04b7e2a4cf64fec8c4146"
},
"downloads": -1,
"filename": "partridge-0.7.0.tar.gz",
"has_sig": false,
"md5_digest": "4a706db068be6e1e94a34531c5c82a60",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 594356,
"upload_time": "2018-03-09T23:47:09",
"url": "https://files.pythonhosted.org/packages/a7/e9/de771edc03bd6dee05aa30a1ff1980a49d4359416bebef4bc52648b917ec/partridge-0.7.0.tar.gz"
}
],
"0.8.0": [
{
"comment_text": "",
"digests": {
"md5": "ee493f4ceebc50d0989373db59a767a8",
"sha256": "5cd22cb02d88a35b37dfeb8bef01fc84674919f63980645188bf42187992a568"
},
"downloads": -1,
"filename": "partridge-0.8.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "ee493f4ceebc50d0989373db59a767a8",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 14337,
"upload_time": "2018-03-15T02:58:53",
"url": "https://files.pythonhosted.org/packages/f0/d4/494e31cf73ee64273f2a901ecd36670daa395755448f42ae0e8a62ac2531/partridge-0.8.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "5b543047d3cb956f7f6b3cb4a254edd5",
"sha256": "43a837e5db391871127dc0de808dac20a5201b6081959d0d016737f41c4d8f1d"
},
"downloads": -1,
"filename": "partridge-0.8.0.tar.gz",
"has_sig": false,
"md5_digest": "5b543047d3cb956f7f6b3cb4a254edd5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 594781,
"upload_time": "2018-03-15T02:58:50",
"url": "https://files.pythonhosted.org/packages/b6/42/9ed5b9a7a5907dd9189e343c06dadc72b0fe8314b3fa5760f474c2d6c94b/partridge-0.8.0.tar.gz"
}
],
"0.9.0": [
{
"comment_text": "",
"digests": {
"md5": "7add232b67a0f7e59df4b88a11a91046",
"sha256": "9ffaeb6e477eb49d9a03ded1999da401af7cf8fd9cfa92f1537e7a47a03cce92"
},
"downloads": -1,
"filename": "partridge-0.9.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "7add232b67a0f7e59df4b88a11a91046",
"packagetype": "bdist_wheel",
"python_version": "3.6",
"requires_python": null,
"size": 14526,
"upload_time": "2018-03-24T15:45:54",
"url": "https://files.pythonhosted.org/packages/39/6e/8cc52116587a9736711737dd7df4f88808170726dc38c44917936ff586f2/partridge-0.9.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "68d28f04a247ef8d5c13dea2b367c69a",
"sha256": "4fcba91aa50f3eca13f528b4db2442517dcd14b805939e906d48bcbe0399da80"
},
"downloads": -1,
"filename": "partridge-0.9.0.tar.gz",
"has_sig": false,
"md5_digest": "68d28f04a247ef8d5c13dea2b367c69a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 594944,
"upload_time": "2018-03-24T15:45:51",
"url": "https://files.pythonhosted.org/packages/a6/5c/74aa1b8569ac513fa79e72f7db6d2c5a6dc7103f6ad5cf9a8f3c7f7301f2/partridge-0.9.0.tar.gz"
}
],
"1.0.0": [
{
"comment_text": "",
"digests": {
"md5": "427f1a6a665f772decec9f16c74a0287",
"sha256": "9c88522bdc2b61a71067f5ea104dbe9b0deb239f9be636368846a7231dd11dc0"
},
"downloads": -1,
"filename": "partridge-1.0.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "427f1a6a665f772decec9f16c74a0287",
"packagetype": "bdist_wheel",
"python_version": "3.7",
"requires_python": null,
"size": 13785,
"upload_time": "2018-12-18T22:54:10",
"url": "https://files.pythonhosted.org/packages/19/a6/3a26b6ffc3a317248a279f9c0057ae92e9f3432af50af8d233c217d80de3/partridge-1.0.0-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "98e0cce40f694314d7547252023946b2",
"sha256": "cb58b87c4950c60eb98ca3f45afcdbcd8bc0d0a0c4b190911d7d65ba0810fb95"
},
"downloads": -1,
"filename": "partridge-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "98e0cce40f694314d7547252023946b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 29797,
"upload_time": "2018-12-18T22:54:07",
"url": "https://files.pythonhosted.org/packages/6f/be/cd7fb93c7cb49293c9cf2e6fdcec7a56ad7fdf5bd14bb2a1c3e641d025bf/partridge-1.0.0.tar.gz"
}
],
"1.1.0": [
{
"comment_text": "",
"digests": {
"md5": "17f22780331a9a1c6972044b38ea1c8c",
"sha256": "ad23a70df5d17c95f23cec799afa71ec9774f5caffa45e1e468b1a053be4a960"
},
"downloads": -1,
"filename": "partridge-1.1.0.tar.gz",
"has_sig": false,
"md5_digest": "17f22780331a9a1c6972044b38ea1c8c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 31252,
"upload_time": "2019-04-12T18:11:19",
"url": "https://files.pythonhosted.org/packages/9e/7b/7a0145e0a85ac0b23cb425f47bdef7ff90454176e368e406cf95a8391785/partridge-1.1.0.tar.gz"
}
],
"1.1.1": [
{
"comment_text": "",
"digests": {
"md5": "77e6d3141a6eb75e19245d8b5932dd4a",
"sha256": "cded6ebf392300f93a983feb4538779d9b9675143a6edeb94d50bef6fca792d3"
},
"downloads": -1,
"filename": "partridge-1.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "77e6d3141a6eb75e19245d8b5932dd4a",
"packagetype": "bdist_wheel",
"python_version": "3.7",
"requires_python": null,
"size": 15309,
"upload_time": "2019-09-13T20:21:52",
"url": "https://files.pythonhosted.org/packages/e9/bf/61667c56f6804ee56690af33aecb00925ca2db11c53bade52dee731e49ee/partridge-1.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "95335935b8cae4a093cdd03378812f40",
"sha256": "7a90400ed70cc64315e0c90549e8d30dd0671760fd87497774ff94764ea1e483"
},
"downloads": -1,
"filename": "partridge-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "95335935b8cae4a093cdd03378812f40",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26763,
"upload_time": "2019-09-13T20:21:48",
"url": "https://files.pythonhosted.org/packages/3f/20/dcc6e39e7f9c4c4f3cf75888f4e8c86a8e582b2c7d385542b48a07b2ec14/partridge-1.1.1.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "77e6d3141a6eb75e19245d8b5932dd4a",
"sha256": "cded6ebf392300f93a983feb4538779d9b9675143a6edeb94d50bef6fca792d3"
},
"downloads": -1,
"filename": "partridge-1.1.1-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "77e6d3141a6eb75e19245d8b5932dd4a",
"packagetype": "bdist_wheel",
"python_version": "3.7",
"requires_python": null,
"size": 15309,
"upload_time": "2019-09-13T20:21:52",
"url": "https://files.pythonhosted.org/packages/e9/bf/61667c56f6804ee56690af33aecb00925ca2db11c53bade52dee731e49ee/partridge-1.1.1-py2.py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "95335935b8cae4a093cdd03378812f40",
"sha256": "7a90400ed70cc64315e0c90549e8d30dd0671760fd87497774ff94764ea1e483"
},
"downloads": -1,
"filename": "partridge-1.1.1.tar.gz",
"has_sig": false,
"md5_digest": "95335935b8cae4a093cdd03378812f40",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 26763,
"upload_time": "2019-09-13T20:21:48",
"url": "https://files.pythonhosted.org/packages/3f/20/dcc6e39e7f9c4c4f3cf75888f4e8c86a8e582b2c7d385542b48a07b2ec14/partridge-1.1.1.tar.gz"
}
]
}