Данный шаблон является примером оформления кода для сдачи лабораторных работ. Рекомендуется строго его придерживаться во избежания проблем при сдаче и понижения баллов
    .
    ├── lab<# лабораторной работы>             # Кодовая база вашей лабораторной работы
    │   ├── src/                               # Исходный код
    │   ├── tests/                             # Unit тесты
    │   ├── uv.lock                            # зависимости вашего проекта
    │   ├── report.pdf                         # Отчет
    │   ├── .gitignore                         # git ignore файл
    │   ├──.pre-commit-config.yaml             # Средства автоматизации проверки кодстайла
    │   ├── README.md                          # Описание вашего проекта, с описанием файлов и с титульником о том,
                                               # что и какая задача
В папке src лежат файлы с реализацией задачи заданной в лабораторной работе. Обязательным файлом является файл main.py в котором описана точка входа в приложение - функция main. Требования к коду:
- Переменные, функции и модули именуются по snake_case
- Константы должны быть вынесены в файл constants.py и именовановаться с помощию символов в верхнем регистре
- Классы должны именоваться в PascalCase
- Имена сущностей должны быть осмысленные и содержательные
- Все отступы должны быть консистентны: 1 TAB = 4 spaces
- Весь функционал должен быть описан в функциях и в классах. Не допускается писать весь в глобальном скоупе или в одной функции
- К каждой функции должны быть описаны docstring и аннотации к аргументам и выходным параметрам функций.
В качестве референса проще cходу соблюдать PEP8 и использовать IDE c готовой поддержкой: например PyCharm или VSCode c настроенными плагинами. В ходе попыток запушить код в репозиторий ваш код будет проходить проверку статическим анализатором mypy а также с встроенным в ruff на предмет нарушения код стайла. При работе с кодовой базой всю работу необходимо выполнять в виртуальном окружении
В папке tests лежат unit тесты для проверки функциональности программы или ее частей. Рекомендуется использовать pytest. Также название тестов должно быть осмысленно и содержать определение проверямой части. Базовые соглашения pytest можно посмотреть здесь. Рекомендуется проверять не только успешные кейсы, но и краевые условия и кейсы в которых была допущена ошибка (неудачные кейсы).
В качестве пакетного менджера в данном шаблоне/репозитории используется uv.
Можно использовать и стандартные виртальные окружения. В таком случае необходимо добавить в репозиторий requirements.txt.
Это достигается командой
pip freeze > requirements.txtТакже разрешается использовать poetry
- 
Необходимо создать репозиторий из этого шаблона. Посмотреть можно здесь 
- 
Склонировать или спуллить его к себе на машину командами git pullилиgit clone
- 
Создать виртуальное окружение: a. Для uv прописать команду uv venv. Затем прописать.venv/bin/activateв терминалеb. Для обычного python python -m venv <имя директории где будет храниться папка .venv>. Затем прописать.venv/bin/activateв терминале
- 
Установить pre-commit. Для этого достаточно ввести командуpip install pre-commit
- 
Выполнить команду pre-commit install
- 
При запушивании в репозиторий необходимо правильно составлять сообщения коммита. Правила можно прочитать здесь 
- 
Внимательно читайте то, что пишется при попытке коммита, если исправили ошибки нужно заново добавить отредактированные файлы в гит и попробовать коммитнуть