{ "info": { "author": "Zachary Cutlip", "author_email": "", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# PYONEPASSWORD\n\n## Description\n\nA Python API to sign into and query a 1Password account using the `op` command.\n\n## Requirements\n\n- Python >= 3.7\n- 1Password command-line tool\n - see [1Password command-line tool: Getting started](https://support.1password.com/command-line-getting-started/)\n- Internet connectivity to 1Password.com\n - The `op` command queries your online account, not your local vault\n\n## Example usage\n\n### Intitial sign-in\n\n```Python\nimport getpass\nfrom pyonepassword.pyonepassword import (\n OP,\n OPSigninException\n)\n\n\ndef do_initial_signin():\n my_signin_address = \"my-1p-account.1password.com\"\n my_email_address = \"my-1p-email@email.com\"\n my_secret_key = getpass.getpass(prompt=\"1Password secret key:\\n\")\n my_password = getpass.getpass(prompt=\"1Password master password:\\n\")\n try:\n op = OP(signin_address=my_signin_address,\n email_address=my_email_address,\n secret_key=my_secret_key,\n password=my_password)\n except OPSigninException as ope:\n print(\"1Password initial signin failed: {}\".format(ope))\n print(ope.err_output)\n exit(1)\n print(\"1Password is signed in and ready for lookups\")\n return op\n\n\nif __name__ == \"__main__\":\n op = do_initial_signin()\n # op is ready to use and call lookup() on\n print(\"Signed in.\")\n```\n\n```Console\n$ python3 ./example.py\n1Password secret key:\n1Password master password:\nPerforming initial 1Password sign-in to my-1p-account.1password.com as my-1p-email@email.com\nSigned in.\n```\n\n### Subsequent sign-in and lookup\n\n```Python\nimport getpass\nfrom pyonepassword import (\n OP,\n OPSigninException\n)\ndef do_signin():\n # If you've already signed in at least once, you don't need to provide all\n # account details on future sign-ins. Just master password\n my_password = getpass.getpass(prompt=\"1Password master password:\\n\")\n try:\n op = OP(password=my_password)\n except OPSigninException as ope:\n print(\"1Password initial signin failed: {}\".format(ope))\n print(ope.err_output)\n exit(1)\n return op\n\n\nif __name__ == \"__main__\":\n op = do_signin()\n print(\"Signed in.\")\n print(\"Looking up \\\"Example Login\\\"...\")\n print(op.lookup(\"Example Login\"))\n print(\"\")\n print(\"\\\"Example Login\\\" can also be looked up by its uuid\")\n print(\"\")\n print(\"Looking up uuid \\\"ykhsbhhv2vf6hn2u4qwblfrmg4\\\"...\")\n print(op.lookup(\"ykhsbhhv2vf6hn2u4qwblfrmg4\"))\n```\n\n```console\n$ python3 ./examples/example-signin-lookup.py\n1Password master password:\n\nDoing normal (non-initial) 1Password sign-in\n\nSigned in.\nLooking up \"Example Login\"...\ndoth-parrot-hid-tussock-veldt\n\n\"Example Login\" can also be looked up by its uuid\n\nLooking up uuid \"ykhsbhhv2vf6hn2u4qwblfrmg4\"...\ndoth-parrot-hid-tussock-veldt\n```\n\n## Notes\n\n- This has been lightly tested, and only on my Mac. I don't know if it works on other systems.\n- This has been tested with `op` version 0.5.6.\n- You need the `op` 1Password command-line tool. On a Mac with homebrew, you can do `brew install 1password-cli`.\n\n## TODO\n\n- Detect if `op` is/is not installed, and be helpful\n- API to get complete or partial JSON for a vault item, not just a specific field's value\n- Maybe one day 1Password.com will have an API and this module won't have to use `op`\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/zcutlip/pyonepassword", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyonepassword", "package_url": "https://pypi.org/project/pyonepassword/", "platform": "", "project_url": "https://pypi.org/project/pyonepassword/", "project_urls": { "Homepage": "https://github.com/zcutlip/pyonepassword" }, "release_url": "https://pypi.org/project/pyonepassword/0.1.0b3/", "requires_dist": null, "requires_python": ">=3.7", "summary": "A python API to query a 1Password account using the 'op' command-line tool", "version": "0.1.0b3" }, "last_serial": 5867339, "releases": { "0.1.0b1": [ { "comment_text": "", "digests": { "md5": "2a34ad575f349b056cea576569d3d585", "sha256": "1198b29bd5f10c50c4a0a12e5047e6390dc772b6e8f5cc1833fdf4d31b62f801" }, "downloads": -1, "filename": "pyonepassword-0.1.0b1-py3-none-any.whl", "has_sig": false, "md5_digest": "2a34ad575f349b056cea576569d3d585", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 4799, "upload_time": "2019-08-09T19:24:55", "url": "https://files.pythonhosted.org/packages/fa/7c/9aaff860b5f27731f179e7a3d18777873bd23c54519bcd97d92517f40e09/pyonepassword-0.1.0b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f81e015ce9dceb419bf25612a09f091f", "sha256": "229e17ac07cb0dbde97e42aa4b84c4b165f952831d2cc6169fa4f06a90a652bd" }, "downloads": -1, "filename": "pyonepassword-0.1.0b1.tar.gz", "has_sig": false, "md5_digest": "f81e015ce9dceb419bf25612a09f091f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 3890, "upload_time": "2019-08-09T19:24:58", "url": "https://files.pythonhosted.org/packages/47/40/c1ebf8c1052f0a16482f3edd6ac8036ba073eb6eb02aca894a2b85e833c6/pyonepassword-0.1.0b1.tar.gz" } ], "0.1.0b2": [ { "comment_text": "", "digests": { "md5": "563cafa5488a2062692e7d4a91019f71", "sha256": "77b1717c203a031826de47e442ef4a75957c363c9a06a23ca032c452eefc72e3" }, "downloads": -1, "filename": "pyonepassword-0.1.0b2-py3-none-any.whl", "has_sig": false, "md5_digest": "563cafa5488a2062692e7d4a91019f71", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7", "size": 6052, "upload_time": "2019-08-09T19:47:53", "url": "https://files.pythonhosted.org/packages/0d/92/425eadc3b946624763bf293ca4336462c14941db40a3956ecef50bb082ff/pyonepassword-0.1.0b2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cfb8e4a1cdcdfab3a148ce8a30f2efbc", "sha256": "2ee4965acad3d0d62eba7c84afe00df5240553f350dfe66b064d5cf3adda2575" }, "downloads": -1, "filename": "pyonepassword-0.1.0b2.tar.gz", "has_sig": false, "md5_digest": "cfb8e4a1cdcdfab3a148ce8a30f2efbc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 4460, "upload_time": "2019-08-09T19:47:55", "url": "https://files.pythonhosted.org/packages/23/bb/7c6afe5d50c2e1bd3bc6a80a46cde1aaaa958ae2fa14ae97d9d2790872d1/pyonepassword-0.1.0b2.tar.gz" } ], "0.1.0b3": [ { "comment_text": "", "digests": { "md5": "2b78572b6085cb10c7b96b60031d8761", "sha256": "7dce6e13ab2bac1eaa5b711252f32bc1c1896f1fdb671ab0ef209abf1c7f22b4" }, "downloads": -1, "filename": "pyonepassword-0.1.0b3-py2-none-any.whl", "has_sig": false, "md5_digest": "2b78572b6085cb10c7b96b60031d8761", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=3.7", "size": 6322, "upload_time": "2019-09-21T22:22:43", "url": "https://files.pythonhosted.org/packages/de/95/b049fb9787130a4823a7b7bda155e50dd83d04d06f96ab3f23afc5a86713/pyonepassword-0.1.0b3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fc5453c5a552b34fc02d688f87536ca", "sha256": "1702293bcacebe0e7bf248547a4a826d11f7c732c81a755fa967593bc0440e16" }, "downloads": -1, "filename": "pyonepassword-0.1.0b3.tar.gz", "has_sig": false, "md5_digest": "7fc5453c5a552b34fc02d688f87536ca", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 4731, "upload_time": "2019-09-21T22:22:44", "url": "https://files.pythonhosted.org/packages/98/4d/1ebc5450a22c541239fdc5043332a7c38164e27d1ee8a2b09b3648b3a4d9/pyonepassword-0.1.0b3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2b78572b6085cb10c7b96b60031d8761", "sha256": "7dce6e13ab2bac1eaa5b711252f32bc1c1896f1fdb671ab0ef209abf1c7f22b4" }, "downloads": -1, "filename": "pyonepassword-0.1.0b3-py2-none-any.whl", "has_sig": false, "md5_digest": "2b78572b6085cb10c7b96b60031d8761", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": ">=3.7", "size": 6322, "upload_time": "2019-09-21T22:22:43", "url": "https://files.pythonhosted.org/packages/de/95/b049fb9787130a4823a7b7bda155e50dd83d04d06f96ab3f23afc5a86713/pyonepassword-0.1.0b3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fc5453c5a552b34fc02d688f87536ca", "sha256": "1702293bcacebe0e7bf248547a4a826d11f7c732c81a755fa967593bc0440e16" }, "downloads": -1, "filename": "pyonepassword-0.1.0b3.tar.gz", "has_sig": false, "md5_digest": "7fc5453c5a552b34fc02d688f87536ca", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7", "size": 4731, "upload_time": "2019-09-21T22:22:44", "url": "https://files.pythonhosted.org/packages/98/4d/1ebc5450a22c541239fdc5043332a7c38164e27d1ee8a2b09b3648b3a4d9/pyonepassword-0.1.0b3.tar.gz" } ] }