services¶
- final class advanced_alchemy.service.Empty[source]¶
Bases:
object
A sentinel class used as placeholder.
- class advanced_alchemy.service.OffsetPagination[source]¶
Bases:
Generic
[T
]Container for data returned using limit/offset pagination.
- __init__(items, limit, offset, total)¶
- class advanced_alchemy.service.ResultConverter[source]¶
Bases:
object
Simple mixin to help convert to a paginated response model.
Single objects are transformed to the supplied schema type, and lists of objects are automatically transformed into an OffsetPagination response of the supplied schema type.
- Parameters:
data¶ – A database model instance or row mapping. Type:
ModelOrRowMappingT
- Returns:
The converted schema object.
- to_schema(data, total=None, filters=None, *, schema_type=None)[source]¶
Convert the object to a response schema.
When schema_type is None, the model is returned with no conversion.
- Parameters:
- Returns:
ModelProtocol
|sqlalchemy.orm.RowMapping
|OffsetPagination
|msgspec.Struct
|pydantic.BaseModel
- class advanced_alchemy.service.SQLAlchemyAsyncQueryService[source]¶
Bases:
ResultConverter
Simple service to execute the basic Query repository..
- __init__(session, **repo_kwargs)[source]¶
Configure the service object.
- Parameters:
session¶ (
Union
[AsyncSession
,async_scoped_session
[AsyncSession
]]) – Session managing the unit-of-work for the operation.**repo_kwargs¶ (
Any
) – Optional configuration values to pass into the repository
- classmethod new(cls, session=None, config=None)[source]¶
Context manager that returns instance of service object.
Handles construction of the database session._create_select_for_model
- Return type:
AsyncIterator
[Self
]- Returns:
The service object instance.
- class advanced_alchemy.service.SQLAlchemyAsyncRepositoryReadService[source]¶
Bases:
ResultConverter
,Generic
[ModelT
,SQLAlchemyAsyncRepositoryT
]Service object that operates on a repository object.
-
repository_type:
type
[TypeVar
(SQLAlchemyAsyncRepositoryT
, bound= Union[SQLAlchemyAsyncRepository[Any], SQLAlchemyAsyncMockRepository[Any]])]¶ Type of the repository to use.
-
loader_options:
ClassVar
[Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]] = None¶ Default loader options for the repository.
-
execution_options:
ClassVar
[Optional
[dict
[str
,Any
]]] = None¶ Default execution options for the repository.
-
match_fields:
ClassVar
[Union
[list
[str
],str
,None
]] = None¶ List of dialects that prefer to use
field.id = ANY(:1)
instead offield.id IN (...)
.
- __init__(session, *, statement=None, auto_expunge=False, auto_refresh=True, auto_commit=False, order_by=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, wrap_exceptions=True, load=None, execution_options=None, uniquify=None, **repo_kwargs)[source]¶
Configure the service object.
- Parameters:
session¶ (
Union
[AsyncSession
,async_scoped_session
[AsyncSession
]]) – Session managing the unit-of-work for the operation.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.auto_expunge¶ (
bool
) – Remove object from session before returning.auto_refresh¶ (
bool
) – Refresh object from session before returning.order_by¶ (
Union
[list
[tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
]],tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
],None
]) – Set default order options for queries.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – A set of custom error messages to use for operationswrap_exceptions¶ (
bool
) – Wrap exceptions in a RepositoryErrorload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**repo_kwargs¶ (
Any
) – passed as keyword args to repo instantiation.
- property repository: SQLAlchemyAsyncRepositoryT¶
Return the repository instance.
- async count(*filters, statement=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Count of records returned by query.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – arguments for filtering.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
A count of the collection, filtered, but ignoring pagination.
- async exists(*filters, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository exists operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Keyword arguments for attribute based filtering.
- Return type:
- Returns:
Representation of instance with identifier item_id.
- async get(item_id, *, statement=None, id_attribute=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository scalar operation.
- Parameters:
auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.id_attribute¶ (
Union
[str
,InstrumentedAttribute
[Any
],None
]) – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
TypeVar
(ModelT
, bound= base.ModelProtocol)- Returns:
Representation of instance with identifier item_id.
- async get_one(*filters, statement=None, auto_expunge=None, load=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalar operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
TypeVar
(ModelT
, bound= base.ModelProtocol)- Returns:
Representation of instance with identifier item_id.
- async get_one_or_none(*filters, statement=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalar operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
- Returns:
Representation of instance with identifier item_id.
- async to_model_on_create(data)[source]¶
Convenience method to allow for custom behavior on create.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- async to_model_on_update(data)[source]¶
Convenience method to allow for custom behavior on update.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- async to_model_on_delete(data)[source]¶
Convenience method to allow for custom behavior on delete.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- async to_model_on_upsert(data)[source]¶
Convenience method to allow for custom behavior on upsert.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- async list_and_count(*filters, statement=None, auto_expunge=None, force_basic_query_mode=None, order_by=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
List of records and total count returned by query.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.force_basic_query_mode¶ (
Optional
[bool
]) – Force list and count to use two queries instead of an analytical window function.order_by¶ (
Union
[list
[tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
]],tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
],None
]) – Set default order options for queries.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
tuple
[Sequence
[TypeVar
(ModelT
, bound= base.ModelProtocol)],int
]- Returns:
List of instances and count of total collection, ignoring pagination.
- classmethod new(cls, session=None, statement=None, config=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Context manager that returns instance of service object.
Handles construction of the database session._create_select_for_model
- Return type:
AsyncIterator
[Self
]- Returns:
The service object instance.
- async list(*filters, statement=None, auto_expunge=None, order_by=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalars operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.order_by¶ (
Union
[list
[tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
]],tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
],None
]) – Set default order options for queries.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
The list of instances retrieved from the repository.
-
repository_type:
- class advanced_alchemy.service.SQLAlchemyAsyncRepositoryService[source]¶
Bases:
SQLAlchemyAsyncRepositoryReadService
[ModelT
,SQLAlchemyAsyncRepositoryT
],Generic
[ModelT
,SQLAlchemyAsyncRepositoryT
]Service object that operates on a repository object.
- async create(data, *, auto_commit=None, auto_expunge=None, auto_refresh=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>)[source]¶
Wrap repository instance creation.
- Parameters:
data¶ – Representation to be created.
auto_expunge¶ – Remove object from session before returning.
auto_refresh¶ – Refresh object from session before returning.
auto_commit¶ – Commit objects before returning.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
- Returns:
Representation of created instance.
- async create_many(data, *, auto_commit=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>)[source]¶
Wrap repository bulk instance creation.
- Parameters:
data¶ – Representations to be created.
auto_expunge¶ – Remove object from session before returning.
auto_commit¶ – Commit objects before returning.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Representation of created instances.
- async update(data, item_id=None, *, attribute_names=None, with_for_update=None, auto_commit=None, auto_expunge=None, auto_refresh=None, id_attribute=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository update operation.
- Parameters:
data¶ – Representation to be updated.
item_id¶ – Identifier of item to be updated.
attribute_names¶ – an iterable of attribute names to pass into the
update
method.with_for_update¶ – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECT
auto_expunge¶ – Remove object from session before returning.
auto_refresh¶ – Refresh object from session before returning.
auto_commit¶ – Commit objects before returning.
id_attribute¶ – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Updated representation.
- async update_many(data, *, auto_commit=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository bulk instance update.
- Parameters:
data¶ – Representations to be updated.
auto_expunge¶ – Remove object from session before returning.
auto_commit¶ – Commit objects before returning.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Representation of updated instances.
- async upsert(data, item_id=None, *, attribute_names=None, with_for_update=None, auto_expunge=None, auto_commit=None, auto_refresh=None, match_fields=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository upsert operation.
- Parameters:
data¶ – Instance to update existing, or be created. Identifier used to determine if an existing instance exists is the value of an attribute on data named as value of self.id_attribute.
item_id¶ – Identifier of the object for upsert.
attribute_names¶ – an iterable of attribute names to pass into the
update
method.with_for_update¶ – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECT
auto_expunge¶ – Remove object from session before returning.
auto_refresh¶ – Refresh object from session before returning.
auto_commit¶ – Commit objects before returning.
match_fields¶ – a list of keys to use to match the existing model. When empty, all fields are matched.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Updated or created representation.
- async upsert_many(data, *, auto_expunge=None, auto_commit=None, no_merge=False, match_fields=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository upsert operation.
- Parameters:
data¶ – Instance to update existing, or be created.
auto_expunge¶ – Remove object from session before returning.
auto_commit¶ – Commit objects before returning.
no_merge¶ – Skip the usage of optimized Merge statements (reserved for future use)
match_fields¶ – a list of keys to use to match the existing model. When empty, all fields are matched.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Updated or created representation.
- async get_or_upsert(*filters, match_fields=None, upsert=True, attribute_names=None, with_for_update=None, auto_commit=None, auto_expunge=None, auto_refresh=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository instance creation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.match_fields¶ (
Union
[list
[str
],str
,None
]) – a list of keys to use to match the existing model. When empty, all fields are matched.upsert¶ (
bool
) – When using match_fields and actual model values differ from kwargs, perform an update operation on the model.create¶ – Should a model be created. If no model is found, an exception is raised.
attribute_names¶ (
Optional
[Iterable
[str
]]) – an iterable of attribute names to pass into theupdate
method.with_for_update¶ (
Optional
[bool
]) – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECTauto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_refresh¶ (
Optional
[bool
]) – Refresh object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
- Returns:
Representation of created instance.
- async get_and_update(*filters, match_fields=None, attribute_names=None, with_for_update=None, auto_commit=None, auto_expunge=None, auto_refresh=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository instance creation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.match_fields¶ (
Union
[list
[str
],str
,None
]) – a list of keys to use to match the existing model. When empty, all fields are matched.attribute_names¶ (
Optional
[Iterable
[str
]]) – an iterable of attribute names to pass into theupdate
method.with_for_update¶ (
Optional
[bool
]) – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECTauto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_refresh¶ (
Optional
[bool
]) – Refresh object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
- Returns:
Representation of updated instance.
- async delete(item_id, *, auto_commit=None, auto_expunge=None, id_attribute=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository delete operation.
- Parameters:
auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.id_attribute¶ (
Union
[str
,InstrumentedAttribute
[Any
],None
]) – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
TypeVar
(ModelT
, bound= base.ModelProtocol)- Returns:
Representation of the deleted instance.
- async delete_many(item_ids, *, auto_commit=None, auto_expunge=None, id_attribute=None, chunk_size=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository bulk instance deletion.
- Parameters:
item_ids¶ (
list
[Any
]) – Identifier of instance to be deleted.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.id_attribute¶ (
Union
[str
,InstrumentedAttribute
[Any
],None
]) – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.chunk_size¶ (
Optional
[int
]) – Allows customization of theinsertmanyvalues_max_parameters
setting for the driver. Defaults to 950 if left unset.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
Representation of removed instances.
- async delete_where(*filters, auto_commit=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, sanity_check=True, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalars operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientssanity_check¶ (
bool
) – When true, the length of selected instances is compared to the deleted row countload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
The list of instances deleted from the repository.
- class advanced_alchemy.service.SQLAlchemySyncQueryService[source]¶
Bases:
ResultConverter
Simple service to execute the basic Query repository..
- class advanced_alchemy.service.SQLAlchemySyncRepositoryReadService[source]¶
Bases:
ResultConverter
,Generic
[ModelT
,SQLAlchemySyncRepositoryT
]Service object that operates on a repository object.
-
repository_type:
type
[TypeVar
(SQLAlchemySyncRepositoryT
, bound= Union[SQLAlchemySyncRepository[Any], SQLAlchemySyncMockRepository[Any]])]¶ Type of the repository to use.
-
loader_options:
ClassVar
[Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]] = None¶ Default loader options for the repository.
-
execution_options:
ClassVar
[Optional
[dict
[str
,Any
]]] = None¶ Default execution options for the repository.
-
match_fields:
ClassVar
[Union
[list
[str
],str
,None
]] = None¶ List of dialects that prefer to use
field.id = ANY(:1)
instead offield.id IN (...)
.
- __init__(session, *, statement=None, auto_expunge=False, auto_refresh=True, auto_commit=False, order_by=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, wrap_exceptions=True, load=None, execution_options=None, uniquify=None, **repo_kwargs)[source]¶
Configure the service object.
- Parameters:
session¶ (
Union
[Session
,scoped_session
[Session
]]) – Session managing the unit-of-work for the operation.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.auto_expunge¶ (
bool
) – Remove object from session before returning.auto_refresh¶ (
bool
) – Refresh object from session before returning.order_by¶ (
Union
[list
[tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
]],tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
],None
]) – Set default order options for queries.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – A set of custom error messages to use for operationswrap_exceptions¶ (
bool
) – Wrap exceptions in a RepositoryErrorload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**repo_kwargs¶ (
Any
) – passed as keyword args to repo instantiation.
- property repository: SQLAlchemySyncRepositoryT¶
Return the repository instance.
- count(*filters, statement=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Count of records returned by query.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – arguments for filtering.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
A count of the collection, filtered, but ignoring pagination.
- exists(*filters, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository exists operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Keyword arguments for attribute based filtering.
- Return type:
- Returns:
Representation of instance with identifier item_id.
- get(item_id, *, statement=None, id_attribute=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository scalar operation.
- Parameters:
auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.id_attribute¶ (
Union
[str
,InstrumentedAttribute
[Any
],None
]) – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
TypeVar
(ModelT
, bound= base.ModelProtocol)- Returns:
Representation of instance with identifier item_id.
- get_one(*filters, statement=None, auto_expunge=None, load=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalar operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
TypeVar
(ModelT
, bound= base.ModelProtocol)- Returns:
Representation of instance with identifier item_id.
- get_one_or_none(*filters, statement=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalar operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
- Returns:
Representation of instance with identifier item_id.
- to_model_on_create(data)[source]¶
Convenience method to allow for custom behavior on create.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- to_model_on_update(data)[source]¶
Convenience method to allow for custom behavior on update.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- to_model_on_delete(data)[source]¶
Convenience method to allow for custom behavior on delete.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- to_model_on_upsert(data)[source]¶
Convenience method to allow for custom behavior on upsert.
- Parameters:
data¶ – The data to be converted to a model.
- Returns:
The data to be converted to a model.
- list_and_count(*filters, statement=None, auto_expunge=None, force_basic_query_mode=None, order_by=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
List of records and total count returned by query.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.force_basic_query_mode¶ (
Optional
[bool
]) – Force list and count to use two queries instead of an analytical window function.order_by¶ (
Union
[list
[tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
]],tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
],None
]) – Set default order options for queries.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
tuple
[Sequence
[TypeVar
(ModelT
, bound= base.ModelProtocol)],int
]- Returns:
List of instances and count of total collection, ignoring pagination.
- classmethod new(cls, session=None, statement=None, config=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Context manager that returns instance of service object.
Handles construction of the database session._create_select_for_model
- Return type:
Iterator
[Self
]- Returns:
The service object instance.
- list(*filters, statement=None, auto_expunge=None, order_by=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalars operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.statement¶ (
Optional
[Select
]) – To facilitate customization of the underlying select query.order_by¶ (
Union
[list
[tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
]],tuple
[Union
[str
,InstrumentedAttribute
[Any
]],bool
],None
]) – Set default order options for queries.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
The list of instances retrieved from the repository.
-
repository_type:
- class advanced_alchemy.service.SQLAlchemySyncRepositoryService[source]¶
Bases:
SQLAlchemySyncRepositoryReadService
[ModelT
,SQLAlchemySyncRepositoryT
],Generic
[ModelT
,SQLAlchemySyncRepositoryT
]Service object that operates on a repository object.
- create(data, *, auto_commit=None, auto_expunge=None, auto_refresh=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>)[source]¶
Wrap repository instance creation.
- Parameters:
data¶ – Representation to be created.
auto_expunge¶ – Remove object from session before returning.
auto_refresh¶ – Refresh object from session before returning.
auto_commit¶ – Commit objects before returning.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
- Returns:
Representation of created instance.
- create_many(data, *, auto_commit=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>)[source]¶
Wrap repository bulk instance creation.
- Parameters:
data¶ – Representations to be created.
auto_expunge¶ – Remove object from session before returning.
auto_commit¶ – Commit objects before returning.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Representation of created instances.
- update(data, item_id=None, *, attribute_names=None, with_for_update=None, auto_commit=None, auto_expunge=None, auto_refresh=None, id_attribute=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository update operation.
- Parameters:
data¶ – Representation to be updated.
item_id¶ – Identifier of item to be updated.
attribute_names¶ – an iterable of attribute names to pass into the
update
method.with_for_update¶ – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECT
auto_expunge¶ – Remove object from session before returning.
auto_refresh¶ – Refresh object from session before returning.
auto_commit¶ – Commit objects before returning.
id_attribute¶ – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Updated representation.
- update_many(data, *, auto_commit=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository bulk instance update.
- Parameters:
data¶ – Representations to be updated.
auto_expunge¶ – Remove object from session before returning.
auto_commit¶ – Commit objects before returning.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Representation of updated instances.
- upsert(data, item_id=None, *, attribute_names=None, with_for_update=None, auto_expunge=None, auto_commit=None, auto_refresh=None, match_fields=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository upsert operation.
- Parameters:
data¶ – Instance to update existing, or be created. Identifier used to determine if an existing instance exists is the value of an attribute on data named as value of self.id_attribute.
item_id¶ – Identifier of the object for upsert.
attribute_names¶ – an iterable of attribute names to pass into the
update
method.with_for_update¶ – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECT
auto_expunge¶ – Remove object from session before returning.
auto_refresh¶ – Refresh object from session before returning.
auto_commit¶ – Commit objects before returning.
match_fields¶ – a list of keys to use to match the existing model. When empty, all fields are matched.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Updated or created representation.
- upsert_many(data, *, auto_expunge=None, auto_commit=None, no_merge=False, match_fields=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository upsert operation.
- Parameters:
data¶ – Instance to update existing, or be created.
auto_expunge¶ – Remove object from session before returning.
auto_commit¶ – Commit objects before returning.
no_merge¶ – Skip the usage of optimized Merge statements (reserved for future use)
match_fields¶ – a list of keys to use to match the existing model. When empty, all fields are matched.
error_messages¶ – An optional dictionary of templates to use for friendlier error messages to clients
load¶ – Set default relationships to be loaded
execution_options¶ – Set default execution options
uniquify¶ – Optionally apply the
unique()
method to results before returning.
- Returns:
Updated or created representation.
- get_or_upsert(*filters, match_fields=None, upsert=True, attribute_names=None, with_for_update=None, auto_commit=None, auto_expunge=None, auto_refresh=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository instance creation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.match_fields¶ (
Union
[list
[str
],str
,None
]) – a list of keys to use to match the existing model. When empty, all fields are matched.upsert¶ (
bool
) – When using match_fields and actual model values differ from kwargs, perform an update operation on the model.create¶ – Should a model be created. If no model is found, an exception is raised.
attribute_names¶ (
Optional
[Iterable
[str
]]) – an iterable of attribute names to pass into theupdate
method.with_for_update¶ (
Optional
[bool
]) – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECTauto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_refresh¶ (
Optional
[bool
]) – Refresh object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
- Returns:
Representation of created instance.
- get_and_update(*filters, match_fields=None, attribute_names=None, with_for_update=None, auto_commit=None, auto_expunge=None, auto_refresh=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository instance creation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.match_fields¶ (
Union
[list
[str
],str
,None
]) – a list of keys to use to match the existing model. When empty, all fields are matched.attribute_names¶ (
Optional
[Iterable
[str
]]) – an iterable of attribute names to pass into theupdate
method.with_for_update¶ (
Optional
[bool
]) – indicating FOR UPDATE should be used, or may be a dictionary containing flags to indicate a more specific set of FOR UPDATE flags for the SELECTauto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_refresh¶ (
Optional
[bool
]) – Refresh object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.**kwargs¶ (
Any
) – Identifier of the instance to be retrieved.
- Return type:
- Returns:
Representation of updated instance.
- delete(item_id, *, auto_commit=None, auto_expunge=None, id_attribute=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository delete operation.
- Parameters:
auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.id_attribute¶ (
Union
[str
,InstrumentedAttribute
[Any
],None
]) – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
TypeVar
(ModelT
, bound= base.ModelProtocol)- Returns:
Representation of the deleted instance.
- delete_many(item_ids, *, auto_commit=None, auto_expunge=None, id_attribute=None, chunk_size=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, load=None, execution_options=None, uniquify=None)[source]¶
Wrap repository bulk instance deletion.
- Parameters:
item_ids¶ (
list
[Any
]) – Identifier of instance to be deleted.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.id_attribute¶ (
Union
[str
,InstrumentedAttribute
[Any
],None
]) – Allows customization of the unique identifier to use for model fetching. Defaults to id, but can reference any surrogate or candidate key for the table.chunk_size¶ (
Optional
[int
]) – Allows customization of theinsertmanyvalues_max_parameters
setting for the driver. Defaults to 950 if left unset.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientsload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
Representation of removed instances.
- delete_where(*filters, auto_commit=None, auto_expunge=None, error_messages=<class 'advanced_alchemy.utils.dataclass.Empty'>, sanity_check=True, load=None, execution_options=None, uniquify=None, **kwargs)[source]¶
Wrap repository scalars operation.
- Parameters:
*filters¶ (
Union
[StatementFilter
,ColumnElement
[bool
]]) – Types for specific filtering operations.auto_expunge¶ (
Optional
[bool
]) – Remove object from session before returning.auto_commit¶ (
Optional
[bool
]) – Commit objects before returning.error_messages¶ (
Union
[ErrorMessages
,None
,type
[Empty
]]) – An optional dictionary of templates to use for friendlier error messages to clientssanity_check¶ (
bool
) – When true, the length of selected instances is compared to the deleted row countload¶ (
Union
[Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],Sequence
[Union
[_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
]]]]],_AbstractLoad
,Literal
['*'
],InstrumentedAttribute
[Any
],RelationshipProperty
[Any
],MapperProperty
[Any
],ExecutableOption
,Sequence
[ExecutableOption
],None
]) – Set default relationships to be loadedexecution_options¶ (
Optional
[dict
[str
,Any
]]) – Set default execution optionsuniquify¶ (
Optional
[bool
]) – Optionally apply theunique()
method to results before returning.
- Return type:
- Returns:
The list of instances deleted from the repository.
- advanced_alchemy.service.find_filter(filter_type, filters)[source]¶
Get the filter specified by filter type from the filters.
- advanced_alchemy.service.is_dict_with_field(v, field_name)[source]¶
Check if a dictionary has a specific field.
- advanced_alchemy.service.is_dict_without_field(v, field_name)[source]¶
Check if a dictionary does not have a specific field.
- advanced_alchemy.service.is_msgspec_struct_with_field(v, field_name)[source]¶
Check if a msgspec struct has a specific field.
- advanced_alchemy.service.is_msgspec_struct_without_field(v, field_name)[source]¶
Check if a msgspec struct does not have a specific field.
- advanced_alchemy.service.is_pydantic_model_with_field(v, field_name)[source]¶
Check if a pydantic model has a specific field.
- advanced_alchemy.service.is_pydantic_model_without_field(v, field_name)[source]¶
Check if a pydantic model does not have a specific field.
- advanced_alchemy.service.is_schema(v)[source]¶
Check if a value is a msgspec Struct or Pydantic model.
- advanced_alchemy.service.is_schema_or_dict(v)[source]¶
Check if a value is a msgspec Struct, Pydantic model, or dict.
- Parameters:
v¶ – Value to check.
- Returns:
bool
- advanced_alchemy.service.is_schema_or_dict_with_field(v, field_name)[source]¶
Check if a value is a msgspec Struct, Pydantic model, or dict with a specific field.
- advanced_alchemy.service.is_schema_or_dict_without_field(v, field_name)[source]¶
Check if a value is a msgspec Struct, Pydantic model, or dict without a specific field.
- advanced_alchemy.service.is_schema_with_field(v, field_name)[source]¶
Check if a value is a msgspec Struct or Pydantic model with a specific field.
- advanced_alchemy.service.is_schema_without_field(v, field_name)[source]¶
Check if a value is a msgspec Struct or Pydantic model without a specific field.
- advanced_alchemy.service.model_from_dict(model, **kwargs)[source]¶
Create an ORM model instance from a dictionary of attributes.
- advanced_alchemy.service.schema_dump(data, exclude_unset=True)[source]¶
Dump a data object to a dictionary.
- Parameters:
data¶ –
dict[str, Any]
|advanced_alchemy.base.ModelProtocol
|msgspec.Struct
|pydantic.BaseModel
|litestar.dto.data_structures.DTOData[ModelT]
exclude_unset¶ –
bool
Whether to exclude unset values.
- Returns:
type: dict[str, Any],
ModelProtocol
]- Return type:
Union[