Metadata-Version: 2.4
Name: wau
Version: 0.1.0
Summary: Web API Utils
Author: Marco Schmalz
License-Expression: LGPL-3.0-or-later
Keywords: api,json,werkzeug,education
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.14
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dataset>=2.0.0
Requires-Dist: pyjwt>=2.13.0
Requires-Dist: werkzeug>=3.1.8
Dynamic: license-file

# `wau` &mdash; Web API Utils

Web API Utils, or short `wau`, is a thin layer on top of Werkzeug to provide a simple and consistent interface for writing APIs in Python. `wau` is built for educational purposes and is not intended for production use. It is opinionated, as it only supports JSON as data format. It uses simple type annotations to define the expected input and output of the API endpoints. Common tasks as authentication, CORS and server-sent events are supported by default.

## Installation

Install from PyPI:

```powershell
pip install wau
```

or with uv:

```powershell
uv add wau
```

## Testing

Test dependencies are separated from runtime dependencies in `pyproject.toml`
using the `test` dependency group.

Run the test suite:

```powershell
uv run --group test python -m pytest -q
```

Run doctests:

```powershell
uv run --group test python -m doctest .\wau.py
```

## Publishing

Build package artifacts:

```powershell
uv build
```

Validate metadata and README rendering:

```powershell
uvx twine check dist/*
```

Upload to TestPyPI first:

```powershell
uv publish --publish-url https://test.pypi.org/legacy/
```

Then publish to PyPI:

```powershell
uv publish
```

## License

This project is licensed under GNU LGPL v3 or later (`LGPL-3.0-or-later`).

If you distribute modified versions of this library, those library
modifications must be published under the same license terms.
