Данный шаблон является примером оформления кода для сдачи лабораторных работ. Рекомендуется строго его придерживаться во избежания проблем при сдаче и понижения баллов
.
├── 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 -
При запушивании в репозиторий необходимо правильно составлять сообщения коммита. Правила можно прочитать здесь
-
Внимательно читайте то, что пишется при попытке коммита, если исправили ошибки нужно заново добавить отредактированные файлы в гит и попробовать коммитнуть