├── .editorconfig ├── .github └── workflows │ ├── release.yml │ └── tests.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .readthedocs.yaml ├── CHANGELOG.md ├── LICENSE ├── Makefile ├── README.md ├── docs ├── .gitkeep ├── Makefile ├── __init__.py ├── api.rst ├── concurrency.rst ├── conf.py ├── index.rst ├── key_concepts │ ├── cq_composition.rst │ ├── dependency_injection.rst │ ├── events.rst │ ├── handlers.rst │ ├── index.rst │ ├── middlewares.rst │ ├── modularity.rst │ ├── src │ │ ├── example1_app.py │ │ └── example1_module.py │ └── transaction_context.rst ├── make.bat ├── requirements.txt ├── testing.rst └── tutorial │ ├── index.rst │ ├── src │ ├── analytics.py │ ├── application.py │ ├── commands.py │ ├── conftest.py │ ├── events.py │ ├── main.py │ ├── notifications.py │ ├── queries.py │ ├── test.py │ └── todos.py │ ├── tutorial_01.rst │ ├── tutorial_02.rst │ ├── tutorial_03.rst │ ├── tutorial_04.rst │ ├── tutorial_05.rst │ └── tutorial_06.rst ├── examples ├── async_example │ ├── example1.py │ ├── example2.py │ └── toy.py ├── example1 │ ├── application.py │ ├── commands.py │ ├── employee_module.py │ ├── events.py │ └── project_module.py ├── example2 │ ├── common.py │ ├── employee_module.py │ ├── main.py │ └── project │ │ ├── __init__.py │ │ └── entities.py ├── example3 │ ├── dependency_injector_integration.py │ └── lagom_integration.py ├── example4 │ ├── README.md │ ├── application.py │ ├── commands.py │ ├── items.json │ ├── marketing.py │ ├── repository.py │ ├── sales.py │ ├── tests.py │ ├── value_objects.py │ └── warehouse.py ├── example5.py └── example6.py ├── lato ├── __init__.py ├── application.py ├── application_module.py ├── compositon.py ├── dependency_provider.py ├── message.py ├── py.typed ├── testing.py ├── transaction_context.py ├── types.py └── utils.py ├── poetry.lock ├── pyproject.toml └── tests ├── __init__.py ├── conftest.py ├── modular_application ├── __init__.py ├── employee_module.py └── project_module │ ├── __init__.py │ ├── events.py │ └── use_cases.py ├── sample_application.py ├── test_application.py ├── test_application_async.py ├── test_application_example_from_readme.py ├── test_composition.py ├── test_dependency_provider.py ├── test_events.py ├── test_modular_application.py ├── test_sample_application_overriding.py ├── test_transaction_context.py └── test_transaction_context_async.py /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/.editorconfig -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/tests.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/.github/workflows/tests.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/.gitignore -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/.pre-commit-config.yaml -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/.readthedocs.yaml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/README.md -------------------------------------------------------------------------------- /docs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/api.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/api.rst -------------------------------------------------------------------------------- /docs/concurrency.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/concurrency.rst -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/key_concepts/cq_composition.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/cq_composition.rst -------------------------------------------------------------------------------- /docs/key_concepts/dependency_injection.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/dependency_injection.rst -------------------------------------------------------------------------------- /docs/key_concepts/events.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/events.rst -------------------------------------------------------------------------------- /docs/key_concepts/handlers.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/handlers.rst -------------------------------------------------------------------------------- /docs/key_concepts/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/index.rst -------------------------------------------------------------------------------- /docs/key_concepts/middlewares.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/middlewares.rst -------------------------------------------------------------------------------- /docs/key_concepts/modularity.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/modularity.rst -------------------------------------------------------------------------------- /docs/key_concepts/src/example1_app.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/src/example1_app.py -------------------------------------------------------------------------------- /docs/key_concepts/src/example1_module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/src/example1_module.py -------------------------------------------------------------------------------- /docs/key_concepts/transaction_context.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/key_concepts/transaction_context.rst -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/make.bat -------------------------------------------------------------------------------- /docs/requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/requirements.txt -------------------------------------------------------------------------------- /docs/testing.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/testing.rst -------------------------------------------------------------------------------- /docs/tutorial/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/index.rst -------------------------------------------------------------------------------- /docs/tutorial/src/analytics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/analytics.py -------------------------------------------------------------------------------- /docs/tutorial/src/application.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/application.py -------------------------------------------------------------------------------- /docs/tutorial/src/commands.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/commands.py -------------------------------------------------------------------------------- /docs/tutorial/src/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/conftest.py -------------------------------------------------------------------------------- /docs/tutorial/src/events.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/events.py -------------------------------------------------------------------------------- /docs/tutorial/src/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/main.py -------------------------------------------------------------------------------- /docs/tutorial/src/notifications.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/notifications.py -------------------------------------------------------------------------------- /docs/tutorial/src/queries.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/queries.py -------------------------------------------------------------------------------- /docs/tutorial/src/test.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/test.py -------------------------------------------------------------------------------- /docs/tutorial/src/todos.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/src/todos.py -------------------------------------------------------------------------------- /docs/tutorial/tutorial_01.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/tutorial_01.rst -------------------------------------------------------------------------------- /docs/tutorial/tutorial_02.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/tutorial_02.rst -------------------------------------------------------------------------------- /docs/tutorial/tutorial_03.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/tutorial_03.rst -------------------------------------------------------------------------------- /docs/tutorial/tutorial_04.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/tutorial_04.rst -------------------------------------------------------------------------------- /docs/tutorial/tutorial_05.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/tutorial_05.rst -------------------------------------------------------------------------------- /docs/tutorial/tutorial_06.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/docs/tutorial/tutorial_06.rst -------------------------------------------------------------------------------- /examples/async_example/example1.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/async_example/example1.py -------------------------------------------------------------------------------- /examples/async_example/example2.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/async_example/example2.py -------------------------------------------------------------------------------- /examples/async_example/toy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/async_example/toy.py -------------------------------------------------------------------------------- /examples/example1/application.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example1/application.py -------------------------------------------------------------------------------- /examples/example1/commands.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example1/commands.py -------------------------------------------------------------------------------- /examples/example1/employee_module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example1/employee_module.py -------------------------------------------------------------------------------- /examples/example1/events.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example1/events.py -------------------------------------------------------------------------------- /examples/example1/project_module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example1/project_module.py -------------------------------------------------------------------------------- /examples/example2/common.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example2/common.py -------------------------------------------------------------------------------- /examples/example2/employee_module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example2/employee_module.py -------------------------------------------------------------------------------- /examples/example2/main.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example2/main.py -------------------------------------------------------------------------------- /examples/example2/project/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example2/project/__init__.py -------------------------------------------------------------------------------- /examples/example2/project/entities.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example2/project/entities.py -------------------------------------------------------------------------------- /examples/example3/dependency_injector_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example3/dependency_injector_integration.py -------------------------------------------------------------------------------- /examples/example3/lagom_integration.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example3/lagom_integration.py -------------------------------------------------------------------------------- /examples/example4/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/README.md -------------------------------------------------------------------------------- /examples/example4/application.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/application.py -------------------------------------------------------------------------------- /examples/example4/commands.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/commands.py -------------------------------------------------------------------------------- /examples/example4/items.json: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /examples/example4/marketing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/marketing.py -------------------------------------------------------------------------------- /examples/example4/repository.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/repository.py -------------------------------------------------------------------------------- /examples/example4/sales.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/sales.py -------------------------------------------------------------------------------- /examples/example4/tests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/tests.py -------------------------------------------------------------------------------- /examples/example4/value_objects.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/value_objects.py -------------------------------------------------------------------------------- /examples/example4/warehouse.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example4/warehouse.py -------------------------------------------------------------------------------- /examples/example5.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example5.py -------------------------------------------------------------------------------- /examples/example6.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/examples/example6.py -------------------------------------------------------------------------------- /lato/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/__init__.py -------------------------------------------------------------------------------- /lato/application.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/application.py -------------------------------------------------------------------------------- /lato/application_module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/application_module.py -------------------------------------------------------------------------------- /lato/compositon.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/compositon.py -------------------------------------------------------------------------------- /lato/dependency_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/dependency_provider.py -------------------------------------------------------------------------------- /lato/message.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/message.py -------------------------------------------------------------------------------- /lato/py.typed: -------------------------------------------------------------------------------- 1 | # Marker file for PEP 561. Thise mypy package uses inline types. -------------------------------------------------------------------------------- /lato/testing.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/testing.py -------------------------------------------------------------------------------- /lato/transaction_context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/transaction_context.py -------------------------------------------------------------------------------- /lato/types.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/types.py -------------------------------------------------------------------------------- /lato/utils.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/lato/utils.py -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/poetry.lock -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/pyproject.toml -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/conftest.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/conftest.py -------------------------------------------------------------------------------- /tests/modular_application/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/modular_application/__init__.py -------------------------------------------------------------------------------- /tests/modular_application/employee_module.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/modular_application/employee_module.py -------------------------------------------------------------------------------- /tests/modular_application/project_module/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/modular_application/project_module/__init__.py -------------------------------------------------------------------------------- /tests/modular_application/project_module/events.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/modular_application/project_module/events.py -------------------------------------------------------------------------------- /tests/modular_application/project_module/use_cases.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/modular_application/project_module/use_cases.py -------------------------------------------------------------------------------- /tests/sample_application.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/sample_application.py -------------------------------------------------------------------------------- /tests/test_application.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_application.py -------------------------------------------------------------------------------- /tests/test_application_async.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_application_async.py -------------------------------------------------------------------------------- /tests/test_application_example_from_readme.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_application_example_from_readme.py -------------------------------------------------------------------------------- /tests/test_composition.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_composition.py -------------------------------------------------------------------------------- /tests/test_dependency_provider.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_dependency_provider.py -------------------------------------------------------------------------------- /tests/test_events.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_events.py -------------------------------------------------------------------------------- /tests/test_modular_application.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_modular_application.py -------------------------------------------------------------------------------- /tests/test_sample_application_overriding.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_sample_application_overriding.py -------------------------------------------------------------------------------- /tests/test_transaction_context.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_transaction_context.py -------------------------------------------------------------------------------- /tests/test_transaction_context_async.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pgorecki/lato/HEAD/tests/test_transaction_context_async.py --------------------------------------------------------------------------------