{ "info": { "author": "Philipp Schmitt", "author_email": "philipp@schmitt.co", "bugtrack_url": null, "classifiers": [], "description": "pykeepass\n============\n\n.. image:: https://github.com/libkeepass/pykeepass/workflows/CI/badge.svg\n :target: https://github.com/libkeepass/pykeepass/actions?query=workflow%3ACI\n\n.. image:: https://readthedocs.org/projects/pykeepass/badge/?version=latest\n :target: https://pykeepass.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/matrix/pykeepass:matrix.org.svg\n :target: https://matrix.to/#/#pykeepass:matrix.org\n\n.. image:: https://img.shields.io/badge/irc-%23pykeepass-brightgreen\n :target: https://webchat.freenode.net/?channels=pykeepass\n \nThis library allows you to write entries to a KeePass database.\n\nCome chat at `#pykeepass`_ on Freenode or `#pykeepass:matrix.org`_ on Matrix.\n\n.. _#pykeepass: irc://irc.freenode.net\n.. _#pykeepass\\:matrix.org: https://matrix.to/#/%23pykeepass:matrix.org \n\nExample\n--------------\n.. code:: python\n\n from pykeepass import PyKeePass\n\n # load database\n >>> kp = PyKeePass('db.kdbx', password='somePassw0rd')\n\n # find any group by its name\n >>> group = kp.find_groups(name='social', first=True)\n\n # get the entries in a group\n >>> group.entries\n [Entry: \"social/facebook (myusername)\", Entry: \"social/twitter (myusername)\"]\n\n # find any entry by its title\n >>> entry = kp.find_entries(title='facebook', first=True)\n\n # retrieve the associated password\n >>> entry.password\n 's3cure_p455w0rd'\n\n # update an entry\n >>> entry.notes = 'primary facebook account'\n\n # create a new group\n >>> group = kp.add_group(kp.root_group, 'email')\n\n # create a new entry\n >>> kp.add_entry(group, 'gmail', 'myusername', 'myPassw0rdXX')\n Entry: \"email/gmail (myusername)\"\n\n # save database\n >>> kp.save()\n\n\nFinding Entries\n----------------------\n\n**find_entries** (title=None, username=None, password=None, url=None, notes=None, path=None, uuid=None, tags=None, string=None, group=None, recursive=True, regex=False, flags=None, history=False, first=False)\n\nReturns entries which match all provided parameters, where ``title``, ``username``, ``password``, ``url``, ``notes``, and ``autotype_sequence`` are strings, ``path`` is a list, ``string`` is a dict, ``autotype_enabled`` is a boolean, ``uuid`` is a ``uuid.UUID`` and ``tags`` is a list of strings. This function has optional ``regex`` boolean and ``flags`` string arguments, which means to interpret search strings as `XSLT style`_ regular expressions with `flags`_.\n\n.. _XSLT style: https://www.xml.com/pub/a/2003/06/04/tr.html\n.. _flags: https://www.w3.org/TR/xpath-functions/#flags \n\nThe ``path`` list is a full path to an entry (ex. ``['foobar_group', 'foobar_entry']``). This implies ``first=True``. All other arguments are ignored when this is given. This is useful for handling user input.\n\nThe ``string`` dict allows for searching custom string fields. ex. ``{'custom_field1': 'custom value', 'custom_field2': 'custom value'}``\n\nThe ``group`` argument determines what ``Group`` to search under, and the ``recursive`` boolean controls whether to search recursively.\n\nThe ``history`` (default ``False``) boolean controls whether history entries should be included in the search results.\n\nThe ``first`` (default ``False``) boolean controls whether to return the first matched item, or a list of matched items.\n\n* if ``first=False``, the function returns a list of ``Entry`` s or ``[]`` if there are no matches\n* if ``first=True``, the function returns the first ``Entry`` match, or ``None`` if there are no matches\n\n**entries**\n\na flattened list of all entries in the database\n\n.. code:: python\n\n >>> kp.entries\n [Entry: \"foo_entry (myusername)\", Entry: \"foobar_entry (myusername)\", Entry: \"social/gmail (myusername)\", Entry: \"social/facebook (myusername)\"]\n\n >>> kp.find_entries(title='gmail', first=True)\n Entry: \"social/gmail (myusername)\"\n\n >>> kp.find_entries(title='foo.*', regex=True)\n [Entry: \"foo_entry (myusername)\", Entry: \"foobar_entry (myusername)\"]\n\n >>> entry = kp.find_entries(title='foo.*', url='.*facebook.*', regex=True, first=True)\n >>> entry.url\n 'facebook.com'\n >>> entry.title\n 'foo_entry'\n\n >>> group = kp.find_group(name='social', first=True)\n >>> kp.find_entries(title='facebook', group=group, recursive=False, first=True)\n Entry: \"social/facebook (myusername)\"\n\n\nFinding Groups\n----------------------\n\n**find_groups** (name=None, path=None, uuid=None, notes=None, group=None, recursive=True, regex=False, flags=None, first=False)\n\nwhere ``name`` and ``notes`` are strings, ``path`` is a list, ``uuid`` is a ``uuid.UUID``. This function has optional ``regex`` boolean and ``flags`` string arguments, which means to interpret search strings as `XSLT style`_ regular expressions with `flags`_.\n\n.. _XSLT style: https://www.xml.com/pub/a/2003/06/04/tr.html\n.. _flags: https://www.w3.org/TR/xpath-functions/#flags \n\nThe ``path`` list is a full path to a group (ex. ``['foobar_group', 'sub_group']``). This implies ``first=True``. All other arguments are ignored when this is given. This is useful for handling user input.\n\nThe ``group`` argument determines what ``Group`` to search under, and the ``recursive`` boolean controls whether to search recursively.\n\nThe ``first`` (default ``False``) boolean controls whether to return the first matched item, or a list of matched items.\n\n* if ``first=False``, the function returns a list of ``Group`` s or ``[]`` if there are no matches\n* if ``first=True``, the function returns the first ``Group`` match, or ``None`` if there are no matches\n\n**root_group**\n\nthe ``Root`` group to the database\n\n**groups**\n\na flattened list of all groups in the database\n\n.. code:: python\n\n >>> kp.groups\n [Group: \"foo\", Group \"foobar\", Group: \"social\", Group: \"social/foo_subgroup\"]\n\n >>> kp.find_groups(name='foo', first=True)\n Group: \"foo\"\n\n >>> kp.find_groups(name='foo.*', regex=True)\n [Group: \"foo\", Group \"foobar\"]\n\n >>> kp.find_groups(path=['social'], regex=True)\n [Group: \"social\", Group: \"social/foo_subgroup\"]\n\n >>> kp.find_groups(name='social', first=True).subgroups\n [Group: \"social/foo_subgroup\"]\n\n >>> kp.root_group\n Group: \"/\"\n\n\nAdding Entries\n--------------\n**add_entry** (destination_group, title, username, password, url=None, notes=None, tags=None, expiry_time=None, icon=None, force_creation=False)\n\n**delete_entry** (entry)\n\n**move_entry** (entry, destination_group)\n\nwhere ``destination_group`` is a ``Group`` instance. ``entry`` is an ``Entry`` instance. ``title``, ``username``, ``password``, ``url``, ``notes``, ``tags``, ``icon`` are strings. ``expiry_time`` is a ``datetime`` instance.\n\nIf ``expiry_time`` is a naive datetime object (i.e. ``expiry_time.tzinfo`` is not set), the timezone is retrieved from ``dateutil.tz.gettz()``.\n\n.. code:: python\n\n # add a new entry to the Root group\n >>> kp.add_entry(kp.root_group, 'testing', 'foo_user', 'passw0rd')\n Entry: \"testing (foo_user)\"\n\n # add a new entry to the social group\n >>> group = find_groups(name='social', first=True)\n >>> entry = kp.add_entry(group, 'testing', 'foo_user', 'passw0rd')\n Entry: \"testing (foo_user)\"\n\n # save the database\n >>> kp.save()\n\n # delete an entry\n >>> kp.delete_entry(entry)\n\n # move an entry\n >>> kp.move_entry(entry, kp.root_group)\n\n # save the database\n >>> kp.save()\n\nAdding Groups\n--------------\n**add_group** (destination_group, group_name, icon=None, notes=None)\n\n**delete_group** (group)\n\n**move_group** (group, destination_group)\n\n``destination_group`` and ``group`` are instances of ``Group``. ``group_name`` is a string\n\n.. code:: python\n\n # add a new group to the Root group\n >>> group = kp.add_group(kp.root_group, 'social')\n\n # add a new group to the social group\n >>> group2 = kp.add_group(group, 'gmail')\n Group: \"social/gmail\"\n\n # save the database\n >>> kp.save()\n\n # delete a group\n >>> kp.delete_group(group)\n\n # move a group\n >>> kp.move_group(group2, kp.root_group)\n\n # save the database\n >>> kp.save()\n\nAttachments\n-----------\n\nIn this section, *binary* refers to the bytes of the attached data (stored at the root level of the database), while *attachment* is a reference to a binary (stored in an entry). A binary can have none, one or many attachments.\n\n**add_binary** (data, compressed=True, protected=True)\n\nwhere ``data`` is bytes. Adds a blob of data to the database. The attachment reference must still be added to an entry (see below). ``compressed`` only applies to KDBX3 and ``protected`` only applies to KDBX4. Returns id of attachment.\n\n**delete_binary** (id)\n\nwhere ``id`` is an int. Removes binary data from the database and deletes any attachments that reference it. Since attachments reference binaries by their positional index, attachments that reference binaries with id > ``id`` will automatically be decremented.\n\n**find_attachments** (id=None, filename=None, element=None, recursive=True, regex=False, flags=None, history=False, first=False)\n\nwhere ``id`` is an int, ``filename`` is a string, and element is an ``Entry`` or ``Group`` to search under.\n\n* if ``first=False``, the function returns a list of ``Attachment`` s or ``[]`` if there are no matches\n* if ``first=True``, the function returns the first ``Attachment`` match, or ``None`` if there are no matches\n\n**binaries**\n\nlist of bytestrings containing binary data. List index corresponds to attachment id.\n\n**attachments**\n\nlist containing all ``Attachment`` s in the database.\n\n**Entry.add_attachment** (id, filename)\n\nwhere ``id`` is an int and ``filename`` is a string. Creates a reference using the given filename to a database binary. The existence of a binary with the given id is not checked. Returns ``Attachment``.\n\n**Entry.delete_attachment** (attachment)\n\nwhere ``attachment`` is an ``Attachment``. Deletes a reference to a database binary.\n\n**Entry.attachments**\n\nlist of ``Attachment`` s for this Entry.\n\n**Attachment.id**\n\nid of data that this attachment points to\n\n**Attachment.filename**\n\nstring representing this attachment\n\n**Attachment.data**\n\nthe data that this attachment points to. Raises ``BinaryError`` if data does not exist.\n\n**Attachment.entry**\n\nthe entry that this attachment is attached to\n\n.. code:: python\n\n >>> e = kp.add_entry(kp.root_group, title='foo', username='', password='')\n\n # add attachment data to the db\n >>> binary_id = kp.add_binary(b'Hello world')\n\n >>> kp.binaries\n [b'Hello world']\n\n # add attachment reference to entry\n >>> a = e.add_attachment(binary_id, 'hello.txt')\n >>> a\n Attachment: 'hello.txt' -> 0\n \n # access attachments\n >>> a\n Attachment: 'hello.txt' -> 0\n >>> a.id\n 0\n >>> a.filename\n 'hello.txt'\n >>> a.data\n b'Hello world'\n >>> e.attachments\n [Attachment: 'hello.txt' -> 0]\n\n # list all attachments in the database\n >>> kp.attachments\n [Attachment: 'hello.txt' -> 0]\n\n # search attachments\n >>> kp.find_attachments(filename='hello.txt')\n [Attachment: 'hello.txt' -> 0]\n\n # delete attachment reference\n >>> e.delete_attachment(a)\n\n # or, delete both attachment reference and binary\n >>> kp.delete_binary(binary_id)\n\nMiscellaneous\n-------------\n**read** (filename=None, password=None, keyfile=None, transformed_key=None)\n\nwhere ``filename``, ``password``, and ``keyfile`` are strings. ``filename`` is the path to the database, ``password`` is the master password string, and ``keyfile`` is the path to the database keyfile. At least one of ``password`` and ``keyfile`` is required. Alternatively, the derived key can be supplied directly through ``transformed_key``.\n\nCan raise ``CredentialsError``, ``HeaderChecksumError``, or ``PayloadChecksumError``.\n\n**save** (filename=None)\n\nwhere ``filename`` is the path of the file to save to. If ``filename`` is not given, the path given in ``read`` will be used.\n\n**password**\n\nstring containing database password. Can also be set. Use ``None`` for no password.\n\n**keyfile**\n\nstring containing path to the database keyfile. Can also be set. Use ``None`` for no keyfile.\n\n**version**\n\ntuple containing database version. e.g. ``(3, 1)`` is a KDBX version 3.1 database.\n\n**encryption_algorithm**\n\nstring containing algorithm used to encrypt database. Possible values are ``aes256``, ``chacha20``, and ``twofish``.\n\n**create_database** (filename, password=None, keyfile=None, transformed_key=None)\n\ncreate a new database at ``filename`` with supplied credentials. Returns ``PyKeePass`` object\n\n**trash_group** (group)\n\nmove a group to the recycle bin. The recycle bin is created if it does not exit. ``group`` must be an empty Group.\n\n**empty_group** (group)\n\ndelete all entries and subgroups of a group. ``group`` is an instance of ``Group``.\n\nTests\n-------------\n\nTo run them issue :code:`python tests/tests.py`", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/libkeepass/pykeepass", "keywords": "", "license": "GPL3", "maintainer": "", "maintainer_email": "", "name": "pykeepass", "package_url": "https://pypi.org/project/pykeepass/", "platform": "", "project_url": "https://pypi.org/project/pykeepass/", "project_urls": { "Homepage": "https://github.com/libkeepass/pykeepass" }, "release_url": "https://pypi.org/project/pykeepass/4.0.1/", "requires_dist": null, "requires_python": "", "summary": "Python library to interact with keepass databases (supports KDBX3 and KDBX4)", "version": "4.0.1", "yanked": false, "yanked_reason": null }, "last_serial": 10434561, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "c76f3ffd52512acb4ed0506b476fce92", "sha256": "6354b37b29cb1a568e0fd40d6605fb905582a7f77336a209dd5e9f888b15cd73" }, "downloads": -1, "filename": "pykeepass-1.0.tar.gz", "has_sig": false, "md5_digest": "c76f3ffd52512acb4ed0506b476fce92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3906, "upload_time": "2016-10-02T15:57:18", "upload_time_iso_8601": "2016-10-02T15:57:18.286046Z", "url": "https://files.pythonhosted.org/packages/68/bc/82e23e99fa99d738c32e3c38ad0a96d55a05aa76c444c8b7d6c9a2a883d4/pykeepass-1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1": [ { "comment_text": "", "digests": { "md5": "60b61f303d152326f1f1bc09bc865af1", "sha256": "cfd19f68830190f24549d6abd29d6d6f29cf60751155406167e47d9df58f8e52" }, "downloads": -1, "filename": "pykeepass-1.1.tar.gz", "has_sig": false, "md5_digest": "60b61f303d152326f1f1bc09bc865af1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3970, "upload_time": "2016-10-02T16:50:20", "upload_time_iso_8601": "2016-10-02T16:50:20.418575Z", "url": "https://files.pythonhosted.org/packages/43/1e/43337505c42a79610a80c1c73e7fd078aa85e89b0b2bd79290659e49f308/pykeepass-1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2": [ { "comment_text": "", "digests": { "md5": "0e425312eb4b1ac4736ae07645953c49", "sha256": "5c81d69d265370568e11e8548fa9c28b76e111e634c57dc54a823089e6090b0c" }, "downloads": -1, "filename": "pykeepass-1.2.tar.gz", "has_sig": false, "md5_digest": "0e425312eb4b1ac4736ae07645953c49", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4817, "upload_time": "2016-10-02T17:34:00", "upload_time_iso_8601": "2016-10-02T17:34:00.645653Z", "url": "https://files.pythonhosted.org/packages/b7/b8/3fb9cd8114b43439efdc6be41a616d9c9eec32f864f64e5544321f81137d/pykeepass-1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "ee9d60d008521dbfd7330d0b7d844add", "sha256": "9e367b7ec02fe8ecbf21ab12859746b23c7031f2cce7382c8defc05426fac76f" }, "downloads": -1, "filename": "pykeepass-1.2.1.tar.gz", "has_sig": false, "md5_digest": "ee9d60d008521dbfd7330d0b7d844add", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4817, "upload_time": "2016-10-02T17:35:48", "upload_time_iso_8601": "2016-10-02T17:35:48.795598Z", "url": "https://files.pythonhosted.org/packages/d5/91/52c38d7a60c6154a35a226cfaad294375dabde24af6507f3b3873113e734/pykeepass-1.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "1967db1b3edc611b070e6dc7bba4994f", "sha256": "0efe1ce171787ef85646f9a52228e37ab11dab78e20603b946b01e9f2e880184" }, "downloads": -1, "filename": "pykeepass-1.3.0.tar.gz", "has_sig": false, "md5_digest": "1967db1b3edc611b070e6dc7bba4994f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4965, "upload_time": "2016-10-03T06:05:19", "upload_time_iso_8601": "2016-10-03T06:05:19.152281Z", "url": "https://files.pythonhosted.org/packages/4b/bb/e637198bf5636ad7099b69bb05b00b13b7ead7fcffe66ffc8d3821d9b235/pykeepass-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "62b38fee0411e524a2b5f1f8c500bbbf", "sha256": "de57bc78f866dbc3d2c591b99d9c2419ca45b8ecbe6c5616dd710014162c85b0" }, "downloads": -1, "filename": "pykeepass-1.4.0.tar.gz", "has_sig": false, "md5_digest": "62b38fee0411e524a2b5f1f8c500bbbf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5086, "upload_time": "2016-10-03T06:36:19", "upload_time_iso_8601": "2016-10-03T06:36:19.301700Z", "url": "https://files.pythonhosted.org/packages/0d/d5/e36a6710da0e779584a6581ce2cfac05748dd84f28c5e275f1a30edc0e09/pykeepass-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "f77efa8678c127fd3e09b49f5e3237a5", "sha256": "b9a804eff59b3420c25bddaf6d44cf0bca3eedbb997f00a5efe227eea8274735" }, "downloads": -1, "filename": "pykeepass-1.4.1.tar.gz", "has_sig": false, "md5_digest": "f77efa8678c127fd3e09b49f5e3237a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5089, "upload_time": "2016-10-04T11:42:20", "upload_time_iso_8601": "2016-10-04T11:42:20.907254Z", "url": "https://files.pythonhosted.org/packages/7f/e4/3c05f5b71b6d09a025696c9137c686f1832cd5449e2e059056eb66e1b1ae/pykeepass-1.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "687a13306a834f3053bc31a2926efa99", "sha256": "824bcfbd133248c3dca2b59ef62ebca8124971f6bd5eec4b0bc2ba76016c0391" }, "downloads": -1, "filename": "pykeepass-1.4.2.tar.gz", "has_sig": false, "md5_digest": "687a13306a834f3053bc31a2926efa99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5092, "upload_time": "2016-10-04T12:14:17", "upload_time_iso_8601": "2016-10-04T12:14:17.647940Z", "url": "https://files.pythonhosted.org/packages/cc/59/ac58b0ab66d14547a67bbf06526a420cf3e3577ffec8ac6757400496e48b/pykeepass-1.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "245dae3367767372b8e417d459067638", "sha256": "b2048aedfa76a9fb1d77dc2f5c83e1c3e550fbcddee79aa8926b5cf7e430a6d1" }, "downloads": -1, "filename": "pykeepass-1.5.0.tar.gz", "has_sig": false, "md5_digest": "245dae3367767372b8e417d459067638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5849, "upload_time": "2016-10-04T13:17:25", "upload_time_iso_8601": "2016-10-04T13:17:25.891243Z", "url": "https://files.pythonhosted.org/packages/4b/0b/f5dd8ce69c02ae3767c992cc8f7e3e4e3802c6d37f6abc43cde9942f0036/pykeepass-1.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "88e038429f9297622a36d7263792a1a4", "sha256": "b9342b3f81342246a50b8157c2d19f8432f9831004fd3b1d09bafd770f4a2607" }, "downloads": -1, "filename": "pykeepass-1.5.1.tar.gz", "has_sig": false, "md5_digest": "88e038429f9297622a36d7263792a1a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5857, "upload_time": "2016-10-04T14:03:44", "upload_time_iso_8601": "2016-10-04T14:03:44.251585Z", "url": "https://files.pythonhosted.org/packages/c4/74/b08fb9f3319e8740baf7dee32fbd18c6615fcbcb39f5419232573cfeff76/pykeepass-1.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "553c628d99c3617bbfd02fe7aaeb1012", "sha256": "3b5564a26ed9bcf7d47f6bc94d79dec2863cec2f451256099b7b92255b97d7d0" }, "downloads": -1, "filename": "pykeepass-1.5.2.tar.gz", "has_sig": false, "md5_digest": "553c628d99c3617bbfd02fe7aaeb1012", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5856, "upload_time": "2016-10-05T13:35:55", "upload_time_iso_8601": "2016-10-05T13:35:55.048103Z", "url": "https://files.pythonhosted.org/packages/4e/12/462834fb02db67ea4f2dcd3c08d2cfd3a69e48228706b020549574a7f34d/pykeepass-1.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.5.3": [ { "comment_text": "", "digests": { "md5": "08c5875b8fbcfd4c42833cdec31e0972", "sha256": "3b55f0a91a52460d17c7bd3e163bf52cd376a8ba6801edf62576dacd2acd0e52" }, "downloads": -1, "filename": "pykeepass-1.5.3.tar.gz", "has_sig": false, "md5_digest": "08c5875b8fbcfd4c42833cdec31e0972", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5852, "upload_time": "2016-10-05T13:39:06", "upload_time_iso_8601": "2016-10-05T13:39:06.572151Z", "url": "https://files.pythonhosted.org/packages/a0/88/8314f72cb2d58734a90dda08fa99545b3cc58e334957e19d8a602d98f253/pykeepass-1.5.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0": [ { "comment_text": "", "digests": { "md5": "2b14288978af68bb805c8fe18bf20c12", "sha256": "856bebb7db19b37a59c7a30f4ebcc9097c5b0676454c0e3ebaf4113e543ad4a9" }, "downloads": -1, "filename": "pykeepass-2.0.tar.gz", "has_sig": false, "md5_digest": "2b14288978af68bb805c8fe18bf20c12", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7997, "upload_time": "2016-10-08T13:30:20", "upload_time_iso_8601": "2016-10-08T13:30:20.150843Z", "url": "https://files.pythonhosted.org/packages/aa/11/3c118c2591780588045be19cd70561e2e204858dee294f4d7115c8b8d15c/pykeepass-2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "b070662496da4e301455a676a15a1ce0", "sha256": "89f44717ccb6d4e79eac7020df7bb13cb157b9c29a2cb8af99cf42d27c10d13b" }, "downloads": -1, "filename": "pykeepass-2.0.1.tar.gz", "has_sig": false, "md5_digest": "b070662496da4e301455a676a15a1ce0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8016, "upload_time": "2016-10-08T14:49:18", "upload_time_iso_8601": "2016-10-08T14:49:18.209016Z", "url": "https://files.pythonhosted.org/packages/f1/b5/b3f1eb4c88641d30251ce0c7dcff089edf439f45392bfa04d96782ffa4d0/pykeepass-2.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "0dda26d2d0eedf37d3557cb5f935095c", "sha256": "00b3cf0f5e6364f166849b9fd50ac8e1078484dfba954a9c8b54d6256a457b2f" }, "downloads": -1, "filename": "pykeepass-2.1.0.tar.gz", "has_sig": false, "md5_digest": "0dda26d2d0eedf37d3557cb5f935095c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8496, "upload_time": "2016-10-09T08:52:24", "upload_time_iso_8601": "2016-10-09T08:52:24.142868Z", "url": "https://files.pythonhosted.org/packages/1b/30/3b67bf08bca19f4530a50046cc3fb8e261e9554f6f135d95d2416994f4b9/pykeepass-2.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "eb48e7af4ec6585f19afdabd8c97b330", "sha256": "f592c3835fc8580dcb7224d02ea4d750c51647cf3ea4a61983c4c6a345710496" }, "downloads": -1, "filename": "pykeepass-2.1.1.tar.gz", "has_sig": false, "md5_digest": "eb48e7af4ec6585f19afdabd8c97b330", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8445, "upload_time": "2016-10-09T09:56:05", "upload_time_iso_8601": "2016-10-09T09:56:05.164241Z", "url": "https://files.pythonhosted.org/packages/40/8c/d68c03ef208bdd9092b705637f72e9623a29943f1340f3cb7df8b2c166af/pykeepass-2.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "176e309e3b2b2df928fed6adb953a4f4", "sha256": "240a699f3d99dcd44a47ebe260510be40ee2a308c4826f458cd22ef3c987ae18" }, "downloads": -1, "filename": "pykeepass-2.2.0.tar.gz", "has_sig": false, "md5_digest": "176e309e3b2b2df928fed6adb953a4f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8605, "upload_time": "2016-10-10T07:31:40", "upload_time_iso_8601": "2016-10-10T07:31:40.275276Z", "url": "https://files.pythonhosted.org/packages/52/ca/f40b18c1e7b3770566ceb2aa7e409a2a3c01158bef3cd24ba2a805d30fc8/pykeepass-2.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.1": [ { "comment_text": "", "digests": { "md5": "00864b52f6624bd32cbef66d161e3b42", "sha256": "f867ee516b05fc7a9d8bdcae30daf1ab8e353ebacb4146a39d7660097d0aa474" }, "downloads": -1, "filename": "pykeepass-2.2.1.tar.gz", "has_sig": false, "md5_digest": "00864b52f6624bd32cbef66d161e3b42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8747, "upload_time": "2016-10-10T12:55:34", "upload_time_iso_8601": "2016-10-10T12:55:34.722991Z", "url": "https://files.pythonhosted.org/packages/bf/5f/1f8c70f641d77f5e695cc431fe3ac84371dd06d1a7a0df985060b7a679c3/pykeepass-2.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.2": [ { "comment_text": "", "digests": { "md5": "c2887f3459b87cb1aadbfeeee42a8b1b", "sha256": "8e416b3d2687e550e66d2066ce434b7d82d1a84731baf00a252d6fc2a7cd9dcc" }, "downloads": -1, "filename": "pykeepass-2.2.2.tar.gz", "has_sig": false, "md5_digest": "c2887f3459b87cb1aadbfeeee42a8b1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8758, "upload_time": "2016-10-10T13:01:23", "upload_time_iso_8601": "2016-10-10T13:01:23.211455Z", "url": "https://files.pythonhosted.org/packages/67/31/b97ea8606be070f3421bad07ee137596bb2eec1e3a1cc16565fa4626f974/pykeepass-2.2.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.3": [ { "comment_text": "", "digests": { "md5": "cb0a1021f04bb36aa1aa44cd0e9c59c2", "sha256": "86757cd00d68bc52809744692d3dc6314f26bd03d81d0dad831fca4b06e94eba" }, "downloads": -1, "filename": "pykeepass-2.2.3.tar.gz", "has_sig": false, "md5_digest": "cb0a1021f04bb36aa1aa44cd0e9c59c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9795, "upload_time": "2016-10-13T08:36:09", "upload_time_iso_8601": "2016-10-13T08:36:09.554328Z", "url": "https://files.pythonhosted.org/packages/f5/84/55732a184d61c711487bbf7cc25ef47f90478ebe643d86719144e454db87/pykeepass-2.2.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.4": [ { "comment_text": "", "digests": { "md5": "be39fcc9d30d8eddff276346ce71f527", "sha256": "84e5969c8c14358ef441b11a3f35ca8ae652e9f14ba60c1ce30803a764369d27" }, "downloads": -1, "filename": "pykeepass-2.2.4.tar.gz", "has_sig": false, "md5_digest": "be39fcc9d30d8eddff276346ce71f527", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9800, "upload_time": "2016-10-13T08:50:11", "upload_time_iso_8601": "2016-10-13T08:50:11.684691Z", "url": "https://files.pythonhosted.org/packages/3d/30/f5caa16c67fe0e5fdd19d2c7cbab6e44dabb7f541e9c861c35b23520c8f9/pykeepass-2.2.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "cda16502a47d3806f1649ea95824d936", "sha256": "ac2132a9da9712ccb9bbc25fc6d3532dd6fc2cdf71f104f831e68c903cc12582" }, "downloads": -1, "filename": "pykeepass-2.3.0.tar.gz", "has_sig": false, "md5_digest": "cda16502a47d3806f1649ea95824d936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9038, "upload_time": "2016-10-13T11:26:53", "upload_time_iso_8601": "2016-10-13T11:26:53.454944Z", "url": "https://files.pythonhosted.org/packages/73/4d/ce7d488d9285045df85df45037bacb6cdad960660871d086b609b95645eb/pykeepass-2.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.1": [ { "comment_text": "", "digests": { "md5": "09321d3d8430636c35b0f112df886789", "sha256": "460a733f488bf0c3e20deda9cdfc9a2e5f01919f4623aa1f253f1ff3c563d778" }, "downloads": -1, "filename": "pykeepass-2.3.1.tar.gz", "has_sig": false, "md5_digest": "09321d3d8430636c35b0f112df886789", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9068, "upload_time": "2016-10-20T13:54:08", "upload_time_iso_8601": "2016-10-20T13:54:08.065877Z", "url": "https://files.pythonhosted.org/packages/e1/8d/533fd66d097b023dfb7320437a3c01722a9779dc6ae44aa9f6b0ed67766f/pykeepass-2.3.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "b4bde5bb4539559094eb3f64cc4f5f19", "sha256": "fc3733c398bb0ef9ca8eb24d7ff1bb4bd048e57aea76fb1803907574ce494963" }, "downloads": -1, "filename": "pykeepass-2.4.0.tar.gz", "has_sig": false, "md5_digest": "b4bde5bb4539559094eb3f64cc4f5f19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9387, "upload_time": "2016-10-20T14:44:10", "upload_time_iso_8601": "2016-10-20T14:44:10.169847Z", "url": "https://files.pythonhosted.org/packages/65/eb/693cc503f382377155bb472d43a5c1d2d11d96b40133236e728eb4f3b1ae/pykeepass-2.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "7fadaecca92ebc73dd21099c4df6ca8b", "sha256": "f5dea40ebe9b3dc5cd0f392f98cd5be693acbbad36427f1bd0aa6d24d065d066" }, "downloads": -1, "filename": "pykeepass-2.4.1.tar.gz", "has_sig": false, "md5_digest": "7fadaecca92ebc73dd21099c4df6ca8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9117, "upload_time": "2016-10-25T08:59:16", "upload_time_iso_8601": "2016-10-25T08:59:16.870705Z", "url": "https://files.pythonhosted.org/packages/d6/91/875a8cbcf26aa9ee028212c8cd9a3db241a2a72cc877847467172cd51920/pykeepass-2.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.2": [ { "comment_text": "", "digests": { "md5": "3c05a43a59b00be58968f204ab0f97fc", "sha256": "9e3b0b6648a56150e490e67e9b9313dbf7dba2b75d055dc4470bc26cfe9ecbdd" }, "downloads": -1, "filename": "pykeepass-2.4.2.tar.gz", "has_sig": false, "md5_digest": "3c05a43a59b00be58968f204ab0f97fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9540, "upload_time": "2016-11-07T11:13:32", "upload_time_iso_8601": "2016-11-07T11:13:32.934999Z", "url": "https://files.pythonhosted.org/packages/83/8b/09f7c416d1f0927cc7e50ef13cb2c8175dfd096d150d4475b2d60e6297dd/pykeepass-2.4.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.3": [ { "comment_text": "", "digests": { "md5": "1ffdd30f260a0df867c1a207d8e9920b", "sha256": "a8467f475ae07ffad4c315f16f5d2d2938f20784f19608fa5b145989cef303a8" }, "downloads": -1, "filename": "pykeepass-2.4.3.tar.gz", "has_sig": false, "md5_digest": "1ffdd30f260a0df867c1a207d8e9920b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9376, "upload_time": "2016-11-07T12:44:07", "upload_time_iso_8601": "2016-11-07T12:44:07.106244Z", "url": "https://files.pythonhosted.org/packages/b2/a7/ff0751fe0fd9266e69848720da3b44903598c7907f8d102e99e85bb63f61/pykeepass-2.4.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.4": [ { "comment_text": "", "digests": { "md5": "51b8dba82f3f02603558ed1d65f9a19a", "sha256": "27ae8d6215418ffc055374f9fc8aaf28d51fe6f432dfabb00bbc7a5681838f39" }, "downloads": -1, "filename": "pykeepass-2.4.4.tar.gz", "has_sig": false, "md5_digest": "51b8dba82f3f02603558ed1d65f9a19a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9393, "upload_time": "2016-11-11T07:40:11", "upload_time_iso_8601": "2016-11-11T07:40:11.324091Z", "url": "https://files.pythonhosted.org/packages/4c/0e/34c44022a0caaa8939c8bf0864a2e30d1cbeba794a8366c98d3644d61814/pykeepass-2.4.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.5": [ { "comment_text": "", "digests": { "md5": "f1ad3273eb994c3db7270d2f3a678775", "sha256": "d428fd473097a8dfef12c1945aafc5ffebdcaefb9c31213b987391834a209c39" }, "downloads": -1, "filename": "pykeepass-2.4.5.tar.gz", "has_sig": false, "md5_digest": "f1ad3273eb994c3db7270d2f3a678775", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9418, "upload_time": "2017-02-23T08:12:37", "upload_time_iso_8601": "2017-02-23T08:12:37.632867Z", "url": "https://files.pythonhosted.org/packages/d8/46/ac6f8a72e474bfaf381dfbee3e885e664606052b1ae09e9caef6619b3d25/pykeepass-2.4.5.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "e5dd18fd8e9139b9c79ba94cec52ad82", "sha256": "ec07246ff431e3130e90643ac66e8a7d8d3d5643b17c73c2f98768b6bc9052d4" }, "downloads": -1, "filename": "pykeepass-2.5.0.tar.gz", "has_sig": false, "md5_digest": "e5dd18fd8e9139b9c79ba94cec52ad82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10020, "upload_time": "2017-03-19T12:19:31", "upload_time_iso_8601": "2017-03-19T12:19:31.835168Z", "url": "https://files.pythonhosted.org/packages/1c/9a/3189c519569f3b8b233c5424b292102bdb63218409f2610a1c11b15389f2/pykeepass-2.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.1": [ { "comment_text": "", "digests": { "md5": "222c9a2ea038033ca3ed70353f4d0424", "sha256": "7a126901d2cd6a030ff47740cfabe9d682485ba849640869261f81e803e46399" }, "downloads": -1, "filename": "pykeepass-2.5.1.tar.gz", "has_sig": false, "md5_digest": "222c9a2ea038033ca3ed70353f4d0424", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12323, "upload_time": "2017-03-22T08:17:58", "upload_time_iso_8601": "2017-03-22T08:17:58.672357Z", "url": "https://files.pythonhosted.org/packages/7e/b9/591497063b9557672ae5fdae3b7f28aec411f9c785654cecc003c81c8676/pykeepass-2.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.2": [ { "comment_text": "", "digests": { "md5": "f345dd7feb87e7d337a7631247c6a850", "sha256": "98320c8658af55e889a0bcd8e55f3613c04ca001254acce6b6135ea58769b694" }, "downloads": -1, "filename": "pykeepass-2.5.2.tar.gz", "has_sig": false, "md5_digest": "f345dd7feb87e7d337a7631247c6a850", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12465, "upload_time": "2017-04-05T05:51:44", "upload_time_iso_8601": "2017-04-05T05:51:44.553724Z", "url": "https://files.pythonhosted.org/packages/6b/ef/1d5a50a4d96f7cd012cde3102e420b1b24c4e2e450ccee206c0d1a4c7b8a/pykeepass-2.5.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "a947da8c4ce05d12c5cd251fb3dc47c4", "sha256": "435ae7bbe59bf60ae86a36b92e1f2967a69d13b9fb382ef9ed0a793f31188dfa" }, "downloads": -1, "filename": "pykeepass-2.6.0.tar.gz", "has_sig": false, "md5_digest": "a947da8c4ce05d12c5cd251fb3dc47c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12157, "upload_time": "2017-04-19T07:08:16", "upload_time_iso_8601": "2017-04-19T07:08:16.961963Z", "url": "https://files.pythonhosted.org/packages/64/bc/c331534be42c5992d13c2048290ac01155b386d3390bc84a286a73ab9f31/pykeepass-2.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.6.1": [ { "comment_text": "", "digests": { "md5": "30eeec94b7c6b08fc02c3310a270c2a4", "sha256": "61edcab9fa093ebaa6be2ec730404d841336d00c1b687085e9bac92bddc2c5e8" }, "downloads": -1, "filename": "pykeepass-2.6.1.tar.gz", "has_sig": false, "md5_digest": "30eeec94b7c6b08fc02c3310a270c2a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12178, "upload_time": "2017-05-16T08:36:23", "upload_time_iso_8601": "2017-05-16T08:36:23.685526Z", "url": "https://files.pythonhosted.org/packages/30/3b/38ca6ef2b6607ec318d383ea927ebcc98922170a7d34fe3c28e6056d54b3/pykeepass-2.6.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.6.2": [ { "comment_text": "", "digests": { "md5": "b8e349ac8a1a06c8e5b8c5a90a2b5994", "sha256": "9456c8193dd308d88ca543c4f001c01c677ddffdcfe44c26c4d3566fa6fb47b0" }, "downloads": -1, "filename": "pykeepass-2.6.2.tar.gz", "has_sig": false, "md5_digest": "b8e349ac8a1a06c8e5b8c5a90a2b5994", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12238, "upload_time": "2017-06-08T12:50:35", "upload_time_iso_8601": "2017-06-08T12:50:35.412451Z", "url": "https://files.pythonhosted.org/packages/88/d3/a75f7d3eb724270b5b5338659e12ccbd1840edef2ec88c20329afc9991ff/pykeepass-2.6.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.7.0": [ { "comment_text": "", "digests": { "md5": "b04fc83ef2cb5342df031cfb4b35c238", "sha256": "c35f831454d677481aab78f13d6b089ac7a5209456854f61bb97600407327fd3" }, "downloads": -1, "filename": "pykeepass-2.7.0.tar.gz", "has_sig": false, "md5_digest": "b04fc83ef2cb5342df031cfb4b35c238", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13599, "upload_time": "2017-06-25T15:20:30", "upload_time_iso_8601": "2017-06-25T15:20:30.821642Z", "url": "https://files.pythonhosted.org/packages/6d/8a/2132bb9a2e09bc421146e89645ec64b6d779a01fc105446f83fb740eea8a/pykeepass-2.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.7.1": [ { "comment_text": "", "digests": { "md5": "6caf7960744e850afdec9c1dc0e75b3b", "sha256": "81afe855a17318e11b1a05be6ac583aaf80dc3ec0868cb62bb22132aa70e0156" }, "downloads": -1, "filename": "pykeepass-2.7.1.tar.gz", "has_sig": false, "md5_digest": "6caf7960744e850afdec9c1dc0e75b3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13891, "upload_time": "2017-06-27T08:02:52", "upload_time_iso_8601": "2017-06-27T08:02:52.275303Z", "url": "https://files.pythonhosted.org/packages/64/03/ab567bb34fa549683b630ede1a002c1724bee9d96c34d53049709f631bdf/pykeepass-2.7.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.7.2": [ { "comment_text": "", "digests": { "md5": "6a36c237a5e141fe38f2b2f7d2d6a939", "sha256": "a3e758f28c66890bcbd986ceaf7bb444747c9bab025498187b11badfcc8082c0" }, "downloads": -1, "filename": "pykeepass-2.7.2.tar.gz", "has_sig": false, "md5_digest": "6a36c237a5e141fe38f2b2f7d2d6a939", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14539, "upload_time": "2017-08-11T08:44:11", "upload_time_iso_8601": "2017-08-11T08:44:11.309480Z", "url": "https://files.pythonhosted.org/packages/55/ba/accd89c69145d160b8519570665b140668d4efb59f5bcc4e45c874e7cfec/pykeepass-2.7.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.8.0": [ { "comment_text": "", "digests": { "md5": "a0fb2d8d5b47e833aa6c399a8446ce20", "sha256": "99c4ed55918591e60fe27ede6e585add2c117c5e699a4f1fb2476243adc1fc5a" }, "downloads": -1, "filename": "pykeepass-2.8.0.tar.gz", "has_sig": false, "md5_digest": "a0fb2d8d5b47e833aa6c399a8446ce20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15579, "upload_time": "2017-11-09T12:17:30", "upload_time_iso_8601": "2017-11-09T12:17:30.320461Z", "url": "https://files.pythonhosted.org/packages/e8/d1/5b02b8a417a076a1f3c0ff5c77d340f16b7e702d454ac07a97244e544dca/pykeepass-2.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.8.1": [ { "comment_text": "", "digests": { "md5": "b2bf27853da3b05bf2e9cc0b63083871", "sha256": "ab73ac958b23f18a78d7189aadb59498d46c93b0d5151e4f62782146a73f0230" }, "downloads": -1, "filename": "pykeepass-2.8.1.tar.gz", "has_sig": false, "md5_digest": "b2bf27853da3b05bf2e9cc0b63083871", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16072, "upload_time": "2018-02-19T11:32:05", "upload_time_iso_8601": "2018-02-19T11:32:05.004993Z", "url": "https://files.pythonhosted.org/packages/2a/85/ffc201ba3c2930bb24a58cc77fcfea41cf0ae673ca484f80efec148305d0/pykeepass-2.8.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.8.2": [ { "comment_text": "", "digests": { "md5": "388b9ed3be57a94284fa9b1203331ff4", "sha256": "e9e0d29a22bfe6b4d9636a52baaac60e5bd719d7e28d5d180a1471f3d43c0b1f" }, "downloads": -1, "filename": "pykeepass-2.8.2.tar.gz", "has_sig": false, "md5_digest": "388b9ed3be57a94284fa9b1203331ff4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16662, "upload_time": "2018-05-31T05:44:58", "upload_time_iso_8601": "2018-05-31T05:44:58.782222Z", "url": "https://files.pythonhosted.org/packages/f1/d9/94ce5408642bcccc4428d20234c2d49a54a9eb0d5e9abf2a8e88ebb33482/pykeepass-2.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "f23d23ca744fdbc91808e377ec827da8", "sha256": "ac537a8ff5e8e49640d87667e0541d1cb155cb539ef0fb87b548c40ef98bc116" }, "downloads": -1, "filename": "pykeepass-3.0.0.tar.gz", "has_sig": false, "md5_digest": "f23d23ca744fdbc91808e377ec827da8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15763, "upload_time": "2018-09-06T12:28:04", "upload_time_iso_8601": "2018-09-06T12:28:04.581113Z", "url": "https://files.pythonhosted.org/packages/2b/1e/aff06dcb9197d438b0a853946109fade72347c23a2ef0c70bf76799d02c6/pykeepass-3.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "a92dfd0aa65b88141fe7652a933107df", "sha256": "53c93e95d8636bdcf681e72572c877197f60917f0848c8a82e0c5a4b6fd0816e" }, "downloads": -1, "filename": "pykeepass-3.0.1.tar.gz", "has_sig": false, "md5_digest": "a92dfd0aa65b88141fe7652a933107df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28711, "upload_time": "2018-09-07T06:25:17", "upload_time_iso_8601": "2018-09-07T06:25:17.919539Z", "url": "https://files.pythonhosted.org/packages/bb/fd/c934b6fa98a6de7ab1cddb49f495a9e1c77b0b63d204c842411bfd2ae9a9/pykeepass-3.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "682a826856bfd74bbb3d1ea8d37f7859", "sha256": "20b53d10e9c319301929f029579623562c815c4b4c787bf96d4bd7680581d6cd" }, "downloads": -1, "filename": "pykeepass-3.0.2.tar.gz", "has_sig": false, "md5_digest": "682a826856bfd74bbb3d1ea8d37f7859", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38357, "upload_time": "2018-09-07T08:37:01", "upload_time_iso_8601": "2018-09-07T08:37:01.011581Z", "url": "https://files.pythonhosted.org/packages/c4/09/c8b11bfd95da6ca9ad731847d5a0bda42281e520bb7f72108f29c2dca5e8/pykeepass-3.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "122cf45d7774b3e5c4ebdd6f23269edc", "sha256": "2c9e2ddb03ee696ed8aa72c2cddfb81280614864e003226141d68b975aa56f6f" }, "downloads": -1, "filename": "pykeepass-3.0.3.tar.gz", "has_sig": false, "md5_digest": "122cf45d7774b3e5c4ebdd6f23269edc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41929, "upload_time": "2019-02-18T13:12:26", "upload_time_iso_8601": "2019-02-18T13:12:26.478518Z", "url": "https://files.pythonhosted.org/packages/d8/87/29856dd2378209422107b7dc46b94d7bc393503b4745d1e63ca5f4e2c658/pykeepass-3.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "26e1f2d178ad0a50e87aacaade7436bb", "sha256": "ab19f2c0b5b66dd587cb631c8b13f0a13a5131ad080cc531bd3ad4e028e018d2" }, "downloads": -1, "filename": "pykeepass-3.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "26e1f2d178ad0a50e87aacaade7436bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 50734, "upload_time": "2019-10-24T21:11:20", "upload_time_iso_8601": "2019-10-24T21:11:20.550049Z", "url": "https://files.pythonhosted.org/packages/95/91/e276d93962532684ac611351692acd3bfdb1f22148c64c16fea4dc418dcf/pykeepass-3.1.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2683569f0aea69ac8ae7e06c4925f3b4", "sha256": "968e344a8c693a0390fac53c21d7337797a9a28a04be2b8f04320302a2046a0a" }, "downloads": -1, "filename": "pykeepass-3.1.0.tar.gz", "has_sig": false, "md5_digest": "2683569f0aea69ac8ae7e06c4925f3b4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43783, "upload_time": "2019-10-24T21:11:22", "upload_time_iso_8601": "2019-10-24T21:11:22.983802Z", "url": "https://files.pythonhosted.org/packages/a9/12/883f99dfb0be4594f8a69460f5d98abefcc8f62580d6400e2e2f75d88844/pykeepass-3.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.1": [ { "comment_text": "", "digests": { "md5": "ca102bca721c66d029beab925445da67", "sha256": "ad5c7fdce7e7e1e6985bf0ab58e6dc50a8226be0b1df23ee27e6b622db256aab" }, "downloads": -1, "filename": "pykeepass-3.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ca102bca721c66d029beab925445da67", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51037, "upload_time": "2019-10-24T21:30:18", "upload_time_iso_8601": "2019-10-24T21:30:18.635581Z", "url": "https://files.pythonhosted.org/packages/25/39/b9d00010fbcf57f2b44c2bfb7dea70c5987bf829669ead32e5079b6a4b1e/pykeepass-3.1.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5a1f0b6d755802b0fa2b82364c9173ce", "sha256": "52068da5743f2c0bdd58052a1289e71f1fc5db19a0bcf12846d2499172769ea2" }, "downloads": -1, "filename": "pykeepass-3.1.1.tar.gz", "has_sig": false, "md5_digest": "5a1f0b6d755802b0fa2b82364c9173ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43953, "upload_time": "2019-10-24T21:30:20", "upload_time_iso_8601": "2019-10-24T21:30:20.475816Z", "url": "https://files.pythonhosted.org/packages/5b/63/6029c82a0192ec996d32212ec414dfb12ea7df8a5d908f50849a359d6549/pykeepass-3.1.1.tar.gz", "yanked": false, "yanked_reason": null } ], "3.1.2": [ { "comment_text": "", "digests": { "md5": "055a9c48d931bc42797c4bb4870ba44a", "sha256": "2f21be323c31f571c921ba450c05361f816e6c9eb09da9903a82250fb0ef8b11" }, "downloads": -1, "filename": "pykeepass-3.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "055a9c48d931bc42797c4bb4870ba44a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 51150, "upload_time": "2019-11-12T01:43:53", "upload_time_iso_8601": "2019-11-12T01:43:53.907578Z", "url": "https://files.pythonhosted.org/packages/09/cc/d4f665733b30bfeb7f93de34afcaa4019ec9a99f2f4f575882388bacc22e/pykeepass-3.1.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "7b3ad9301f46a9fcaf3f20e86d956936", "sha256": "280b0884243d059df888a61fd3fc77b2ea76dce4fdb1c1f60f3ab9139ca1259c" }, "downloads": -1, "filename": "pykeepass-3.1.2.tar.gz", "has_sig": false, "md5_digest": "7b3ad9301f46a9fcaf3f20e86d956936", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44163, "upload_time": "2019-11-12T01:43:56", "upload_time_iso_8601": "2019-11-12T01:43:56.208881Z", "url": "https://files.pythonhosted.org/packages/94/03/412a6d9ae518d0ba8b1abd494b593eaf74a82c2c12ec538210c48b277d9a/pykeepass-3.1.2.tar.gz", "yanked": false, "yanked_reason": null } ], "3.2.0": [ { "comment_text": "", "digests": { "md5": "14176eca70b95a2135a5a9410b2faf76", "sha256": "b6ebb6023d6a18b5f45c1108a7060ce62faa47e86ad10954b8fe6105d30e1306" }, "downloads": -1, "filename": "pykeepass-3.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "14176eca70b95a2135a5a9410b2faf76", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 53324, "upload_time": "2020-01-19T04:16:41", "upload_time_iso_8601": "2020-01-19T04:16:41.792191Z", "url": "https://files.pythonhosted.org/packages/30/64/101e850c5d5ea1f98029a30332a7183501fca41f1b775bc64bf84f7186dc/pykeepass-3.2.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "cf88a2c7ed215229a948e662037f2ca7", "sha256": "a1eefe0a6f7f368b0e297a1e69a9c50041f09394192e0af9e408f7b844b252fb" }, "downloads": -1, "filename": "pykeepass-3.2.0.tar.gz", "has_sig": false, "md5_digest": "cf88a2c7ed215229a948e662037f2ca7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46437, "upload_time": "2020-01-19T04:16:44", "upload_time_iso_8601": "2020-01-19T04:16:44.191197Z", "url": "https://files.pythonhosted.org/packages/31/a7/4bc7e79b467ba6a1f79cf5d29c94001607a62afceda8228258b4e9b2520f/pykeepass-3.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.2.1": [ { "comment_text": "", "digests": { "md5": "4d59c65945689a4aa1286748ec0d9049", "sha256": "52dd54ea3f91b7c239abea3b45077b767c6c3031e43f654bf81c9c7fbec5d9f1" }, "downloads": -1, "filename": "pykeepass-3.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4d59c65945689a4aa1286748ec0d9049", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 54742, "upload_time": "2020-07-19T22:48:58", "upload_time_iso_8601": "2020-07-19T22:48:58.872876Z", "url": "https://files.pythonhosted.org/packages/7f/f7/bcc6e5f05eb28064a3dc75226b12cd125e77fcbe42b1189e2b3fd9a649fc/pykeepass-3.2.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6adf6996d66fae34111a766111f2797e", "sha256": "b3e07eb2dd3aeb1dfa1a2d2d17be77066ee560c1e770f1c72d7ea5608117d284" }, "downloads": -1, "filename": "pykeepass-3.2.1.tar.gz", "has_sig": false, "md5_digest": "6adf6996d66fae34111a766111f2797e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46615, "upload_time": "2020-07-19T22:49:00", "upload_time_iso_8601": "2020-07-19T22:49:00.911760Z", "url": "https://files.pythonhosted.org/packages/18/98/62d02832a43d011fd44b2177939eb0a064de273ec39270375015ec527183/pykeepass-3.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "1c375098d5709d4287c1fc60f5c0d411", "sha256": "4a1c95e1d04810e95a88694b9ce77d1ba0dde5c870eef06c214fe0e99b36e31b" }, "downloads": -1, "filename": "pykeepass-4.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1c375098d5709d4287c1fc60f5c0d411", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 56087, "upload_time": "2021-02-03T23:07:58", "upload_time_iso_8601": "2021-02-03T23:07:58.914113Z", "url": "https://files.pythonhosted.org/packages/ed/2e/10241e5f7b3a29fc9a86383959a3efbc471ca9b77baa19b6cd834f4306e6/pykeepass-4.0.0-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "5c84334daec5384ffabc26f98a42fe18", "sha256": "1b41b3277ea4e044556e1c5a21866ea4dfd36e69a4c0f14272488f098063178f" }, "downloads": -1, "filename": "pykeepass-4.0.0.tar.gz", "has_sig": false, "md5_digest": "5c84334daec5384ffabc26f98a42fe18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48258, "upload_time": "2021-02-03T23:08:00", "upload_time_iso_8601": "2021-02-03T23:08:00.809725Z", "url": "https://files.pythonhosted.org/packages/91/61/a891621d29bd9a0036b7246f60bcc9e9b16b1e1d641d7b5b3c9634745cd8/pykeepass-4.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "4.0.1": [ { "comment_text": "", "digests": { "md5": "7464c2486a2b68dcb0d4d39eaf729c32", "sha256": "eaa2a016c15a81beb6e253a8cb1fe64738b5fb4a28389dcdba621ea538dd814b" }, "downloads": -1, "filename": "pykeepass-4.0.1.tar.gz", "has_sig": false, "md5_digest": "7464c2486a2b68dcb0d4d39eaf729c32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48948, "upload_time": "2021-05-22T07:14:18", "upload_time_iso_8601": "2021-05-22T07:14:18.927495Z", "url": "https://files.pythonhosted.org/packages/f1/08/b4b8f7bce23190ed4f34f4d9cf4f75f8a255f4f4c378296daf4b7027d2cb/pykeepass-4.0.1.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7464c2486a2b68dcb0d4d39eaf729c32", "sha256": "eaa2a016c15a81beb6e253a8cb1fe64738b5fb4a28389dcdba621ea538dd814b" }, "downloads": -1, "filename": "pykeepass-4.0.1.tar.gz", "has_sig": false, "md5_digest": "7464c2486a2b68dcb0d4d39eaf729c32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 48948, "upload_time": "2021-05-22T07:14:18", "upload_time_iso_8601": "2021-05-22T07:14:18.927495Z", "url": "https://files.pythonhosted.org/packages/f1/08/b4b8f7bce23190ed4f34f4d9cf4f75f8a255f4f4c378296daf4b7027d2cb/pykeepass-4.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }