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 |
Модуль
Подмодуль (если очень надо)
| Функция |
Параметры |
Возвращаемое значение |
Описание |