Skip to main content

Model provenance and versioning via SQLAlchemy-Continuum

Project description

Uncomment below for banners

Build status Code coverage Maintenance yes GitHub license Documentation Status

Flask-Continuum

Flask-Continuum is a lightweight Flask extension for providing data provenance and versioning support to Flask applications using SQLAlchemy. It is built on top of the sqlalchemy-continuum package, and provides a more Flask-y development experience for app configuration. If you’d like to configure your application with sqlalchemy-continuum directly, consult the sqlalchemy-continuum documentation.

Installation

To install the latest stable release via pip, run:

$ pip install Flask-Continuum

Alternatively with easy_install, run:

$ easy_install Flask-Continuum

To install the bleeding-edge version of the project (not recommended):

$ git clone http://github.com/bprinty/Flask-Continuum.git
$ cd Flask-Continuum
$ python setup.py install

Usage

Setting up the flask application with extensions:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_continuum import Continuum

app = Flask(__name__)
db = SQLAlchemy(app)
continuum = Continuum(app, db)

Or, using via the Flask app factory pattern:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_continuum import Continuum

db = SQLAlchemy()
continuum = Continuum(db=db)
app = Flask(__name__)
db.init_app(app)
continuum.init_app(app)

The following is a minimal example highlighting how the extension is used. Much of the example was taken from the SQLAlchemy-Continuum documentation to show how this plugin extends that package for a Flask application:

from flask_continuum import VersioningMixin

# defining database schema
class Article(db.Model, VersioningMixin):
    __tablename__ = 'article'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.Unicode(255))
    content = db.Column(db.UnicodeText)


# later in api or request handlers
article = Article(name='Some article', content='Some content')
session.add(article)
session.commit()

# article has now one version stored in database
article.versions[0].name
# 'Some article'

article.name = 'Updated name'
session.commit()

article.versions[1].name
# 'Updated name'


# lets revert back to first version
article.versions[0].revert()

article.name
# 'Some article'

Documentation

For more detailed documentation, see the Docs.

Questions/Feedback

File an issue in the GitHub issue tracker.

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-Continuum-0.1.7.tar.gz (99.1 kB view details)

Uploaded Source

Built Distribution

Flask_Continuum-0.1.7-py2.py3-none-any.whl (7.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file Flask-Continuum-0.1.7.tar.gz.

File metadata

  • Download URL: Flask-Continuum-0.1.7.tar.gz
  • Upload date:
  • Size: 99.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.6

File hashes

Hashes for Flask-Continuum-0.1.7.tar.gz
Algorithm Hash digest
SHA256 c0f2863377da34c83a5cbda930a02019a0dbeaf8413c4cf1d85367ddc926d4fc
MD5 6a6739b26776cfbdcc9cae4d5cc56e58
BLAKE2b-256 3a3b76f1e43f8a3613331edf3192c6ce5c4ab16cb9bc47633a05555387e1c362

See more details on using hashes here.

File details

Details for the file Flask_Continuum-0.1.7-py2.py3-none-any.whl.

File metadata

  • Download URL: Flask_Continuum-0.1.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.6

File hashes

Hashes for Flask_Continuum-0.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c8574f67f0c9042b5ad7de35f923c994cd9a9db2f2ac083607ad53eb183864b9
MD5 4ea67df1f45082972a1086d7e51ed1e2
BLAKE2b-256 82a82c5173f5f583812e25003b08ac9cdee5c4398ea2b473cff263e27e0c4c9c

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