{ "info": { "author": "Frank Sachsenheim", "author_email": "funkyfuture@riseup.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: Implementation :: CPython", "Topic :: Text Processing :: Markup :: XML" ], "description": "inxs \u2013 A Python framework for XML transformations without boilerplate.\n======================================================================\n\ninxs is inexcessive.\n\ninxs is not XSLT.\n\ninxs is ISC-licensed.\n\ninxs is fully documented here: https://inxs.readthedocs.io/en/latest/\n\n.. image:: https://img.shields.io/pypi/v/inxs.svg\n :target: https://pypi.org/project/inxs\n.. image:: https://img.shields.io/pypi/l/inxs.svg\n :target: https://github.com/funkyfuture/inxs/blob/master/LICENSE\n.. image:: https://img.shields.io/pypi/pyversions/inxs.svg\n.. image:: https://img.shields.io/travis/funkyfuture/inxs/master.svg\n :target: https://travis-ci.org/funkyfuture/inxs\n.. image:: https://coveralls.io/repos/github/funkyfuture/inxs/badge.svg\n :target: https://coveralls.io/github/funkyfuture/inxs\n\n\nAt a glimpse\n------------\n\nSolving the `Wikipedia XSLT example #1`_:\n\n.. code-block:: python\n\n def extract_person(node: TagNode):\n return node.attributes['username'], first(node.css_select(\"name\")).full_text\n\n def append_person(previous_result, result: TagNode):\n result.append_child(result.new_tag_node(\n \"name\", attributes={\"username\": previous_result[0]},\n children=[previous_result[1]]\n ))\n\n transformation = Transformation(\n Rule('person', (extract_person, append_person)),\n result_object='context.result', context={'result': new_tag_node('root')})\n\n # that's four lines less LOC than the XSLT implementation\n\nSolving the `Wikipedia XSLT example #2`_:\n\n.. code-block:: python\n\n def generate_skeleton(context):\n context.html = new_tag_node(\n \"html\", namespace='http://www.w3.org/1999/xhtml',\n children=(\n tag(\"head\",\n tag(\"title\", \"Testing XML Example\")),\n tag(\"body\", (\n tag(\"h1\", \"Persons\"),\n tag(\"ul\")\n )),\n )\n )\n\n def extract_person(node: TagNode, persons):\n persons.append(\n (first(node.css_select(\"name\")).full_text,\n first(node.css_select(\"family-name\")).full_text)\n )\n\n def list_persons(previous_result, html: TagNode):\n first(html.css_select(\"html|body html|ul\")).append_child(\n *(html.new_tag_node(\"li\", children=[f'{x[1]}, {x[0]}'])\n for x in previous_result)\n )\n\n transformation = Transformation(\n generate_skeleton,\n Rule('person', extract_person),\n lib.sort('persons', itemgetter(1)),\n list_persons,\n result_object='context.html', context={'persons': []})\n\n # that's four lines more LOC than the XSLT implementation\n\n`Here`_ you can find the source repository and issue tracker of inxs.\n\n.. _here: https://github.com/funkyfuture/inxs\n.. _Wikipedia XSLT example #1: https://en.wikipedia.org/wiki/XSLT#Example_1_.28transforming_XML_to_XML.29\n.. _Wikipedia XSLT example #2: https://en.wikipedia.org/wiki/XSLT#Example_2_.28transforming_XML_to_XHTML.29\n\n\nHistory\n=======\n\n0.2b1 (2019-06-23)\n------------------\n\n* refactored to base on delb_ instead of lxml\n* *removed* from the available symbols for handler functions:\n - ``tree``\n - ``xpath_evaluator`` (use ``root.xpath`` instead)\n* *renamed* available symbols for handler functions:\n - ``element`` -> ``node``\n* *renamed* in core:\n - ``SkipToNextElement`` -> ``SkipToNextNode``\n* *removed* from the lib:\n - ``drop_siblings``\n - ``extract_text``\n - ``has_tail``\n - ``init_elementmaker``\n - ``merge``\n - ``replace_text``\n - ``sub``\n* *renamed* in the lib:\n - ``make_element`` -> ``make_node``\n - ``remove_element`` -> ``remove_node``\n - ``remove_elements`` -> ``remove_nodes``\n - ``sorter`` -> ``sort``\n - ``strip_attributes`` -> ``remove_attributes``\n - ``strip_namespace`` -> ``remove_namespace``\n\nVarious arguments to functions and methods have been renamed accordingly.\n\n.. _delb: https://pypi.org/project/delb/\n\n\n0.1b1 (2017-06-25)\n------------------\n\n* *new*: Allows the definition that any rule must match per transformation as\n ``common_rule_conditions``.\n* Minor improvements and fixes.\n\n\n0.1b0 (2017-06-19)\n------------------\n\n* First beta release.\n\n\n0.1a0 (2017-05-02)\n------------------\n\n* First release on PyPI.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/funkyfuture/inxs", "keywords": "inxs xml processing transformation framework xslt not-xslt", "license": "AGPLv3+", "maintainer": "", "maintainer_email": "", "name": "inxs", "package_url": "https://pypi.org/project/inxs/", "platform": "", "project_url": "https://pypi.org/project/inxs/", "project_urls": { "Homepage": "https://github.com/funkyfuture/inxs" }, "release_url": "https://pypi.org/project/inxs/0.2b1/", "requires_dist": null, "requires_python": "", "summary": "A framework for XML transformations without boilerplate.", "version": "0.2b1" }, "last_serial": 5437551, "releases": { "0.1a0": [ { "comment_text": "", "digests": { "md5": "6e6a88bb0d7635cde00b01483e28b477", "sha256": "2d79bb0c26443fd714cd4cd0097fa366ddde10ae999ed55e67b7ab4dd80200c6" }, "downloads": -1, "filename": "inxs-0.1a0.tar.gz", "has_sig": false, "md5_digest": "6e6a88bb0d7635cde00b01483e28b477", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19462, "upload_time": "2017-05-03T00:15:09", "url": "https://files.pythonhosted.org/packages/44/a8/e58a790efa3ff37c8a7f52ef97d6c8d1cbeecb231a7e8ec305964bdd7dd0/inxs-0.1a0.tar.gz" } ], "0.1b0": [ { "comment_text": "", "digests": { "md5": "d053289f776529dc1c4be65ed04a99be", "sha256": "80f69f3cdd649d0fe174dff2edb70f1f79a65f6a63ebe7c3ad144c2e96cce101" }, "downloads": -1, "filename": "inxs-0.1b0-py3-none-any.whl", "has_sig": false, "md5_digest": "d053289f776529dc1c4be65ed04a99be", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 13963, "upload_time": "2017-06-19T15:37:59", "url": "https://files.pythonhosted.org/packages/11/db/a1f5552e9a204febc1368a898f2f204ba386d073e59bae30e530ca66225a/inxs-0.1b0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "89c7e17d892e3de16883900ec10655b1", "sha256": "cdda45a6a54399a1a88349d13a1632208aba40380aa7dc0cb981d4bc659554d6" }, "downloads": -1, "filename": "inxs-0.1b0.tar.gz", "has_sig": false, "md5_digest": "89c7e17d892e3de16883900ec10655b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33202, "upload_time": "2017-06-19T15:37:46", "url": "https://files.pythonhosted.org/packages/4b/c5/d020b98565ca348e257c1e82253b8b447d4e9828719ad81bd147b5352938/inxs-0.1b0.tar.gz" } ], "0.1b1": [ { "comment_text": "", "digests": { "md5": "249ac289562f0580cdd5b2c28047e988", "sha256": "151c640e7b6e6362456861bd61dc97a267c6e05475813a313f0697e45215c102" }, "downloads": -1, "filename": "inxs-0.1b1-py3-none-any.whl", "has_sig": false, "md5_digest": "249ac289562f0580cdd5b2c28047e988", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 14418, "upload_time": "2017-06-25T14:54:56", "url": "https://files.pythonhosted.org/packages/2c/ea/70a783b500594dc768680fe5e7b254eddbbeb5bb1562ac98c1b829ca13e7/inxs-0.1b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0775f48c1dbe6658af23a0cfcb8ffac8", "sha256": "20510fade61d5b38b485b6b2ff0857b9c0cc06bf2b4f5ca20c100b9d1cd5bbba" }, "downloads": -1, "filename": "inxs-0.1b1.tar.gz", "has_sig": false, "md5_digest": "0775f48c1dbe6658af23a0cfcb8ffac8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33686, "upload_time": "2017-06-25T14:54:53", "url": "https://files.pythonhosted.org/packages/6c/e9/0e8178595fbf13cfd33fa0ee0d0179190680f5902505b1b92c5259280bdf/inxs-0.1b1.tar.gz" } ], "0.1b2.dev1": [ { "comment_text": "", "digests": { "md5": "3552b124a7aef7323ff809aa9efd6230", "sha256": "6f83e3815b428fbdc2b17482bea4e80536be0d75e91058e8e5fd9b3fcd7f70c7" }, "downloads": -1, "filename": "inxs-0.1b2.dev1-py3-none-any.whl", "has_sig": false, "md5_digest": "3552b124a7aef7323ff809aa9efd6230", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 18988, "upload_time": "2017-11-04T15:29:56", "url": "https://files.pythonhosted.org/packages/5e/e8/3e495af44d6d37356e4fdb9a74293b4999eefefa9c73460853f792830963/inxs-0.1b2.dev1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f6049224975f8ee039b250d46e4e804", "sha256": "04e893c04cb4f3cfa573a3b586c9c7970e77c3998a557b8b17206d08f5c4131d" }, "downloads": -1, "filename": "inxs-0.1b2.dev1.tar.gz", "has_sig": false, "md5_digest": "9f6049224975f8ee039b250d46e4e804", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42675, "upload_time": "2017-11-04T15:29:53", "url": "https://files.pythonhosted.org/packages/68/d8/3155af6ace33a18040acaf99af46e0bea1868052c19df0b507b16961ba69/inxs-0.1b2.dev1.tar.gz" } ], "0.1b2.dev10": [ { "comment_text": "", "digests": { "md5": "4427b3f6dfa9b7f50077f56fa4f2cf48", "sha256": "5df249c37dd326d9cb404b3e7f921fa61888442481ad0f09715234123c09b154" }, "downloads": -1, "filename": "inxs-0.1b2.dev10.tar.gz", "has_sig": false, "md5_digest": "4427b3f6dfa9b7f50077f56fa4f2cf48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19892, "upload_time": "2018-03-29T19:11:26", "url": "https://files.pythonhosted.org/packages/49/33/4141a47533dfae206fc754968cfd92e07cc807109d3e8897d45fc0203629/inxs-0.1b2.dev10.tar.gz" } ], "0.1b2.dev12": [ { "comment_text": "", "digests": { "md5": "c64bb7d2717d7bdfdb3fb1dd65f0f162", "sha256": "f1bf02b0303cf68cdb025763a90e4e4a2e206ba901c27970ba3f0e6b1f52a3c1" }, "downloads": -1, "filename": "inxs-0.1b2.dev12.tar.gz", "has_sig": false, "md5_digest": "c64bb7d2717d7bdfdb3fb1dd65f0f162", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20289, "upload_time": "2018-03-31T20:34:27", "url": "https://files.pythonhosted.org/packages/78/75/c5136581997843a6e64b603a9b0cd7276496ff105defa2a7afe22d78d67b/inxs-0.1b2.dev12.tar.gz" } ], "0.1b2.dev13": [ { "comment_text": "", "digests": { "md5": "328a316ff2efe37c35df4708fb95ef31", "sha256": "015e41059c9b928c81a77006e0fc70f10a4d7ff1eabd394a443a12786b45fae9" }, "downloads": -1, "filename": "inxs-0.1b2.dev13.tar.gz", "has_sig": false, "md5_digest": "328a316ff2efe37c35df4708fb95ef31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20650, "upload_time": "2018-04-03T12:58:36", "url": "https://files.pythonhosted.org/packages/a7/1e/c3b489ab6cae3f59e6e9d6b74b45aaf5f4efd76ae06eac12a9981e558683/inxs-0.1b2.dev13.tar.gz" } ], "0.1b2.dev14": [ { "comment_text": "", "digests": { "md5": "b598ce968198ab6be03f010b69d046e0", "sha256": "fb500cafe1b97f121764f404fc144bf39a395fe6a9c8bd956e62cdc125a5ed90" }, "downloads": -1, "filename": "inxs-0.1b2.dev14.tar.gz", "has_sig": false, "md5_digest": "b598ce968198ab6be03f010b69d046e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20938, "upload_time": "2018-04-13T21:51:49", "url": "https://files.pythonhosted.org/packages/f5/84/ee84fb7ad698ea688fc723687c7a73f9210201662acc050dabb0edfc66b7/inxs-0.1b2.dev14.tar.gz" } ], "0.1b2.dev15": [ { "comment_text": "", "digests": { "md5": "2b365bb5e2f5edb7f7e89460d5004a30", "sha256": "2faa50b06e553ebe240f3360387c84160bf3240337f1f56df75ac36a5ff05b81" }, "downloads": -1, "filename": "inxs-0.1b2.dev15.tar.gz", "has_sig": false, "md5_digest": "2b365bb5e2f5edb7f7e89460d5004a30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21025, "upload_time": "2018-04-19T12:38:51", "url": "https://files.pythonhosted.org/packages/f7/75/16a0f9c1154f00a966cffac99ba2ff7b503eb25af6ac62f230922210a2eb/inxs-0.1b2.dev15.tar.gz" } ], "0.1b2.dev16": [ { "comment_text": "", "digests": { "md5": "3b5ce0afb63c71f93c0b864a8e0b0a32", "sha256": "f3968dd640a81e9ca0170e4eb9591c1a4c3ff09d0df22d01b3fde49fca1ca60b" }, "downloads": -1, "filename": "inxs-0.1b2.dev16.tar.gz", "has_sig": false, "md5_digest": "3b5ce0afb63c71f93c0b864a8e0b0a32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21333, "upload_time": "2018-05-03T21:57:50", "url": "https://files.pythonhosted.org/packages/37/91/a91a2428f6b9d6b0f1dc07ed3aab5c08c4e48df7000f946170d826eab667/inxs-0.1b2.dev16.tar.gz" } ], "0.1b2.dev17": [ { "comment_text": "", "digests": { "md5": "61cb3a0f842e1b8a882b36b6e41e2d52", "sha256": "b65cb832443b4a360c6f5e5d3d8ec885d0617eb65e606cb8780f4b1d9088b9fb" }, "downloads": -1, "filename": "inxs-0.1b2.dev17.tar.gz", "has_sig": false, "md5_digest": "61cb3a0f842e1b8a882b36b6e41e2d52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21509, "upload_time": "2018-05-15T14:10:34", "url": "https://files.pythonhosted.org/packages/c0/7d/20ec722657897adfe0cac975e32409bb73c0489c46784ed8ba427ff2285a/inxs-0.1b2.dev17.tar.gz" } ], "0.1b2.dev2": [ { "comment_text": "", "digests": { "md5": "76c847a5192cab0f07801bc67c2d5892", "sha256": "950e5ca2b8a99e7eb5282347f22ddd8de02ac94732962715553ce168e3a29f1c" }, "downloads": -1, "filename": "inxs-0.1b2.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "76c847a5192cab0f07801bc67c2d5892", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 18988, "upload_time": "2017-11-04T16:19:04", "url": "https://files.pythonhosted.org/packages/3c/4b/9aa31dc6e9755558a34a2193b68d5cb85f414ba90f15f0d108c63e749287/inxs-0.1b2.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4be0b1d396d86b40be9d90143a2cf0cb", "sha256": "250cff5deec8cf54ab195ba562cfa48b4ad0ccb4a8da3b8b5795224ee8065fc6" }, "downloads": -1, "filename": "inxs-0.1b2.dev2.tar.gz", "has_sig": false, "md5_digest": "4be0b1d396d86b40be9d90143a2cf0cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42717, "upload_time": "2017-11-04T16:19:02", "url": "https://files.pythonhosted.org/packages/5f/fc/e0eac00d1a0028e7355fe7afb96b9badb613f159fe53c9aaa5d96f0b07b4/inxs-0.1b2.dev2.tar.gz" } ], "0.1b2.dev3": [ { "comment_text": "", "digests": { "md5": "3137a696cc44a8638993d28c7710125a", "sha256": "2a4a6266a3dbf80fb455d2db0e3800fc5dbe78ea858e6f56340d1233f24749fd" }, "downloads": -1, "filename": "inxs-0.1b2.dev3.tar.gz", "has_sig": false, "md5_digest": "3137a696cc44a8638993d28c7710125a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17386, "upload_time": "2017-11-04T17:32:48", "url": "https://files.pythonhosted.org/packages/a9/ae/d48d1763ea066435335209553dffd7b6f89458bff8232663ef769f247c4c/inxs-0.1b2.dev3.tar.gz" } ], "0.1b2.dev4": [ { "comment_text": "", "digests": { "md5": "6e5ac01507d7a779adede3b8cfceafa9", "sha256": "5e23394f03f82291ba115609ea7ce70d98deca85c9c208202183f645a6fc4b17" }, "downloads": -1, "filename": "inxs-0.1b2.dev4.tar.gz", "has_sig": false, "md5_digest": "6e5ac01507d7a779adede3b8cfceafa9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17638, "upload_time": "2017-11-12T21:32:53", "url": "https://files.pythonhosted.org/packages/f3/ae/9b18f32ec8879ab1b914e9fc13127bd73560aa245c3e8abb86445a1dbf8e/inxs-0.1b2.dev4.tar.gz" } ], "0.1b2.dev5": [ { "comment_text": "", "digests": { "md5": "6e9a915de6a5182f6a6f43a1bbcb7f95", "sha256": "725ddd64b2583f83e35532f4309eb5e3c87536b0a9faa7dfe57b4bf370d86cef" }, "downloads": -1, "filename": "inxs-0.1b2.dev5.tar.gz", "has_sig": false, "md5_digest": "6e9a915de6a5182f6a6f43a1bbcb7f95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18087, "upload_time": "2017-11-19T15:19:40", "url": "https://files.pythonhosted.org/packages/f8/20/83252762b560c4bcc3072f4d6c84849c1010829d8f8a70e26c3368fa8ae7/inxs-0.1b2.dev5.tar.gz" } ], "0.1b2.dev6": [ { "comment_text": "", "digests": { "md5": "1621c291344a82d2df4f3016984a626b", "sha256": "75d7b0c1859643fba1d287754aff35145604be155aa113e3c5d0322601fa53df" }, "downloads": -1, "filename": "inxs-0.1b2.dev6.tar.gz", "has_sig": false, "md5_digest": "1621c291344a82d2df4f3016984a626b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18107, "upload_time": "2017-11-19T15:56:49", "url": "https://files.pythonhosted.org/packages/45/f6/46eea16c7f8317311d15a32d17fbd56fdb3baca1d7f47eca3692d17407da/inxs-0.1b2.dev6.tar.gz" } ], "0.1b2.dev7": [ { "comment_text": "", "digests": { "md5": "f697eed4c16566a1e8c7c9d43b191d16", "sha256": "15a4ce0fbd0efb4fe47c725e22c4a28d7c00ea7d5b602ce732453a0ca0881400" }, "downloads": -1, "filename": "inxs-0.1b2.dev7.tar.gz", "has_sig": false, "md5_digest": "f697eed4c16566a1e8c7c9d43b191d16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18729, "upload_time": "2017-11-20T18:59:20", "url": "https://files.pythonhosted.org/packages/d2/41/a94c4dd186d77d187059ecb8856421db583e061e25f8faf0c2cdcac770c6/inxs-0.1b2.dev7.tar.gz" } ], "0.1b2.dev8": [ { "comment_text": "", "digests": { "md5": "4dc7c1d6fe2175c96632aac14af5d5d4", "sha256": "ef67a44ef16774098f2c56a57f8cb47f08e05eb4ecf94c1d3abb2fad2e547419" }, "downloads": -1, "filename": "inxs-0.1b2.dev8.tar.gz", "has_sig": false, "md5_digest": "4dc7c1d6fe2175c96632aac14af5d5d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19218, "upload_time": "2018-02-15T11:36:51", "url": "https://files.pythonhosted.org/packages/e9/13/341e0b741b07ed6e243f1244b713fcbe7b3c7f5368275d798dc2e7e69e54/inxs-0.1b2.dev8.tar.gz" } ], "0.1b2.dev9": [ { "comment_text": "", "digests": { "md5": "fad59fd53c95026ca84b4fde07cc9f16", "sha256": "5e05b46114862786470219f1f3148ff9a58c4d15355818ee8eb89e936c2ff21c" }, "downloads": -1, "filename": "inxs-0.1b2.dev9.tar.gz", "has_sig": false, "md5_digest": "fad59fd53c95026ca84b4fde07cc9f16", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19285, "upload_time": "2018-03-13T22:36:21", "url": "https://files.pythonhosted.org/packages/50/88/de3e63e17d9d73225d86c7dd80e16f41806ad7814929219d7638af6ae53f/inxs-0.1b2.dev9.tar.gz" } ], "0.2b1": [ { "comment_text": "", "digests": { "md5": "4e39d78769121118bd8731ca4fb86336", "sha256": "68630ffbd61606cc662175ddfed4b035bb2a9c7700fd228c83a697bf11250a57" }, "downloads": -1, "filename": "inxs-0.2b1.tar.gz", "has_sig": false, "md5_digest": "4e39d78769121118bd8731ca4fb86336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32390, "upload_time": "2019-06-23T15:19:11", "url": "https://files.pythonhosted.org/packages/54/7c/8dc4d04c15ce7a5a0110960524922b76551411b62fca06f7dd5086234d9a/inxs-0.2b1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4e39d78769121118bd8731ca4fb86336", "sha256": "68630ffbd61606cc662175ddfed4b035bb2a9c7700fd228c83a697bf11250a57" }, "downloads": -1, "filename": "inxs-0.2b1.tar.gz", "has_sig": false, "md5_digest": "4e39d78769121118bd8731ca4fb86336", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32390, "upload_time": "2019-06-23T15:19:11", "url": "https://files.pythonhosted.org/packages/54/7c/8dc4d04c15ce7a5a0110960524922b76551411b62fca06f7dd5086234d9a/inxs-0.2b1.tar.gz" } ] }