python-neva
The core of the Neva framework — a Laravel-inspired toolkit for Python that
brings Laravel's philosophy, terminology, and conventions to the Python
ecosystem: service providers, facades, bind/make dependency injection (on
dishka), Hash/Crypt/Config/Log/Event
facades, a transaction-aware event system, and Result/Option error handling.
python-neva is the framework-agnostic core. Web- and protocol-specific
concerns live in separate integration packages (the plugins below) so the core
never depends on a particular HTTP or messaging framework.
Plugins & ecosystem
Neva is split into one repository per package. The core is published as
python-neva; each plugin is an
independent repo, independently versioned and published.
| Package | Repo / directory | Role | Status |
|---|---|---|---|
python-neva |
neva/ |
Core, framework-agnostic. DI, service providers, facades, Result/Option, events, security, observability, SQLAlchemy database layer. | published (PyPI) |
neva-fastapi |
neva-fastapi/ |
FastAPI integration — App extends FastAPI and wires dishka into routes. Pulled in via the python-neva[fastapi] extra. |
published (PyPI) |
neva-asgi |
neva-asgi/ |
ASGI middleware — correlation IDs and per-request profiling. Pure ASGI, so both the HTTP and messaging integrations can consume it. Pulled in via the python-neva[asgi] extra. |
published (PyPI) |
neva-faststream |
neva-faststream/ |
FastStream (messaging) integration. | scaffolded, early placeholder |
neva-auth |
neva-auth/ |
Authentication & identity toolkit — token-issuance engine, OAuth2 grants, guards, pluggable formats/backends. | core complete, OAuth-server slice in progress |
neva-example |
neva-example/ |
Reference application consuming python-neva[fastapi]. Not published; demonstration + integration test bed. |
unpublished |
When working across packages locally, each repo can be cloned as a sibling directory; integration packages depend on
python-nevafrom PyPI (or an editable local path during development).
Develop
uv sync # install/refresh deps from uv.lock
poe lint # ruff check
poe fmt # ruff format
poe tc # type-check (pyrefly)
poe test # pytest
poe test-cov # tests with coverage
# Run a single test
pytest tests/test_file.py::TestClass::test_method -v
asyncio_mode = "auto" is set, so async tests need no @pytest.mark.asyncio.
Contributing
Commits follow Conventional Commits
with gitmoji prefixes, enforced by
cz_gitmoji. Commitizen is
provided as a dev dependency — no separate install needed. Run the guided
wizard:
cz commit
or format manually as :gitmoji: type(scope): subject.
Releases are cut per-repo with commitizen, from the repo root:
cz bump # bump version in pyproject, write CHANGELOG, tag v<version>
git push --follow-tags origin main
uv build && uv publish # build + publish the wheel/sdist
cz bump derives the bump level (major/minor/patch) from the commits since the
last tag, updates CHANGELOG.md, and runs scripts/retag-with-changelog.sh to
rewrite the new tag with the rendered changelog as its annotation.
Feature ideas
- Feature-parity FastStream integration (now scaffolded as
neva-faststream) - Finish cleaning up the core package (moving any remaining ASGI-dependent code into the appropriate integration packages)
- Improved router registration (auto-discovery OR provider-based? both?)
- Improved security tooling (performance improvements, better defaults, etc.)
- Better OpenTelemetry integration
- Improved factory module (based on Polyfactory)
- Queue/Jobs system
- CLI integration
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file python_neva-4.0.0.tar.gz.
File metadata
- Download URL: python_neva-4.0.0.tar.gz
- Upload date:
- Size: 205.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
14c6f959879f58eabf517e2bd83e73983ff767017b140d4a3b031ff68be4424f
|
|
| MD5 |
66580a33e268788627fd51d264ce1a27
|
|
| BLAKE2b-256 |
be2b9f52b97ff3e2d61665b419777e8108ec5476c24a7b298ca6a06164d01721
|
File details
Details for the file python_neva-4.0.0-py3-none-any.whl.
File metadata
- Download URL: python_neva-4.0.0-py3-none-any.whl
- Upload date:
- Size: 66.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.8.22
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7725adf3803264a24051c187ddb356be658ae273723091811f4e582010dda0ec
|
|
| MD5 |
9830bd4cc18a5e3c7477d3f84dd6c39e
|
|
| BLAKE2b-256 |
82c12d72ae2631904a6a3db86e5d92c9fafca128aeebcfc3f6d4bafb797f25fa
|