Metadata-Version: 2.1
Name: declarativex
Version: 1.6.1
Summary: Declarative HTTP client for Python
Home-page: https://declarativex.dev
License: MIT
Keywords: http,declarative,client,async,httpx,pydantic
Author: Vladyslav Halatskyi
Author-email: xfloydya@gmail.com
Requires-Python: >=3.9,<4
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: brotli
Provides-Extra: graphql
Provides-Extra: http2
Requires-Dist: brotli (==v1.6.1) ; extra == "brotli"
Requires-Dist: brotlicffi (==v1.6.1) ; extra == "brotli"
Requires-Dist: graphql-py (==v1.6.1) ; extra == "graphql"
Requires-Dist: h2 (==v1.6.1) ; extra == "http2"
Requires-Dist: httpx (>=0.25.0,<0.26.0)
Requires-Dist: pydantic (>1,<3)
Project-URL: Bug Tracker, https://github.com/floydya/declarativex/issues
Project-URL: Documentation, https://declarativex.dev
Project-URL: Repository, https://github.com/floydya/declarativex
Description-Content-Type: text/markdown

[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/declarativex?style=for-the-badge&logo=python&logoColor=FF0077&color=FFD43B)](https://pypi.org/project/declarativex)
[![PyPI - Downloads](https://img.shields.io/pypi/dw/declarativex?style=for-the-badge&link=https%3A%2F%2Fpypi.org%2Fproject%2Fdeclarativex&color=FFD43B&logoColor=FF0077&logo=ownCloud)](https://pypi.org/project/declarativex)
[![Coverage](https://img.shields.io/badge/COVERAGE-100%25-FFD43B?style=for-the-badge&logo=codecov)](https://pypi.org/project/declarativex)


# DeclarativeX: Your Declarative HTTP Client 🚀

## Why Choose DeclarativeX? 🤷‍♂️

Sick of writing boilerplate for every HTTP request? Headers, JSON parsing, and all that jazz? 

Say hello to `DeclarativeX`! 

We handle the nitty-gritty so you can focus on what really counts—your core logic.

## 🌟 Key Features

- **Declarative Goodness**: Decorators make your life easy. Just add and go!
- **Function Over Form**: No need for classes. Check the docs for function-based setups.
- **Data Validation**: Using Pydantic? We've got your robust validation needs covered.
- **Async Ready**: Need it fast? We're async-compatible.
- **Rate Limiting**: Stay on the good side of APIs with built-in rate limiting.
- **Authentication**: Add authentication with a single line of code.
- **Automatic Retries**: We retry failed requests automatically(or reject, if you prefer).
- **Middleware Support**: Add your custom logic with ease.
- **Auto Body Parsing**: Skip manual parsing. Use a dataclass or Pydantic model for auto-magic.
- **GraphQL**: We support GraphQL queries and mutations out of the box.

## Installation 🛠️

```bash
pip install declarativex
```

### Available extras 🎁

DeclarativeX comes with a few extras that you can install separately. Here's a list of available extras:

- `http2` - HTTP/2 support
- `graphql` - GraphQL support
- `brotli` - Brotli compression support

To install an extra, just add it to the end of the command:

```bash
pip install declarativex[http2,graphql,brotli]
```

## Docs 📖

Find all the details at [https://declarativex.dev](https://declarativex.dev).

## Show Some Love ❤️

Every contribution counts and is super appreciated! 🙏

Liking what you see? Support the creator to keep this project thriving.

[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/E1E2OL196)

