{"id":13468271,"url":"https://github.com/berislavlopac/pyotr","last_synced_at":"2025-04-12T21:32:37.168Z","repository":{"id":46232869,"uuid":"194751965","full_name":"berislavlopac/pyotr","owner":"berislavlopac","description":"Python OpenAPI-to-REST (and back) framework","archived":false,"fork":false,"pushed_at":"2022-08-22T03:08:00.000Z","size":1066,"stargazers_count":56,"open_issues_count":6,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-26T15:54:34.395Z","etag":null,"topics":["openapi","python-api","python-api-client","python-framework","python-openapi","python-server"],"latest_commit_sha":null,"homepage":"https://pyotr.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/berislavlopac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-01T22:41:03.000Z","updated_at":"2024-11-28T11:34:39.000Z","dependencies_parsed_at":"2022-07-26T05:16:36.520Z","dependency_job_id":null,"html_url":"https://github.com/berislavlopac/pyotr","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berislavlopac%2Fpyotr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berislavlopac%2Fpyotr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berislavlopac%2Fpyotr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/berislavlopac%2Fpyotr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/berislavlopac","download_url":"https://codeload.github.com/berislavlopac/pyotr/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247953106,"owners_count":21023947,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["openapi","python-api","python-api-client","python-framework","python-openapi","python-server"],"created_at":"2024-07-31T15:01:07.954Z","updated_at":"2025-04-12T21:32:36.850Z","avatar_url":"https://github.com/berislavlopac.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"Pyotr\n=====\n\n[![Documentation Status](https://readthedocs.org/projects/pyotr/badge/?version=latest)](https://pyotr.readthedocs.io/en/latest/)\n[![CI builds](https://b11c.semaphoreci.com/badges/pyotr.svg?style=shields)](https://b11c.semaphoreci.com/projects/pyotr)\n\n**Pyotr** is a Python library for serving and consuming REST APIs based on \n[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. \n  It is functionally very similar to [connexion](https://connexion.readthedocs.io), except that it aims to be fully \n  [ASGI](https://asgi.readthedocs.io)-compliant. \n* `pyotr.client` is a HTTP client for consuming OpenAPI-based services.\n\n**WARNING:** This is still very much work in progress and not quite ready for production usage. Until version 1.0 is \nreleased, any version can be expected to break backward compatibility.\n\n\nQuick Start\n-----------\n\n### Server\n\n    from pyotr.server import Application\n    from some.path import endpoints\n    \n    app = Application.from_file(\"path/to/openapi.yaml\", module=endpoints)\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberislavlopac%2Fpyotr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberislavlopac%2Fpyotr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberislavlopac%2Fpyotr/lists"}