Explicit-Django
Набор компонентов для интеграции Explicit с Django.
Базовая единица работы на транзакциях Django ORM.
# persons/core/unit_of_work.py
from explicit.django.unit_of_work import BaseUnitOfWork
from persons.core.persons.adapters.db import Repository as PersonsRepository
from persons.core.persons.adapters.db import repository as persons_repository
# (имя атрибута, инстанс репо)
KNOWN_REPOS = (
('persons', persons_repository),
)
class UnitOfWork(BaseUnitOfWork):
persons: PersonsRepository
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._registry.register(*KNOWN_REPOS)
Декоратор для преобразования ошибок валидации предметной области в ошибки валидации Django
from explicit.django.domain.validation.exceptions import handle_domain_validation_error
class ViewSet(...):
@handle_domain_validation_error
def create(self, request, *args, **kwargs):
command = Command(...)
bus.handle(command)
Запуск тестов
Тесты запускаются через tox. В системе должен быть установлен uv.
Для корректного запуска тестов необходимы следующие значения переменных окружения в системе. Вместо <login> и <password> необходимо подставить данные от УЗ БАРС:
UV_INDEX="internal=http://<login>:<password>@nexus.py.bars.group/repository/pypi-all/simple"
UV_DEFAULT_INDEX="https://pypi.org/simple"
UV_INDEX_STRATEGY=unsafe-best-match
# Для docker 29+
TOX_DOCKER_GATEWAY=localhost
Чтобы не менять значения системных переменных, можно создать .env файл c переменными окружения и запускать команды через python-dotenv.
Установка tox с необходимыми зависимостями:
uv tool install tox --with tox-uv --with m3-tox-docker
Или с использованием python-dotenv:
dotenv run uv tool install tox --with tox-uv --with m3-tox-docker
Запуск тестов:
tox
Через python-dotenv:
dotenv run tox
Metadata
Release files for explicit-python-django 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| explicit_python_django-1.4.0.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| explicit_python_django-1.4.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.4 kB
Release files / explicit_python_django-1.4.0.tar.gz
| Download URL | explicit_python_django-1.4.0.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fde8cfb3ee2fd404c9a162c9511a1dc238b7823bb360614bd8d87711a86d7b5f
|
|
BLAKE2b-256 checksum How to use checksums |
4943936590797bc6f85309bb3ec36ff1fe024cc770c2ea2e70a87dc9d373eb4b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.23
|
Release files / explicit_python_django-1.4.0-py3-none-any.whl
| Download URL | explicit_python_django-1.4.0-py3-none-any.whl |
|---|---|
| Size | 6.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1785e707553a14dae9a0946f48f3c51001a2adf411f99d2215c0effc3f10a996
|
|
BLAKE2b-256 checksum How to use checksums |
12386c570a503e1f6e135b660d6ff82678f89f4ed8cee6d732e4811ac0de5ccb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.23
|