dbrepos.core package¶
Submodules¶
dbrepos.core.abstract module¶
- class dbrepos.core.abstract.IFilter(table_class: Type[TTableCovariant], column_name: str, value: TFieldValue | None = None, operator_: operator = operator.eq)[source]¶
Bases:
Protocol[TTableCovariant,TColumn,TFieldValue,TCompiledFilter]- __call__(value: TFieldValue, operator_: operator = operator.eq) Self[source]¶
Finish construction of the object
This is a 2nd-step construction for DI support
- Parameters:
value (TFieldValue) – Value to filter against
operator (operator, optional) – Operator for filtering. Defaults to operator.eq
- Returns:
Completed filter object
- Return type:
Examples
` uuid_filter = Filter(File, "uuid")([str(uuid4()), str(uuid4())], operator.in_) # noqa:E501 `
- column: TColumn¶
- column_name: str¶
- compile() TCompiledFilter[source]¶
Compile filter
- Returns:
Compiled filter for usage in orm or IFilterSeq class
- Return type:
TCompiledFilter
- value: TFieldValue | None¶
- class dbrepos.core.abstract.IFilterSeq(mode_: mode, *filters: IFilter | IFilterSeq[TCompiledFilter])[source]¶
Bases:
Protocol[TCompiledFilter]
- class dbrepos.core.abstract.IRepo(*, table_class: Type[TTable], pk_field_name: str = 'id', is_soft_deletable: bool = False, default_ordering: Tuple[str, ...] = ('id',), session_factory: AbstractContextManager | None = None)[source]¶
Bases:
Protocol[TTable,TResultORM]- all(*, extra: Extra | None = None, session: TSession | None = None) Iterable[TResultORM]¶
- all(*, convert_to: Type[TResultDataclass], extra: Extra | None = None, session: TSession | None = None) Iterable[TResultDataclass]
Helper for @overload to raise when called.
- all_by_field(*, name: str, value: TFieldValue, extra: Extra | None = None, session: TSession | None = None) Iterable[TResultORM]¶
- all_by_field(*, name: str, value: TFieldValue, convert_to: Type[TResultDataclass], extra: Extra | None = None, session: TSession | None = None) Iterable[TResultDataclass]
Helper for @overload to raise when called.
- all_by_filters(*, filters: IFilterSeq, extra: Extra | None = None, session: TSession | None = None) Iterable[TResultORM]¶
- all_by_filters(*, filters: IFilterSeq, convert_to: Type[TResultDataclass], extra: Extra | None = None, session: TSession | None = None) Iterable[TResultDataclass]
Helper for @overload to raise when called.
- all_by_pks(pks: Sequence[TPrimaryKey], *, extra: Extra | None = None, session: TSession | None = None) Iterable[TResultORM]¶
- all_by_pks(pks: Sequence[TPrimaryKey], *, convert_to: Type[TResultDataclass], extra: Extra | None = None, session: TSession | None = None) Iterable[TResultDataclass]
Helper for @overload to raise when called.
- count_by_field(*, name: str, value: TFieldValue, extra: Extra | None = None, session: TSession | None = None) int[source]¶
Count rows by field:value
- Parameters:
name (str) – Name of the field
value (TFieldValue) – Value of the field
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
- Returns:
Number of found rows
- Return type:
int
- count_by_filters(*, filters: IFilterSeq, extra: Extra | None = None, session: TSession | None = None) int[source]¶
Count rows by filters
- Parameters:
filters (IFilterSeq) – Filter sequence
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
- Returns:
Number of found rows
- Return type:
int
- create(entity: TEntity, *, session: TSession | None = None) TResultORM¶
- create(entity: TEntity, *, convert_to: Type[TResultDataclass], session: TSession | None = None) TResultDataclass
Helper for @overload to raise when called.
- default_ordering: Tuple[str, ...]¶
- delete(pk: TPrimaryKey, *, extra: Extra | None = None, session: TSession | None = None) None[source]¶
Delete row by pk
- Parameters:
pk (TPrimaryKey) – Primary key of row to delete
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
- delete_by_field(*, name: str, value: TFieldValue, extra: Extra | None = None, session: TSession | None = None) None[source]¶
Delete row by field:value
- Parameters:
name (str) – Name of the field
value (TFieldValue) – Value of the field
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
- exists_by_field(*, name: str, value: TFieldValue, extra: Extra | None = None, session: TSession | None = None) bool[source]¶
Check if row exists by field:value
- Parameters:
name (str) – Name of the field
value (TFieldValue) – Value of the field
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
- Returns:
Row existence
- Return type:
bool
- exists_by_filters(*, filters: IFilterSeq, extra: Extra | None = None, session: TSession | None = None) bool[source]¶
Check if row exists by filters
- Parameters:
filters (IFilterSeq) – Filter sequence
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
- Returns:
Row existence
- Return type:
bool
- get_by_field(*, name: str, value: TFieldValue, strict: Literal[True] = True, extra: Extra | None = None, session: TSession | None = None) TResultORM¶
- get_by_field(*, name: str, value: TFieldValue, convert_to: Type[TResultDataclass], strict: Literal[True] = True, extra: Extra | None = None, session: TSession | None = None) TResultDataclass
- get_by_field(*, name: str, value: TFieldValue, strict: Literal[False], extra: Extra | None = None, session: TSession | None = None) TResultORM | None
- get_by_field(*, name: str, value: TFieldValue, convert_to: Type[TResultDataclass], strict: Literal[False], extra: Extra | None = None, session: TSession | None = None) TResultDataclass | None
Helper for @overload to raise when called.
- get_by_filters(*, filters: IFilterSeq, strict: Literal[True] = True, extra: Extra | None = None, session: TSession | None = None) TResultORM¶
- get_by_filters(*, filters: IFilterSeq, convert_to: Type[TResultDataclass], strict: Literal[True] = True, extra: Extra | None = None, session: TSession | None = None) TResultDataclass
- get_by_filters(*, filters: IFilterSeq, strict: Literal[False], extra: Extra | None = None, session: TSession | None = None) TResultORM | None
- get_by_filters(*, filters: IFilterSeq, convert_to: Type[TResultDataclass], strict: Literal[False], extra: Extra | None = None, session: TSession | None = None) TResultDataclass | None
Helper for @overload to raise when called.
- get_by_pk(pk: TPrimaryKey, *, strict: Literal[True] = True, extra: Extra | None = None, session: TSession | None = None) TResultORM¶
- get_by_pk(pk: TPrimaryKey, *, convert_to: Type[TResultDataclass], strict: Literal[True] = True, extra: Extra | None = None, session: TSession | None = None) TResultDataclass
- get_by_pk(pk: TPrimaryKey, *, strict: Literal[False], extra: Extra | None = None, session: TSession | None = None) TResultORM | None
- get_by_pk(pk: TPrimaryKey, *, convert_to: Type[TResultDataclass], strict: Literal[False], extra: Extra | None = None, session: TSession | None = None) TResultDataclass | None
Helper for @overload to raise when called.
- is_soft_deletable: bool¶
- multi_update(pks: Sequence[TPrimaryKey], *, values: Mapping[str, TFieldValue], extra: Extra | None = None, session: TSession | None = None) None[source]¶
Update rows
- Parameters:
pks (Sequence[TPrimaryKey]) – Primary keys of rows to update
values (Mapping[str, TFieldValue]) – Mapping with format {field_name:new_value}
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
- pk_field_name: str¶
- session_factory: AbstractContextManager | None¶
- table_class: Type[TTable]¶
- update(pk: TPrimaryKey, *, values: Mapping[str, TFieldValue], extra: Extra | None = None, session: TSession | None = None) None[source]¶
Update row
- Parameters:
pk (TPrimaryKey) – Primary key of row to update
values (Mapping[str, TFieldValue]) – Mapping with format {field_name:new_value}
extra (Extra | None, optional) – Extra params. Defaults to None
session (TSession | None) – Session to use for DB queries. Defaults to None. Currently supported for SQLAlchemy
dbrepos.core.exceptions module¶
dbrepos.core.types module¶
- class dbrepos.core.types.Extra(for_update: bool = False, include_soft_deleted: bool = False, ordering: ~typing.Tuple[str, ...] = <factory>, select_related: ~typing.Tuple[str, ...] = <factory>)[source]¶
Bases:
object- Parameters:
for_update (bool) – Lock row. Defaults to False
include_soft_deleted (bool) – Include soft deleted rows. Works only for soft deletable models. Defaults to False
ordering (Tuple[str]) – Result ordering. Defaults to empty tuple (meaning default ordering is applied)
select_related (Tuple[str]) – Columns to join from related tables. Defaults to empty tuple (meaning columns are joined)
- for_update: bool = False¶
- include_soft_deleted: bool = False¶
- ordering: Tuple[str, ...]¶