{ "info": { "author": "Hynek Schlawack", "author_email": "hs@ox.cx", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pem: Easy PEM file parsing\n==========================\n\n.. image:: https://img.shields.io/pypi/v/pem.svg\n :target: https://pypi.org/project/pem/\n :alt: PyPI\n\n.. image:: https://readthedocs.org/projects/pem/badge/?version=stable\n :target: https://pem.readthedocs.io/en/stable/?badge=stable\n :alt: Documentation Status\n\n.. image:: https://dev.azure.com/the-hynek/pem/_apis/build/status/hynek.pem?branchName=master\n :target: https://dev.azure.com/the-hynek/pem/_build?definitionId=1\n :alt: CI Status\n\n.. image:: https://codecov.io/gh/hynek/pem/branch/master/graph/badge.svg\n :target: https://codecov.io/github/hynek/pem\n :alt: Coverage\n\n.. image:: https://www.irccloud.com/invite-svg?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1\n :target: https://www.irccloud.com/invite?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1\n\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/psf/black\n :alt: Code style: black\n\n.. image:: http://www.mypy-lang.org/static/mypy_badge.svg\n :target: http://mypy-lang.org\n :alt: Checked with mypy\n\n.. teaser-begin\n\n``pem`` is an MIT_-licensed Python module for parsing and splitting of `PEM files`_, i.e. Base64 encoded DER keys and certificates.\n\nIt runs on Python 2.7, 3.5+, and PyPy, has no dependencies, and does not attempt to interpret the certificate data in any way.\n\nIt\u2019s born from the need to load keys, certificates, trust chains, and DH parameters from various certificate deployments: some servers (like Apache_) expect them to be a separate file, others (like nginx_) expect them concatenated to the server certificate and finally some (like HAProxy_) expect key, certificate, and chain to be in one file.\nWith ``pem``, your Python application can cope with all of those scenarios:\n\n.. code-block:: pycon\n\n >>> import pem\n >>> certs = pem.parse_file(\"chain.pem\")\n >>> certs\n [, ]\n >>> str(certs[0])\n '-----BEGIN CERTIFICATE-----\\n...'\n\nAdditionally to the vanilla parsing code, ``pem`` also contains helpers for Twisted_ that save a lot of boilerplate code.\n\n``pem``\\ \u2019s documentation lives at `Read the Docs `_, the code on `GitHub `_.\n\n\n.. _MIT: https://choosealicense.com/licenses/mit/\n.. _`PEM files`: https://en.wikipedia.org/wiki/X.509#Certificate_filename_extensions\n.. _Apache: https://httpd.apache.org/\n.. _nginx: https://nginx.org/\n.. _HAProxy: https://www.haproxy.org/\n.. _Twisted: https://twistedmatrix.com/documents/current/api/twisted.internet.ssl.Certificate.html#loadPEM\n\n\nRelease Information\n===================\n\n19.3.0 (2019-10-16)\n-------------------\n\n\nBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n- Python 3.4 is not supported anymore.\n It has been unsupported by the Python core team for a while now and its PyPI downloads are negligible.\n\n It's very unlikely that ``pem`` will break under 3.4 anytime soon, but we don't test it anymore.\n\n\nDeprecations:\n^^^^^^^^^^^^^\n\n*none*\n\n\nChanges:\n^^^^^^^^\n\n- Added support for ``pem.OpenSSHPrivateKey`` (``OPENSSH PRIVATE KEY``).\n OpenSSH added a new ``BEGIN`` label when it switched to a `proprietary key encoding `_.\n `#39 `_\n\n`Full changelog `_.\n\nCredits\n=======\n\n``pem`` is written and maintained by Hynek Schlawack.\n\nThe development is kindly supported by `Variomedia AG `_.\n\nA full list of contributors can be found on GitHub\u2019s `overview `_.\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://pem.readthedocs.io/", "keywords": "pyopenssl,ssl,tls,pem,cryptography,twisted", "license": "MIT", "maintainer": "Hynek Schlawack", "maintainer_email": "hs@ox.cx", "name": "pem", "package_url": "https://pypi.org/project/pem/", "platform": "", "project_url": "https://pypi.org/project/pem/", "project_urls": { "Bug Tracker": "https://github.com/hynek/pem/issues", "Documentation": "https://pem.readthedocs.io/", "Homepage": "https://pem.readthedocs.io/", "Source Code": "https://github.com/hynek/pem" }, "release_url": "https://pypi.org/project/pem/19.3.0/", "requires_dist": [ "coverage ; extra == 'azure-pipelines'", "pytest ; extra == 'azure-pipelines'", "certifi ; extra == 'azure-pipelines'", "pretend ; extra == 'azure-pipelines'", "pyopenssl ; extra == 'azure-pipelines'", "pytest-azurepipelines ; extra == 'azure-pipelines'", "coverage ; extra == 'dev'", "pytest ; extra == 'dev'", "certifi ; extra == 'dev'", "pretend ; extra == 'dev'", "pyopenssl ; extra == 'dev'", "sphinx ; extra == 'dev'", "twisted[tls] ; extra == 'dev'", "pre-commit ; extra == 'dev'", "sphinx ; extra == 'docs'", "coverage ; extra == 'tests'", "pytest ; extra == 'tests'", "certifi ; extra == 'tests'", "pretend ; extra == 'tests'", "pyopenssl ; extra == 'tests'" ], "requires_python": "", "summary": "Easy PEM file parsing in Python.", "version": "19.3.0" }, "last_serial": 5985338, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "769d58d533a665f79be7be9ef9c2579f", "sha256": "d3f252e7f4f386b0a855230bf6fc8cc925422ea970d78b78f17a817b95018b83" }, "downloads": -1, "filename": "pem-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "769d58d533a665f79be7be9ef9c2579f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6363, "upload_time": "2013-07-27T11:56:58", "url": "https://files.pythonhosted.org/packages/9e/0d/653e96d1efc7ca04a858c1e062c444107b33ff2aa6cf9c5fecdef9257148/pem-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "55a596b9a7fe0750849c9042ed89bb1b", "sha256": "b65fa4924f01371ca4db213b96397ab5951c3f09f9001c0757ef4b269f698217" }, "downloads": -1, "filename": "pem-0.1.0.tar.gz", "has_sig": true, "md5_digest": "55a596b9a7fe0750849c9042ed89bb1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4670, "upload_time": "2013-07-18T07:32:12", "url": "https://files.pythonhosted.org/packages/3c/a5/ade442a58ecda5689fdba39f339e157a4d9b6ecf85c320b3e79c36a9660a/pem-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "0fcd023a4b05a5f0d78a99f0de37a17f", "sha256": "f94baa20b9bb5ae181a19e2a3f891cd789a722ed778195897f29580cb9391f42" }, "downloads": -1, "filename": "pem-0.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "0fcd023a4b05a5f0d78a99f0de37a17f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10976, "upload_time": "2014-03-13T19:09:40", "url": "https://files.pythonhosted.org/packages/46/fc/2edc10fa708881f326b5cc08c38c8fe7dd8796e8749eb2923cc314027cf4/pem-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b0eaf0ac10b53767bba570600188c678", "sha256": "83face779156c17ba2600704a1bf3cc5c7d76c0663211ca229aa98b9f9d6f506" }, "downloads": -1, "filename": "pem-0.2.0.tar.gz", "has_sig": true, "md5_digest": "b0eaf0ac10b53767bba570600188c678", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9910, "upload_time": "2014-03-13T19:09:43", "url": "https://files.pythonhosted.org/packages/4a/c3/4883771aee5eb4eec1e6f93efaa8161b7e277fe5a3e6cdb0935213e906a9/pem-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8d3422f71f78bbc627d9b629763f767a", "sha256": "ada3336d8c50801b393693979e5837ac086887d89b54ba0bc06fc9c39958187c" }, "downloads": -1, "filename": "pem-0.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8d3422f71f78bbc627d9b629763f767a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 23664, "upload_time": "2014-04-20T23:27:51", "url": "https://files.pythonhosted.org/packages/d9/cf/89cc165c5f6a598f5a920908fb476546fab0489b50a105550464323ea867/pem-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "116eb62acafb1a12c608b8e9857c584a", "sha256": "1563ef54839ecd740c0982883c780f19d336ab6ccb5a2d50b85bc9cd82d0e099" }, "downloads": -1, "filename": "pem-0.3.0.tar.gz", "has_sig": true, "md5_digest": "116eb62acafb1a12c608b8e9857c584a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11686, "upload_time": "2014-04-20T23:27:17", "url": "https://files.pythonhosted.org/packages/4a/12/5fc47938bf25c9caeed11dbb333d9f4226e2745d687ee7ca43bfd1b5336f/pem-0.3.0.tar.gz" } ], "15.0.0": [ { "comment_text": "", "digests": { "md5": "5a670575962e0b54e24b2373fb2bb35a", "sha256": "6c034feee2a79dc646954ff3a33c87fcf731d01a36b4414e0c2aa6694af8c7aa" }, "downloads": -1, "filename": "pem-15.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5a670575962e0b54e24b2373fb2bb35a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14302, "upload_time": "2015-07-10T15:37:26", "url": "https://files.pythonhosted.org/packages/4a/b5/6646fb5c6dd39d7f438a5579debe8833fe66348a85a00cff7c745e83d9df/pem-15.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c1fe776cdd46fbfe4daafa229edb9915", "sha256": "89ee757da1d02e050052892ecdb155bbc127b2676757b7fa8e660e148c526594" }, "downloads": -1, "filename": "pem-15.0.0.tar.gz", "has_sig": true, "md5_digest": "c1fe776cdd46fbfe4daafa229edb9915", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22502, "upload_time": "2015-07-10T15:37:31", "url": "https://files.pythonhosted.org/packages/4c/8d/d0f98f3137467ae2a2ff929d432922483e38b233abc91df9c3419c0d8788/pem-15.0.0.tar.gz" } ], "16.0.0": [ { "comment_text": "", "digests": { "md5": "273176b9f02fc089f63c2b8261fa49bd", "sha256": "2f3046ef3503d325fdc7a8ff111a8364b1279ef882921c3685a45d69690b27b8" }, "downloads": -1, "filename": "pem-16.0.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "273176b9f02fc089f63c2b8261fa49bd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14369, "upload_time": "2016-02-05T10:18:59", "url": "https://files.pythonhosted.org/packages/39/c0/e052ad47e51ab874ccbea3d65cf9590d840da686a1b5bbc08b512ee4dc0a/pem-16.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "11bffe191fee271d224982e7b0f1d13c", "sha256": "1ad4548737f56b2573a2b9f33a9b07221486614cba4cb1a3e7336298285b3961" }, "downloads": -1, "filename": "pem-16.0.0.tar.gz", "has_sig": true, "md5_digest": "11bffe191fee271d224982e7b0f1d13c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24157, "upload_time": "2016-02-05T10:19:15", "url": "https://files.pythonhosted.org/packages/b9/0e/72553fbeb5308a185b03b55a0861cda74ec3789ee43849a84e190bc5beea/pem-16.0.0.tar.gz" } ], "16.1.0": [ { "comment_text": "", "digests": { "md5": "8685c13f2cea0b0f8f60504d1667eefd", "sha256": "6b56282315e2e01dda7be7a0567268cbc8b602491bb408cb0cdd4bdcb7207fe0" }, "downloads": -1, "filename": "pem-16.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "8685c13f2cea0b0f8f60504d1667eefd", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15846, "upload_time": "2016-04-08T07:18:12", "url": "https://files.pythonhosted.org/packages/47/31/950a775056ffafa5d8a914d98ae767b74c9bc66373546be790e12d76e985/pem-16.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2f8dfd5fdc5ae49f1994274dac77152", "sha256": "4bf4ba29cd6e5db392ee7ccda9555e0765d6540a25d52bf9d90dcaccb817b170" }, "downloads": -1, "filename": "pem-16.1.0.tar.gz", "has_sig": true, "md5_digest": "e2f8dfd5fdc5ae49f1994274dac77152", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26426, "upload_time": "2016-04-09T11:53:46", "url": "https://files.pythonhosted.org/packages/4f/06/cf51103b48532565adb42f562389d364e2075947c5b1cba79fdc7eae4e8d/pem-16.1.0.tar.gz" } ], "17.1.0": [ { "comment_text": "", "digests": { "md5": "5b8b3c92bed577cf5286e885a1e6adf4", "sha256": "f64f0eb25f700a83cbb21b8f82a1a470f0fd75865e2c84606b3f912b01f65f48" }, "downloads": -1, "filename": "pem-17.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "5b8b3c92bed577cf5286e885a1e6adf4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9991, "upload_time": "2017-08-10T13:39:04", "url": "https://files.pythonhosted.org/packages/c5/67/334ded5b53377a171b66fcbc0c8b8e90bed1be6cb4334377406cb1c99030/pem-17.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "19fb144acee4ae8dea020fb5579f2fdc", "sha256": "80c83846e927139773f79cdc581f8e276eb7b3f7a0f0a08c7dabe8e51374b97b" }, "downloads": -1, "filename": "pem-17.1.0.tar.gz", "has_sig": true, "md5_digest": "19fb144acee4ae8dea020fb5579f2fdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27846, "upload_time": "2017-08-10T13:39:06", "url": "https://files.pythonhosted.org/packages/15/0e/fd45c79118dbbe11fd8f906390edef167b3b4552c9ff0b676dcf1c2fd8c5/pem-17.1.0.tar.gz" } ], "18.1.0": [ { "comment_text": "", "digests": { "md5": "f8d4924a07d989d7550810d0ebfb7a5f", "sha256": "53aab93ebbec110e07274822cdbcd5fcc278fa8fc6e74762027797b8e141365b" }, "downloads": -1, "filename": "pem-18.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "f8d4924a07d989d7550810d0ebfb7a5f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7883, "upload_time": "2018-06-23T09:28:14", "url": "https://files.pythonhosted.org/packages/6b/ea/772d0bbcfb897e58538a81de6c8b85d818dddf883d7b114c8c0467ec6fff/pem-18.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d042b26674b40fbe55d17c5edbc05f5e", "sha256": "9aa71ff6fb354b341cea346e952993d8d1082b8774f2d92bf2246bfcdbced08f" }, "downloads": -1, "filename": "pem-18.1.0.tar.gz", "has_sig": true, "md5_digest": "d042b26674b40fbe55d17c5edbc05f5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31037, "upload_time": "2018-06-23T09:28:16", "url": "https://files.pythonhosted.org/packages/12/3d/cedc1324a738b43b02970960c6580fe531400b44fa310e56e19319d9f734/pem-18.1.0.tar.gz" } ], "18.2.0": [ { "comment_text": "", "digests": { "md5": "d658739170a27b0be588a97037376b65", "sha256": "471b1fd50d50124bc3435f5b25faf074392f3d02feb1e9c663811f0db2093aca" }, "downloads": -1, "filename": "pem-18.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "d658739170a27b0be588a97037376b65", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7736, "upload_time": "2018-10-09T10:08:18", "url": "https://files.pythonhosted.org/packages/da/bd/a4afebec48dffcbaa373578926bb6d2fdc073e75355dc96b684a6cd81d42/pem-18.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4966881640234dacd1e8b0801de962e1", "sha256": "c2dae921cf4287ace965e699521d250ddb8403b4c45fe0fda0d4f18354739dcf" }, "downloads": -1, "filename": "pem-18.2.0.tar.gz", "has_sig": true, "md5_digest": "4966881640234dacd1e8b0801de962e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31241, "upload_time": "2018-10-09T10:08:20", "url": "https://files.pythonhosted.org/packages/bb/31/01d1499edcd8cb78f600b29da928162cdb60dc46b18bfd2e64b4bf5956c7/pem-18.2.0.tar.gz" } ], "19.1.0": [ { "comment_text": "", "digests": { "md5": "b8478dc953cd38f66fa2a75edede2a30", "sha256": "f18a51b43de7f3a49c45520975d929eb63bdb0b2e9ec78363d48b852866f3cf8" }, "downloads": -1, "filename": "pem-19.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b8478dc953cd38f66fa2a75edede2a30", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7837, "upload_time": "2019-03-19T22:17:04", "url": "https://files.pythonhosted.org/packages/5b/45/e4b6ecb815c15fc34a33c121934f9242660f0971e15e0c7df8b4f87cbeed/pem-19.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d939d1e43f128066569d81460b3b80d7", "sha256": "0f0428fbe22cafa3eb973619a1c329aa886a24bbdafe138d3a46a084059dc0b1" }, "downloads": -1, "filename": "pem-19.1.0.tar.gz", "has_sig": true, "md5_digest": "d939d1e43f128066569d81460b3b80d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34678, "upload_time": "2019-03-19T22:17:07", "url": "https://files.pythonhosted.org/packages/29/cb/81e273e112fcc292306a4c93859da6beac1153d46db06a0399bef177eb2e/pem-19.1.0.tar.gz" } ], "19.2.0": [ { "comment_text": "", "digests": { "md5": "198724ffedc761458cf31566e2084d8f", "sha256": "3af5c67621b480a26d58654e610d123ef00d7aa5a796ea5cfc7a02b5274347f9" }, "downloads": -1, "filename": "pem-19.2.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "198724ffedc761458cf31566e2084d8f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7942, "upload_time": "2019-08-06T13:45:23", "url": "https://files.pythonhosted.org/packages/86/aa/1e8d2746a5785b561a6ff10de3e2fe40b49a2d4ba455cbc148ed8ff41cd0/pem-19.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43e22dbb16443026f95064cd4411bbb3", "sha256": "a6f42d89cc43d62b5ed4c0fe9f87e8ab86af909ce4d4bb2b9098d79d84353a98" }, "downloads": -1, "filename": "pem-19.2.0.tar.gz", "has_sig": true, "md5_digest": "43e22dbb16443026f95064cd4411bbb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35648, "upload_time": "2019-08-06T13:45:25", "url": "https://files.pythonhosted.org/packages/88/86/2481ceeeadc6b7d2221729c83a1316cfc90ce828a4bc3e1022a9e06085c9/pem-19.2.0.tar.gz" } ], "19.3.0": [ { "comment_text": "", "digests": { "md5": "cee5b2d99ebc1ecba3c168f03f9fb953", "sha256": "ed52902bfee8e7f75c5242538ec4cbab0079cba5cfc7fa260588f5204e12fd9c" }, "downloads": -1, "filename": "pem-19.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "cee5b2d99ebc1ecba3c168f03f9fb953", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8608, "upload_time": "2019-10-16T16:26:39", "url": "https://files.pythonhosted.org/packages/61/55/292eed779791d229bbc387bf3225714ebceb6f2197dde24e4057a54a1806/pem-19.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00051a57511df1f33b801fcf9b91e8cf", "sha256": "d10058932ec7b9bbc81c40862275395b9faa287353a9152b642393e7efcdb526" }, "downloads": -1, "filename": "pem-19.3.0.tar.gz", "has_sig": true, "md5_digest": "00051a57511df1f33b801fcf9b91e8cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38704, "upload_time": "2019-10-16T16:26:41", "url": "https://files.pythonhosted.org/packages/56/86/96e340a690a8ee4e95fa5e9d056db698c70372a608b91dfa8725a3587134/pem-19.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cee5b2d99ebc1ecba3c168f03f9fb953", "sha256": "ed52902bfee8e7f75c5242538ec4cbab0079cba5cfc7fa260588f5204e12fd9c" }, "downloads": -1, "filename": "pem-19.3.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "cee5b2d99ebc1ecba3c168f03f9fb953", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8608, "upload_time": "2019-10-16T16:26:39", "url": "https://files.pythonhosted.org/packages/61/55/292eed779791d229bbc387bf3225714ebceb6f2197dde24e4057a54a1806/pem-19.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "00051a57511df1f33b801fcf9b91e8cf", "sha256": "d10058932ec7b9bbc81c40862275395b9faa287353a9152b642393e7efcdb526" }, "downloads": -1, "filename": "pem-19.3.0.tar.gz", "has_sig": true, "md5_digest": "00051a57511df1f33b801fcf9b91e8cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38704, "upload_time": "2019-10-16T16:26:41", "url": "https://files.pythonhosted.org/packages/56/86/96e340a690a8ee4e95fa5e9d056db698c70372a608b91dfa8725a3587134/pem-19.3.0.tar.gz" } ] }