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.10.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

flask_fullstack-0.5.10-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file flask_fullstack-0.5.10.tar.gz.

File metadata

  • Download URL: flask_fullstack-0.5.10.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.1 Windows/10

File hashes

Hashes for flask_fullstack-0.5.10.tar.gz
Algorithm Hash digest
SHA256 6851eeb712c5436f0e1d285f31ddc6f6792c742b086a3d707063650b4fde9f91
MD5 0c4e6a7b014089f95e9f216b905d1d62
BLAKE2b-256 82fb72b7c92cfc6d5c7e422d7c527391c10a8492a4fb9196c0bb8e3b61836dc9

See more details on using hashes here.

File details

Details for the file flask_fullstack-0.5.10-py3-none-any.whl.

File metadata

File hashes

Hashes for flask_fullstack-0.5.10-py3-none-any.whl
Algorithm Hash digest
SHA256 bf58f67f51e446c0d48d1a92879b424ccc321a1d2067ed1faef8b0bc8f78838e
MD5 ebef4c7692f7a6b63de16f90fff341d3
BLAKE2b-256 11115f6058b2fc636039c234910fe6cdbb73afe4934d63861294c3d45dc3cba7

See more details on using hashes here.

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