Skip to main content

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 Marshals

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, lists 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 Namespaces & the SocketIO 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
  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flask_fullstack-0.5.9.tar.gz (27.2 kB view hashes)

Uploaded Source

Built Distribution

flask_fullstack-0.5.9-py3-none-any.whl (36.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page