Generator of python HTTP-clients from OpenApi specification.
Project description
Generator of python HTTP-clients from OpenApi specification based on httpx and pydantic.
Features
- Discriminator
- Metrics
- Logs
- Sync/async clients
Examples
Installation
pip install pythogen
Usage
Generate ordinary clients
- Asynchronous client
pythogen path/to/input/openapi.yaml path/to/output/client.py
- Asynchronous client with integration for metrics
pythogen path/to/input/openapi.yaml path/to/output/client.py --metrics
- Synchronous client
pythogen path/to/input/openapi.yaml path/to/output/client.py --sync
- Synchronous client with integration for metrics
pythogen path/to/input/openapi.yaml path/to/output/client.py --sync --metrics
Generate client as python-package
pythogen path/to/input/openapi.yaml path/to/package/output --package-version=0.0.1 --package-authors="Rick, Morty"
--package-version
— required;--package-authors
— optional;path/to/package/output
— path to the directory where package will be saved.
Usage client
from petstore.client_async import Client
from petstore.client_async import Pet
from petstore.client_async import EmptyBody
client = Client(base_url="http://your.base.url")
pets: list[Pet] | EmptyBody = await client.findPetsByStatus(status="available")
Development
- Activate environment
rm -rf .venv || true python3 -m venv .venv source .venv/bin/activate make requirements
- Make changes
- Execute
make clients-for-tests && make test-clients
- Execute
make clients-for-examples
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pythogen-0.1.15.tar.gz
(19.9 kB
view hashes)
Built Distribution
pythogen-0.1.15-py3-none-any.whl
(27.6 kB
view hashes)
Close
Hashes for pythogen-0.1.15-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d09d870c01076de5dd749795fca8b5ac6f490b07d809e3f18d6ce6614a8b0278 |
|
MD5 | 94c55e1d4ba74764ff6722be552dde47 |
|
BLAKE2b-256 | 2c6962fd7b683446e6a05d29990f19e6ddf76b01b13f6ab0762547871a30b9bf |