bolinette
Bolinette is a framework for building Python applications. This package is its core: it builds the application, loads the extensions, reads the configuration, and gives every other package the injection, mapping, commands, events and logging they are written against.
Core is useful on its own, for an application that is not a web server: a command line tool, a worker, a batch job. The relational layer, the ASGI server and the REST routes live in bolinette-data, bolinette-web and bolinette-api.
from bolinette import core
async def make_bolinette() -> core.Bolinette:
return await core.make_bolinette(extensions=[core.CoreExtension()])
Installation
$ pip install bolinette # or use your preferred package manager
The blnt new project command scaffolds a project, asks which extensions to install, and writes the package, the application factory and the env folder.
Requirements
Bolinette requires Python 3.13 (or newer). The core package depends on soupape for dependency injection, peritype for runtime type introspection, muotti for object mapping, mirino for the paths errors are reported on, escondite and hafersack for the cache and metadata its decorators write to, and on pydantic.
What the core does
- Application lifecycle —
make_bolinettebuilds the application from a list of extensions. Nothing runs untilstartup()is awaited, anddispose()closes the injector. - Extensions — a class with a name, its dependencies and a
register_servicesmethod. Packages advertise theirs through thebolinette.extensionsentry point group, which the scaffolding reads. - Configuration — pydantic sections decorated with
config_section, injected asConfigSection[T]. Layered overenv/files, per profile, with environment variables underneath. - Dependency injection — every service, route and command has its parameters resolved by soupape.
- Object mapping — payloads and responses go through a muotti mapper, reporting the field path a conversion failed on.
- Commands — async functions registered with
command, their parameters annotated as arguments or options, run byblnt. - Events — listeners for the initialized, started, stopped and error events of the application.
- Logging —
Logger[T]is a standard logger named after the type it is injected into, configured by the core section. - Testing —
Mockbuilds a stub for any injectable type and records the calls made on it.
Bolinette is fully typed and checked in Pyright's strict mode.
License
Bolinette is released under the MIT license, see LICENSE.txt.
Metadata
Release files for bolinette 0.20.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| bolinette-0.20.0.tar.gz | 19.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bolinette-0.20.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.4 kB
Release files / bolinette-0.20.0.tar.gz
| Download URL | bolinette-0.20.0.tar.gz |
|---|---|
| Size | 19.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2d67e04029c92ee356957f6ece61b2ece5dc4b388428b21ac63ff4b15e236e6f
|
|
BLAKE2b-256 checksum How to use checksums |
142c950bad17971b821c2f96ebf413ceb9012ef9238182801ec579d2ddc71711
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / bolinette-0.20.0-py3-none-any.whl
| Download URL | bolinette-0.20.0-py3-none-any.whl |
|---|---|
| Size | 33.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
80bc4dd458dabc91ee55269a600b0fa257800823653c308b974a29187450e28d
|
|
BLAKE2b-256 checksum How to use checksums |
9618c24593d926b5786f0e881b52587992b23bf005cfbc252ec7bfb6b4a46ac5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for bolinette 0.20.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.