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.9.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3aa3633b87c11a1aaa398bb74420e94356ebfe974d4c8757237404f9f85e4fe5 |
|
MD5 | cd87184cc66cfef46bbec58276f9e071 |
|
BLAKE2b-256 | 2184922e54387a3b4fabfbf81336c253fa04e22eb23822b56664c513b19b0ed2 |