FlaskNova — lightweight Flask extension for automatic OpenAPI, docs, request validation, typed routing, and response serialization.
Overview FlaskNova provides small, focused tools to make building typed HTTP APIs with Flask easier: automatic OpenAPI generation, lightweight documentation UIs, request/response binders, and helpers for errors and logging.
Features (brief descriptions)
- OpenAPI & docs: Produces an OpenAPI document (
/openapi.json) and exposes lightweight UI routes (/docs,/redoc,/scalar) for quick inspection and manual testing. - Request parsing & validation: Bind and validate inputs using Pydantic
models, dataclasses, or custom binder classes; includes
FormandFilehelpers for form data and uploads. - Response serialization: Describe responses with
response_modeland return native types; the library serializes Pydantic/dataclass/custom objects consistently before returning JSON. - Typed routing &
NovaBlueprint: Method-specific decorators (@app.get,@app.post, etc.) accept metadata andresponse_modelto keep routes explicit and documented. - Dependency injection:
Dependallows small provider callables to supply route arguments (useful for auth, services, or computed values). - Error handling & status helpers: RFC 7807 problem-detail responses and a
statushelper module for common HTTP status codes and consistency. - CLI utilities: Minimal CLI commands to generate request examples and inspect route metadata for development convenience.
- Logging: Optional structured JSON logger when
ANSI_COLOR_JSON_LOGis enabled in the app config.
Installation
pip install flask-nova
Minimal example
from flask_nova import FlaskNova, status
from pydantic import BaseModel
app = FlaskNova(__name__)
class User(BaseModel):
username: str
email: str
@app.post("/users", response_model=User)
def create_user(data: User):
return data, status.CREATED
if __name__ == "__main__":
app.run()
Examples
- See usage examples and bindings in the repository: examples/nova2.py.
Documentation
- Full docs and examples: https://manitreasure1.github.io/flasknova
License
- MIT
Release files for flask-nova 0.2.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 | |
|---|---|---|---|
| flask_nova-0.2.0.tar.gz | 28.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flask_nova-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.4 kB
Release files / flask_nova-0.2.0.tar.gz
| Download URL | flask_nova-0.2.0.tar.gz |
|---|---|
| Size | 28.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7799326983bf0d9934bfa026f859466e824e0916078500f91c62cb28b5334195
|
|
BLAKE2b-256 checksum How to use checksums |
10645e9bfaa5a1c7811942450b4af5ceb1728b17f30ab6f59e79387c69af2d2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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 / flask_nova-0.2.0-py3-none-any.whl
| Download URL | flask_nova-0.2.0-py3-none-any.whl |
|---|---|
| Size | 32.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9ccdf750360a1f3e7c0cfb5d95fa1fc2dce5c5f2a105ae5f3df041b66e910dc8
|
|
BLAKE2b-256 checksum How to use checksums |
57950097c1740a69593e88ae97698db72d37ebb5324c66e77ed554862db6e5c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.10 {"installer":{"name":"uv","version":"0.12.10","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}
|