{ "info": { "author": "Yaroslav Polyakov", "author_email": "yaroslaff@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3.4" ], "description": "# hashget\n\nHashget is network *deduplication* tool working together with usual compression utilities (such as tar/gz/xz). \n\nWhile usual compression tools uses mathematical algorithms for compressing data, hashget finds which files could be \ndownloaded from public (e.g. WordPress or Debian servers) or private (e.g. your company internal website) resources and \nexcludes it from archive (leaving only very short meta-information about it).\n\nUpon decompressing, hashget downloads these files, verifies hashsum and places it on target system with same \npermissions, ownership, atime and mtime.\n\nHashget compression is lossless, based on cryptographically strong SHA256 hashsum. (No collisions know for now)\n\n
\nChance of SHA256 collision\nBitcoin was computing 300 quadrillion SHA-256 hashes per second. That's 300\u00d71015 hashes per second. \nLet's say you were trying to perform a collision attack and would \"only\" need to calculate 2128 hashes. \nAt the rate Bitcoin is going, it would take them 2128/(300*1015*86400*365.25)\u22483.6\u00d71013 years. \n\nIn comparison, our universe is only about 13.7\u00d7109 years old. \n\nhttps://crypto.stackexchange.com/questions/47809/why-havent-any-sha-256-collisions-been-found-yet\n\n
\n\n## Effectiveness\n|Data sample | unpacked size |.tar.gz | hashget .tar.gz | \n|---- |---- |---- |---- |\n|Wordpress-5.1.1 | 43 Mb | 11 Mb ( 26% ) | 155 Kb ( **0.3%** ) |\n|Linux kernel 5.0.4 | 934 Mb | 161 Mb ( 20% ) | 4.7 Mb ( **0.5%** ) |\n|Debian 9 (LAMP) LXC VM | 724 Mb | 165 Mb ( 23% ) | 4.1 Mb ( **0.5%** ) |\n\nUnpacked size measured with `du -sh` command. Ratio calculated as `dh -shb compressed.tar.gz` / `du -shb original-dir` \nin percents. Debian filesystem was clean and packed without temporary files (see example below).\n\n## Installation\n\nPip (recommended):\n```shell\npip3 install hashget[plugins]\n```\n\nor clone from git:\n```shell\ngit clone https://gitlab.com/yaroslaff/hashget.git\n```\n\n## QuickStart\n\n### Compressing (manual indexing)\n```shell\n# prepare test data\n$ mkdir -p /tmp/test/wp\n$ cd /tmp\n$ wget https://wordpress.org/wordpress-5.1.1.zip \n$ cd /tmp/test/wp\n$ unzip -q /tmp/wordpress-5.1.1.zip\n\n# index data\n$ hashget --submit https://wordpress.org/wordpress-5.1.1.zip -p my --hashserver\n\n# pack\n$ hashget -zf /tmp/wordpress-hashget.tar.gz --pack . --hashserver\nSTEP 1/3 Indexing...\nIndexing done in 0.07s. 0 local + 0 pulled + 0 new = 0 total packages\nSTEP 2/3 prepare exclude list for packing...\nsaved: 1373 files, 1 pkgs, size: 37.9M. Download: 11.0M\nSTEP 3/3 tarring...\n. (38.1M) packed into /tmp/wordpress-hashget.tar.gz (154.7K)\n```\n\n`-f` to specify filename, `-z` to gzip it, `--pack .` commands which directory to pack and `--hashserver` without value disables \nremote hashservers.\n\nYou can check local indexes HashDB with [hashget-admin](https://gitlab.com/yaroslaff/hashget/wikis/hashget-admin) \nutility.\n\n### Decompressing \n\nUnpack .tar.gz and then `hashget -u` that directory (which has hidden file .hashget-restore.json).\n\n```shell\n$ mkdir /tmp/test/wp-unpacked\n$ cd /tmp/test/wp-unpacked\n$ tar -xzf /tmp/wordpress-hashget.tar.gz\n$ hashget -u . --hashserver\nRecovered 1373/1373 files 37.9M bytes (0 downloaded, 11.0M cached) in 6.13s\n```\n\nYou can delete .hashget-restore.json file after this if you want. Now /tmp/test/wp-unpacked restored from tiny 150K \nhashget archive is same as /tmp/test/wp.\n\n> Manual indexing is easy way to optimize packing of individual large packages.\n\n## Advanced\n\n\n### Debian VM compressing (built-in plugin)\nCompressing [test machine](https://gitlab.com/yaroslaff/hashget/wikis/Test-machine): \n\n(Since it requires access to VM filesystem, run as user root or use sudo)\n\n```shell\nhashget --pack /var/lib/lxc/mydebvm/rootfs/ -zf /tmp/mydebvm.tar.gz \\\n --exclude var/cache/apt var/lib/apt/lists\nSTEP 1/3 Indexing debian packages...\nTotal: 222 packages\nIndexing done in 0.02s. 222 local + 0 pulled + 0 new = 222 total.\nSTEP 2/3 prepare exclude list for packing...\nsaved: 8515 files, 216 pkgs, size: 445.8M. Download: 98.7M\nSTEP 3/3 tarring...\n/var/lib/lxc/mydebvm/rootfs/ (687.2M) packed into /tmp/mydebian.tar.gz (4.0M)\n```\n\n`--exclude` directive tells hashget and tar to skip some directories which are not necessary in backup. \n(You can omit it, backup will be larger)\n\nBuilt-in debian plugin automatically discovers installed debian packages, downloads index files from hashserver \n(to speed-up indexing) or download packages and index itself (if not found on hashserver). HashPackages (indexes) are \nstored in local hashdb, so next time you will pack this directory, it will not download and index same data again and \nwill work much faster.\n\nFor each package hashget archive will store link to [snapshot.debian.org](https://snapshot.debian.org) in restore-file.\nsnapshot links are permanent and works since 2010. Unfortunately, other deb/apt based linux distributions do not have \nsuch snapshots, so this method is very effective only for Debian. \nYou may [disable this heuristic](https://gitlab.com/yaroslaff/hashget/wikis/Disable%20heuristics%20and%20HashDB) \nwhen packing other OS.\n\n### Hint files\nIf our package is indexed (like we just did with wordpress) it will be very effectively deduplicated on packing.\nBut what if it's not indexed? For example, if you cleaned hashdb cache or if you will restored this backup on other \nmachine and pack it again. It will take it's full space again. \n\nWe will delete index for this file:\n```shell\nhashget-admin --purge --hp wordpress-5.1.1-ru_RU.zip\n```\n(you can get index filename with `hashget-admin --list -p PROJECT` command)\n\nNow, if you will make hashget --pack , it will make huge 22M archive again, our magic is lost...\n\nNow, create special small *hint* file hashget-hint.json (or .hashget-hint.json , \nif you want it to be hidden) in /tmp/test with this content:\n```json\n{\n\t\"project\": \"wordpress.org\",\n\t\"url\": \"https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip\"\n}\n```\n\nAnd now try compress it again:\n```shell\n$ hashget --pack /tmp/test -zf /tmp/test.tar.gz\nSTEP 1/3 Indexing...\nsubmitting https://ru.wordpress.org/wordpress-5.1.1-ru_RU.zip\nSTEP 2/3 prepare exclude list for packing...\nsaved: 1396 files, 1 pkgs, size: 52.2M. Download: 11.7M\nSTEP 3/3 tarring...\n/tmp/test (52.3M) packed into /tmp/test.tar.gz (157.9K)\n```\n\nGreat! Hashget used hint file and automatically indexed file, so we got our fantastic compression rate again.\n\n> Directories with hint files are packed effectively even if not indexed before. If you are developer, \nyou can include hashget-hint file inside your package files to make it backup-friendly. \nThis is much more simple way then writing plugin. \n\n### Heuristic plugins\nHeuristics are small plugins (installed when you did `pip3 install hashget[plugins]`, or can be installed separately)\nwhich can auto-detect some non-indexed files which could be indexed. You already know build-in heuristics for Debian \nand hint files, but hashget could be extended with third-party plugins.\n\nLets try test with linux kernel sources package (100Mb+):\n\n```shell\n$ mkdir /tmp/lk \n$ cd /tmp/lk\n$ wget -q https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.4.tar.xz\n$ tar -xf linux-5.0.4.tar.xz \n$ du -sh .\n1.1G\t.\n```\n\nIf we will pack this machine same way as before we will see this:\n```shell\n$ hashget --pack /tmp/lk/ -zf /tmp/lk.tar.gz --hashserver\nSTEP 1/3 Indexing...\nsubmitting https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.4.tar.xz\nIndexing done in 199.27s. 1 local + 0 pulled + 1 new = 2 total packages\nSTEP 2/3 prepare exclude list for packing...\nsaved: 50580 files, 1 pkgs, size: 869.3M. Download: 100.4M\nSTEP 3/3 tarring...\n/tmp/lk/ (875.3M) packed into /tmp/lk.tar.gz (4.6M)\n```\n\nOne very interesting line here is:\n```\nsubmitting https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.0.4.tar.xz\n```\n\nHashget detected linux kernel sources package, downloaded and indexed it. And we got fantastic result again: almost 200 times! \nPackage was not indexed before and was indexed during packing.\n\nThis happened because hashget has heuristical plugin which detects linux kernel sources and guesses URL to index it. \nThis plugin puts index files for kernel packages into 'kernel.org' hashget project.\n\nIf you will make `hashget-admin --status` you will see kernel.org project. `hashget-admin --list -p PROJECT` will \nshow content of project:\n```shell\nhashget-admin --list -p kernel.org\nlinux-5.0.5.tar.xz (767/50579)\n```\n\nEven when new kernel package will be released (and it's not indexed anywhere), hashget will detect it and \nautomatically index (at least while new linux kernels will match same 'template' as it matches now for kernels \n1.0 to 5.0.6).\n\n> Users and developers of large packages can write their own hashget plugins using [Linux kernel hashget plugin](https://gitlab.com/yaroslaff/hashget-kernel_org/)\nas example. \n\n### What you should index \nYou should index ONLY static and permanent files, which will be available on same URL with same content during backup \nlifetime. See [Expiration](https://gitlab.com/yaroslaff/hashget/wikis/Expiration) chapter in wiki documentation.\n\nNot all projects provides such files. Usual linux package repositories has only latest files so it's not good for this\npurpose, but debian has great [snapshot.debian.org](https://snapshot.debian.org/) repository, which makes Debian great \nfor hashget compression.\n\nDo not index *latest* files, because content will change later (it's not _static_). E.g. you may index \nhttps://wordpress.org/wordpress-5.1.1.zip but you should not index https://wordpress.org/latest.zip \n\n### Using local file pool\nIt's possible to use local or remote (e.g. on Intranet HTTP server) file pool. This can help to unpack archives even \nwhen original server is not available. \n\nPool populated automatically if --pool given to certain operations (`--submit`, `--index`, `--pack`, `--postunpack`/`-u`):\n\nFor example:\n```shell\n$ mkdir /tmp/pool\n$ hashget --submit https://wordpress.org/wordpress-5.1.1.zip --pool /tmp/pool/ -p my\n$ ls /tmp/pool\nwordpress-5.1.1.zip\n```\nWhen doing `--postunpack` (`-u`) with `--pool`, hashget will read files from pool, and write it there (if file \nwas not found in pool and downloaded, it will be saved to pool).\n\n\n```shell\n# Empty pool \n$ hashget -u . --pool /tmp/pool\n...\nRecovered 8534/8534 files 450.0M bytes (0 downloaded, 0 from pool, 98.7M cached) in 155.92s\n\n# Pool populated now\n$ LANG=C ls /tmp/pool\nadduser_3.115_all.deb liblz4-1_0.0~r131-2+b1_amd64.deb\napache2-bin_2.4.25-3+deb9u6_amd64.deb liblzma5_5.2.2-1.2+b1_amd64.deb\n...\n\n# Now packages are taken from pool\n$ hashget -u . --pool /tmp/pool\n...\nRecovered 8534/8534 files 450.0M bytes (0 downloaded, 98.7M from pool, 0 cached) in 146.92s\n```\n\n# More Documentation\nFor more detailed documentation see [Wiki](https://gitlab.com/yaroslaff/hashget/wikis/home).\n\nFor example, see [Incremental backups](https://gitlab.com/yaroslaff/hashget/wikis/incremental) chapter in wiki doc\nand [Glacier](https://gitlab.com/yaroslaff/hashget/wikis/Glacier) to know how to use Incremental/Differential backups \nwith Amazon Glacier or other storage engine.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/yaroslaff/hashget", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "hashget", "package_url": "https://pypi.org/project/hashget/", "platform": "", "project_url": "https://pypi.org/project/hashget/", "project_urls": { "Homepage": "https://gitlab.com/yaroslaff/hashget" }, "release_url": "https://pypi.org/project/hashget/0.164/", "requires_dist": null, "requires_python": ">=3", "summary": "deduplication tool for archiving data with extremely high ratio", "version": "0.164" }, "last_serial": 5419842, "releases": { "0.100": [ { "comment_text": "", "digests": { "md5": "f9db1c51a8eacc9f49eff92503604eb8", "sha256": "79cd3bab9683ad38bf152b7c3d0f0a7412b37bb0b0d534acb7285ebbf8166b2d" }, "downloads": -1, "filename": "hashget-0.100.tar.gz", "has_sig": false, "md5_digest": "f9db1c51a8eacc9f49eff92503604eb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20680, "upload_time": "2019-02-20T14:55:14", "url": "https://files.pythonhosted.org/packages/a1/f4/de502a58846d50f2cce5b09aaff36cc1c5862b9ce57b4805921b328a634a/hashget-0.100.tar.gz" } ], "0.101": [ { "comment_text": "", "digests": { "md5": "024af0b3fc3cce85eb41516863e14ebb", "sha256": "188b4adb96ed09440071068a12e09eebfe6ec3c1a32df3e84f10a97b5dee6a83" }, "downloads": -1, "filename": "hashget-0.101.tar.gz", "has_sig": false, "md5_digest": "024af0b3fc3cce85eb41516863e14ebb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20735, "upload_time": "2019-02-22T05:06:45", "url": "https://files.pythonhosted.org/packages/fb/ca/49f13fe049e0f8f3e51fdb752e0e8a84eef8dc3ae494f57393aa4f4b19d0/hashget-0.101.tar.gz" } ], "0.101.post1": [ { "comment_text": "", "digests": { "md5": "0dc18a7d872144a91ee0350ff99ced87", "sha256": "974a3f6abe0596f7d8628d91379b19ae219fcc020556697176ef1dcb10d4d1f9" }, "downloads": -1, "filename": "hashget-0.101.post1.tar.gz", "has_sig": false, "md5_digest": "0dc18a7d872144a91ee0350ff99ced87", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20735, "upload_time": "2019-02-22T05:09:21", "url": "https://files.pythonhosted.org/packages/93/ec/bf1685600d78b633f8707f7bb02ead0c3d0fb7ff527f8004d3abb4a09914/hashget-0.101.post1.tar.gz" } ], "0.101.post2": [ { "comment_text": "", "digests": { "md5": "64afebb83f7c4ef3ee3fd6ccd9ed1730", "sha256": "f1ca6c843ace92129980be58c61b06de58ba1ac98cb5512a1850e03e505ab26c" }, "downloads": -1, "filename": "hashget-0.101.post2.tar.gz", "has_sig": false, "md5_digest": "64afebb83f7c4ef3ee3fd6ccd9ed1730", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20759, "upload_time": "2019-02-22T05:15:11", "url": "https://files.pythonhosted.org/packages/3c/48/c128a34024e014bc4802bb84115eac052e7a0054a33cdf91a4d3e8a34422/hashget-0.101.post2.tar.gz" } ], "0.102": [ { "comment_text": "", "digests": { "md5": "b8eddc602f15365ebe77b46664b50ac5", "sha256": "cbbcd2dd0c77fadddeb7a636d1ffccea34e3048919e8e3218bc440e4fe639b0f" }, "downloads": -1, "filename": "hashget-0.102.tar.gz", "has_sig": false, "md5_digest": "b8eddc602f15365ebe77b46664b50ac5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20843, "upload_time": "2019-02-22T07:32:26", "url": "https://files.pythonhosted.org/packages/97/0b/edd3ae4dec1b57bb6b030966ebc050fab4c223002725d8b1ea1d75e8c0a2/hashget-0.102.tar.gz" } ], "0.102.post1": [ { "comment_text": "", "digests": { "md5": "de281f03d4f8117a4e1c9f7f8d2c55b8", "sha256": "4eca98a3bdcfb55ebc26a8e849f32abb5fdb115b3b2012f2978cd1ae2b71cee8" }, "downloads": -1, "filename": "hashget-0.102.post1.tar.gz", "has_sig": false, "md5_digest": "de281f03d4f8117a4e1c9f7f8d2c55b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20826, "upload_time": "2019-02-22T07:35:38", "url": "https://files.pythonhosted.org/packages/00/c6/deb306705a42f59f6a21ddc094c8c0040b636dbdb9e9192313abef4de9f5/hashget-0.102.post1.tar.gz" } ], "0.103": [ { "comment_text": "", "digests": { "md5": "3411de684760393d8a8e05a924cb80ee", "sha256": "d97c3a30393bb452fa694ec4b7933fa946fe739df7e28f8f7f90b2013a8855da" }, "downloads": -1, "filename": "hashget-0.103.tar.gz", "has_sig": false, "md5_digest": "3411de684760393d8a8e05a924cb80ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21035, "upload_time": "2019-02-22T16:23:20", "url": "https://files.pythonhosted.org/packages/c7/c7/0a1a94abc63c63513fd17b1a999578de027e425489ce7ff9cb3096a4c8c3/hashget-0.103.tar.gz" } ], "0.104": [ { "comment_text": "", "digests": { "md5": "a4667ac803f1df1d9dfe2996238b72af", "sha256": "751a66226850be59519b1a22665f7e443be45ec30ead9df81288a4290ecd38d2" }, "downloads": -1, "filename": "hashget-0.104.tar.gz", "has_sig": false, "md5_digest": "a4667ac803f1df1d9dfe2996238b72af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21014, "upload_time": "2019-02-22T16:57:19", "url": "https://files.pythonhosted.org/packages/df/7c/de1164fce5a34a9d79a149d9c23d643f486ea3f070707d8738bda80534eb/hashget-0.104.tar.gz" } ], "0.105": [ { "comment_text": "", "digests": { "md5": "db70fd9cfd770837225a393a30d6f6da", "sha256": "934ca10694f0f4c5349c7e2d4113afb6874f55e636fdb74f4522a4026d529b43" }, "downloads": -1, "filename": "hashget-0.105.tar.gz", "has_sig": false, "md5_digest": "db70fd9cfd770837225a393a30d6f6da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21064, "upload_time": "2019-02-25T11:02:56", "url": "https://files.pythonhosted.org/packages/4d/3e/8e171a0bca8b1609efc469287fd1c2ea9b9b0c4fa72433cfa8538839892d/hashget-0.105.tar.gz" } ], "0.106": [ { "comment_text": "", "digests": { "md5": "9f7c0bbe7b93c94d21799501900e08dc", "sha256": "efb83404b815b027d17d34c1aaeaa5c5ebdf5d1403f957d9f71614af8fe8ccb8" }, "downloads": -1, "filename": "hashget-0.106.tar.gz", "has_sig": false, "md5_digest": "9f7c0bbe7b93c94d21799501900e08dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22576, "upload_time": "2019-03-02T12:58:52", "url": "https://files.pythonhosted.org/packages/11/b0/42b83803522563b7ff6808effba9bfc4bffd3d2b5e81f17e38a7a33b68ee/hashget-0.106.tar.gz" } ], "0.107": [ { "comment_text": "", "digests": { "md5": "b19a81329240072e07c1f9a76b01d2bc", "sha256": "62f6f82d3e8478ed6e95450110d94c55247b35cb056fdea3a51fdef30d370937" }, "downloads": -1, "filename": "hashget-0.107.tar.gz", "has_sig": false, "md5_digest": "b19a81329240072e07c1f9a76b01d2bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22588, "upload_time": "2019-03-02T13:06:15", "url": "https://files.pythonhosted.org/packages/49/78/f6f6cfec0693c7daa3cb881a801fbda801ebf7d0ed01e82b05421997d232/hashget-0.107.tar.gz" } ], "0.108": [ { "comment_text": "", "digests": { "md5": "a1aa14e8a8d654bd769e3d5e5921ab10", "sha256": "ff5c5733a43951f9f4b1eb9b7fed1d02d3a14fdff84900b49ba12c114dd137d0" }, "downloads": -1, "filename": "hashget-0.108.tar.gz", "has_sig": false, "md5_digest": "a1aa14e8a8d654bd769e3d5e5921ab10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22577, "upload_time": "2019-03-02T15:00:23", "url": "https://files.pythonhosted.org/packages/3e/90/d8eaee906c6bae764ba731009908171d82ceeb1ef68f1a6b89af934c7241/hashget-0.108.tar.gz" } ], "0.110": [ { "comment_text": "", "digests": { "md5": "14b82745ac498335e00df127e33b84c9", "sha256": "4b4c673f0b7f8eeda6f847cbc923debfab8b3d3c9e22784459ca1884b49018f4" }, "downloads": -1, "filename": "hashget-0.110.tar.gz", "has_sig": false, "md5_digest": "14b82745ac498335e00df127e33b84c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22608, "upload_time": "2019-03-02T15:13:18", "url": "https://files.pythonhosted.org/packages/3e/47/702211bd719a5416a26c62f30b0ecadbea499a087bb4917fc79c079f9ae7/hashget-0.110.tar.gz" } ], "0.112": [ { "comment_text": "", "digests": { "md5": "710e5186029cb2f3b960276a83e23c5a", "sha256": "cf1b7da55187f1e3f487f9787b9f9e7276d649fecf644e90bafd88c9333e11af" }, "downloads": -1, "filename": "hashget-0.112.tar.gz", "has_sig": false, "md5_digest": "710e5186029cb2f3b960276a83e23c5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22622, "upload_time": "2019-03-02T16:12:21", "url": "https://files.pythonhosted.org/packages/76/56/0f16a86912405d3e91732219691928ea2d9211336c1c3ffe6eb0a85e738a/hashget-0.112.tar.gz" } ], "0.113": [ { "comment_text": "", "digests": { "md5": "bb34db6c6dc683123e56c1ae994dadf4", "sha256": "f550bce3cf3fb8862f664a13d4aefc172e36dacbcd8255d78a78f791a2912596" }, "downloads": -1, "filename": "hashget-0.113.tar.gz", "has_sig": false, "md5_digest": "bb34db6c6dc683123e56c1ae994dadf4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22642, "upload_time": "2019-03-03T05:46:50", "url": "https://files.pythonhosted.org/packages/77/15/88dca6e142f5af287935b41586ed8b41f9c6b9a56677180be46781196d05/hashget-0.113.tar.gz" } ], "0.114": [ { "comment_text": "", "digests": { "md5": "66c2f8a85fa55b53ba299444b6c27c30", "sha256": "8413b95c6220ecb9d28078f2b47d8bb4e746ad015fbe542cf0eb6572d5860fc3" }, "downloads": -1, "filename": "hashget-0.114.tar.gz", "has_sig": false, "md5_digest": "66c2f8a85fa55b53ba299444b6c27c30", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22660, "upload_time": "2019-03-03T05:59:40", "url": "https://files.pythonhosted.org/packages/01/9e/7596050c15eebe58bc76f84ab5551d207cb935c9007fbe1f8d4a09981453/hashget-0.114.tar.gz" } ], "0.114.post1": [ { "comment_text": "", "digests": { "md5": "68111e34107731a154d05833a0da8a83", "sha256": "fc63ce578c235b6ffacb74af15f2e7841b1c21d4a9452cd4cee74d4991bfdca7" }, "downloads": -1, "filename": "hashget-0.114.post1.tar.gz", "has_sig": false, "md5_digest": "68111e34107731a154d05833a0da8a83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22664, "upload_time": "2019-03-03T06:00:44", "url": "https://files.pythonhosted.org/packages/d5/0b/2c31810b5c82db33ed2785b4c39d0238c30d65ff88faa9058b08064d63c8/hashget-0.114.post1.tar.gz" } ], "0.115": [ { "comment_text": "", "digests": { "md5": "b05591d96c833996263930a90368800d", "sha256": "d7b98ba5ba9767db8c4f05362a3947533dc174e4702cbd9cfa50a7271ba8180a" }, "downloads": -1, "filename": "hashget-0.115.tar.gz", "has_sig": false, "md5_digest": "b05591d96c833996263930a90368800d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22654, "upload_time": "2019-03-03T06:13:31", "url": "https://files.pythonhosted.org/packages/47/95/9a6cd15c15d021719fcdd0ab24799107281bab7d81cd86111cea64e36bc2/hashget-0.115.tar.gz" } ], "0.120": [ { "comment_text": "", "digests": { "md5": "cc3f39ecd2ade94d3f399808829f83d4", "sha256": "ad0cfd33220b4bef9da866b633699e9a400176b89decee1b050b85bb4f1ba070" }, "downloads": -1, "filename": "hashget-0.120.tar.gz", "has_sig": false, "md5_digest": "cc3f39ecd2ade94d3f399808829f83d4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 21983, "upload_time": "2019-03-04T14:52:06", "url": "https://files.pythonhosted.org/packages/e3/bd/d286a503949edbc4d2fa86772e42844a661884b9e6bd4b74ea2ea577d369/hashget-0.120.tar.gz" } ], "0.122": [ { "comment_text": "", "digests": { "md5": "e70fe064477934fda53ff80ffe3cc5f2", "sha256": "9349c61806ae8cc23521340e72e71f97e2e1d9dbfa809c4d83cdaf23445ee869" }, "downloads": -1, "filename": "hashget-0.122.tar.gz", "has_sig": false, "md5_digest": "e70fe064477934fda53ff80ffe3cc5f2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 22140, "upload_time": "2019-03-05T16:32:55", "url": "https://files.pythonhosted.org/packages/e9/56/3218bd5b04b4a1490d070e6869193e7a3bc77996a747d0be9fce26ef2cee/hashget-0.122.tar.gz" } ], "0.123": [ { "comment_text": "", "digests": { "md5": "151d7d6e6380094c974527292b743408", "sha256": "18e2068bca537199b9bb29909e5c0742568f0bef036007b3898414a41c878cb1" }, "downloads": -1, "filename": "hashget-0.123.tar.gz", "has_sig": false, "md5_digest": "151d7d6e6380094c974527292b743408", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 22205, "upload_time": "2019-03-10T16:32:45", "url": "https://files.pythonhosted.org/packages/6e/8b/e7bbe3cff788072eb1fbf39966ff7cff94c388af05623fa206fd15d08119/hashget-0.123.tar.gz" } ], "0.125": [ { "comment_text": "", "digests": { "md5": "81cf0383d2cf04e8e50a2081807a56e5", "sha256": "c9b3849e2864b1eeea5b2ba0d532082ff8ff7c9262f311b7ff6685601c9070d5" }, "downloads": -1, "filename": "hashget-0.125.tar.gz", "has_sig": false, "md5_digest": "81cf0383d2cf04e8e50a2081807a56e5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 22471, "upload_time": "2019-03-10T16:55:41", "url": "https://files.pythonhosted.org/packages/b8/ba/894c2977dc1ef09bcdf4a25bd63f1711f81fd81615341436b11f0e1c58ee/hashget-0.125.tar.gz" } ], "0.126": [ { "comment_text": "", "digests": { "md5": "16a73d6b82dfcd7e460294c76c3140cc", "sha256": "ea65e192375376c9c8709eab68810dba597ed0cc3c204253c7df9c5b17cf366c" }, "downloads": -1, "filename": "hashget-0.126.tar.gz", "has_sig": false, "md5_digest": "16a73d6b82dfcd7e460294c76c3140cc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 22839, "upload_time": "2019-03-17T16:14:03", "url": "https://files.pythonhosted.org/packages/40/a3/e80dd9d4127b41e62f08f498ca5871d3d10e1009e5cdc2a97427b4ebc042/hashget-0.126.tar.gz" } ], "0.129": [ { "comment_text": "", "digests": { "md5": "a597482844bcbc42f20e1432a3583fdc", "sha256": "54bcf52933b8bb5f17612cb491361ff3aab127be1e5e8d500fd4a465743c74aa" }, "downloads": -1, "filename": "hashget-0.129.tar.gz", "has_sig": false, "md5_digest": "a597482844bcbc42f20e1432a3583fdc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 22888, "upload_time": "2019-03-19T20:30:50", "url": "https://files.pythonhosted.org/packages/c4/f1/bfe144c9a0122958d59880f6efd7643ca15c8447f01b5bca89577f8dbae3/hashget-0.129.tar.gz" } ], "0.130": [ { "comment_text": "", "digests": { "md5": "d2e06c9f617bc9e2e282b57ffd235694", "sha256": "1a09d7357b4960367dd028a377ab2e14d1857734197f417d794154c5cdc2a340" }, "downloads": -1, "filename": "hashget-0.130.tar.gz", "has_sig": false, "md5_digest": "d2e06c9f617bc9e2e282b57ffd235694", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 23261, "upload_time": "2019-03-21T14:50:36", "url": "https://files.pythonhosted.org/packages/bd/e7/dad691048ea2ed2fccb82e785cd93544d592b2c562a52c3e9273f9bd4f7b/hashget-0.130.tar.gz" } ], "0.132": [ { "comment_text": "", "digests": { "md5": "3a7be6df9fae9c5d55e83b0aa583f6cd", "sha256": "db7f20f917d2148aaf54f67b94a4b92e9d232ae788ba891cdaaeded414249c87" }, "downloads": -1, "filename": "hashget-0.132.tar.gz", "has_sig": false, "md5_digest": "3a7be6df9fae9c5d55e83b0aa583f6cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 23343, "upload_time": "2019-03-21T15:52:32", "url": "https://files.pythonhosted.org/packages/e2/da/553af22ac0959d5d96132e0e898a775ba228fbab10a18cf390d87c2b0869/hashget-0.132.tar.gz" } ], "0.133": [ { "comment_text": "", "digests": { "md5": "1b491eadf218b17390643551f231596d", "sha256": "b1afc313dffefaae4842ea1f4bcfbb6d1ee891e07727fa344e6c0517d1e7d500" }, "downloads": -1, "filename": "hashget-0.133.tar.gz", "has_sig": false, "md5_digest": "1b491eadf218b17390643551f231596d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 24161, "upload_time": "2019-03-22T15:23:55", "url": "https://files.pythonhosted.org/packages/dc/5d/67c84add538d4b125ac584a477f34c7d7645d3db1001d34ccca9c6bb457f/hashget-0.133.tar.gz" } ], "0.134": [ { "comment_text": "", "digests": { "md5": "2a7cccaab9fa2e39edec4621d5ad46b8", "sha256": "6d99747a80b5a19e60f7c38603e0ba79605421486a7c01c384a0161af6d6a8ef" }, "downloads": -1, "filename": "hashget-0.134.tar.gz", "has_sig": false, "md5_digest": "2a7cccaab9fa2e39edec4621d5ad46b8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 25986, "upload_time": "2019-03-25T15:18:02", "url": "https://files.pythonhosted.org/packages/6b/01/c2091c583a220b73cb280a79efc1f0425a340cb5091ad8aa687679481c6d/hashget-0.134.tar.gz" } ], "0.135": [ { "comment_text": "", "digests": { "md5": "e45bdf9d65850263b07c4c6a14892a60", "sha256": "346ba67ad4fb4c3a5b82bc8a04fc3827a610f7130387cca68c0017ced8327d8a" }, "downloads": -1, "filename": "hashget-0.135.tar.gz", "has_sig": false, "md5_digest": "e45bdf9d65850263b07c4c6a14892a60", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 28586, "upload_time": "2019-03-26T21:39:36", "url": "https://files.pythonhosted.org/packages/5a/85/ae4885a788da1b4ae508017ed6bffc67ab37ebe0271be0adc8738036fc97/hashget-0.135.tar.gz" } ], "0.136": [ { "comment_text": "", "digests": { "md5": "6f435d330809cae7f3e90d43d29c92ab", "sha256": "9f429fcb374516acc7ee338196e80c4bcd069217d77259c8f830fbe779392d04" }, "downloads": -1, "filename": "hashget-0.136.tar.gz", "has_sig": false, "md5_digest": "6f435d330809cae7f3e90d43d29c92ab", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 28679, "upload_time": "2019-03-27T23:06:52", "url": "https://files.pythonhosted.org/packages/a2/53/a37d21032c73436083d26520004553db8a28c3e06a1a934d073a9c8d2a3c/hashget-0.136.tar.gz" } ], "0.137": [ { "comment_text": "", "digests": { "md5": "c001659637dfd7d1cc0fb2ffe7c961b8", "sha256": "52f3ea488ea3534e2aaa102d493ca085b7f1d46819f90740e4c507f5950b902b" }, "downloads": -1, "filename": "hashget-0.137.tar.gz", "has_sig": false, "md5_digest": "c001659637dfd7d1cc0fb2ffe7c961b8", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 28767, "upload_time": "2019-03-28T00:05:11", "url": "https://files.pythonhosted.org/packages/da/01/172b3a00762f372e06e2b4b272868d858b4db3b5c05b9e60eb8c74374b53/hashget-0.137.tar.gz" } ], "0.138": [ { "comment_text": "", "digests": { "md5": "48b15da80605eca11a3cbcb8cad2e511", "sha256": "e8803a55c1b2a7d9bffdff39e2c356e6028d10ae1faa98171b78ed3ba1777bfb" }, "downloads": -1, "filename": "hashget-0.138.tar.gz", "has_sig": false, "md5_digest": "48b15da80605eca11a3cbcb8cad2e511", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 29215, "upload_time": "2019-03-28T17:13:06", "url": "https://files.pythonhosted.org/packages/f5/8c/053c70029faa385043466e59e4479e42ae921189c13d17744df2bc731368/hashget-0.138.tar.gz" } ], "0.139": [ { "comment_text": "", "digests": { "md5": "d9e99060b68f74a41c27d53b214fe4bc", "sha256": "09248cb3c47141a12f49f11865ce45ace798c8baba429a73875d196645ba64dc" }, "downloads": -1, "filename": "hashget-0.139.tar.gz", "has_sig": false, "md5_digest": "d9e99060b68f74a41c27d53b214fe4bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 29375, "upload_time": "2019-03-30T20:34:25", "url": "https://files.pythonhosted.org/packages/7c/15/5052c431497f90fb38460c40137dd141107820be30f054139775fa0b28c4/hashget-0.139.tar.gz" } ], "0.140": [ { "comment_text": "", "digests": { "md5": "42fee5a242b338b4b998e5945561635f", "sha256": "b0cfe3e699c5c59246696aa1465a5636b15b26bddb3829baabee02112608b6ea" }, "downloads": -1, "filename": "hashget-0.140.tar.gz", "has_sig": false, "md5_digest": "42fee5a242b338b4b998e5945561635f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 31367, "upload_time": "2019-03-31T19:19:57", "url": "https://files.pythonhosted.org/packages/64/1a/a319142b5658d179e97f99cce16ff4f69c2d2e43033c1c0acd1aec4cd33b/hashget-0.140.tar.gz" } ], "0.141": [ { "comment_text": "", "digests": { "md5": "49b9ef2723fb35ffdb3d2bd19239e693", "sha256": "47ce061745e3dadf3a63923f38c784fef37fdc0cbb87d1dbbfd27fa391c48f53" }, "downloads": -1, "filename": "hashget-0.141.tar.gz", "has_sig": false, "md5_digest": "49b9ef2723fb35ffdb3d2bd19239e693", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32771, "upload_time": "2019-03-31T19:27:07", "url": "https://files.pythonhosted.org/packages/33/17/57c55a17913b1b261dd61cf9d9356dc1b93bce8c17512775c76dd7027538/hashget-0.141.tar.gz" } ], "0.142": [ { "comment_text": "", "digests": { "md5": "5b19525ac0a249c1f092bbea49b14a9c", "sha256": "53aacb30c11d6a61a5faa8e23ed2d0d78a7a8543ea5475e6c35418bea3403c66" }, "downloads": -1, "filename": "hashget-0.142.tar.gz", "has_sig": false, "md5_digest": "5b19525ac0a249c1f092bbea49b14a9c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32765, "upload_time": "2019-03-31T19:40:11", "url": "https://files.pythonhosted.org/packages/fb/9f/e27a372cc931a8654aafb6449d5724720be62571172311b51103ba742d28/hashget-0.142.tar.gz" } ], "0.144": [ { "comment_text": "", "digests": { "md5": "6c3becf198ddaa2c6eeca078764a5d56", "sha256": "3b682804c7a27167bbbd0ab300ddeec215cb4f2b665c2897442b8f1ea00efd8a" }, "downloads": -1, "filename": "hashget-0.144.tar.gz", "has_sig": false, "md5_digest": "6c3becf198ddaa2c6eeca078764a5d56", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32418, "upload_time": "2019-04-03T00:32:37", "url": "https://files.pythonhosted.org/packages/93/6b/1969235f81db9a60381b4a851f34264b021583c8644a7232d90033c72588/hashget-0.144.tar.gz" } ], "0.145": [ { "comment_text": "", "digests": { "md5": "67c3727af5cc8d1032e8d46a726f39bd", "sha256": "19bf7e7c01d86f3f89b21ba488ba445801ea470ff73059e2855c94b297f26df9" }, "downloads": -1, "filename": "hashget-0.145.tar.gz", "has_sig": false, "md5_digest": "67c3727af5cc8d1032e8d46a726f39bd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 32584, "upload_time": "2019-04-03T00:46:36", "url": "https://files.pythonhosted.org/packages/2a/0f/e60223b4a4ca0f5fb78ba53e45cac82c1f35d9d36c5b2a548294c281874c/hashget-0.145.tar.gz" } ], "0.147": [ { "comment_text": "", "digests": { "md5": "4925cd6dffb64a5f6f9b9c1d93dc2228", "sha256": "43b7855f2dcd28da1758cfc0701892d6844cf2916bb5672c887a0be68b384851" }, "downloads": -1, "filename": "hashget-0.147.tar.gz", "has_sig": false, "md5_digest": "4925cd6dffb64a5f6f9b9c1d93dc2228", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 33196, "upload_time": "2019-04-03T13:54:20", "url": "https://files.pythonhosted.org/packages/33/87/218141f20b7b8142127db051aaf4def460502b19f377b95bc4d29c7e3a5d/hashget-0.147.tar.gz" } ], "0.148": [ { "comment_text": "", "digests": { "md5": "707059b37f48f6f13055f6de28ac67c6", "sha256": "81d347251ad6536e9bb2d6b1caec8b5ad2e8d5ddc2e445c777af88024cb71268" }, "downloads": -1, "filename": "hashget-0.148.tar.gz", "has_sig": false, "md5_digest": "707059b37f48f6f13055f6de28ac67c6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 33220, "upload_time": "2019-04-05T16:32:55", "url": "https://files.pythonhosted.org/packages/10/eb/6c163d46c835a6255057cc5722a8207060c154dc7f4ee96b7c8e48bb1df5/hashget-0.148.tar.gz" } ], "0.149": [ { "comment_text": "", "digests": { "md5": "f71d0d4fcd0b9e419e5b29d2f49b5632", "sha256": "50a0da9a241a584e92f310e0f601d5782679c46883333e1311182d5d2e1eaf20" }, "downloads": -1, "filename": "hashget-0.149.tar.gz", "has_sig": false, "md5_digest": "f71d0d4fcd0b9e419e5b29d2f49b5632", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 34361, "upload_time": "2019-04-06T06:07:27", "url": "https://files.pythonhosted.org/packages/e7/2d/abbc05ad36573783588248b3175164537899481bfd483c33fa7a83fd17d6/hashget-0.149.tar.gz" } ], "0.150": [ { "comment_text": "", "digests": { "md5": "e80bfb0a5c08c11ba1a8833f701854ef", "sha256": "6f9e67681462b48eaeaeebb92af68b13f7536617140b619ab5c7573376fdae2b" }, "downloads": -1, "filename": "hashget-0.150.tar.gz", "has_sig": false, "md5_digest": "e80bfb0a5c08c11ba1a8833f701854ef", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 35666, "upload_time": "2019-04-07T12:19:20", "url": "https://files.pythonhosted.org/packages/ee/33/e0ca7bd6a7c19fe63509dfa28ff6efe9045ad5b3539c3e8b29c9b689e614/hashget-0.150.tar.gz" } ], "0.152": [ { "comment_text": "", "digests": { "md5": "670e2a663a9b878f89bb850e0dcbfcca", "sha256": "fa9c2b5a50a247eceb3c0e5b0476af51b06465d84c670e4ed23580936a2d2262" }, "downloads": -1, "filename": "hashget-0.152.tar.gz", "has_sig": false, "md5_digest": "670e2a663a9b878f89bb850e0dcbfcca", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 34175, "upload_time": "2019-04-09T20:13:22", "url": "https://files.pythonhosted.org/packages/bb/c3/e260611e410806d30fc8ad9b8dc00c5a4c7f5b6e9ca2f720c9b8949a4377/hashget-0.152.tar.gz" } ], "0.153": [ { "comment_text": "", "digests": { "md5": "550c8dd67159a1c4f932f1cbef7a3fdc", "sha256": "77741fc41528ba606f15d9dd02655808c8fee56fd5022b1ccd8b9deea4565a3d" }, "downloads": -1, "filename": "hashget-0.153.tar.gz", "has_sig": false, "md5_digest": "550c8dd67159a1c4f932f1cbef7a3fdc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 33696, "upload_time": "2019-04-10T15:30:50", "url": "https://files.pythonhosted.org/packages/e0/c7/8eb5ad89264fa90d69d8193ee95c0a8567ee02a9c7a2513f1c2e27669835/hashget-0.153.tar.gz" } ], "0.155": [ { "comment_text": "", "digests": { "md5": "4ee718aec38d46ef04c63132585b2d5c", "sha256": "82034c66ea183fdd4e19c33198bcf9159d176300b1d1961a9217742409720495" }, "downloads": -1, "filename": "hashget-0.155.tar.gz", "has_sig": false, "md5_digest": "4ee718aec38d46ef04c63132585b2d5c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 38642, "upload_time": "2019-04-30T20:00:39", "url": "https://files.pythonhosted.org/packages/25/28/98dff7f471b88f3443965f2f8527a9b44bdddc1131506ceeb520264e672f/hashget-0.155.tar.gz" } ], "0.156": [ { "comment_text": "", "digests": { "md5": "0b63373a34d26733aa59d1eab0905be2", "sha256": "e41bdd399ca2bfdf48cad37c26c0444ac5050ee86cc30046105c61ac76329bee" }, "downloads": -1, "filename": "hashget-0.156.tar.gz", "has_sig": false, "md5_digest": "0b63373a34d26733aa59d1eab0905be2", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 38864, "upload_time": "2019-05-02T16:34:48", "url": "https://files.pythonhosted.org/packages/8c/24/8dae36db079a2eb84006a59e26f74b49a1c2a643b282b0277284c37f0412/hashget-0.156.tar.gz" } ], "0.157": [ { "comment_text": "", "digests": { "md5": "c6dba8f0607010279fffd594dc0d867e", "sha256": "290718742f8f123faf23f8f683d6ff4e885d56fa6ee1034685a85a062c616d20" }, "downloads": -1, "filename": "hashget-0.157.tar.gz", "has_sig": false, "md5_digest": "c6dba8f0607010279fffd594dc0d867e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 38913, "upload_time": "2019-05-07T18:20:32", "url": "https://files.pythonhosted.org/packages/68/c4/9cf650412785ac75f03ad8f8da29949fb52448c15d8321ce0fd58faf7504/hashget-0.157.tar.gz" } ], "0.159": [ { "comment_text": "", "digests": { "md5": "1577dc3c862b353d70791ee9085c241d", "sha256": "48381b451727edcd7d0fd2cb6c4b633a18e6ab4132f351a08c731c7409f9399c" }, "downloads": -1, "filename": "hashget-0.159.tar.gz", "has_sig": false, "md5_digest": "1577dc3c862b353d70791ee9085c241d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 39892, "upload_time": "2019-05-10T17:45:54", "url": "https://files.pythonhosted.org/packages/b2/86/f796816d993c3b134df80180e5ad4879bf3e38a8762790bb308e05a78347/hashget-0.159.tar.gz" } ], "0.160": [ { "comment_text": "", "digests": { "md5": "3d6aeb1bd6268f554af5912dcc0c86d7", "sha256": "473366e0a45a4d3200e75a763926df09c3d29f804b8813e4e72bce5f15b969d8" }, "downloads": -1, "filename": "hashget-0.160.tar.gz", "has_sig": false, "md5_digest": "3d6aeb1bd6268f554af5912dcc0c86d7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 39907, "upload_time": "2019-05-10T18:51:03", "url": "https://files.pythonhosted.org/packages/c9/84/674201c234cdb2719adbcef792e0d56bb83b5710f7c4db3027a97fa592ea/hashget-0.160.tar.gz" } ], "0.161": [ { "comment_text": "", "digests": { "md5": "ecd210fcd7109200412cf7559b3e22b1", "sha256": "a9ab489a1676e58dace5d5230accb15ef4e88754e9bbd0eba9f622a120a2fca9" }, "downloads": -1, "filename": "hashget-0.161.tar.gz", "has_sig": false, "md5_digest": "ecd210fcd7109200412cf7559b3e22b1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 40087, "upload_time": "2019-05-11T10:36:25", "url": "https://files.pythonhosted.org/packages/2d/e5/ea16ee525bae540af7fb06dc6ec1050390fe3cfd9220b1dce906f1389f37/hashget-0.161.tar.gz" } ], "0.162": [ { "comment_text": "", "digests": { "md5": "4c76241fc9e1c2376883d42d288aecad", "sha256": "ae2fd43c4bf2289a4ea8d3f798a73aa8a0009ec4af5e0961779dead17f5a0fb9" }, "downloads": -1, "filename": "hashget-0.162.tar.gz", "has_sig": false, "md5_digest": "4c76241fc9e1c2376883d42d288aecad", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 41138, "upload_time": "2019-06-10T14:08:37", "url": "https://files.pythonhosted.org/packages/0d/fd/78a95207a6c49f2a44991e2f8ae1301def634a41f7cf8cff42010b6bd31b/hashget-0.162.tar.gz" } ], "0.163": [ { "comment_text": "", "digests": { "md5": "4113705cf652baa141d999c05a12cd46", "sha256": "bbd88ee35277a88a28b37ec03609a7977111826cc1d1114b977d9504c8c677f9" }, "downloads": -1, "filename": "hashget-0.163.tar.gz", "has_sig": false, "md5_digest": "4113705cf652baa141d999c05a12cd46", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 41203, "upload_time": "2019-06-13T18:28:33", "url": "https://files.pythonhosted.org/packages/c8/25/93fa300d810af2996d956bfae46394b76c55674cd0108a979d337a11e2aa/hashget-0.163.tar.gz" } ], "0.163.post1": [ { "comment_text": "", "digests": { "md5": "c54fa2c70deed8f2b44837b133d671a4", "sha256": "a13e2ddb45e76282b69355605743b8473cc85ec222c4cb4738965908e1c0c0a5" }, "downloads": -1, "filename": "hashget-0.163.post1.tar.gz", "has_sig": false, "md5_digest": "c54fa2c70deed8f2b44837b133d671a4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 41223, "upload_time": "2019-06-13T21:13:31", "url": "https://files.pythonhosted.org/packages/ff/7d/94672c0640ae4f13fdf0bc8592f405a834597951bfa937e6acfee8c8f0dc/hashget-0.163.post1.tar.gz" } ], "0.164": [ { "comment_text": "", "digests": { "md5": "703b707a1b74e75b6adce8505861ea49", "sha256": "6aed23a58800e8c9df53c2d8cecf368034e9e3fda0b369eb6fe039d38b7d94c1" }, "downloads": -1, "filename": "hashget-0.164.tar.gz", "has_sig": false, "md5_digest": "703b707a1b74e75b6adce8505861ea49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 41611, "upload_time": "2019-06-19T11:22:32", "url": "https://files.pythonhosted.org/packages/e5/69/afe0ba32bde2ee42f8fe454a04bb5a4372476da68b0d78c22a098099b4fe/hashget-0.164.tar.gz" } ], "0.91": [ { "comment_text": "", "digests": { "md5": "14af7cbb7c8060e421386a17330d5e43", "sha256": "f26bcd3b5acdf6aec3202bdca25a9630e21f48415bb514646b2068571149b10b" }, "downloads": -1, "filename": "hashget-0.91.tar.gz", "has_sig": false, "md5_digest": "14af7cbb7c8060e421386a17330d5e43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20078, "upload_time": "2019-02-19T16:33:57", "url": "https://files.pythonhosted.org/packages/97/7a/662989441e7f3eed73cd6af9aecdbd86a2788d7171f68a2c4a9b83cb9617/hashget-0.91.tar.gz" } ], "0.91.1": [ { "comment_text": "", "digests": { "md5": "b1155909dc5eb996084fe1f7d76add82", "sha256": "0a4bc35582d16c861da31c38955891a1b7b05c97031bc5b655fbe9eae7a34c46" }, "downloads": -1, "filename": "hashget-0.91.1.tar.gz", "has_sig": false, "md5_digest": "b1155909dc5eb996084fe1f7d76add82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20099, "upload_time": "2019-02-19T16:38:04", "url": "https://files.pythonhosted.org/packages/a7/82/67da498bf76643ab5573e6fb73a70c103331270016fc07ed873754fe7409/hashget-0.91.1.tar.gz" } ], "0.91.post1": [ { "comment_text": "", "digests": { "md5": "7c1fae057d4b7320a7f44f95e2668d1e", "sha256": "ac117abf705615914999567d888d8c6e54b009eddc678ead7270f9ef2d273bbe" }, "downloads": -1, "filename": "hashget-0.91.post1.tar.gz", "has_sig": false, "md5_digest": "7c1fae057d4b7320a7f44f95e2668d1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20095, "upload_time": "2019-02-19T16:42:37", "url": "https://files.pythonhosted.org/packages/d5/f3/e67c51e12a33d38443039aec9431e35e1ae198a00843e7df502e97ecc66e/hashget-0.91.post1.tar.gz" } ], "0.92": [ { "comment_text": "", "digests": { "md5": "f06a0cd5c99596bca631e02a81d153d9", "sha256": "76c22c14f0e2be6244f5932791300ea531d3f5306860e2c776031f19b941ffb7" }, "downloads": -1, "filename": "hashget-0.92.tar.gz", "has_sig": false, "md5_digest": "f06a0cd5c99596bca631e02a81d153d9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20083, "upload_time": "2019-02-19T16:43:46", "url": "https://files.pythonhosted.org/packages/c0/93/9ca6df7811bd9f27ad905fdf1bc59034443a2badb89d7aab483eea7a4cd1/hashget-0.92.tar.gz" } ], "0.93": [ { "comment_text": "", "digests": { "md5": "86e213cd7c019b879187be6f77bc523b", "sha256": "227edb71e261328b29512e987bbfbf3c68a48c57a9a005a69abe605dbb120826" }, "downloads": -1, "filename": "hashget-0.93.tar.gz", "has_sig": false, "md5_digest": "86e213cd7c019b879187be6f77bc523b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20122, "upload_time": "2019-02-19T16:48:41", "url": "https://files.pythonhosted.org/packages/5e/3b/0e57d373e106f247c9c686afd6ebf975702cb34e91ad5b2d305da23c2895/hashget-0.93.tar.gz" } ], "0.93.post1": [ { "comment_text": "", "digests": { "md5": "54d4fd82dbab7de37bd3aa789efb7b10", "sha256": "9440b671362a3674e5364836029a33fa385384c8e7eb61304236ffaface08249" }, "downloads": -1, "filename": "hashget-0.93.post1.tar.gz", "has_sig": false, "md5_digest": "54d4fd82dbab7de37bd3aa789efb7b10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20124, "upload_time": "2019-02-19T16:53:08", "url": "https://files.pythonhosted.org/packages/02/c0/0bd6091c03e390c7c81581c8aafe5aea006989fdcac9541afc3850427460/hashget-0.93.post1.tar.gz" } ], "0.94": [ { "comment_text": "", "digests": { "md5": "ac291c637282e55dd6e38dc51a9a6f60", "sha256": "3e5ef500a23e01a05132d4b77ec982be4117911f480aee8a38fd80cc2853ed05" }, "downloads": -1, "filename": "hashget-0.94.tar.gz", "has_sig": false, "md5_digest": "ac291c637282e55dd6e38dc51a9a6f60", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20269, "upload_time": "2019-02-19T17:06:01", "url": "https://files.pythonhosted.org/packages/c1/22/34cd8187b20f9c25c4009d65d285cdac04e45cdc0bf19535060d95d7ba82/hashget-0.94.tar.gz" } ], "0.95": [ { "comment_text": "", "digests": { "md5": "5ec19f5f2af5e410bf395e3f6e7a4e1d", "sha256": "2b270f8500fe6c746731ba8f035e596f024027036b52b92fbe3063c7674a76c2" }, "downloads": -1, "filename": "hashget-0.95.tar.gz", "has_sig": false, "md5_digest": "5ec19f5f2af5e410bf395e3f6e7a4e1d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20253, "upload_time": "2019-02-20T09:29:07", "url": "https://files.pythonhosted.org/packages/9c/5d/f2a1c321740e6810c5e31c873b78892a1fa97808480620a43456da73fc19/hashget-0.95.tar.gz" } ], "0.96": [ { "comment_text": "", "digests": { "md5": "b748c784890aba36880669a5cfd8a2e2", "sha256": "87ddfbd18001033791c1ced1b3784523e658ee2cecc89d0baab2a556b233b3e4" }, "downloads": -1, "filename": "hashget-0.96.tar.gz", "has_sig": false, "md5_digest": "b748c784890aba36880669a5cfd8a2e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20464, "upload_time": "2019-02-20T10:11:49", "url": "https://files.pythonhosted.org/packages/6d/95/988faef1a3528047719af3b23556941bf40023bef08fffd77ca7843c6585/hashget-0.96.tar.gz" } ], "0.96.post1": [ { "comment_text": "", "digests": { "md5": "1ffff211263e15a4d5c9c2d26756becd", "sha256": "7c8e1b33386ee2ac62bd064bbbb2598e28dd041d0010da04bf01664910fc3d9d" }, "downloads": -1, "filename": "hashget-0.96.post1.tar.gz", "has_sig": false, "md5_digest": "1ffff211263e15a4d5c9c2d26756becd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20477, "upload_time": "2019-02-20T10:14:18", "url": "https://files.pythonhosted.org/packages/dd/6f/849778b7e779d0a23cd39012c2bdc7a50dd2866d0dc9d0f4667a7486d6d5/hashget-0.96.post1.tar.gz" } ], "0.97": [ { "comment_text": "", "digests": { "md5": "f48f4260c968ee4ea9c376711994dfb4", "sha256": "8e6fec4abe5aba37ad54af712f46c1b33835b31509c6d8ecc550fee87258d350" }, "downloads": -1, "filename": "hashget-0.97.tar.gz", "has_sig": false, "md5_digest": "f48f4260c968ee4ea9c376711994dfb4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20444, "upload_time": "2019-02-20T11:06:45", "url": "https://files.pythonhosted.org/packages/28/3d/409f0085a90d9a38cc70adda217f2f9346991b574d6cc325e02137296f7a/hashget-0.97.tar.gz" } ], "0.98": [ { "comment_text": "", "digests": { "md5": "9ad61fd24323209ec15810b3d7bf16de", "sha256": "2e3147d4fdcae29c63e296e32bf4af8da9aee0833d6c618a888e88b32ea27a15" }, "downloads": -1, "filename": "hashget-0.98.tar.gz", "has_sig": false, "md5_digest": "9ad61fd24323209ec15810b3d7bf16de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20508, "upload_time": "2019-02-20T11:57:25", "url": "https://files.pythonhosted.org/packages/f5/25/1e811aab449325036ffc7c1b698d4027e1c63185ec23664b2c8ac47c2f7a/hashget-0.98.tar.gz" } ], "0.99": [ { "comment_text": "", "digests": { "md5": "da62a1012f4ec58ca91d0af863b44183", "sha256": "3594eb47a9823e11613c8462c6427e26a20065387a9838283b77079fc77ab2ac" }, "downloads": -1, "filename": "hashget-0.99.tar.gz", "has_sig": false, "md5_digest": "da62a1012f4ec58ca91d0af863b44183", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20528, "upload_time": "2019-02-20T12:10:22", "url": "https://files.pythonhosted.org/packages/81/23/3cb0025c0cc66f445aca1d832426204cdceb8243671293824430b2fc8467/hashget-0.99.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "703b707a1b74e75b6adce8505861ea49", "sha256": "6aed23a58800e8c9df53c2d8cecf368034e9e3fda0b369eb6fe039d38b7d94c1" }, "downloads": -1, "filename": "hashget-0.164.tar.gz", "has_sig": false, "md5_digest": "703b707a1b74e75b6adce8505861ea49", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 41611, "upload_time": "2019-06-19T11:22:32", "url": "https://files.pythonhosted.org/packages/e5/69/afe0ba32bde2ee42f8fe454a04bb5a4372476da68b0d78c22a098099b4fe/hashget-0.164.tar.gz" } ] }