API - FrBrGeorge/HWorker GitHub Wiki

API

Здесь публикуются запросы на API. Возможно, в далёком будущем можно будет совместить с infile-документированием.

Вечное TODO

Пример, как это сделано в PyJudge

Правила именования параметров в таблице

Ссылки в описании / суффиксы в именах

  • ID / id — уникальный идентификатор объекта
  • UID / uid — имя пользователя, оно же его уникальный идентификатор
  • TID / tid — имя задания, оно же его уникальный идентификатор

config

Функция Параметры Возвращаемое значение Описание
get_git_directory - str Возвращает путь к каталогу скачивания git репозиториев
uid_to_repo student_id: str str По UID студента возвращает URL его репозитория
repo_to_uid repo: str str По URL репозитория возвращает UID пользователя
uid_to_email uid: str str Возвращает user_id по почте
email_to_uid email: str str Возвращает почту user_id
taskid_to_deliverid taskid: str str Возвращает deliver_id по имени таска (task_id )
deliverid_totaskid deliverid: str str Возвращает taskid по deliverid
get_repos - list[str] Возвращает список из URL всех репозиториев
get_uids - list[str] Возвращает список из всех UID пользователей
get_logger_info - dict[str, str] Возвращает уровни логирования
get_imap_info - dict[str, str] Возвращает информацию для IMAP
get_task_info task_name: str dict[str, str] Возвращает информацию о задании
get_check_directory - str Возвращает путь к каталогу для модуля check
get_prog_name - str Возвращает стандартное имя программы
get_remote_name - str Возвращает стандартное имя файла с удаленными чеками
get_check_name - str Возвращает стандартное имя директории с чеками
get_runtime_suffix - str Возвращает стандартный суффикс рантайм чека
get_validate_suffix - str Возвращает стандартный суффикс валидейт чека
get_validator_name - str Возвращает имя валидатора, работающего с последней версией solution
get_version_validator_name - str Возвращает имя валидатора, работающего со всеми версиями solution

log

Функция Параметры Возвращаемое значение Описание
get_logger str str Возвращает объект логгера. При первом вызове правильно инициализирует рутовый логгер. Предполагается использование вида get_logger(__name__)

make

Функция Параметры Возвращаемое значение Описание
get_checks hw: Homework list[Check] Получает на вход домашку, возвращает список явно заданных в ней чеков (remotes игнорирует)
get_solution hw: Homework Solution Получает на вход домашку, возвращает объект Solution, в котром полностью заполнено поле .checks: добавлены собственные чеки, чеки из файла remotes и чеки из конфига. Предполагается, что все чеки уже есть в depot
parse_store_homework hw: Homework - Парсит и сохраняет содержимое домашки
parse_store_all_homeworks - - Парсит и сохраняет содержимое всех домашек
check_solution solution: Solution - Запускает все чеки для заданного solution
check_all_solutions - - Запускает все чеки для всех solution

multiback

Функция Параметры Возвращаемое значение Описание
init_backends backends: Callable | list[str], backpath: str = "", uniform: bool = False -- Каждый не начинающийся на «_» метод в текущем модуле (из которого вызвали init_backends()) заменяется на одноимённый враппер. Этот враппер будет вызывать такой же метод из каждого указанного бекенда. Если backends — это функция, она вызывается изнутри враппера и должна возвращать список бекендов. Бекенды можно хранить в отдельном подмодуле backpath; если поле uniform истинно, враппер про пробует превратить список результатов в один результат с помощью aggregate()
aggregate list[Any] Any или list[Any] Если список состоит из однотипных элементов, и их можно объединить в один (объединить списки и словари, сложить числа, превратить список из None в просто Noneи т. п.), возвращает такое объединение, иначе — сам список

depot

Функция Параметры Возвращаемое значение Описание
store obj: StoreObject - Принимает объект, унаследованный от StoreObject (но не сам StoreObject). Они описаны в depot#objects)
search obj_type: StoreObject, criteria Iterable[StoreObject] Принимает тип объекта и критерии для поиска. Возвращает итератор по найденным объектам.
delete obj_type: StoreObject, criteria - Принимает тип объекта и критерии для поиска. Удаляет найденные объекты.
??? get_plag_set id set[SolutionObject] По ID конкретного объекта-домашки возвращает множество всех версий всех решений (каких? всех или тлько кластер копипасты?)
??? get_plag_set tid set[SolutionObject] По TID возвращает множество всех версий всех ее решений (каких? всех или тлько кластер копипасты?)

depot.objects

Функция Параметры Возвращаемое значение Описание
is_field name, obj bool Преверяет, можно ли считат объект obj с именем name «полем данных»

deliver

Функция Параметры Возвращаемое значение Описание
download_all - - Скачивает все домашки сообразно конфигам и сохраняет их в depot

check

Функция Параметры Возвращаемое значение Описание
check checker: Check, solution: Solution, check_num: int = 0 - Запускает checker на заданном solution и сохраняет результат работы (check_num для параллельных запусков, пока не используется)
get_result_ID checker: Check, solution: Solution CheckResultID: str Вычисляет ID (который можно задать объекту типа CheckResult) на основании checker.ID и solution.ID

Модуль

Подмодуль (если очень надо)

Функция Параметры Возвращаемое значение Описание