{ "info": { "author": "Evan Widloski", "author_email": "evan@evanw.org", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 3" ], "description": "Passhole\n========\n\n.. image:: https://img.shields.io/matrix/pykeepass:matrix.org.svg\n :target: https://matrix.to/#/#pykeepass:matrix.org\n\n\n``passhole`` is a CLI interface for KeePass 1.x (v3) and 2.x (v4) databases with support for dmenu inspired by `pass`_.\n\n.. _pass: https://www.passwordstore.org\n\n.. image:: https://i.imgur.com/lWLgbo3.gif \n\n- `Manual`_\n- `Features`_\n- `Setup`_\n- `Example Usage`_\n- `Example i3wm Keybindings`_\n- `Testing and Development`_\n\n\nFeatures\n------------\n\n- add, delete, move, edit, rename entries and groups\n- generate `correct horse battery staple`_ style, alphanumeric, symbolic passwords\n- temporarily cache database password for 10 minutes\n- autofill selected forms via keyboard shortcut (using the ``type`` command)\n- multiple databases\n\n.. _correct horse battery staple: http://xkcd.com/936\n\nSee below for examples and the `manual`_ (or ``man passhole``) for a complete list of commands and options.\n\n.. _manual: MANUAL.rst\n\nSetup\n------------\n\n.. code:: bash\n\n pip install passhole\n ph init\n\n\nExample Usage\n--------------\n\n.. code:: bash\n\n # add a new entry with manually created password\n >>> ph add github\n Username: Evidlo\n Password: \n Confirm: \n URL: github.com\n\n # add an entry with a generated alphanumeric password\n >>> ph add neopets -a\n Username: Evidlo\n URL: neopets.com\n\n # add a new group\n >>> ph add social/\n \n # add an entry to `social/` with a 32 character password (alphanumeric + symbols)\n >>> ph add social/facebook -s 32\n Username: evan@evanw.org\n URL: facebook.com\n\n # add an entry to `social/` with a correct-horse-battery-staple type password\n >>> ph add social/twitter -w\n Username: evan@evanw.org\n URL: twitter.com\n\n # list all entries\n >>> ph list\n github\n neopets\n [social]\n \u251c\u2500\u2500 facebook\n \u2514\u2500\u2500 twitter\n\n # display contents of entry\n >>> ph show social/twitter\n Title: twitter\n Username: Evidlo\n Password: inns.ambien.travelling.throw.force\n URL: twitter.com\n\n # retrieve contents of specific field for use in scripts\n >>> ph show social/twitter --field password\n inns.ambien.travelling.throw.force\n\nExample i3wm Keybindings\n------------------------\n\n.. code:: bash\n\n # select entry using dmenu, then send password to keyboard\n bindsym $mod+p exec \"ph type dmenu\"\n # select entry using dmenu, then send username + password to keyboard\n bindsym $mod+Shift+p exec \"ph type dmenu --tabbed\"\n\nTesting and Development\n-----------------------\n\nRunning tests\n\n.. code:: bash\n\n # from repo root dir:\n python test/tests.py\n\nIsolated install in Docker\n\n.. code:: bash\n\n # arch\n make install_arch\n # debian\n make install_debian\n\nBuilding manpage and packaging\n\n.. code:: bash\n\n make man\n make dist\n\nSee also\n--------\n- `keepmenu`_\n- `kpcli`_\n- `keepassxc`_\n- `kdbxpasswordpwned`_\n\n.. _keepmenu: https://github.com/firecat53/keepmenu/\n.. _kpcli: http://kpcli.sourceforge.net/\n.. _keepassxc: https://keepassxc.org/\n.. _kdbxpasswordpwned: https://github.com/fopina/kdbxpasswordpwned", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/evidlo/passhole", "keywords": "keepass cli dmenu password store passwords manager rofi pykeepass libkeepass", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "passhole", "package_url": "https://pypi.org/project/passhole/", "platform": "", "project_url": "https://pypi.org/project/passhole/", "project_urls": { "Homepage": "https://github.com/evidlo/passhole" }, "release_url": "https://pypi.org/project/passhole/1.9.post1/", "requires_dist": null, "requires_python": "", "summary": "CLI KeePass client with dmenu support", "version": "1.9.post1" }, "last_serial": 5805970, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "072e569c20ca099d9b4bc1a95721c078", "sha256": "a6fbd11fa31193516892046f431efb6c2dc452ecec0004c9006f3d5f9762c4e1" }, "downloads": -1, "filename": "passhole-0.1.tar.gz", "has_sig": false, "md5_digest": "072e569c20ca099d9b4bc1a95721c078", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3411, "upload_time": "2017-04-01T00:18:38", "url": "https://files.pythonhosted.org/packages/b1/4c/18702f69f48a3a355feec1c0d93aae0ff28f733cca67be2faf60bf0a4914/passhole-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "e29b6883aad53e2aaf4cfe463738daac", "sha256": "b287223c71b8c55fdd68e4228d0db7d35d8bb1225b1caac4f03245401fb26147" }, "downloads": -1, "filename": "passhole-0.2.tar.gz", "has_sig": false, "md5_digest": "e29b6883aad53e2aaf4cfe463738daac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3451, "upload_time": "2017-04-01T00:56:40", "url": "https://files.pythonhosted.org/packages/73/e2/528d255dfc7ce0977efc664e73a589d1a70548fe084f859842b0dce8358f/passhole-0.2.tar.gz" } ], "0.2.post1": [ { "comment_text": "", "digests": { "md5": "43127a91f9b0fb9ee42b6265852ef455", "sha256": "a8c86e501f527fd9df4377edfe24fac35853546f990513b43783eea66c6798d7" }, "downloads": -1, "filename": "passhole-0.2.post1.tar.gz", "has_sig": false, "md5_digest": "43127a91f9b0fb9ee42b6265852ef455", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3480, "upload_time": "2017-04-01T00:58:52", "url": "https://files.pythonhosted.org/packages/17/c1/0a6a17fe3b5accd305ee88f489a0ab251d27cc87c418e803c63c08d1bd34/passhole-0.2.post1.tar.gz" } ], "0.2.post2": [ { "comment_text": "", "digests": { "md5": "6aaf0ea99cdca133ef36e290c1f38709", "sha256": "77280107eabdf992cc7a58aa0ad59ce0f932c82b1c0d0291d4c054df6d4754a5" }, "downloads": -1, "filename": "passhole-0.2.post2.tar.gz", "has_sig": false, "md5_digest": "6aaf0ea99cdca133ef36e290c1f38709", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3480, "upload_time": "2017-04-01T01:08:29", "url": "https://files.pythonhosted.org/packages/d2/3c/7befa123b97c4f1b27645ea3886e53aa64bb9da2cbbe7ca09e43c4c133f3/passhole-0.2.post2.tar.gz" } ], "0.2.post3": [ { "comment_text": "", "digests": { "md5": "adb0f0ffba15726a7adcb3a5debba8e4", "sha256": "5222fdf783968264e9fc93f5b7043947062fe81de6a282db50d799cea536d2ca" }, "downloads": -1, "filename": "passhole-0.2.post3.tar.gz", "has_sig": false, "md5_digest": "adb0f0ffba15726a7adcb3a5debba8e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3491, "upload_time": "2017-04-01T01:10:25", "url": "https://files.pythonhosted.org/packages/0d/23/6106c28f2048eb9ebc88e6e9a8aa2111a5d212eccbdada17ac315e6f0846/passhole-0.2.post3.tar.gz" } ], "0.2.post4": [ { "comment_text": "", "digests": { "md5": "1b7e1c9d6cfe43da1e4e3c7aaeb5e77e", "sha256": "2d680ccccd6d2537010c0ee801859e3b1283d97db607259a3fde92e9a791fc87" }, "downloads": -1, "filename": "passhole-0.2.post4.tar.gz", "has_sig": false, "md5_digest": "1b7e1c9d6cfe43da1e4e3c7aaeb5e77e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3496, "upload_time": "2017-04-01T01:31:07", "url": "https://files.pythonhosted.org/packages/b6/6e/6e93a4554f3d50a434d3d72e14e894e288055952839fbc96235f7ba2d83f/passhole-0.2.post4.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "5fb98dac29d918788fe5dd8827899983", "sha256": "b7fbe98aa6fb57f5390c3df15dfcedda6eb2914998e66f41ef230f7265c9c76c" }, "downloads": -1, "filename": "passhole-0.3.tar.gz", "has_sig": false, "md5_digest": "5fb98dac29d918788fe5dd8827899983", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3708, "upload_time": "2017-04-06T01:52:32", "url": "https://files.pythonhosted.org/packages/a7/f0/7d00d18ea16576b3217c6883b64ed708ed5dcc2faa690e1794be69134533/passhole-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "dc7e92fa28a613fefe6d39716b598f89", "sha256": "0bc66b5840912a5952f8277e34204577f317dbc2d071fc9348e5b5fa91890bd0" }, "downloads": -1, "filename": "passhole-0.4.tar.gz", "has_sig": false, "md5_digest": "dc7e92fa28a613fefe6d39716b598f89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34600, "upload_time": "2017-05-06T21:26:28", "url": "https://files.pythonhosted.org/packages/0d/ff/166878edc1459cbb4f04796663ccd8713d20646987c40bbf3f19eded6ccd/passhole-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "6d587db797345862fb988e8fdcba9966", "sha256": "a1fd61d521d532e1b34a5ecfa1e7c03030a9904d4cb5f6378eea9a2d1abaaed5" }, "downloads": -1, "filename": "passhole-0.4.1.tar.gz", "has_sig": false, "md5_digest": "6d587db797345862fb988e8fdcba9966", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34589, "upload_time": "2017-05-06T21:26:55", "url": "https://files.pythonhosted.org/packages/ef/41/fad50c6bc24819b237fcd92cdb76622464c1c12a62a52564adb7c11974f9/passhole-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "4a323d2ca58f3487544f08795de32587", "sha256": "a04e6841f60a81e2d7a888162070723925679ed47249284cb7a2edebb7c0cc36" }, "downloads": -1, "filename": "passhole-0.4.2.tar.gz", "has_sig": false, "md5_digest": "4a323d2ca58f3487544f08795de32587", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34913, "upload_time": "2017-05-06T22:20:51", "url": "https://files.pythonhosted.org/packages/7b/06/f20f575d51fffdd9066a885f7a7c26d23bb9bbd0c1af976bdd6fcb97959e/passhole-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "355ba37997127dcb5d0d5a747238e61a", "sha256": "f8bce7d1d881685dbfa9ef86ebec67c8b4d1fe0f4fa93368c07fc151619f4b12" }, "downloads": -1, "filename": "passhole-0.4.3.tar.gz", "has_sig": false, "md5_digest": "355ba37997127dcb5d0d5a747238e61a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34910, "upload_time": "2017-05-06T22:37:56", "url": "https://files.pythonhosted.org/packages/8a/80/5d4afd4ac9fb2ad4d8f9b178686f7ec86c3c696cf274109f40c195dd1b30/passhole-0.4.3.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "a2c319f67bba0a603ea8f07d783f6c3b", "sha256": "9850c897ea42795552cd37c6d22afcb82e3839de776da59016f5d027d6bce939" }, "downloads": -1, "filename": "passhole-1.0.tar.gz", "has_sig": false, "md5_digest": "a2c319f67bba0a603ea8f07d783f6c3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35954, "upload_time": "2017-05-06T23:46:44", "url": "https://files.pythonhosted.org/packages/c5/3c/bb392c3b6479cbadaa5442bec7ea910ea5e94b4dbe9e582cc28a2f9a9a9b/passhole-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "dc8a5b6a1cdfe820520b754e49df1b63", "sha256": "81ade25b739cc3ac4c9a1dc13626c5dd732a8e2e8f44848f999fb4bd7d583718" }, "downloads": -1, "filename": "passhole-1.1.tar.gz", "has_sig": false, "md5_digest": "dc8a5b6a1cdfe820520b754e49df1b63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36065, "upload_time": "2017-05-17T04:18:33", "url": "https://files.pythonhosted.org/packages/0e/db/7ce209cc04695fe03909e4a8dd6c749401160e7441c6ca8f3fe92d7774f3/passhole-1.1.tar.gz" } ], "1.1.post1": [ { "comment_text": "", "digests": { "md5": "6b5ccac9b6f18110c1b082f3835b110e", "sha256": "5dd9dd01530e64a8b44888f1a6ac84304d2536cad3f49d72a40553027c54ee1d" }, "downloads": -1, "filename": "passhole-1.1.post1.tar.gz", "has_sig": false, "md5_digest": "6b5ccac9b6f18110c1b082f3835b110e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36069, "upload_time": "2017-05-17T04:21:45", "url": "https://files.pythonhosted.org/packages/9e/06/905b5ebc73c98c6ce6cbc37271b3e73928a8ae6826b9b097323264716d43/passhole-1.1.post1.tar.gz" } ], "1.1.post2": [ { "comment_text": "", "digests": { "md5": "b303bcb92704cede44759fa2a9e8767e", "sha256": "0317a862a7575c255307187d15e593d17acf8c8a7268469ff8a79a2e8e7af8d0" }, "downloads": -1, "filename": "passhole-1.1.post2.tar.gz", "has_sig": false, "md5_digest": "b303bcb92704cede44759fa2a9e8767e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36084, "upload_time": "2017-06-02T21:08:45", "url": "https://files.pythonhosted.org/packages/07/85/fc5f2c9f776ddec52d18c2d3162273f963146b85b03794a05e888f8dbddb/passhole-1.1.post2.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "4f86916f1c38c139e10fd9088d7f6042", "sha256": "befb85543e6b0d6e2cf6f1a9c30e2403c426b0282c073f6cdd7170eaae905aa0" }, "downloads": -1, "filename": "passhole-1.2.tar.gz", "has_sig": false, "md5_digest": "4f86916f1c38c139e10fd9088d7f6042", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36202, "upload_time": "2017-06-18T05:32:36", "url": "https://files.pythonhosted.org/packages/a4/14/f25cad5d285d4353458f1036f94d34be6a103b6e12baeba162e76648912a/passhole-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "bbbc72d1cf47dc7e56c3aacb54cc5534", "sha256": "6668b55a10c4edf8bc8fcd15bc9ce4a0eb5bc21247992edcb36563018d980535" }, "downloads": -1, "filename": "passhole-1.2.1.tar.gz", "has_sig": false, "md5_digest": "bbbc72d1cf47dc7e56c3aacb54cc5534", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36208, "upload_time": "2017-06-25T19:43:05", "url": "https://files.pythonhosted.org/packages/3c/98/70f6e68de1395482903629b48386b2d6dab1be42fb3915545bfab694ce6e/passhole-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "6042a087bd6333079e74ecc337fd76ce", "sha256": "7cf63a0b788a56f8635743ce66ade8de67c7f1017abdd3ec762caf550b08f2f3" }, "downloads": -1, "filename": "passhole-1.2.2.tar.gz", "has_sig": false, "md5_digest": "6042a087bd6333079e74ecc337fd76ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36214, "upload_time": "2017-06-26T21:59:23", "url": "https://files.pythonhosted.org/packages/53/57/a5f625ab3e1a8e101840504dd76a5c0c57d29c1798afd3a3841bec07f4bb/passhole-1.2.2.tar.gz" } ], "1.2.2.post1": [ { "comment_text": "", "digests": { "md5": "fc7b63427ed9f9d1b917b51b37c08f7a", "sha256": "6b7193fa62f103fe02b41567960680e77c3a73feac550e0d96efe88461af7b76" }, "downloads": -1, "filename": "passhole-1.2.2.post1.tar.gz", "has_sig": false, "md5_digest": "fc7b63427ed9f9d1b917b51b37c08f7a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36244, "upload_time": "2017-06-26T22:36:33", "url": "https://files.pythonhosted.org/packages/bc/a9/8265f14d3f88ae653bf0bcd43700f23a3f7ee618101f4ba0a73c6af9da60/passhole-1.2.2.post1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "c986873d71c44e7ec93878932e478269", "sha256": "0f919fcda379778189ec414ca38b9cb972d32b8b1763968d789233786fd29ea6" }, "downloads": -1, "filename": "passhole-1.3.0.tar.gz", "has_sig": false, "md5_digest": "c986873d71c44e7ec93878932e478269", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37108, "upload_time": "2017-08-17T01:51:06", "url": "https://files.pythonhosted.org/packages/77/dc/404d5242ec948a6421184776d4c3aac572111535c838cd216a6ea48f6197/passhole-1.3.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "2e16c7ee16728416fee83f7111fc181c", "sha256": "1d76535619862ad39fa99577823f420379ffcc93bcd3b9881f1ce6f9e870df05" }, "downloads": -1, "filename": "passhole-1.3.1.tar.gz", "has_sig": false, "md5_digest": "2e16c7ee16728416fee83f7111fc181c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37134, "upload_time": "2017-08-17T02:43:04", "url": "https://files.pythonhosted.org/packages/69/3d/41519ba74203f6bd7a1c60331e4f0b1f95861b46afc3ef9ab5b969ff7cda/passhole-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "484a0a09a908315be57d6bda98d6b58c", "sha256": "9f6472c3053be0bcbe5f9ec275427c3c4fbac421227bb5b6d97efcef35a4a2e1" }, "downloads": -1, "filename": "passhole-1.3.2.tar.gz", "has_sig": false, "md5_digest": "484a0a09a908315be57d6bda98d6b58c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37206, "upload_time": "2017-08-18T21:02:55", "url": "https://files.pythonhosted.org/packages/24/61/988d3d8cc3e3907a3d7199a08153b153512edfd2676b5cd1e14dd651b996/passhole-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "d9b0a96808d265dd000d16aefd6ff234", "sha256": "baf4424cd20f846b26cfb6255bbaf5799ef39d803b9de689d9cc3dc9c0caaf30" }, "downloads": -1, "filename": "passhole-1.3.3.tar.gz", "has_sig": false, "md5_digest": "d9b0a96808d265dd000d16aefd6ff234", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37200, "upload_time": "2017-08-18T21:14:47", "url": "https://files.pythonhosted.org/packages/b4/f7/6cedee4c072ab5ea91494429e56f6051823e8afce2cb1b7adda9207557d8/passhole-1.3.3.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "3f0ca0e7e7c5004a2005dec09ffe2fd7", "sha256": "f33c4da7c482a6c44de28d56cd9e9c2b9bbcec7159501a56432274d5b782fdbe" }, "downloads": -1, "filename": "passhole-1.3.4.tar.gz", "has_sig": false, "md5_digest": "3f0ca0e7e7c5004a2005dec09ffe2fd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42519, "upload_time": "2017-08-19T01:20:58", "url": "https://files.pythonhosted.org/packages/72/98/058f2fe0fcdf2a79e760b5ba3d368cdd07d4399c40f27b637734fe27115e/passhole-1.3.4.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "1cc1a43a7660ba4c3e6f19f9bf1515ab", "sha256": "f3c67e3dc3864b45777c5dc9afd9dfbde9db2624ca7b89567812570069b05a25" }, "downloads": -1, "filename": "passhole-1.3.5.tar.gz", "has_sig": false, "md5_digest": "1cc1a43a7660ba4c3e6f19f9bf1515ab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42473, "upload_time": "2017-10-03T20:43:19", "url": "https://files.pythonhosted.org/packages/a4/7f/df9cd12fffecc3dc288889ef1dfe59a33817631d9430620d9feeac7a1e5f/passhole-1.3.5.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "4896ac1b4e0895294da6724111784e9a", "sha256": "ae3a73c270e174352b812dc2f69448c0215d2dcbc8a34a540e8f4f06c0c24fc9" }, "downloads": -1, "filename": "passhole-1.4.0.tar.gz", "has_sig": false, "md5_digest": "4896ac1b4e0895294da6724111784e9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42686, "upload_time": "2017-10-03T23:24:49", "url": "https://files.pythonhosted.org/packages/ad/58/46dc2e194dfa63afd6d15b52eec691089041cb09c6c755895d050845e87c/passhole-1.4.0.tar.gz" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "6cc351e43f87639eb9e1372631a43d2d", "sha256": "efe0944b2f77be4a3c95bb8fd12bdc879e7816e77e572ed8f31b001675ada79c" }, "downloads": -1, "filename": "passhole-1.4.1.tar.gz", "has_sig": false, "md5_digest": "6cc351e43f87639eb9e1372631a43d2d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42697, "upload_time": "2017-10-04T00:03:08", "url": "https://files.pythonhosted.org/packages/8c/17/420b329f8cadff45130f8671f0c499b3fd6832c45bfe79efdd4bb891c9bd/passhole-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "a9a7fbe15b3e325ebc02992aa793e9d3", "sha256": "4400fa1fc5233a96a661e38f19fb997d21220dc55b62f1cf88ab15e04891110f" }, "downloads": -1, "filename": "passhole-1.4.2.tar.gz", "has_sig": false, "md5_digest": "a9a7fbe15b3e325ebc02992aa793e9d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42683, "upload_time": "2017-10-04T02:54:53", "url": "https://files.pythonhosted.org/packages/1d/66/173dbaca4c3c48580d4ac8c8640d6289ba5b2b5f6f11c78c9cb8070fd1f2/passhole-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "c7a71b66f96ad18d642395fa6dbb460e", "sha256": "f001590a0651307f23aaf1aec0617e80abe0f2c67a6fe6c9f31c2c423d6240f7" }, "downloads": -1, "filename": "passhole-1.4.3.tar.gz", "has_sig": false, "md5_digest": "c7a71b66f96ad18d642395fa6dbb460e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42869, "upload_time": "2018-01-17T07:05:17", "url": "https://files.pythonhosted.org/packages/41/af/6eafa55aa16812f1d6e1262494a2efb106ef5ec06b529b80a2a9f0e675b4/passhole-1.4.3.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "508ee29bf420e87e8500c40af22a8d36", "sha256": "dec1efaaaa47b1902e214ca6e1aeaa1424730d17c88aaaaa6cce6d4418c43111" }, "downloads": -1, "filename": "passhole-1.5.0.tar.gz", "has_sig": false, "md5_digest": "508ee29bf420e87e8500c40af22a8d36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43732, "upload_time": "2018-02-09T07:02:26", "url": "https://files.pythonhosted.org/packages/cc/4f/ef6d8b548feea5c9c64af743a9a0b90ede2736089b4da3e4a9c65e7ae3ff/passhole-1.5.0.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "2f5b5ddde4f4fda5331ba088a468fa01", "sha256": "be893b15fcb26afc477eb7fde9269c3e828669f8357b947113b6b28734dbd5ea" }, "downloads": -1, "filename": "passhole-1.5.2.tar.gz", "has_sig": false, "md5_digest": "2f5b5ddde4f4fda5331ba088a468fa01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41959, "upload_time": "2018-02-24T06:48:50", "url": "https://files.pythonhosted.org/packages/73/83/06a5ad150300abc0c7ec0f97b4df387b22f70ea332f367592a610ef3a3a2/passhole-1.5.2.tar.gz" } ], "1.5.2.post1": [ { "comment_text": "", "digests": { "md5": "6ee579a09e6d21c4e452397b15e4021f", "sha256": "622c95dadf88b3495cdf5f79bb2c1a549a5d013fadb95ddd4e94304a289e9287" }, "downloads": -1, "filename": "passhole-1.5.2.post1.tar.gz", "has_sig": false, "md5_digest": "6ee579a09e6d21c4e452397b15e4021f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41965, "upload_time": "2018-02-24T06:50:48", "url": "https://files.pythonhosted.org/packages/32/70/8f4828750a74101f9a4df1e834417c8b52a21fdd814610efd6a1383916da/passhole-1.5.2.post1.tar.gz" } ], "1.5.4": [ { "comment_text": "", "digests": { "md5": "067cda078487e8224ebb7d57ba569b39", "sha256": "af182213074cd7d091e793b8a8758e6201c8ecb40e7b23ad1ce94dd4fffb2ece" }, "downloads": -1, "filename": "passhole-1.5.4.tar.gz", "has_sig": false, "md5_digest": "067cda078487e8224ebb7d57ba569b39", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42312, "upload_time": "2018-04-23T21:06:08", "url": "https://files.pythonhosted.org/packages/a0/97/82692238db2d0ce385d4689fcc2cf896574851af730489e68be2c40ae4ee/passhole-1.5.4.tar.gz" } ], "1.5.5": [ { "comment_text": "", "digests": { "md5": "9d8581567fb124aa9d3d50a8c1053b49", "sha256": "f81ed54ec85ea07c18ebd72595093c8ebb5469ee89328fde35092d797f6563f9" }, "downloads": -1, "filename": "passhole-1.5.5.tar.gz", "has_sig": false, "md5_digest": "9d8581567fb124aa9d3d50a8c1053b49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36090, "upload_time": "2018-05-25T04:08:51", "url": "https://files.pythonhosted.org/packages/9d/df/7bdcc9e6b8561aafd5dc7fbfa2f46ef888fe107f5bcd07a609b203791e51/passhole-1.5.5.tar.gz" } ], "1.6.0": [ { "comment_text": "", "digests": { "md5": "341b16114a914cbf53abd7e8ca3f8d43", "sha256": "d33f6e420efac98a1c0219edc5214d003df7655b43d98781e9a33e3c65a2f278" }, "downloads": -1, "filename": "passhole-1.6.0.tar.gz", "has_sig": false, "md5_digest": "341b16114a914cbf53abd7e8ca3f8d43", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36472, "upload_time": "2018-06-06T23:03:18", "url": "https://files.pythonhosted.org/packages/42/dd/d3dd83e5c494df7dc091ff7676170136f4fa6168995a1b55200aa4de4117/passhole-1.6.0.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "673f29b7d10eb51e968116b6eec89b6c", "sha256": "b74a8de178ad9d0472c6a69ce2676e723ed8b00d1cae0e368e098b37137f6566" }, "downloads": -1, "filename": "passhole-1.6.1.tar.gz", "has_sig": false, "md5_digest": "673f29b7d10eb51e968116b6eec89b6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36518, "upload_time": "2018-06-15T07:56:44", "url": "https://files.pythonhosted.org/packages/ea/7d/062f4e3a913adfb9ece45538de0e949f6b1685924bdfab03bfad45f71dee/passhole-1.6.1.tar.gz" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "099ea668adf31293a7e1f23efddd307c", "sha256": "5dc0fad85571d43368e2fa4127f02d99ed3bfe18357d319ff55374bf110f4d07" }, "downloads": -1, "filename": "passhole-1.7.tar.gz", "has_sig": false, "md5_digest": "099ea668adf31293a7e1f23efddd307c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36641, "upload_time": "2018-08-23T20:43:58", "url": "https://files.pythonhosted.org/packages/cb/9e/ca90097ad63b1cd47fb795cc7fee0dedf1b3739911d2ce3b858119ddf625/passhole-1.7.tar.gz" } ], "1.7.2": [ { "comment_text": "", "digests": { "md5": "0c602200e1b3990ddb50d381816beeb0", "sha256": "4aa9f9b3d4c22b16b2899f416eeb3d09d2217e5b89607b531076ab3f149c2c9b" }, "downloads": -1, "filename": "passhole-1.7.2.tar.gz", "has_sig": false, "md5_digest": "0c602200e1b3990ddb50d381816beeb0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36737, "upload_time": "2018-08-27T08:11:40", "url": "https://files.pythonhosted.org/packages/57/8d/1b064a8157222841d546b9c4b69cbe5de86870925635e05a4427c06dbb46/passhole-1.7.2.tar.gz" } ], "1.7.3": [ { "comment_text": "", "digests": { "md5": "841dc098893fff498eefb99281c99b24", "sha256": "e1bf000aabf8394f57f7a48bd1bcb12eccb21b9b8945b58a22534bc02ae41e88" }, "downloads": -1, "filename": "passhole-1.7.3.tar.gz", "has_sig": false, "md5_digest": "841dc098893fff498eefb99281c99b24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36786, "upload_time": "2018-11-03T22:55:24", "url": "https://files.pythonhosted.org/packages/f5/08/a6e33f64895755d5a607044a906b7cdfcab6a59ab05b0265a8b9397227dc/passhole-1.7.3.tar.gz" } ], "1.7.3.post1": [ { "comment_text": "", "digests": { "md5": "3081b0003ac02084df0a3d767e562ba5", "sha256": "21194423f5c8436de0f8e52902618a7bea8e1a4a0fb370dbe24658f8bfa5ad14" }, "downloads": -1, "filename": "passhole-1.7.3.post1.tar.gz", "has_sig": false, "md5_digest": "3081b0003ac02084df0a3d767e562ba5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36787, "upload_time": "2018-11-03T23:08:11", "url": "https://files.pythonhosted.org/packages/c9/6f/144dfd53b3c7789f30c3692e6074c7cfb899e0e77feda8e917d5d3f0eba6/passhole-1.7.3.post1.tar.gz" } ], "1.7.4": [ { "comment_text": "", "digests": { "md5": "3f6aa20b103f9c6a7338633fe05ef257", "sha256": "41172ceeb946904014b4870e1e51021a1dbcf6fc010995cabedc1774e0b97637" }, "downloads": -1, "filename": "passhole-1.7.4.tar.gz", "has_sig": false, "md5_digest": "3f6aa20b103f9c6a7338633fe05ef257", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37367, "upload_time": "2018-11-21T10:07:23", "url": "https://files.pythonhosted.org/packages/18/ff/cf63f6af446437d2908f22042332beb35e7fbbbcd99ca2707697250dd10e/passhole-1.7.4.tar.gz" } ], "1.7.5": [ { "comment_text": "", "digests": { "md5": "1ee6f5fa2886c8d6228b9ecc587039d4", "sha256": "405e37bf90fc96ed33c6eba63612e59df9ec05b2a0206916d294b4afca983cc8" }, "downloads": -1, "filename": "passhole-1.7.5.tar.gz", "has_sig": false, "md5_digest": "1ee6f5fa2886c8d6228b9ecc587039d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37606, "upload_time": "2018-11-30T00:06:34", "url": "https://files.pythonhosted.org/packages/70/b2/965da5831d4302b2ac188d681a38b41b681f61de3779c7b3816ff3886187/passhole-1.7.5.tar.gz" } ], "1.7.6": [ { "comment_text": "", "digests": { "md5": "d01ce394c0b372288b7af4da6ff0ac3f", "sha256": "e53dd1e544d60e2ca85d010697567449811d95dda50a55eb1b7d57a2965456df" }, "downloads": -1, "filename": "passhole-1.7.6.tar.gz", "has_sig": false, "md5_digest": "d01ce394c0b372288b7af4da6ff0ac3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39461, "upload_time": "2018-11-30T02:57:32", "url": "https://files.pythonhosted.org/packages/30/87/d5d557540f2c138b6bf9e305488a828166ec9a36ac8d086d755743b94c69/passhole-1.7.6.tar.gz" } ], "1.7.7": [ { "comment_text": "", "digests": { "md5": "6a7c34462412224daf73f46b9a7278dc", "sha256": "230a24fff6c0836ba7132502b9401e8588ed4cf2e6b340eb09989ed3d00b733c" }, "downloads": -1, "filename": "passhole-1.7.7.tar.gz", "has_sig": false, "md5_digest": "6a7c34462412224daf73f46b9a7278dc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39519, "upload_time": "2019-01-05T10:07:05", "url": "https://files.pythonhosted.org/packages/28/2f/884e45ade95bb4c0aad4db44c3598b2a3d97c18eff6aa3c658ab5be23780/passhole-1.7.7.tar.gz" } ], "1.7.post1": [ { "comment_text": "", "digests": { "md5": "e3d43610e613926fc2d3bd48bc544a27", "sha256": "e144ae1261a8078e98b4c48f16699e5411ad783b27a0eddcdef646613c9c0fee" }, "downloads": -1, "filename": "passhole-1.7.post1.tar.gz", "has_sig": false, "md5_digest": "e3d43610e613926fc2d3bd48bc544a27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36718, "upload_time": "2018-08-23T20:57:09", "url": "https://files.pythonhosted.org/packages/b4/5b/c8d3e373ff33ffda79a93d2fb474dc42b52283d1079f910c755e64f03618/passhole-1.7.post1.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "d335b39a16dd5e845eb7029e9d164625", "sha256": "f44b03408e6cbf84f7936b4cccedad05baa47f1a318d3fc34c4b3b03ab186cff" }, "downloads": -1, "filename": "passhole-1.8.0.tar.gz", "has_sig": false, "md5_digest": "d335b39a16dd5e845eb7029e9d164625", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41414, "upload_time": "2019-02-10T22:28:45", "url": "https://files.pythonhosted.org/packages/94/81/71ceb4cfe74e9eb4e146406e5e063b301801e84291d2d257ebde0cef3d85/passhole-1.8.0.tar.gz" } ], "1.8.2": [ { "comment_text": "", "digests": { "md5": "b895665c0c8eba4e7ca0383a908a1ac5", "sha256": "bb7a271a24b10666e7fde53dc29a9bc62e954ac1d87e8f3e6a0c9fb1f1c6d094" }, "downloads": -1, "filename": "passhole-1.8.2.tar.gz", "has_sig": false, "md5_digest": "b895665c0c8eba4e7ca0383a908a1ac5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42382, "upload_time": "2019-03-08T23:55:13", "url": "https://files.pythonhosted.org/packages/db/ca/949342efa27a971b906e4ba9b9f658dd457e1e15edb19a3b51168f67272f/passhole-1.8.2.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "e5796227a7d19eabf54f4b1f8ba42052", "sha256": "0e7b06f34c97c708bff42cea28232a373c1ddc306c0c72730f7e516236d13f97" }, "downloads": -1, "filename": "passhole-1.9.tar.gz", "has_sig": false, "md5_digest": "e5796227a7d19eabf54f4b1f8ba42052", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41760, "upload_time": "2019-09-09T22:53:33", "url": "https://files.pythonhosted.org/packages/1c/02/252ed0aa616d3c2e0cb07613e3ea986bf07f15e1467ce9f5dcfb2d8337b3/passhole-1.9.tar.gz" } ], "1.9.post1": [ { "comment_text": "", "digests": { "md5": "c8baa43cd7f6c7760ce5defbcdbd1048", "sha256": "95e4f8bb9aff3eb2a827ab04446c988d5b8f19a4760fdf2c69b089866e9acf83" }, "downloads": -1, "filename": "passhole-1.9.post1.tar.gz", "has_sig": false, "md5_digest": "c8baa43cd7f6c7760ce5defbcdbd1048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41913, "upload_time": "2019-09-09T22:57:57", "url": "https://files.pythonhosted.org/packages/34/40/24a12466b901532c9d856b76b2d2d60f9e03b441b15bcb39ee334a8ea81a/passhole-1.9.post1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c8baa43cd7f6c7760ce5defbcdbd1048", "sha256": "95e4f8bb9aff3eb2a827ab04446c988d5b8f19a4760fdf2c69b089866e9acf83" }, "downloads": -1, "filename": "passhole-1.9.post1.tar.gz", "has_sig": false, "md5_digest": "c8baa43cd7f6c7760ce5defbcdbd1048", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41913, "upload_time": "2019-09-09T22:57:57", "url": "https://files.pythonhosted.org/packages/34/40/24a12466b901532c9d856b76b2d2d60f9e03b441b15bcb39ee334a8ea81a/passhole-1.9.post1.tar.gz" } ] }