Пакет typing_extensions
Для удобства написания кода используются расширенные типы данные, такие как Protocol и Self.
Если вы знаете, как запускать код Python в виртуальном окружении и устанавливать зависимости - можете смело пропускать этот раздел.
Для всех остальных.
Создание виртуального окружения:
python3 -m venv venv
Запуск виртуального окружения:
UNIX-система
source venv/bin/activate
Windows
Не забудьте активировать выполнение скриптов!
venv/Scripts/Activate
Установка зависимостей:
pip install -r requirements.txt
Для тестирования используется фреймворк PyTest
. Во всех тестах использовался базовый пример (src/example/default.py
).
Запуск тестов:
pytest
В этом тесте симулируется ситуация, когда объект изначально имел МЕНЬШЕ полей (устаревшая версия кода), чем новый вид объекта (новая версия кода).
Ожидаемый результат:
Все поля, которые присутствовали в прошлом - будут заполнены корректно, а в новых поля будут установлены значения по-умолчанию.
В этом тесте симулируется ситуация, когда объект изначально имел МЕНЬШЕ полей (устаревшая версия кода), чем новый вид объекта (новая версия кода).
Ожидаемый результат:
Все поля, которые присутствовали в прошлом - будут заполнены корректно, а в новых полях будут установлены значения по-умолчанию.
Все примеры находятся по пути
src/example
.
- Базовый пример
- Усложнённый пример (С вложенным объектом)
- 'Реальный' пример