Структура git-репозитория для практикума 2023 г. по Python
Регистрация
В первом семестре
- После создания репозитория его следует зарегистрировать здесь: https://git.cs.msu.ru/gkuryachiy/prac/-/issues/7 
- Если у вас не аккаунта на git.cs.msu.ru, используйте гостевой
- Указать ФИО и группу
Базовый каталог
Каталог для практикума в git-репозитории должен называться pythonprac. Далее все пути указаны, считая от этого каталога.
- Репозиторий должен быть публичный 
- Во втором семестре используется тот же репозиторий
- Всё, что вы сделали за время занятия, следует публиковать в этом репозитории в день занятия 
- Все решения и тесты должны быть опубликованы в репозитории до окончания дедлайна по заданию 
Правила именования
- Для каждого семинара создается каталог с именем вида <ГГГГММДД> (выдача команды date "+%Y%m%d"), дата - того семинара, на котором выдано задание. 
- Все программы,  написанные во время занятия, записываются в каталог <ГГГГММДД>/0 написанные во время занятия, записываются в каталог <ГГГГММДД>/0
- Для каждого задания создаются подкаталоги <ГГГГММДД>/1, <ГГГГММДД>/2 и т. д. 
В подкаталоге содержатся:
- ровно один .py-файл с текстом решения, имя файла должно быть prog.py 
- подкаталог check/, в котором хранятся примеры входных данных и эталонного вывода (если нужны по заданию). 
Работа с ветками во втором семестре
- Все задания во втором семестре выполняются на ветке с именем «work» (маленькими буквами); задание может включать в себя другие ветки 
- TODO как сделать work веткой по умолчанию 
Подсистема проверки домашних заданий:
- hworker-0.9.2-py3-none-any.whl - скачиваем, делаем pip install hworker-0.9.2-py3-none-any.whl (Python 3.11) 
 
- Запуск: - hworker -p из каталога с решением или hworker -p каталог-с решением 
- например, hworker -p pythonprac/20231017/1 
 
Пример:
20210903/1
- prog.py 
- check/ - 1.in 
- 1.out 
- 2.in 
- 2.out 
- …
 
Как написать тест на класс/функцию?
- К файлу с классом/функцией необходимо приписать тестирующий код
- В файл с тестом (1.in) кладётся программа на питоне, в которой используется тестируемый класс или функция 
- В файл с эталонным выводом попадает результат этого print() 
Пример:
- prog.py 
- check/1.in - print(C().A+42-C().fun(33)) 
- check/1.out - 9 
