Utility collection for development with SQLalchemy ORM.
Project description
Utility collection for development with SQLAlchemy 1.4 / 2.0 ORM.
Documentation
Installation
Installing sqlalchemy-things with pip:
pip install sqlalchemy-things
Examples
Single table inheritance
from sqlalchemy_things.declarative import (
IntegerPrimaryKeyMixin,
PolymorphicMixin,
)
metadata = sa.MetaData()
Base = orm.declarative_base(metadata=metadata)
class Parent(Base, IntegerPrimaryKeyMixin, PolymorphicMixin):
__tablename__ = 'single_table'
class ChildA(Parent):
__mapper_args__ = {'polymorphic_identity': 'child_a'}
some_field = sa.Column(sa.String(255))
class ChildB(Parent):
__mapper_args__ = {'polymorphic_identity': 'child_b'}
other_filed = sa.Column(sa.String(127))
Joined table inheritance with cascade primary key mixins
from sqlalchemy_things.declarative import (
CascadeIntegerPrimaryKeyMixin,
PolymorphicMixin,
)
metadata = sa.MetaData()
Base = orm.declarative_base(metadata=metadata)
class Parent(Base, CascadeIntegerPrimaryKeyMixin, PolymorphicMixin):
__tablename__ = 'cascade_pk_parent_table'
class ChildA(Parent):
__tablename__ = 'cascade_pk_child_table_a'
__mapper_args__ = {'polymorphic_identity': 'child_a'}
some_field = sa.Column(sa.String(255))
class ChildB(Parent):
__tablename__ = 'cascade_pk_child_table_b'
__mapper_args__ = {'polymorphic_identity': 'child_b'}
some_field = sa.Column(sa.String(127))
Joined table inheritance with simple primary key mixins
from sqlalchemy_things.declarative import (
IntegerPrimaryKeyMixin,
ParentPrimaryKeyMixin,
PolymorphicMixin,
)
metadata = sa.MetaData()
Base = orm.declarative_base(metadata=metadata)
class Parent(Base, IntegerPrimaryKeyMixin, PolymorphicMixin):
__tablename__ = 'inherited_pk_parent_table'
class ChildA(ParentPrimaryKeyMixin, Parent):
__tablename__ = 'inherited_pk_child_table_a'
__mapper_args__ = {'polymorphic_identity': 'child_a'}
some_field = sa.Column(sa.String(255))
class ChildB(ParentPrimaryKeyMixin, Parent):
__tablename__ = 'inherited_pk_child_table_b'
__mapper_args__ = {'polymorphic_identity': 'child_b'}
some_field = sa.Column(sa.String(127))
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
Close
Hashes for sqlalchemy_things-0.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36dbcb74e5695bbdfdcfb8466dd4870f3ef7c593ea035c4b05cb1b2c219c0500 |
|
MD5 | c567594c6e3c9ae9811c09d235e676b3 |
|
BLAKE2b-256 | 15452592b5f7cfaef035401ad344dad68deae5a989d972c2d9405e2d0ed83d75 |