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.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 178c61fa862f9b4f4ee2f1d3fde4e267f5308f9bf9462fd3c12010b1e6180b1b |
|
MD5 | 6ab5ea2035fb0f3895920b5dd0c648c7 |
|
BLAKE2b-256 | 06cc4c1af71988c03daa39542f9e8f5497af1b999002b9acaf0eb87d3cc0aa9b |