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
Documentation on how to use the project as well as development for it can be found here. Check the projects section on Github speciifcally for the roadmap.
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
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
File details
Details for the file gitmixin-0.1.1.tar.gz
.
File metadata
- Download URL: gitmixin-0.1.1.tar.gz
- Upload date:
- Size: 3.0 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68cb017e2a042ca317e589eb2d5819f96c7c24155b398f3d384ca7dca7ed52a7 |
|
MD5 | 2ae0d295dc79ccc73a415672d25a1674 |
|
BLAKE2b-256 | 8d8ee11ad118f1af26e214567606ab5f361afa053c9c0cdcf49f9736ba92c1fe |
File details
Details for the file gitmixin-0.1.1-py3-none-any.whl
.
File metadata
- Download URL: gitmixin-0.1.1-py3-none-any.whl
- Upload date:
- Size: 3.0 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8369466eebf268813f49db6b72b7cff472616af36bea256876bb025e9fe45c87 |
|
MD5 | 73a9f6fa7b60379d5a8b7ae0ab056b4b |
|
BLAKE2b-256 | 6917ff382bedd06c21c134dd9fd892bcaa8c5e1d7730764a56414bf0d7bc2319 |