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
sqlalchemy-things-0.4.0.tar.gz
(10.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sqlalchemy-things-0.4.0.tar.gz.
File metadata
- Download URL: sqlalchemy-things-0.4.0.tar.gz
- Upload date:
- Size: 10.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.9.5 Linux/5.4.0-77-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99dc6b9119f73927f07523257374d1630ff03ca16b52e54946e155a4bb6cc4bd
|
|
| MD5 |
a893f90d9faecc6663733e9ca578edd5
|
|
| BLAKE2b-256 |
3c00e904838793532dd6966d383ccf62614c283853198ca30aabb4ada7c98eb9
|
File details
Details for the file sqlalchemy_things-0.4.0-py3-none-any.whl.
File metadata
- Download URL: sqlalchemy_things-0.4.0-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.4 CPython/3.9.5 Linux/5.4.0-77-generic
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a6178be2a450064f68b20d194f0fe7ede5ccd2f05b1276cb73e0452d1a40abe
|
|
| MD5 |
ecb3688e71940df4bcd0ae73c02920fa
|
|
| BLAKE2b-256 |
acd1ef3f1482dc613b901024494e7caf8e7eed111c2da5e7984ecb23954c1c0e
|