meator 2.0.1

Creator: codyrutscher

Last updated:

0 purchases

meator 2.0.1 Image
meator 2.0.1 Images
Add to Cart

Description:

meator 2.0.1

Meator






Python CQRS pattern implementation.
Docs
Installation
pip install meator

Available

Dispatchers:

Command
Query


Observers:

Event


Entities:

Command
Event
Query


Middlewares

Usecases
Command/Event/Query
from dataclasses import dataclass

from meator.dispatchers import CommandDispatcherImpl
from meator.entities import Command
from meator.interfaces import CommandHandler


@dataclass
class IntCommand(Command[int]):
answer: int


class IntCommandHandler(CommandHandler[IntCommand, int]):
async def __call__(self, request: IntCommand) -> int:
return request.answer


async def main():
c = CommandDispatcherImpl()

c.register(IntCommand, IntCommandHandler())

await c.handle(IntCommand(1))

Middleware
from dataclasses import dataclass

from meator.dispatchers import CommandDispatcherImpl
from meator.entities import Command, Request
from meator.interfaces import CommandHandler, Handler, Middleware


class SimpleMiddleware(Middleware):
async def __call__(self, call_next: Handler, request: Request):
return await call_next(request)


@dataclass
class IntCommand(Command[int]):
answer: int


class IntCommandHandler(CommandHandler[IntCommand, int]):
async def __call__(self, request: IntCommand) -> int:
return request.answer


async def main():
c = CommandDispatcherImpl(middlewares=[SimpleMiddleware()])

c.register(IntCommand, IntCommandHandler())

await c.handle(IntCommand(1))

Tests

pytest tests

Additional
Inspired by didator

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.