{ "info": { "author": "Xavier Godon", "author_email": "xavier.godon@protonmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# semi structured xml to dict\n\nssxtd is an xmlreader similar to xmltodict, but supporting semi structured xml, and providing a more flexible environnment.\nssxtd use either of :\n * the native xml package\n * the lxml package\n * the defusedxml package \n\nGlobally, stick to native xml package. It's the faster for most situations.\n\nNote : ssxtd was created to parse very big files, as a result, the default parsing depth is 2 and the parsing functions are generators. \n\n## Quickstart\n\n ```\n pip install ssxtd\n ```\n ```\n from ssxtd import parsers\n result = next(parsers.xml_parse(my_file, depth=0))\n ```\n\n\n\n## What if ...\n\n\n\n### ...i want to parse big files?\n\nuse : \n`parsers.xml_iterparse(my_file)` \n\nnote : by default, it will return depth 2 elements. \n\n\n\n### ...my xml file has mixed tag and text?\n\nssxtd will automatically convert mixed tags and text to a string, keeping the right order.\n\n\n\n### ...i want to use defusedxml to secure my app?\n\nuse : \n`parsers.dxml_parse(my_file)` \nor \n`parsers.dxml_iterparse(my_file)` \n\n\n\n### ...i want to use lxml?\n\nuse : \n`parsers.lxml_parse(my_file)` \nor \n`parsers.lxml_iterparse(my_file)` \n\nnote : it will be slower than xml_parse and xml_iterparse\n\n\n\n\n## Options\n\n### depth\n\nyou can adjust the depth level of the returned objects, even when not using iterparse.\n\nnote : you can't use depth = 0 when using iterparse\n\n### trim_spaces\n\nwill trim spaces for each value found. can be usefull when you have some ugly xml like:\n```\n\n we have\n some indentation\n problems\n \n\n```\n\n### del_empty (default to True)\n\nif set to False, will not remove empty tags\n\n### cleanup_namespaces\n\nif set to False, will not remove namespaces\n\n### verbose\n\nif set to True, will show a progression bar \\o/\n\n### recover\n\nif set to True, will recover from malformed xml ( cf test_malformed_xml.py)\n\nnote : lxml_parse and lxml_iterparse will use the lxml abilities whereas the others will use a BeautifulSoup transformation\n\n### compression\n\nssxtd can manage ZIP, GZIP, ByteIO, and path to files\n\nfor ZIP and GZIP, you must set the parameter \"compression\" to either \"gz\" or \"zip\"\n```\nparsers.xml_parse(my_file, compression=\"gz\"):\n```\nyou can also set the parameter to \"auto\", ssxtd will then auto detect the file type from the extension (.xml, .zip, or .gz)\n\nnote : atm, in a zip compression mode, only .xml files situated at the root of the zip file will be read\n\n### object_processorr\n\nif you specify the parameter \"object_processor=my_function\" when calling a parser, your function will be called for each object \n\n```\nsee bin/run_exemple.py\n```\n\n\nAllows to do special actions like merging tags directly during the parsing\n\n### value_processor\n\nif you specify the parameter \"value_processor=my_function\" when calling a parser, your function will be called for each value found \n\ne.g a simple type conversion :\n```\ndef try_conversion(value):\n try:\n return int(value)\n except (ValueError, TypeError):\n pass\n try:\n return float(value)\n except (ValueError, TypeError):\n pass\n return value\n``` \n\n\n\n## Requirements\n\n### Python\n\npython >= v3.7.0b1 \ndue to https://github.com/python/cpython/commit/066df4fd454d6ff9be66e80b2a65995b10af174f \nyou CAN use older version of pythons ( i tested up to 3.5) but you won't be able to read zip files \n\n### Libs\n\n- bs4\n- tqdm\n\n## Run tests\n\ninstall pytest: \n`pip install pytest` \nin the root directory, run : \n`pytest` \nfor running a single file, place yourself at the root folder and run : \n`python -c \"import ssxtd.tests.test_malformed_xml\"` \n\n## Performances of the parsing functions\n\ntime to parse https://ftp.ncbi.nlm.nih.gov/pubmed/baseline/pubmed19n0001.xml.gz \nGZ file size : 19MB \nextracted size : 185MB \nproc : i7-7700HQ \n\n| Function | XML file | GZ file | ZIP file (no compression)|\n| ------------- | ------------- | ------------- | ------------- |\n|xml_parse|32.76501545000065|36.07715339999959|33.419777400000385|\n|xml_iterparse|37.56028480000168|42.16279835000023|39.137448499999664|\n|lxml_parse|37.464776250000796|38.880011499999455|37.046347550000064|\n|lxml_iterparse|47.04024449999997|45.959421049999946|45.05521540000154|\n|dxml_parse|41.52063830000043|40.07632935000038|38.88691465000011|\n|dxml_iterparse|45.195273199999065|44.895784000000276|44.13825424999959|\n\nfor much more details please see ssxtd\\benchmarks\\results\\result.csv\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/xgodon/ssxtd", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ssxtd", "package_url": "https://pypi.org/project/ssxtd/", "platform": "", "project_url": "https://pypi.org/project/ssxtd/", "project_urls": { "Homepage": "https://github.com/xgodon/ssxtd" }, "release_url": "https://pypi.org/project/ssxtd/1.1.0/", "requires_dist": [ "bs4", "tqdm" ], "requires_python": "", "summary": "semi structured xml to dict", "version": "1.1.0" }, "last_serial": 5386983, "releases": { "0.1.4": [ { "comment_text": "", "digests": { "md5": "c7eaf23761d74c4b627d84107c711e4f", "sha256": "f547ca987dba774f0172a1c40d68aa2c6b2c0236656b395f0650c64cdb9c85f1" }, "downloads": -1, "filename": "ssxtd-0.1.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c7eaf23761d74c4b627d84107c711e4f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6646, "upload_time": "2019-04-17T19:34:01", "url": "https://files.pythonhosted.org/packages/53/3c/edcf4e3fc6365bb570dfa4018c620eddceca2371337a5e630da4a5a0f64a/ssxtd-0.1.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70f9cc39181c91c7bb89a58284a41ea0", "sha256": "061e6d91f01d430bc5373f55cbb3d59e66cd28f23e09dfe0a7d062e3ca8087ec" }, "downloads": -1, "filename": "ssxtd-0.1.4.tar.gz", "has_sig": false, "md5_digest": "70f9cc39181c91c7bb89a58284a41ea0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4967, "upload_time": "2019-04-17T19:34:02", "url": "https://files.pythonhosted.org/packages/53/f8/cfdefc59f18f9a5ff8434bd858f0d0fe01fa19a0efe304943fbd15308885/ssxtd-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "f56a2348942f16d148bf18fd7e147617", "sha256": "c444f82e869c449f20dfb9264f1f70c4055f4498cfd0a8a28edf2a5668a475c4" }, "downloads": -1, "filename": "ssxtd-0.1.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f56a2348942f16d148bf18fd7e147617", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6657, "upload_time": "2019-04-23T18:32:49", "url": "https://files.pythonhosted.org/packages/27/c2/057db3ce991b1f8c4fcd673a51e223109d957a6292728a6af9564d5f33be/ssxtd-0.1.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "106492a70544ca77b563703816e74deb", "sha256": "28ea60f8ebb3cc7bd1c8e848985f77a36e8249a1f2814387f17e8eb476464c96" }, "downloads": -1, "filename": "ssxtd-0.1.5.tar.gz", "has_sig": false, "md5_digest": "106492a70544ca77b563703816e74deb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4987, "upload_time": "2019-04-23T18:32:50", "url": "https://files.pythonhosted.org/packages/07/31/6ebf7d1370cdab76ad37997ddc3347c0ed3826b44de2f932961a99e71faa/ssxtd-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "e3c22daf11dcd90f31504cf1de6cb5c1", "sha256": "13de99271280973862cdf37b9369516f43b84d6e402464f4acd586091aceef85" }, "downloads": -1, "filename": "ssxtd-0.1.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e3c22daf11dcd90f31504cf1de6cb5c1", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7907, "upload_time": "2019-04-25T14:46:20", "url": "https://files.pythonhosted.org/packages/85/7f/d24492dac836ff0ebfde6a69d1fdbe83997043588d4a70f1eff8b6c8f2f9/ssxtd-0.1.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "398187c80c8a30bf886818256e5d5236", "sha256": "6816c99c332ec0dac4d16c9a194445e7f3eeff6d1bc035338fa46d07ef6f795f" }, "downloads": -1, "filename": "ssxtd-0.1.6.tar.gz", "has_sig": false, "md5_digest": "398187c80c8a30bf886818256e5d5236", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6181, "upload_time": "2019-04-25T14:46:22", "url": "https://files.pythonhosted.org/packages/2d/89/f8cffaabebfa5b4ef75d2010c80756264a84740352b9a5a3b903a722d301/ssxtd-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "32da2ba224c00cb460d9b6ea7255e25c", "sha256": "30620437a7767e6995c575561b7ace15f8d4d416960cd9c533dcaf176a3c3b54" }, "downloads": -1, "filename": "ssxtd-0.1.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "32da2ba224c00cb460d9b6ea7255e25c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7867, "upload_time": "2019-04-25T19:28:53", "url": "https://files.pythonhosted.org/packages/45/61/6a06d8802dafbdeb172f94af1fc4f83137f507ce217d1b83723a89f2a1fe/ssxtd-0.1.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ab40b6788967c64c1b2f299c845c295", "sha256": "35c0066b83c8a7ba2d5556774999d2550240f884a312f2cc5bec2dd4d384ae36" }, "downloads": -1, "filename": "ssxtd-0.1.7.tar.gz", "has_sig": false, "md5_digest": "4ab40b6788967c64c1b2f299c845c295", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6091, "upload_time": "2019-04-25T19:28:55", "url": "https://files.pythonhosted.org/packages/04/21/336f0c77979787c5cb7a4ed11f6a9b1acf4720be9c7744607a045c40e0d8/ssxtd-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "dc5163f0824600327831054f5427f787", "sha256": "d3d91be815fc415d1fe44aab089d7aa3a39e1543bdc98855e55b5f4213feeda8" }, "downloads": -1, "filename": "ssxtd-0.1.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dc5163f0824600327831054f5427f787", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7940, "upload_time": "2019-04-25T19:48:15", "url": "https://files.pythonhosted.org/packages/d4/24/2d2a6c3723742928ead9b5543a9711f6fef3e7a4550e6e1b264f31a8bc35/ssxtd-0.1.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfe064bc5f8cf0f3c57d870e92755ece", "sha256": "10eb94e842e77b520e1f0d70ecbdd21345edbb5857436886b2dc54a8ed48b205" }, "downloads": -1, "filename": "ssxtd-0.1.8.tar.gz", "has_sig": false, "md5_digest": "dfe064bc5f8cf0f3c57d870e92755ece", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6127, "upload_time": "2019-04-25T19:48:17", "url": "https://files.pythonhosted.org/packages/b5/18/fca1dcf6f06ea89865af7c2d2af4aec9603c5870a1034008599d4be0b1a0/ssxtd-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "aa1725346cf9f041645b0073c56a35ef", "sha256": "eb0c4d7c69ab84a9e5397e44831a0f09546050a91cfa26152c409a1143db51b2" }, "downloads": -1, "filename": "ssxtd-0.1.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "aa1725346cf9f041645b0073c56a35ef", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6559, "upload_time": "2019-04-25T21:40:37", "url": "https://files.pythonhosted.org/packages/70/c5/f302c3294a6b8120eab9d22f005b5ae2725150dd2835308c74575ea8423f/ssxtd-0.1.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ec7e7d924a8429b21f27dc636a33cc64", "sha256": "763bffc53db0a938c1ebe5007d98245f8fdb17c272e1235c3cbdbbd1a43d9b1e" }, "downloads": -1, "filename": "ssxtd-0.1.9.tar.gz", "has_sig": false, "md5_digest": "ec7e7d924a8429b21f27dc636a33cc64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6194, "upload_time": "2019-04-25T21:40:38", "url": "https://files.pythonhosted.org/packages/7c/99/f482267fdeb7acd079c778f1a004d66dd73360719420796353954226bc3f/ssxtd-0.1.9.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "2abc67e3e0f906576ca6a5c318c4a99a", "sha256": "e77fc5f95868c3b52038373109a4fe06a59b7f453d50359c9742e621e41c29bd" }, "downloads": -1, "filename": "ssxtd-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2abc67e3e0f906576ca6a5c318c4a99a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6940, "upload_time": "2019-05-07T20:05:56", "url": "https://files.pythonhosted.org/packages/31/4e/d67c575c1ded6f04f3284ad9369119fe8e12dc7ba8d097686e2299cdc5de/ssxtd-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11de4604f041d58ab194a386b072b657", "sha256": "f9fec8e8ebd8c09edc005e3df4dea85a895c57b5313794bc415400de1587a1d4" }, "downloads": -1, "filename": "ssxtd-1.0.0.tar.gz", "has_sig": false, "md5_digest": "11de4604f041d58ab194a386b072b657", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6587, "upload_time": "2019-05-07T20:05:57", "url": "https://files.pythonhosted.org/packages/21/59/1368bd1e04556b94957bb3ff42c8f1cd976314789dc2c37747faee4503b5/ssxtd-1.0.0.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "40054900d72c351d85a60c118213fe5b", "sha256": "395b5cdd9b19601abfc996e213ebd9709cf88fcde21210957c506d935e1509f0" }, "downloads": -1, "filename": "ssxtd-1.0.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "40054900d72c351d85a60c118213fe5b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8581, "upload_time": "2019-05-14T22:08:21", "url": "https://files.pythonhosted.org/packages/2a/18/647937be0534428b6497c2a8debf180e6ef9d97aabf92b77768461ebe984/ssxtd-1.0.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8979949c46d997afc0e8ce79ccd5d1a1", "sha256": "0b0a7ce6f17ece7a4529e4c140345dc7519971cfe653353af23adb9394dc621b" }, "downloads": -1, "filename": "ssxtd-1.0.6.tar.gz", "has_sig": false, "md5_digest": "8979949c46d997afc0e8ce79ccd5d1a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9657, "upload_time": "2019-05-14T22:08:22", "url": "https://files.pythonhosted.org/packages/e1/6b/135c8433fe263d0d4c996be055eadf63c9b6153277a11e59d97e16df52b7/ssxtd-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "d3fec7848a530db618112983ca84ab98", "sha256": "b21d88351615e6a69700a9905a21d57b58f7fd94a614df15437af3f00923e270" }, "downloads": -1, "filename": "ssxtd-1.0.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d3fec7848a530db618112983ca84ab98", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8737, "upload_time": "2019-05-15T21:19:28", "url": "https://files.pythonhosted.org/packages/51/3c/c32f25af938633302d0706210909d89acbf3237f14f6d860781c56b4cb8b/ssxtd-1.0.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e09cd6f3387d96efb101ffdda2a6687f", "sha256": "7179064f2e6288f72cf8b4355d36021fc99770d0156097a432784340f48512b6" }, "downloads": -1, "filename": "ssxtd-1.0.7.tar.gz", "has_sig": false, "md5_digest": "e09cd6f3387d96efb101ffdda2a6687f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10033, "upload_time": "2019-05-15T21:19:29", "url": "https://files.pythonhosted.org/packages/c7/df/785f7e112144a790d60ad6400eb65e6edfe0dca36c0672cc24c3525a0fc1/ssxtd-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "7699825bbcde9ef3ad6d61ae9ed8ac02", "sha256": "c043369f153442aaba617da99046996f043fd70cd3cd3f4c0996a3ff4fb301fd" }, "downloads": -1, "filename": "ssxtd-1.0.8-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7699825bbcde9ef3ad6d61ae9ed8ac02", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9167, "upload_time": "2019-05-23T15:43:00", "url": "https://files.pythonhosted.org/packages/15/2f/5616e0bd4aaac68fbd8f3165e65fb19b96d478fb5309c5ce0dea2a062e28/ssxtd-1.0.8-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b0f6efb088caa9d69223bbc29160edb", "sha256": "91269c7866d8d55ad48bd7a013df9acaf9321a0edb0dd7d0f2d815b588cb32f4" }, "downloads": -1, "filename": "ssxtd-1.0.8.tar.gz", "has_sig": false, "md5_digest": "4b0f6efb088caa9d69223bbc29160edb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11020, "upload_time": "2019-05-23T15:43:03", "url": "https://files.pythonhosted.org/packages/5f/cb/bea5dbabe12754612366d289117a94b2213a4d9c3b1a891c9f60a9148cd5/ssxtd-1.0.8.tar.gz" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "392dcdf97aafed7be6cafd08aaa77f46", "sha256": "ede752d11630ed826adf91d9baed908cef7a0208698b7cc7dcaf849dee9c3c91" }, "downloads": -1, "filename": "ssxtd-1.0.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "392dcdf97aafed7be6cafd08aaa77f46", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9099, "upload_time": "2019-06-11T14:55:47", "url": "https://files.pythonhosted.org/packages/b6/2d/a938e7b837d87c748e5ca6c6ae529cd91c2596611810037f90c37240f387/ssxtd-1.0.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e6a67b263da3f394d9aae2747e42a61d", "sha256": "7e252f4f898483c731cc00a87c0e2b6a32e5a72d74ee6fbbda5145a8d96c2085" }, "downloads": -1, "filename": "ssxtd-1.0.9.tar.gz", "has_sig": false, "md5_digest": "e6a67b263da3f394d9aae2747e42a61d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10967, "upload_time": "2019-06-11T14:55:48", "url": "https://files.pythonhosted.org/packages/59/b5/78f6d7e75c39c89888ac981a62cefac21d068446910b67743e230ad60576/ssxtd-1.0.9.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "e1675c071556f7fe4a8b102d00b8f0f2", "sha256": "b9179434a34358c8e7358fb3123d306dd794ffa1c1214e8f712379734bc8261c" }, "downloads": -1, "filename": "ssxtd-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1675c071556f7fe4a8b102d00b8f0f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9093, "upload_time": "2019-06-11T15:00:01", "url": "https://files.pythonhosted.org/packages/d0/e5/7dd0db1373de57288cede737bd9ca130205fd733d20849ef57855aeafea4/ssxtd-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "038abdf27abcbacb760e0808ad3b0b73", "sha256": "5baec6de3f01d556f074e92876068a15cdad3dc1352c51249c83e6e3c4d33137" }, "downloads": -1, "filename": "ssxtd-1.1.0.tar.gz", "has_sig": false, "md5_digest": "038abdf27abcbacb760e0808ad3b0b73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10959, "upload_time": "2019-06-11T15:00:02", "url": "https://files.pythonhosted.org/packages/33/ef/ab40965e3d3a33a47e00ffa344481a070836154af87a896c61e3847d0e41/ssxtd-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e1675c071556f7fe4a8b102d00b8f0f2", "sha256": "b9179434a34358c8e7358fb3123d306dd794ffa1c1214e8f712379734bc8261c" }, "downloads": -1, "filename": "ssxtd-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e1675c071556f7fe4a8b102d00b8f0f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9093, "upload_time": "2019-06-11T15:00:01", "url": "https://files.pythonhosted.org/packages/d0/e5/7dd0db1373de57288cede737bd9ca130205fd733d20849ef57855aeafea4/ssxtd-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "038abdf27abcbacb760e0808ad3b0b73", "sha256": "5baec6de3f01d556f074e92876068a15cdad3dc1352c51249c83e6e3c4d33137" }, "downloads": -1, "filename": "ssxtd-1.1.0.tar.gz", "has_sig": false, "md5_digest": "038abdf27abcbacb760e0808ad3b0b73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10959, "upload_time": "2019-06-11T15:00:02", "url": "https://files.pythonhosted.org/packages/33/ef/ab40965e3d3a33a47e00ffa344481a070836154af87a896c61e3847d0e41/ssxtd-1.1.0.tar.gz" } ] }