Домашка - FrBrGeorge/HWorker GitHub Wiki
Домашка
Исходный объект с полными решениями Д/З, хранящийся в depot. Имеет унифицированный формат (преобразованием из конкретного формата получения занимается deliver). Конкретные объекты (решения, чекеры, ссылки на внешние чекеры и т. п.) вынимает из домашки и оформляет make.
Домашка — это дерево «файлов», словарь вида {str: bytes}, где строка — это путь до файла, а байты — его содержимое. В depot#Objects описаны общие поля:
- уникальный человекочитаемый ID
- имя пользователя
- имя задачи
Всё это deliver как-то узнал при скачивании и заполнил. Эти значения не хрантся в поле путь до файла. Если при скачивании какое-то из этих полей было зашито в путь до файла, путь изменяется. Например, в deliver#file дерево вида Имя пользователя/Имя задачи/дерево домашки/<всё остальное> превращается в <всё остальное>.
Разложение домашки на решение и чекеры, а также дозаполнение списка чекеров делает make:
- В каталоге
check/находятся пользовательские чекеры (если они есть); именование и форма и категория самих чекерв отпределяется make-ом. - В файле
check/remoteперечислены предусмотренные пользователем удалённые чекеры.