Skip to content

stepzak/python-lab-2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Шаблон репозитория, для успешной сдачи лабораторных работ.

Введение

Данный шаблон является примером оформления кода для сдачи лабораторных работ. Рекомендуется строго его придерживаться во избежания проблем при сдаче и понижения баллов

Структура проекта

    .
    ├── 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

Как работать с репозиторием и шаблонами

  1. Необходимо создать репозиторий из этого шаблона. Посмотреть можно здесь

  2. Склонировать или спуллить его к себе на машину командами git pull или git clone

  3. Создать виртуальное окружение:

    a. Для uv прописать команду uv venv. Затем прописать .venv/bin/activate в терминале

    b. Для обычного python python -m venv <имя директории где будет храниться папка .venv>. Затем прописать .venv/bin/activate в терминале

  4. Установить pre-commit. Для этого достаточно ввести команду pip install pre-commit

  5. Выполнить команду pre-commit install

  6. При запушивании в репозиторий необходимо правильно составлять сообщения коммита. Правила можно прочитать здесь

  7. Внимательно читайте то, что пишется при попытке коммита, если исправили ошибки нужно заново добавить отредактированные файлы в гит и попробовать коммитнуть

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages