Различия между версиями 4 и 5
Версия 4 от 2022-08-02 14:55:01
Размер: 2226
Редактор: FrBrGeorge
Комментарий:
Версия 5 от 2022-08-02 15:43:33
Размер: 2449
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 18: Строка 18:
 . … TODO  * `get_remote_tests(файл с URL-ами) -> Путь к скачанному (закешированному?) каталогу с удалёнными тестами`
  * (для локального запуска)
 * … TODO

PyJudge.Update

Система доставки. Позволяет скачивать / кешировать / обновлять все решения всех заданных Д/З всех зарегистрированных пользователей и формировать «паспорт» решения с метаданными (время первого/последнего коммита, закешированное расположение удалённых тестов и т. п.).

API

  • get_task_list() -> list[(name, ID, deadline)] — список Д/З

  • get_user_list() -> list[(name, ID, repository_url)] — список пользователей

  • get_task(UserID, TaskID) ->

        (
            Путь к закешированному каталогу с решением,
            Путь к закешированному каталогу с тестами (обычно входит в состав Д/З),
            Путь к закешированному каталогу с удалёнными тестами,
            Cокращённый git log по Д/З: list[(файл из Д/З, время коммита)]
        )
    • (один и тот же файл может участвовать в нескольких коммитах)
    • Элементы кортежа могут быть пустыми, если соответствующего объекта нет
  • get_remote_tests(файл с URL-ами) -> Путь к скачанному (закешированному?) каталогу с удалёнными тестами

    • (для локального запуска)
  • … TODO

На входе

  • Список пользователей:
    • ФИО, URL репозитория с решениями
  • Список Д/З
    • Идентификатор, время дедлайна

В репозитории может быть файл, в котором указано, где лежат удалённые тесты, этот файл надо распарсить, а тесты скачать

На выходе

  • Каталог со всеми решениями
  • Метаданные по каждому Д/З:
    • время дедлайна
    • Время коммитов (и какие файлы входили в коммит)
    • Пути к скачанным удалённым тестам

FrBrGeorge/ActualEducationalTasks/PyJudge/Update (последним исправлял пользователь FrBrGeorge 2022-08-02 15:43:33)