Feature/migrate to pydantic v2
Этот MR переводит проект на Pydantic v2.
Что сделано:
- Добавлен отдельный Docker-сервис
yostateдля локальной разработки. - Добавлена поддержка переменной
PYTHON_VERSION=3.12по умолчанию в обоих Dockerfile — корневом и тестовом (для устранения предупреждений Docker). - Обновлена основная зависимость
pydanticдо версии>=2.11,<3.0вpyproject.toml. - Обновлена зависимость
pydanticдо==2.11.0в минимальном тестовом окружении. - Обновлена зависимость
pydanticдо>=2.11,<3.0в максимальном тестовом окружении. - Обновлены зависимости в
sphinx_docsдля поддержки генерации документации с Pydantic 2:- обновлен
autodoc-pydanticдо>=2.0.0 - добавлен
pydantic-settings >= 2.0
- обновлен
- Все модели адаптированы под Pydantic v2:
- заменен
Configнаmodel_configс использованиемConfigDict - заменены
validate_all=Trueнаvalidate_default=True - заменен
allow_mutation=Falseнаfrozen=True -
keep_untouchedзаменён наignored_types - заменен
.dict()на.model_dump() - заменен
@validate_argumentsна@validate_call - заменен
.parse_obj()на.model_validate()
- заменен
- Актуализированы тесты под Pydantic v2.
- Добавлены дополнительные тесты для
Locator,FrozenLocator,BaseState. - В файле
sync_crawler.pyудалены декораторы@validate_callс методов__init__иrestore, так как они принимают аргументы нестандартных типов, что приводило к ошибкам.
Чеклист к описанию MR:
-
В описании MR указана польза от изменений: кто получит пользу и почему он хочет этого -
В описании MR указаны ссылки на соответствующие issues в GitLab, если есть -
В описании MR приложены фрагменты переписки и/или ссылки на обсуждения, если такие велись за пределами GitLab Issues
Чеклист к коду в репозитории:
-
Новый код покрыт автотестами -
К каждому новому автотесту в docstring описана функция и история в формате Product Flow -
Документы Product Flow проверены и обновлены, если требуется-
новый код совместим с!extensionк старым концептам -
новый код не влезает в!exclusionк старым концептам -
добавлены новые!exampleв концепты, если требуется
-
-
Дока в README перечитана и обновлена, если требуется -
Дока в CONTRIBUTING.md перечитана и обновлена, если требуется -
Дока в sphinx_docs/source/index.rst перечитана и обновлена, если требуется -
Обновлён файл CHANGES.md
Edited by Павел Колотов