python_cqrs_core.query ====================== .. py:module:: python_cqrs_core.query .. autoapi-nested-parse:: Query interfaces for CQRS pattern. Extracted from GridFlow backend/src/apps/token_generator/application/common/ports_interfaces/query.py Attributes ---------- .. autoapisummary:: python_cqrs_core.query.TQuery python_cqrs_core.query.TResult Classes ------- .. autoapisummary:: python_cqrs_core.query.IQuery python_cqrs_core.query.IQueryHandler Module Contents --------------- .. py:data:: TQuery .. py:data:: TResult .. py:class:: IQuery Bases: :py:obj:`abc.ABC` Base query interface (read operations). Queries read state without modifying it. Use this as a marker interface for all queries. Example: >>> from pydantic import BaseModel >>> >>> class GetUserQuery(BaseModel, IQuery): ... user_id: int .. py:class:: IQueryHandler Bases: :py:obj:`abc.ABC`, :py:obj:`Generic`\ [\ :py:obj:`TQuery`\ , :py:obj:`TResult`\ ] Query handler interface. Handles a specific query type and returns a result. Example: >>> class GetUserHandler(IQueryHandler[GetUserQuery, User]): ... async def handle(self, query: GetUserQuery) -> User: ... # Fetch user logic ... return user .. py:method:: handle(query: TQuery) -> TResult :abstractmethod: :async: Handle the query. Args: query: Query to handle Returns: Query result