{ "info": { "author": "Berislav Lopac", "author_email": "berislav@lopac.net", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "Pyotr\n=====\n\n[![Documentation Status](https://readthedocs.org/projects/pyotr/badge/?version=latest)](https://pyotr.readthedocs.io/en/latest/?badge=latest)\n\n**Pyotr** is a Python library for serving and consuming REST APIs based on [OpenAPI](https://swagger.io/resources/open-api/) specifications. Its name is acronym of \"Python OpenAPI to REST\".\n\nThe project consists of two separate libraries that can be used independently:\n\n* `pyotr.server` is a [Starlette](https://www.starlette.io)-based framework for serving OpenAPI-based services. It is functionally very similar to [connexion](https://connexion.readthedocs.io), except that it aims to be fully [ASGI](https://asgi.readthedocs.io)-compliant. \n* `pyotr.client` is a simple HTTP client for consuming OpenAPI-based services.\n\n**WARNING:** This is still very much work in progress and not nearly ready for any kind of production.\n\n\nQuick Start\n-----------\n\n### Server\n\n from pyotr.server import Application\n \n app = Application.from_file(\"path/to/openapi.yaml\", \"path.to.endpoints.module\")\n \n### Client\n\n from pyotr.client import Client\n \n client = Client.from_file(\"path/to/openapi.yaml\")\n result = client.some_endpoint_id(\"path\", \"variables\", \"query_var\"=\"example\")\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://pyotr.readthedocs.io", "keywords": "", "license": "MIT", "maintainer": "Berislav Lopac", "maintainer_email": "berislav@lopac.net", "name": "pyotr", "package_url": "https://pypi.org/project/pyotr/", "platform": "", "project_url": "https://pypi.org/project/pyotr/", "project_urls": { "Homepage": "https://pyotr.readthedocs.io", "Repository": "https://github.com/berislavlopac/pyotr" }, "release_url": "https://pypi.org/project/pyotr/0.1.7/", "requires_dist": [ "openapi-core (>=0.11.0,<0.12.0)", "pyyaml (>=5.1,<6.0)", "stringcase (>=1.2,<2.0)", "http3 (>=0.6.3,<0.7.0)", "pytest-cov (>=2.7,<3.0)", "typing-extensions (>=3.7,<4.0)", "uvicorn (>=0.9.0,<0.10.0); extra == \"uvicorn\"", "mkdocs (>=1.0,<2.0)", "httpx (>=0.7.2,<0.8.0)", "starlette (>=0.12.9,<0.13.0)" ], "requires_python": ">=3.7,<4.0", "summary": "Python OpenAPI-to-REST (and back) framework ", "version": "0.1.7" }, "last_serial": 5978185, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "f5fb3fa9274e9021d3b7280184cb464a", "sha256": "00bfb9b6b1ee03ef77a90a705f2e2f62f63ab29e860a4cdd4647c469c32110d8" }, "downloads": -1, "filename": "pyotr-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f5fb3fa9274e9021d3b7280184cb464a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 7739, "upload_time": "2019-07-01T22:50:38", "url": "https://files.pythonhosted.org/packages/3c/0e/f52aad216dfd7a79a9c60fd20d56e694426a09364ef83c2f08a2155666c6/pyotr-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8e41c03ff0f345817072eafbf4f0cd4", "sha256": "cb7ee276501ae30ff8dbbfd221648944d823d9172d7fb84a2d68c1a19e0b8075" }, "downloads": -1, "filename": "pyotr-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d8e41c03ff0f345817072eafbf4f0cd4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 5265, "upload_time": "2019-07-01T22:50:41", "url": "https://files.pythonhosted.org/packages/8b/bc/caee040d5ab7c815a021c89dd6e5768f6e62961770bd31f4be1d8b82ecff/pyotr-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "fa69d27cc2299cdc2edc069726ab3f79", "sha256": "8149835f614a4cb0fd1047a6337e549dca60ca34004decac9c2665d6db278b12" }, "downloads": -1, "filename": "pyotr-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "fa69d27cc2299cdc2edc069726ab3f79", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8629, "upload_time": "2019-07-27T16:21:37", "url": "https://files.pythonhosted.org/packages/07/d9/b299853fa32d0d9efac545d51918ade2aa8170b40afd6b5897a301fb9f26/pyotr-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9eddd57aec5a8aef7d7b6b2c876faffe", "sha256": "650dafbfcdd08ab3ee898dfdaf2680f3418783617a658317e151a7ae0cdd83a2" }, "downloads": -1, "filename": "pyotr-0.1.1.tar.gz", "has_sig": false, "md5_digest": "9eddd57aec5a8aef7d7b6b2c876faffe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7073, "upload_time": "2019-07-27T16:21:39", "url": "https://files.pythonhosted.org/packages/67/fa/a6d855aa112a9a97541a690db19d91e767a7ceca181cfe0fdc6fcd190e90/pyotr-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "395755212ca159dbcabd9a929c87e543", "sha256": "b8b7c8753dc08304291486d589e3c20630593ac44994ecc6fc42d1ec1c869604" }, "downloads": -1, "filename": "pyotr-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "395755212ca159dbcabd9a929c87e543", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8640, "upload_time": "2019-07-27T19:53:32", "url": "https://files.pythonhosted.org/packages/bb/e0/415de2833c2420dd8e5129a149cca961d892dfc9ed134326f419584e5dd6/pyotr-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "887e2f2abda1080241e940bafc360acc", "sha256": "d34162e8c67d5488b35ecc240096e8d75a8ce18fcbfb9830421f3249d1417556" }, "downloads": -1, "filename": "pyotr-0.1.2.tar.gz", "has_sig": false, "md5_digest": "887e2f2abda1080241e940bafc360acc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7082, "upload_time": "2019-07-27T19:53:33", "url": "https://files.pythonhosted.org/packages/c2/21/8f0bd670a09478b61f99ecf0f014fd9fa207c86257c146f1c33843015716/pyotr-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f278480bfc74fc3dc7b405f5ab4c477e", "sha256": "bb752059e4645e8571cb5f9c2ad1359bb0433003a54225e46062d7b588df69fa" }, "downloads": -1, "filename": "pyotr-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f278480bfc74fc3dc7b405f5ab4c477e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8492, "upload_time": "2019-07-27T19:56:27", "url": "https://files.pythonhosted.org/packages/4a/1a/349549738969e1c76817c59f1834996fcb3f8ad796de7bdb1cf27fafab12/pyotr-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "54f2d513190711507a88bf2120f41760", "sha256": "ef2352e7a9152d8a1c71d7dca9f21f4a4aaa4d237101a81fe905ed7a7200f56b" }, "downloads": -1, "filename": "pyotr-0.1.3.tar.gz", "has_sig": false, "md5_digest": "54f2d513190711507a88bf2120f41760", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 6938, "upload_time": "2019-07-27T19:56:29", "url": "https://files.pythonhosted.org/packages/40/b7/be12b051000af7f75ecfb2b73fa96fd082d27edf303bcb4e342f1cdaaa95/pyotr-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "86e099a696ebf547d287b832e297463a", "sha256": "9c6a5e5e60750c167e4ede6528139d44de2973b71b7b94356651fff64652a555" }, "downloads": -1, "filename": "pyotr-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "86e099a696ebf547d287b832e297463a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8528, "upload_time": "2019-08-25T10:10:52", "url": "https://files.pythonhosted.org/packages/f3/b9/0abbe12e132e254c1b7e63918d4d7294954743e07c966200f12d3f9b665d/pyotr-0.1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09bac381c2ba32141cd8cc34e6a539ac", "sha256": "287fcb4fac992fcc48ac3ec04233e62d04a7abf18d8b2869d8e9d10abffd57b5" }, "downloads": -1, "filename": "pyotr-0.1.4.tar.gz", "has_sig": false, "md5_digest": "09bac381c2ba32141cd8cc34e6a539ac", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 7023, "upload_time": "2019-08-25T10:10:53", "url": "https://files.pythonhosted.org/packages/3a/d1/7b1d3ca53ebd8c139e20e8b65d32953dfdfaa3b9562417ae2ab73edde57f/pyotr-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "000b5aa3e26dca5b7a29c0df25bd1eea", "sha256": "575e6456e76a23f72738f905a449aa1e66bc915639beb6d63cb717db8935d111" }, "downloads": -1, "filename": "pyotr-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "000b5aa3e26dca5b7a29c0df25bd1eea", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8546, "upload_time": "2019-09-19T20:02:09", "url": "https://files.pythonhosted.org/packages/28/80/9aa21f2d41fff0e656bda5275c5339199bfe7b4fe8c2678c2bd48dc4f674/pyotr-0.1.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0f2cf4fbacedaf022f3261e903c61104", "sha256": "aecc3c028e18d377e8017354e773b21c2386eea3437f84a551c10990c9bc170b" }, "downloads": -1, "filename": "pyotr-0.1.5.tar.gz", "has_sig": false, "md5_digest": "0f2cf4fbacedaf022f3261e903c61104", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 6955, "upload_time": "2019-09-19T20:02:11", "url": "https://files.pythonhosted.org/packages/cf/48/bf298744d6e68bf106eec3501493a288a9799692e0ff0734d2bc41c2a611/pyotr-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "75cdcd24f404560757c9e1fd5289260f", "sha256": "74f65c062a47465d8031261b2cd7a6a617c43d9b4dcfed56ad479e0faea4a13b" }, "downloads": -1, "filename": "pyotr-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "75cdcd24f404560757c9e1fd5289260f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8410, "upload_time": "2019-09-23T11:15:44", "url": "https://files.pythonhosted.org/packages/96/85/f8c30a5f664623f0e189664be3550ef0e5ef760c802800b8dbb0eec6cccd/pyotr-0.1.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c11f6f99a229aa1bdea2a01b2075c7b", "sha256": "8d6c43c59b07f3239781565588faf08c4e953c9714fe9d9efeb2ecf46a41c720" }, "downloads": -1, "filename": "pyotr-0.1.6.tar.gz", "has_sig": false, "md5_digest": "7c11f6f99a229aa1bdea2a01b2075c7b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 6658, "upload_time": "2019-09-23T11:15:46", "url": "https://files.pythonhosted.org/packages/98/ed/9fe18338a290567bc6a1e2857dd66aa6fcbb71ad43ac09b61f5b6f2b18f9/pyotr-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "c214fa9359209f8517900f46e73b8e98", "sha256": "2cc33f68087ca14feec9b1de28209a8d327a38ca7c4ec488ffa4d0c5c7bffe45" }, "downloads": -1, "filename": "pyotr-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c214fa9359209f8517900f46e73b8e98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8387, "upload_time": "2019-10-15T16:05:05", "url": "https://files.pythonhosted.org/packages/ec/56/dffb8c3c6b5f61f7a7cdd1d08e800fc54e11c28089bafaf416b9a230adc4/pyotr-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d376e654086eb033864d4207dbb4f85f", "sha256": "79f78074a82b5c71d4aa985c6dec8c6d30e363955aa87003efdd60097eb4059c" }, "downloads": -1, "filename": "pyotr-0.1.7.tar.gz", "has_sig": false, "md5_digest": "d376e654086eb033864d4207dbb4f85f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 6615, "upload_time": "2019-10-15T16:05:07", "url": "https://files.pythonhosted.org/packages/23/0a/d130602fdc54a33a67e4f8e4026e75aeb8fab33fc84634a992a4f28ae9a8/pyotr-0.1.7.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c214fa9359209f8517900f46e73b8e98", "sha256": "2cc33f68087ca14feec9b1de28209a8d327a38ca7c4ec488ffa4d0c5c7bffe45" }, "downloads": -1, "filename": "pyotr-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "c214fa9359209f8517900f46e73b8e98", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.7,<4.0", "size": 8387, "upload_time": "2019-10-15T16:05:05", "url": "https://files.pythonhosted.org/packages/ec/56/dffb8c3c6b5f61f7a7cdd1d08e800fc54e11c28089bafaf416b9a230adc4/pyotr-0.1.7-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d376e654086eb033864d4207dbb4f85f", "sha256": "79f78074a82b5c71d4aa985c6dec8c6d30e363955aa87003efdd60097eb4059c" }, "downloads": -1, "filename": "pyotr-0.1.7.tar.gz", "has_sig": false, "md5_digest": "d376e654086eb033864d4207dbb4f85f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.7,<4.0", "size": 6615, "upload_time": "2019-10-15T16:05:07", "url": "https://files.pythonhosted.org/packages/23/0a/d130602fdc54a33a67e4f8e4026e75aeb8fab33fc84634a992a4f28ae9a8/pyotr-0.1.7.tar.gz" } ] }