A utility package for projects using flask, sqlalchemy, socketio and pytest
Project description
Flask-Fullstack
Flask-Fullstack is an utils package for projects using a fleet of libs:
It is currently in deep development. Package is maintained by one programmer (hey that me!). In this readme you can find:
Install
Add the library to your project
pip install flask-fullstack # via pip
poetry add flask-fullstack # via poetry
Working with this repository
pip install poetry==1.5.1
poetry install
Quick Start
TBD
Features
Interfaces & Mixins
- Database Interfaces: Implement these to later automate searching & authorization (see below)
- Mixins with Decorators: Classes full of useful decorators to be used in less abstract context (see below)
RESTX improvements
- New Marshals: form SQLAlchemy to Pydantic and then to the Response Marshaling
- Upgraded Parsers: just a couple of commonly used parsers to
.copy()
- Resource Controller: RESTX's Namespace, but with access to useful decorators from mixins
New Models
New models, created in flask_fullstack.restx.marshals
, are a translation layer between Pydantic & RESTX's own Models. These models also support being created from SQLAlchemy tables via Column reflection
For Pydantic, it only supports as fields: the keys of flask_fullstack.restx.marshals.type_to_field
, list
s and nesting other Pydantic models
For SQLAlchemy, it only supports converting columns of types in the keys of flask_fullstack.restx.marshals.column_to_field
SocketIO eXtensions
- Understandable Events: Makes possible automatic documentation, data validation (with New Marshals or pure Pydantic) & emits not just by the event's name
- Event Controller: Used to group events & provide access to useful decorators from mixins
- Upgraded Structures: Propagating new events & other utils to Flask-SocketIO's
Namespace
s & theSocketIO
class itself
Other Utils
- SQLAlchemy Simplified: creating objects, parsing query results, deleting objects
- New Columns: JSON with Schema or a RESTX Model to use in New Marshals
- Named: If some class attribute needs to know the attribute name
- Other: Utils for dicts, pydantic, pytest, unpacking RESTX responses, TypeEnum, etc
- Assert Contains: inline-usable pydantic-based validations for testing
- Core: For simplifying the common project setup steps
Future
TBA
Contributing
You are welcome to create issues and PRs in this repository. I'll get to them as soon as I have time!
Project details
Release history Release notifications | RSS feed
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
Hashes for flask_fullstack-0.5.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aed3f03b05f2638b47a6dc264147477c6a9ce622cc3f7d2293a9868579697dc7 |
|
MD5 | b8b38e487c61356decbedfb2c0866ec0 |
|
BLAKE2b-256 | 7d14b63a7af251173abe3ff7fe9de2444517e714b5355c9a1e7bc1aa9c4e7e81 |