Metadata-Version: 2.1
Name: clientele
Version: 0.3.0
Summary: Typed API Clients from OpenAPI specs
Home-page: https://beckett-software.github.io/clientele/
License: MIT
Author: Paul Hallett
Author-email: paulandrewhallett@gmail.com
Requires-Python: >=3.9,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: click (>=8.1.3,<9.0.0)
Requires-Dist: httpx (>=0.24.1,<0.25.0)
Requires-Dist: openapi-core (==0.18.0)
Requires-Dist: pydantic (>=2.0.3,<3.0.0)
Requires-Dist: pyyaml (>=6.0.1,<7.0.0)
Requires-Dist: rich (>=13.4.2,<14.0.0)
Requires-Dist: types-pyyaml (>=6.0.12.11,<7.0.0.0)
Description-Content-Type: text/markdown

# ⚜️ Clientele

# Typed API Clients from OpenAPI specs

![clientele_logo](https://github.com/beckett-software/clientele/blob/main/docs/clientele.jpeg?raw=true)

Clientele lets you generate fully-typed, functional, API Clients from OpenAPI specs.

It uses modern tools to be blazing fast and type safe.

Plus - there is no complex boilerplate and the generated code is very small.

## Features

* Fully typed API Client using Pydantic.
* Minimalist and easy to use - the generated code is designed for readability.
* Choose either sync or async - we support both, and you can switch between them easily.
* Supports authentication (curently only HTTP Bearer and HTTP Basic auth).
* Written entirely in Python - no need to install other languages to use OpenAPI.
* The client footprint is minimal - it only requires `httpx` and `pydantic`.
* Supports your own configuration - we provide an entry point that will never be overwritten.

We're built on:

* [Pydantic 2.0](https://docs.pydantic.dev/latest/)
* [httpx](https://www.python-httpx.org/)
* [openapi-core](https://openapi-core.readthedocs.io/en/latest/)

## Install

```sh
poetry add clientele
```

## Usage

```sh
clientele generate -f path/to/file.json -o my_client/ --asyncio t
```

[Read the docs](https://beckett-software.github.io/clientele/)

