Структура git-репозитория для практикума весной 2024 г. по «совместной разработке на Python»
Регистрация
После создания репозитория его следует зарегистрировать здесь: https://git.cs.msu.ru/gkuryachiy/prac/-/issues/7
- Указать ФИО и группу
Скорее всего, ссылка на репозиторий будет вида https://… (другие варианты обычно требуют SSH-доступа, что для робота-проверялки сложно)
Репозиторий
Репозиторий должен быть публичный
- Название репозитория может быть любым, структуру и именование каталогов с домашними заданиями см. ниже.
Всё, что вы сделали за время занятия, следует публиковать в этом репозитории в день занятия
Все решения и тесты должны быть опубликованы в репозитории до окончания дедлайна по заданию
Правила именования
Для каждого семинара создается каталог с именем вида <ГГГГММДД> (выдача команды date "+%Y%m%d"), дата - того семинара, на котором выдано задание.
Все программы, написанные во время занятия, записываются в каталог <ГГГГММДД>/0
Для каждого задания создаются подкаталоги <ГГГГММДД>/1, <ГГГГММДД>/2 и т. д.
В подкаталоге содержатся:
ровно один .py-файл с текстом решения, имя файла должно быть prog.py
исключение: задания, в которых явно требуется наличие нескольких .py-файлов. В таком случае задание оформляется в виде набора модулей, каждый из которых располагается в каталоге src/имя_модуля и запускается из каталога src командой python3 -m имя_модуля.
подкаталог check/, в котором хранятся примеры входных данных и эталонного вывода (если нужны по заданию).
Работа с ветками во втором семестре
Все задания во втором семестре выполняются на ветке с именем «work» (маленькими буквами); задание может включать в себя другие ветки
TODO как сделать work веткой по умолчанию
Подсистема проверки домашних заданий
hworker-0.9.3-py3-none-any.whl
скачиваем, делаем pip install hworker-0.9.3-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