Metadata-Version: 2.1
Name: apitally
Version: 0.1.0
Summary: Apitally client library for Python
Home-page: https://github.com/apitally/apitally-python
License: MIT
Author: Simon Gurcke
Author-email: simon@gurcke.de
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Provides-Extra: django-ninja
Provides-Extra: django-rest-framework
Provides-Extra: fastapi
Provides-Extra: flask
Provides-Extra: starlette
Requires-Dist: backoff (>=2.0.0)
Requires-Dist: django (>=4.0) ; extra == "django-rest-framework" or extra == "django-ninja"
Requires-Dist: django-ninja (>=0.18.0) ; extra == "django-ninja"
Requires-Dist: djangorestframework (>=3.12.0) ; extra == "django-rest-framework"
Requires-Dist: fastapi (>=0.87.0) ; extra == "fastapi"
Requires-Dist: flask (>=2.0.0) ; extra == "flask"
Requires-Dist: httpx (>=0.22.0) ; extra == "fastapi" or extra == "starlette"
Requires-Dist: requests (>=2.26.0) ; extra == "django-rest-framework" or extra == "django-ninja" or extra == "flask"
Requires-Dist: starlette (>=0.21.0) ; extra == "fastapi" or extra == "starlette"
Project-URL: Repository, https://github.com/apitally/apitally-python
Description-Content-Type: text/markdown

# Apitally client for Python

[![Tests](https://github.com/apitally/python-client/actions/workflows/tests.yaml/badge.svg?event=push)](https://github.com/apitally/python-client/actions)
[![Codecov](https://codecov.io/gh/apitally/python-client/graph/badge.svg?token=UNLYBY4Y3V)](https://codecov.io/gh/apitally/python-client)
[![PyPI](https://img.shields.io/pypi/v/apitally?logo=pypi&logoColor=white&color=%23006dad)](https://pypi.org/project/apitally/)

Apitally client library for Python.

Currently supports the following frameworks:

- [FastAPI](https://fastapi.tiangolo.com/)
- [Starlette](https://www.starlette.io/)
- [Django Ninja](https://django-ninja.rest-framework.com/)
- [Django REST Framework](https://www.django-rest-framework.org/)
- [Flask](https://flask.palletsprojects.com/)

## Installation

Use `pip` to install and provide your framework of choice as an extra, for example:

```bash
pip install apitally[fastapi]
```

The available extras are: `fastapi`, `starlette`, `django_ninja`, `django_rest_framework` and `flask`.

## Basic usage

Below are basic usage examples for each supported framework. For more detailed instructions and examples, including on how to use Apitally API key authentication, see the [documentation](https://docs.apitally.com/).

### With FastAPI

```python
from fastapi import FastAPI
from apitally.fastapi import ApitallyMiddleware

app = FastAPI()
app.add_middleware(ApitallyMiddleware, client_id="<your-client-id>")
```

### With Starlette

```python
from starlette.applications import Starlette
from apitally.starlette import ApitallyMiddleware

app = Starlette()
app.add_middleware(ApitallyMiddleware, client_id="<your-client-id>")
```

### With Django Ninja

In your Django `settings.py` file:

```python
MIDDLEWARE = [
    "apitally.django_ninja.ApitallyMiddleware",
]
APITALLY_MIDDLEWARE = {
    "client_id": "<your-client-id>",
}
```

### With Django REST Framework

In your Django `settings.py` file:

```python
MIDDLEWARE = [
    "apitally.django_rest_framework.ApitallyMiddleware",
]
APITALLY_MIDDLEWARE = {
    "client_id": "<your-client-id>",
}
```

### With Flask

```python
from flask import Flask
from apitally.flask import ApitallyMiddleware

app = Flask(__name__)
app.wsgi_app = ApitallyMiddleware(app, client_id="<your-client-id>")
```

