Skip to main content

An SQL-Alchemy mixin to give records per row a git version tracked text

Project description

Gitmixin

An SQLALchemy mixin that can track individual fields and turn them into git repos with simple advance forward, rewind back mechanisms.

Docs PyPI Version Github

Docs

Checkout our read the docs!

Testing

Run tests:

python3 tests/test_githandler.py

Getting started with GitMixin

A quick guide to using gitmixin

Installation

First install gitmixin with pip

pip install gitmixin

or

pip3 install gitmixin


Adding Gitmixin to your project

SQLALchemy projects typically have a database defined in models. In your models.py file or equivalent, import GitMixin near the top of the file.

from gitmixin import GitMixin

Then, in your SQLAlchemy class, inherit the GitMixin we just imported to give that model SQLAlchemy methods & allow it to access that models' event hooks.

class Notes(Base, GitMixin):

Finally in the model, add a new private attribute trackedfields, and let it equal a list of strings that you intend to track. The strings inside this list should be names of fields you want to track.

class Notes(Base, GitMixin):
    __tablename__ = 'notes'
    __trackedfields__ = ['notes', 'links']
    id = Column(Integer, primary_key=True)
    notes =  Column(String(200))
    links = Column(String(200))

A finished example

# imports
from gitmixin import GitMixin

# SQLAlchemy
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

# ...

Base = declarative_base()


class Notes(Base, GitMixin):
    __tablename__ = 'notes'
    __trackedfields__ = ['notes', 'links']
    id = Column(Integer, primary_key=True)
    notes =  Column(String(200))
    links = Column(String(200))



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

gitmixin-0.1.0.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitmixin-0.1.0-py3-none-any.whl (2.9 kB view details)

Uploaded Python 3

File details

Details for the file gitmixin-0.1.0.tar.gz.

File metadata

  • Download URL: gitmixin-0.1.0.tar.gz
  • Upload date:
  • Size: 2.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.4

File hashes

Hashes for gitmixin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 15817d04ae7e6c16445a7ba005cceae9e808a8fe4e6a655c9ee8c7a261b26837
MD5 700a693aaba780eac01a6e8015be8e08
BLAKE2b-256 824c8f1fcaa993bf7aed3f81b2ec826a1c318c6e9b6c7246506b1166a0488331

See more details on using hashes here.

File details

Details for the file gitmixin-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: gitmixin-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.4

File hashes

Hashes for gitmixin-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 13ce8ae1cf8ac397128fb889af718d9d6286dceab1f2de41fa2b35ee1c3a00c7
MD5 302f70d56611256b87a8d097739732b1
BLAKE2b-256 b20faffb9377202e9350aeb97c720ca8b25a19586a322c950de0aa45e29df058

See more details on using hashes here.

Supported by

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