Skip to main content

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-neva from 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

python_neva-4.0.0.tar.gz (205.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

python_neva-4.0.0-py3-none-any.whl (66.6 kB view details)

Uploaded Python 3

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

Hashes for python_neva-4.0.0.tar.gz
Algorithm Hash digest
SHA256 14c6f959879f58eabf517e2bd83e73983ff767017b140d4a3b031ff68be4424f
MD5 66580a33e268788627fd51d264ce1a27
BLAKE2b-256 be2b9f52b97ff3e2d61665b419777e8108ec5476c24a7b298ca6a06164d01721

See more details on using hashes here.

File details

Details for the file python_neva-4.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_neva-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7725adf3803264a24051c187ddb356be658ae273723091811f4e582010dda0ec
MD5 9830bd4cc18a5e3c7477d3f84dd6c39e
BLAKE2b-256 82c12d72ae2631904a6a3db86e5d92c9fafca128aeebcfc3f6d4bafb797f25fa

See more details on using hashes here.

Release history Release notifications | RSS feed

4.1.0

2 files

This release

4.0.0 This release

2 files

3.7.0

2 files

3.6.0

2 files

3.5.1

2 files

3.5.0

2 files

3.4.0

2 files

3.3.0

2 files

3.2.0

2 files

3.1.1

2 files

3.1.0

2 files

3.0.0

2 files

2.4.1

2 files

2.4.0

2 files

2.3.0

2 files

2.2.1

2 files

2.2.0

2 files

2.1.0

2 files

2.0.0

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.5.0

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.2

2 files

0.2.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page