Metadata-Version: 2.4
Name: devpi-api-client
Version: 0.2.0
Summary: High-level Python client for managing users, indexes, tokens, and packages on devpi servers.
License: MIT
License-File: LICENSE
Keywords: devpi,pypi,api,client,packaging
Author: ramos
Author-email: crqdev@gmail.com
Requires-Python: >=3.9
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
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.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: pkginfo (>=1.12.1.2,<2.0.0.0)
Requires-Dist: pydantic (>=2.11.8,<3.0.0)
Requires-Dist: pymacaroons (>=0.13.0,<0.14.0)
Requires-Dist: requests (>=2.32.5,<3.0.0)
Project-URL: Documentation, https://github.com/ramos_admin/python-devpi-api-client/blob/main/docs/index.md
Project-URL: Homepage, https://github.com/ramos_admin/python-devpi-api-client
Project-URL: Repository, https://github.com/ramos_admin/python-devpi-api-client
Project-URL: changelog, https://github.com/ramos_admin/python-devpi-api-client/blob/main/CHANGELOG.md
Description-Content-Type: text/markdown

# Devpi API Client

Python client for automating user, index, token, and package management on a devpi server.

## Installation

```bash
pip install devpi-api-client
```

To hack on the project locally:

```bash
pip install pipx
pipx install poetry
poetry install --with dev,docs
```

## Quickstart

```python
from devpi_api_client import Client

with Client("https://devpi.example.com", user="root", password="s3cret") as client:
    client.user.create("service", "changeme", email="svc@example.com")
    indexes = client.index.list("service")
    token = client.token.create("service", allowed=["upload"], expires_in_seconds=3600)
```

### Logging

Enable debug logging to observe outgoing requests and error handling:

```python
import logging

logging.basicConfig(level=logging.INFO)
logging.getLogger("devpi_api_client").setLevel(logging.DEBUG)
```

## Documentation

Refer to `docs/index.md` for contributor and operator guides. Build the HTML docs locally:

```bash
poetry run mkdocs serve
```

## Testing

```bash
poetry run pytest
poetry run ruff check .
poetry run mypy devpi_api_client
```

## Release Process

1. Update `CHANGELOG.md` and bump the version with `poetry version <patch|minor|major>`.
2. Commit changes and push a tag like `v0.2.0`.
3. GitHub Actions builds and publishes to PyPI using the workflow described in `docs/RELEASE_GUIDE.md`.

## License

MIT License. See `LICENSE` for full text.

