Metadata-Version: 2.4
Name: nx-framework
Version: 0.0.10
Summary: Low-level FastAPI, asyncpg and Redis framework used by Nebula Broadcast and other projects.
Author-email: Martin Wacker <martas@imm.cz>
License-Expression: MIT
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: aiofiles>=24.1.0
Requires-Dist: aioshutil>=1.5
Requires-Dist: pydantic-settings>=2.7.1
Requires-Dist: pydantic[email]>=2.10.6
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: shortuuid>=1.0.13
Requires-Dist: unidecode>=1.3.8
Provides-Extra: fastapi
Requires-Dist: fastapi>=0.115.8; extra == "fastapi"
Provides-Extra: redis
Requires-Dist: redis>=5.2.1; extra == "redis"
Provides-Extra: postgres
Requires-Dist: asyncpg>=0.30.0; extra == "postgres"
Dynamic: license-file

# nx
Very opinionated set of tools

## Testing

Run the fast test suite with:

```bash
uv run pytest -m "not integration"
```

Run the integration suite against Docker-backed Postgres and Redis with:

```bash
make test-integration
```

That starts the services, runs the suite and tears them down again. To iterate
against a stack you keep running yourself:

```bash
docker compose -f docker-compose.test.yml up -d
uv run pytest -m integration
docker compose -f docker-compose.test.yml down
```

`NX_POSTGRES_URL` and `NX_REDIS_URL` override the services the suite connects
to; they default to the ports in `docker-compose.test.yml`. Each test works in
its own Redis namespace and its own Postgres table, so the suite can be re-run
against long-lived services without resetting them.
