Reference

Custom column types

class sqlalchemy_things.column_types.UUIDType(*args: Any, **kwargs: Any)

Bases: TypeDecorator

Backend-agnostic UUID type.

Mixins for signle and joined inheritance

class sqlalchemy_things.declarative.PolymorphicMixin

Bases: DeclarativeMixin

Polymorphic mixin for single table and joined table inheritance.

Primary key mixins for signle and joined table inheritance

class sqlalchemy_things.declarative.BigIntegerPrimaryKeyMixin

Bases: DeclarativeMixin

Big integer primary key mixin.

Warning

SQLite backend not support autoincrement for BigInteger column type.

class sqlalchemy_things.declarative.DateTimePrimaryKeyMixin

Bases: DeclarativeMixin

Datetime primary key mixin.

class sqlalchemy_things.declarative.IntegerPrimaryKeyMixin

Bases: DeclarativeMixin

Integer primary key mixin.

class sqlalchemy_things.declarative.UUIDPrimaryKeyMixin

Bases: DeclarativeMixin

UUID primary key mixin.

Primary key mixins for joined table inheritance

class sqlalchemy_things.declarative.CascadeBigIntegerPrimaryKeyMixin

Bases: InheritedDeclarativeMixin

Cascade big integer primary key mixin for joined table inheritance.

Warning

SQLite backend not support autoincrement for BigInteger column type.

class sqlalchemy_things.declarative.CascadeDateTimePrimaryKeyMixin

Bases: InheritedDeclarativeMixin

Cascade datetime primary key mixin for joined table inheritance.

class sqlalchemy_things.declarative.CascadeIntegerPrimaryKeyMixin

Bases: InheritedDeclarativeMixin

Cascade integer primary key mixin for joined table inheritance.

class sqlalchemy_things.declarative.CascadeUUIDPrimaryKeyMixin

Bases: InheritedDeclarativeMixin

Cascade UUID primary key mixin for joined table inheritance.

class sqlalchemy_things.declarative.ParentPrimaryKeyMixin

Bases: InheritedDeclarativeMixin

Parent primary key mixin for child class in joined table inheritance without cascade primary key mixin.

Warning

This mixin must precede the parent class when declaring a child class.

Pagination

class sqlalchemy_things.pagination.OffsetPage(items: list[Any], number: int, page_size: int, total: int)

Bases: object

class sqlalchemy_things.pagination.OffsetPaginator(page_size: int = 20, max_page: int | None = None)

Bases: object

Utils for single and joined inheritance

sqlalchemy_things.declarative.get_inherited_column(self: DeclarativeMixin, name: str, default: Mapped[Any]) Mapped[Any]

Utility function for column inheriting in mixins.

Parameters:
  • name – column name of parent class;

  • default – default value if not found in parent class.

sqlalchemy_things.declarative.get_inherited_primary_key(self: Any) Mapped[Any]

Utility function for creating child primary key in joined table inheritance.