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
Metadata
Release files for flask-nova 0.2.1
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.1.tar.gz | 30.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flask_nova-0.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 65.1 kB
Release files / flask_nova-0.2.1.tar.gz
| Download URL | flask_nova-0.2.1.tar.gz |
|---|---|
| Size | 30.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
daf08f71be8b7c99b7f74988dd0449ec2ca744bb64827431578c4d96f170efd5
|
|
BLAKE2b-256 checksum How to use checksums |
cb25734925c405d0b4c85232308261752e4a5ca6c26df2ed4c52c97c4ee3ac56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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.1-py3-none-any.whl
| Download URL | flask_nova-0.2.1-py3-none-any.whl |
|---|---|
| Size | 34.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78de296e5898933f7516c69e867df4a3f76c9b98f404474389bbcf6fb7f3d6c9
|
|
BLAKE2b-256 checksum How to use checksums |
063547a35df07572ad609213082e6d5593c0a222884c3a806f269fe619819c04
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.18 {"installer":{"name":"uv","version":"0.12.18","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}
|