Документация проекта
Исследование данных тут: Data Analysis
Production
Build and run
- Нужно собрать docker образ:
make build-image- Запустить docker контейнер с проектом:
make run-containerDevelopment
Workflow
Данный репозиторий ведется по методологии Github flow:
- Главная ветка -
main. - Новые фичи разрабатываются в отдельных ветках.
- Затем при необходимости делается
Merge Requestдля запроса на слияние новой ветки с главной веткойmain. - Проводится
Code Reviewнового кода, все замечания указываются в самомMerge Request'eнаgitlab'e. - После
Code Review, если не нужно больше ничего исправлять, выполняетсяMerge. - Если новая ветка слита с
main, после этого ее можно удалить.
Environment
Installation
В данном проекте используется пакетный менеджер miniconda, его установка описана на офф.сайте.
Все необходимые пакеты для разработки прописаны в environments/dev.yml. 1. Для создания новой conda среды со всеми необходимыми зависимостями нужно запустить следующую команду:
make install-env- Далее активировать dev среду:
conda activate mlops-dev- Далее нужно инициализировать
pre-commit:
pre-commit installNew dependencies
Новые зависимости можно добавлять с помощью conda либо pip.
Далее их нужно зафиксировать в environments/dev.yml файле следующей командой:
make export-envДля prod среды нужно скопировать новые зависимости из environments/dev.yml в environments/prod.yml.
Code linters
Для поддержания чистоты кода используются следующие линтеры и форматтеры:
isort- для проверки и исправления порядка импортируемых в каждом файле библиотек и модулей.black- для проверки и исправления кода под стандарт PEP-8.mypy- для нахождения ошибок несоответствия типов в коде.
Для применения линтеров и форматтеров:
make lintТакже во время commit’a код прогоняется через линтеры и форматтеры автоматически, благодаря pre-commit’у, и в случае несоответствия кода появятся warning’и, и некоторые несоответствия форматтеры исправляют сами.
Configuration
Файл конфигурации pre-commit'a: .pre-commit-config.yaml. В нем прописаны используемые линтеры и форматтеры.
Настройки самих линтеров и форматтеров прописаны в pyproject.toml файле.
Gitlab CI
Этапы в CI:
docker- Сборка docker образа и его публикация в Container Registry gitlab’a.linting- Проверка кода с помощью линтеров.build- Сборка и публикация python пакета в Package Registry.pages- Рендер документации с помощью quarto.