Домашка - FrBrGeorge/HWorker GitHub Wiki

Домашка

Исходный объект с полными решениями Д/З, хранящийся в depot. Имеет унифицированный формат (преобразованием из конкретного формата получения занимается deliver). Конкретные объекты (решения, чекеры, ссылки на внешние чекеры и т. п.) вынимает из домашки и оформляет make.

Домашка — это дерево «файлов», словарь вида {str: bytes}, где строка — это путь до файла, а байты — его содержимое. В depot#Objects описаны общие поля:

  • уникальный человекочитаемый ID
  • имя пользователя
  • имя задачи

Всё это deliver как-то узнал при скачивании и заполнил. Эти значения не хрантся в поле путь до файла. Если при скачивании какое-то из этих полей было зашито в путь до файла, путь изменяется. Например, в deliver#file дерево вида Имя пользователя/Имя задачи/дерево домашки/<всё остальное> превращается в <всё остальное>.

Разложение домашки на решение и чекеры, а также дозаполнение списка чекеров делает make:

  • В каталоге check/ находятся пользовательские чекеры (если они есть); именование и форма и категория самих чекерв отпределяется make-ом.
  • В файле check/remote перечислены предусмотренные пользователем удалённые чекеры.