python_cqrs_core.command ======================== .. py:module:: python_cqrs_core.command .. autoapi-nested-parse:: Command interfaces for CQRS pattern. Extracted from GridFlow backend/src/apps/token_generator/application/common/ports_interfaces/command.py Attributes ---------- .. autoapisummary:: python_cqrs_core.command.TCommand python_cqrs_core.command.TResult Classes ------- .. autoapisummary:: python_cqrs_core.command.ICommand python_cqrs_core.command.ICommandHandler Module Contents --------------- .. py:data:: TCommand .. py:data:: TResult .. py:class:: ICommand Bases: :py:obj:`abc.ABC` Base command interface (write operations). Commands modify state and may return a result. Use this as a marker interface for all commands. Example: >>> from pydantic import BaseModel >>> >>> class CreateUserCommand(BaseModel, ICommand): ... name: str ... email: str .. py:class:: ICommandHandler Bases: :py:obj:`abc.ABC`, :py:obj:`Generic`\ [\ :py:obj:`TCommand`\ , :py:obj:`TResult`\ ] Command handler interface. Handles a specific command type and returns a result. Example: >>> class CreateUserHandler(ICommandHandler[CreateUserCommand, User]): ... async def handle(self, command: CreateUserCommand) -> User: ... # Create user logic ... return user .. py:method:: handle(command: TCommand) -> TResult :abstractmethod: :async: Handle the command. Args: command: Command to handle Returns: Command result