{ "info": { "author": "Greg Lindahl and others", "author_email": "lindahl@pbm.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3 :: Only" ], "description": "cdx\\_toolkit\n============\n\n|Build Status| |Coverage Status| |Apache License 2.0|\n\ncdx\\_toolkit is a set of tools for working with CDX indices of web\ncrawls and archives, including those at CommonCrawl and the Internet\nArchive's Wayback Machine.\n\nCommonCrawl uses Ilya Kreymer's pywb to serve the CDX API, which is\nsomewhat different from the Internet Archive's CDX API server.\ncdx\\_toolkit hides these differences as best it can. cdx\\_toolkit also\nknits together the monthly Common Crawl CDX indices into a single,\nvirtual index.\n\nFinally, cdx\\_toolkit allows extracting archived pages from CC and IA\ninto WARC files. This feature is a work-in-progress and still has\nseveral warts.\n\nInstalling\n----------\n\ncdx toolkit requires Python 3.\n\n::\n\n $ pip install cdx_toolkit\n\nor clone this repo and use ``python ./setup.py install``.\n\nExample\n-------\n\n::\n\n import cdx_toolkit\n\n cdx = cdx_toolkit.CDXFetcher(source='cc')\n url = 'commoncrawl.org/*'\n\n print(url, 'size estimate', cdx.get_size_estimate(url))\n\n for obj in cdx.iter(url, limit=1):\n print(obj)\n\nat the moment will print:\n\n::\n\n commoncrawl.org/* size estimate 36000\n {'urlkey': 'org,commoncrawl)/', 'timestamp': '20180219112308', 'mime-detected': 'text/html', 'url': 'http://commoncrawl.org/', 'status': '200', 'filename': 'crawl-data/CC-MAIN-2018-09/segments/1518891812584.40/warc/CC-MAIN-20180219111908-20180219131908-00494.warc.gz', 'mime': 'text/html', 'length': '5365', 'digest': 'FM7M2JDBADOQIHKCSFKVTAML4FL2HPHT', 'offset': '81614902'}\n\nYou can also fetch the content as bytes:\n\n::\n\n print(obj.content)\n\nCommand-line tools\n------------------\n\n::\n\n $ cdxt --cc size 'commoncrawl.org/*'\n $ cdxt --cc --limit 10 iter 'commoncrawl.org/*'\n $ cdxt --cc --limit 10 --filter '=status:200' iter 'commoncrawl.org/*'\n $ cdxt --ia --limit 10 iter 'commoncrawl.org/*'\n\ncdxt takes a large number of command line switches, controlling the time\nperiod and all other CDX query options. cdxt can generate WARC, jsonl,\nand csv outputs.\n\n\\*\\* Note that by default, cdxt --cc will iterate over the previous year\nof captures. \\*\\*\n\nSee\n\n::\n\n $ cdxt --help\n $ cdxt iter --help\n $ cdxt warc --help\n\nfor full details. Note that argument order really matters; each switch\nis valid only either before or after the {iter,warc,size} command.\n\nAdd -v (or -vv) to see what's going on under the hood.\n\nCDX Jargon, Field Names, and such\n---------------------------------\n\ncdx\\_toolkit supports all (ok, most!) of the options and fields\ndiscussed in the CDX API documentation:\n\n- https://github.com/webrecorder/pywb/wiki/CDX-Server-API\n- https://github.com/internetarchive/wayback/tree/master/wayback-cdx-server\n\nA **capture** is a single crawled url, be it a copy of a webpage, a\nredirect to another page, an error such as 404 (page not found), or a\nrevisit record (page identical to a previous capture.)\n\nThe **url** used by cdx\\_tools can be wildcarded in two ways. One way is\n``*.example.com``, which in CDX jargon sets **matchType='domain'**, and\nwill return captures for blog.example.com, support.example.com, etc. The\nother, ``example.com/*``, will return captures for any page on\nexample.com.\n\nA **timestmap** represents year-month-day-time as a string of digits run\ntogther. Example: January 5, 2016 at 12:34:56 UTC is 20160105123456.\nThese timestamps are a field in the index, and are also used to pick\nspecify the dates used by **--from=**, **--to**, and **--closest** on\nthe command-line. (Programmatically, use **from\\_ts=**, to=, and\nclosest=.)\n\nAn **urlkey** is a SURT, which is a munged-up url suitable for\ndeduplication and sorting. This sort order is how CDX indices\nefficiently support queries like ``*.example.com``. The SURTs for\nwww.example.com and example.com are identical, which is handy when these\n2 hosts actually have identical web content. The original url should be\npresent in all records, if you want to know exactly what it is.\n\nThe **limit** argument limits how many captures will be returned. To\nhelp users not shoot themselves in the foot, a limit of 1,000 is applied\nto --get and .get() calls.\n\nA **filter** allows a user to select a subset of CDX records, reducing\nnetwork traffic between the CDX API server and the user. For example,\nfilter='!status:200' will only show captures whose http status is not\n200. Filters and **limit** work together, with the limit applying to the\ncount of captures after the filter is applied. Note that revisit records\nhave a status of '-', not 200.\n\nCDX API servers support a **paged interface** for efficient access to\nlarge sets of URLs. cdx\\_toolkit iterators always use the paged\ninterface. cdx\\_toolkit is also polite to CDX servers by being\nsingle-threaded and serial. If it's not fast enough for you, consider\ndownloading Common Crawl's index files directly.\n\nA **digest** is a sha1 checksum of the contents of a capture. The\npurpose of a digest is to be able to easily figure out if 2 captures\nhave identical content.\n\nCommon Crawl publishes a new index each month. cdx\\_toolkit will start\nusing new ones as soon as they are published. **By default, cdx\\_toolkit\nwill use the most recent 12 months of Common Crawl**; you can change\nthat using **--from** or **from\\_ts=** and **--to** or **to=**.\n\nCDX implementations do not efficiently support reversed sort orders, so\ncdx\\_toolkit results will be ordered by ascending SURT and by ascending\ntimestamp. However, since CC has an individual index for each month, and\nbecause most users want more recent results, cdx\\_toolkit defaults to\nquerying CC's CDX indices in decreasing month order, but each month's\nresult will be in ascending SURT and ascending timestamp. This default\nsort order is named 'mixed'. If you'd like pure ascending, set\n**--cc-sort** or **cc\\_sort=** to 'ascending'. You may want to also\nspecify **--from** or **from\\_ts=** to set a starting timestamp.\n\nThe main problem with this ascending sort order is that it's a pain to\nget the most recent N captures: --limit and limit= will return the\noldest N captures. With the 'mixed' ordering, a large enough limit= will\nget close to returning the most recent N captures.\n\nTODO\n----\n\nContent downloading needs help with charset issues, preferably figuring\nout the charset using an algorithm similar to browsers.\n\nWARC generation should do smart(er) things with revisit records.\n\nRight now the CC code selects which monthly CC indices to use based\nsolely on date ranges. It would be nice to have an alternative so that a\nclient could iterate against the most recent N CC indices, and also have\nthe default one-year lookback use an entire monthly index instead of a\npartial one.\n\nStatus\n------\n\ncdx\\_toolkit has reached the beta-testing stage of development.\n\nLicense\n-------\n\nApache 2.0\n\n.. |Build Status| image:: https://travis-ci.org/cocrawler/cdx_toolkit.svg?branch=master\n :target: https://travis-ci.org/cocrawler/cdx_toolkit\n.. |Coverage Status| image:: https://coveralls.io/repos/github/cocrawler/cdx_toolkit/badge.svg?branch=master\n :target: https://coveralls.io/github/cocrawler/cdx_toolkit?branch=master\n.. |Apache License 2.0| image:: https://img.shields.io/github/license/cocrawler/cdx_toolkit.svg\n :target: LICENSE", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cocrawler/cdx_toolkit", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "cdx-toolkit", "package_url": "https://pypi.org/project/cdx-toolkit/", "platform": "", "project_url": "https://pypi.org/project/cdx-toolkit/", "project_urls": { "Homepage": "https://github.com/cocrawler/cdx_toolkit" }, "release_url": "https://pypi.org/project/cdx-toolkit/0.9.24/", "requires_dist": null, "requires_python": "", "summary": "A toolkit for working with CDX indices", "version": "0.9.24" }, "last_serial": 4705645, "releases": { "0.9.10": [ { "comment_text": "", "digests": { "md5": "2c56ea81fef83905f0569f2dcd52d29a", "sha256": "c7fd96a180046fcdf82f3d9c4e7182979c6f724c03cc4fc24fcb19ef6e21bf2b" }, "downloads": -1, "filename": "cdx_toolkit-0.9.10-py3-none-any.whl", "has_sig": false, "md5_digest": "2c56ea81fef83905f0569f2dcd52d29a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11458, "upload_time": "2018-05-02T15:51:57", "url": "https://files.pythonhosted.org/packages/46/95/4857c9754adc7558a7ba7104e1fb5e447e4de65cbaa776d2f1450b461b1e/cdx_toolkit-0.9.10-py3-none-any.whl" } ], "0.9.11": [ { "comment_text": "", "digests": { "md5": "39231f0bc1d063155de96361e54cbf15", "sha256": "94d240c48afda6114e099659164ab1b05903229282005c12d3b433cc53a85788" }, "downloads": -1, "filename": "cdx_toolkit-0.9.11-py3-none-any.whl", "has_sig": false, "md5_digest": "39231f0bc1d063155de96361e54cbf15", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11704, "upload_time": "2018-06-02T18:51:35", "url": "https://files.pythonhosted.org/packages/1f/2e/3b77fcb48da85756ad13c217811deb2b3ae53b1ef11c30792724dc0d223d/cdx_toolkit-0.9.11-py3-none-any.whl" } ], "0.9.12": [ { "comment_text": "", "digests": { "md5": "bbf444bfc0f5377aff9554ed403fbd9f", "sha256": "5398994eb86030bd3cf1f087525130a1cf1c8d6ae1ef49198ca8afeebc13f562" }, "downloads": -1, "filename": "cdx_toolkit-0.9.12-py3-none-any.whl", "has_sig": false, "md5_digest": "bbf444bfc0f5377aff9554ed403fbd9f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11799, "upload_time": "2018-06-21T00:54:37", "url": "https://files.pythonhosted.org/packages/07/0e/0b162ce856931a17d880f47b681e5121f221de37854c2fc9dbb09791573a/cdx_toolkit-0.9.12-py3-none-any.whl" } ], "0.9.13": [ { "comment_text": "", "digests": { "md5": "c73f71951e71ef217458cc69b3e401c5", "sha256": "595e0d23f17ec2e34bb5636d7bc8a18f20027f5e701e500e7a7b83dfb41f6599" }, "downloads": -1, "filename": "cdx_toolkit-0.9.13-py3-none-any.whl", "has_sig": false, "md5_digest": "c73f71951e71ef217458cc69b3e401c5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13631, "upload_time": "2018-07-01T23:31:26", "url": "https://files.pythonhosted.org/packages/7d/9c/876be0e3bcf388c32bf7ee4482f024cca6a07b9109889f268785ac2c1b56/cdx_toolkit-0.9.13-py3-none-any.whl" } ], "0.9.14": [ { "comment_text": "", "digests": { "md5": "c07a7d77441fbd813db6d64555fc58ea", "sha256": "fc014b29e3f4a8c48241e217753ce551565c7a41137a97964cc3a3a3700afe12" }, "downloads": -1, "filename": "cdx_toolkit-0.9.14-py3-none-any.whl", "has_sig": false, "md5_digest": "c07a7d77441fbd813db6d64555fc58ea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13780, "upload_time": "2018-07-25T19:18:31", "url": "https://files.pythonhosted.org/packages/ce/10/382e622a84a2fd589762765dc7c23a9b1cb4115c13e0e53a49773d88feb7/cdx_toolkit-0.9.14-py3-none-any.whl" } ], "0.9.17": [ { "comment_text": "", "digests": { "md5": "8591d5b9baaa22557365ce43c8ad327f", "sha256": "f92bc9f90d7ceb26b6239e218105b955740edc0b970579aa2be64f307591bff1" }, "downloads": -1, "filename": "cdx_toolkit-0.9.17-py3-none-any.whl", "has_sig": false, "md5_digest": "8591d5b9baaa22557365ce43c8ad327f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17814, "upload_time": "2018-09-15T17:03:33", "url": "https://files.pythonhosted.org/packages/2c/9e/49aa0bfa473161f578a667ffbe7159f6f636a44581c11ea682d5d2f136b2/cdx_toolkit-0.9.17-py3-none-any.whl" } ], "0.9.18": [ { "comment_text": "", "digests": { "md5": "750e9fecafd406af64ae4fdd1bc3b85c", "sha256": "b5f632d005b29c6d2ba9b0875ffe4430a93869350332b1d6de0ab0734b0efc0f" }, "downloads": -1, "filename": "cdx_toolkit-0.9.18-py3-none-any.whl", "has_sig": false, "md5_digest": "750e9fecafd406af64ae4fdd1bc3b85c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18038, "upload_time": "2018-09-16T18:37:52", "url": "https://files.pythonhosted.org/packages/cb/a8/467754fa0ff468b796cea8eabbbb48b6678a52828064d14de2424d53050e/cdx_toolkit-0.9.18-py3-none-any.whl" } ], "0.9.19": [ { "comment_text": "", "digests": { "md5": "1e5f91e16b4d75d3481a7d339758efab", "sha256": "4e83d7eba52fedface49d0e24c89164b4e20413222f027290fe2644f0026fe93" }, "downloads": -1, "filename": "cdx_toolkit-0.9.19-py3-none-any.whl", "has_sig": false, "md5_digest": "1e5f91e16b4d75d3481a7d339758efab", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18044, "upload_time": "2018-09-16T18:55:04", "url": "https://files.pythonhosted.org/packages/c6/a4/0c60414ae5d3e8ac837b14a6c8e5a5102ddb087543716576bef1cb41b01e/cdx_toolkit-0.9.19-py3-none-any.whl" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "b1737f04b6b4dff0a5b668fc8d339f22", "sha256": "f9a30e3a965f652f0636f528f037d37fc58d973ad37dc474d288822438433cbc" }, "downloads": -1, "filename": "cdx_toolkit-0.9.2-py3-none-any.whl", "has_sig": false, "md5_digest": "b1737f04b6b4dff0a5b668fc8d339f22", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8470, "upload_time": "2018-03-03T06:46:14", "url": "https://files.pythonhosted.org/packages/64/3c/1d23cf7be05dff4d9a602fb4b5b6a88b2bf87b543d6d9e303e825edb49b1/cdx_toolkit-0.9.2-py3-none-any.whl" } ], "0.9.20": [ { "comment_text": "", "digests": { "md5": "8423acfed7e8baa9f754ce17afa326d0", "sha256": "b5de1dbd3630e9ae55921966310a6a37b0e878ae2ce72632b5890f0d8bcf3abc" }, "downloads": -1, "filename": "cdx_toolkit-0.9.20-py3-none-any.whl", "has_sig": false, "md5_digest": "8423acfed7e8baa9f754ce17afa326d0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 22531, "upload_time": "2018-10-12T05:53:09", "url": "https://files.pythonhosted.org/packages/26/ea/22c88c8fcd9244cf3fe635d9d641035cd94acde6ef5c97ffcae30467e0ba/cdx_toolkit-0.9.20-py3-none-any.whl" } ], "0.9.21": [ { "comment_text": "", "digests": { "md5": "813f5716b20c85fdcd2dabaf1157beaf", "sha256": "e08f11ac01f012151c57a2a12bf3c82ea4bdc16b76f4cbbc474c70d886c7eb6f" }, "downloads": -1, "filename": "cdx_toolkit-0.9.21.tar.gz", "has_sig": false, "md5_digest": "813f5716b20c85fdcd2dabaf1157beaf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26033, "upload_time": "2018-10-22T17:59:54", "url": "https://files.pythonhosted.org/packages/87/ae/b142486578e5003be5bcd0d8468a37b716857f9102ca462ce3ef5c8aa96d/cdx_toolkit-0.9.21.tar.gz" } ], "0.9.22": [ { "comment_text": "", "digests": { "md5": "ad547029a82801eb67c07792c84f3c26", "sha256": "ed2fbc51244fee50f36b0bf5732274fb29a5bafc98985ea0fb17f1670ab6460a" }, "downloads": -1, "filename": "cdx_toolkit-0.9.22.tar.gz", "has_sig": false, "md5_digest": "ad547029a82801eb67c07792c84f3c26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26260, "upload_time": "2018-10-24T20:34:44", "url": "https://files.pythonhosted.org/packages/5f/bb/90a77dca4dd34a229ba0d9af01a3f68fcdac5a5072615d34eaa2d16823fc/cdx_toolkit-0.9.22.tar.gz" } ], "0.9.23": [ { "comment_text": "", "digests": { "md5": "0c3f190db38dee1de2ed51cc7b1cae32", "sha256": "c40ee162f43f24fa8e214302b4a4484fddb818e01a66b8fe604796a3be9ef478" }, "downloads": -1, "filename": "cdx_toolkit-0.9.23.tar.gz", "has_sig": false, "md5_digest": "0c3f190db38dee1de2ed51cc7b1cae32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29693, "upload_time": "2018-12-10T21:33:12", "url": "https://files.pythonhosted.org/packages/27/a8/1000fb373fe712922492f13dcfbfe6f679a5adfe103ff88d917a046b83e6/cdx_toolkit-0.9.23.tar.gz" } ], "0.9.24": [ { "comment_text": "", "digests": { "md5": "87e84d8172790a28ced2012a90791070", "sha256": "d4b00ae38d5e2a81d7abc7e9b6c3fb9a8c43485517a5d8061211adb9e0ae9aea" }, "downloads": -1, "filename": "cdx_toolkit-0.9.24.tar.gz", "has_sig": false, "md5_digest": "87e84d8172790a28ced2012a90791070", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30556, "upload_time": "2019-01-17T00:18:30", "url": "https://files.pythonhosted.org/packages/4d/66/c78caaf922d5128d1972bb180ed77cf11b341c6fde5873e6de9b1ecd91d4/cdx_toolkit-0.9.24.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "4fb81283d27449a763e36cc0e200940b", "sha256": "275e6dbeadd57cbc139550b7426dcb50471b9d8fdda341c0dea949419138dee4" }, "downloads": -1, "filename": "cdx_toolkit-0.9.3-py3-none-any.whl", "has_sig": false, "md5_digest": "4fb81283d27449a763e36cc0e200940b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12127, "upload_time": "2018-03-06T19:23:51", "url": "https://files.pythonhosted.org/packages/96/a6/0529a9cac8393d344fb7c27e566111dda92249e5c280d1201e47061789f1/cdx_toolkit-0.9.3-py3-none-any.whl" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "45918cc946083373cdd4ac3a50b5c024", "sha256": "45beecff48cdd0ecfc5da3ee9d91e091415c447ec302971ffdb123e870fc2519" }, "downloads": -1, "filename": "cdx_toolkit-0.9.4-py3-none-any.whl", "has_sig": false, "md5_digest": "45918cc946083373cdd4ac3a50b5c024", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 13589, "upload_time": "2018-03-08T18:14:36", "url": "https://files.pythonhosted.org/packages/57/f4/5d5f2cde22e844f511d802b95bcf5e54ec80cab307c5a89999f6fd9f3a17/cdx_toolkit-0.9.4-py3-none-any.whl" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "af48be3071f241e52bf38f04274bd35f", "sha256": "4a4ab7e0c9760df16d4a89e5daf93e3d450b375afcde1a943aa400a5227fe479" }, "downloads": -1, "filename": "cdx_toolkit-0.9.5-py3-none-any.whl", "has_sig": false, "md5_digest": "af48be3071f241e52bf38f04274bd35f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14055, "upload_time": "2018-03-12T16:50:28", "url": "https://files.pythonhosted.org/packages/d6/75/a9db94128c5ac30298fa0d55efaf91b383dd020c8ab32f502447f08b1f95/cdx_toolkit-0.9.5-py3-none-any.whl" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "4556e5e9ba11fe1a7a71aeefa9de0aed", "sha256": "38ddbd21e72fd292a36d609dac8f62302173f6a4a97e480ae6d842dd27b8b134" }, "downloads": -1, "filename": "cdx_toolkit-0.9.6-py3-none-any.whl", "has_sig": false, "md5_digest": "4556e5e9ba11fe1a7a71aeefa9de0aed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14969, "upload_time": "2018-03-16T21:35:05", "url": "https://files.pythonhosted.org/packages/a6/c8/8e91893bd0d530e356b7882f55b8d0e1e1fedee1ff9ada3a527c5158315e/cdx_toolkit-0.9.6-py3-none-any.whl" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "740c7b6744716c8dbfe7b03edac77ec6", "sha256": "6ed8f9d47b509f0f53776bccef5cf9af9be87dabdf3a1a36248d6d8778305df7" }, "downloads": -1, "filename": "cdx_toolkit-0.9.7-py3-none-any.whl", "has_sig": false, "md5_digest": "740c7b6744716c8dbfe7b03edac77ec6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15011, "upload_time": "2018-03-23T16:52:22", "url": "https://files.pythonhosted.org/packages/56/3c/88b2997d51cb61b8f56e8d1e18c6f6c976a75c50585423a5fcbe7bcc2c35/cdx_toolkit-0.9.7-py3-none-any.whl" } ], "0.9.8": [ { "comment_text": "", "digests": { "md5": "43678f67bdb6d5b9ab9b3eecb368e454", "sha256": "5d68d8bb57a0614ba74a3f2b9b2351558c60ef1eaa54611903cdfeace6379ec3" }, "downloads": -1, "filename": "cdx_toolkit-0.9.8-py3-none-any.whl", "has_sig": false, "md5_digest": "43678f67bdb6d5b9ab9b3eecb368e454", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15025, "upload_time": "2018-03-23T20:56:24", "url": "https://files.pythonhosted.org/packages/93/76/f3e9b4f51d4f2c8a0e3ff0e73834d2b27bdcff7eaa0c4052db8b20707a7e/cdx_toolkit-0.9.8-py3-none-any.whl" } ], "0.9.9": [ { "comment_text": "", "digests": { "md5": "4498ee8507eecf4ea69f5e768e235066", "sha256": "80b17a49a02915352205024c722d3324c616dc2e061867d444c2dcdda49414f5" }, "downloads": -1, "filename": "cdx_toolkit-0.9.9-py3-none-any.whl", "has_sig": false, "md5_digest": "4498ee8507eecf4ea69f5e768e235066", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11411, "upload_time": "2018-04-29T02:44:09", "url": "https://files.pythonhosted.org/packages/ac/e4/31ca95b453fe153f3028f241f3c8791fd094e0b049a193c11f6f85ab2d2e/cdx_toolkit-0.9.9-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "87e84d8172790a28ced2012a90791070", "sha256": "d4b00ae38d5e2a81d7abc7e9b6c3fb9a8c43485517a5d8061211adb9e0ae9aea" }, "downloads": -1, "filename": "cdx_toolkit-0.9.24.tar.gz", "has_sig": false, "md5_digest": "87e84d8172790a28ced2012a90791070", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30556, "upload_time": "2019-01-17T00:18:30", "url": "https://files.pythonhosted.org/packages/4d/66/c78caaf922d5128d1972bb180ed77cf11b341c6fde5873e6de9b1ecd91d4/cdx_toolkit-0.9.24.tar.gz" } ] }