Skip to content

✨ [Feature] .grader_cache/ — кэширование результатов (не перезапускать прошедшие тесты) #56

Description

@ArtVsMark

Реализовано в PR #91 (смержен).

Что сделано:

  • Новый leaf-модуль core/cache.py (stdlib hashlib + core/storage.py для JSON I/O; новых рёбер/циклов в DAG нет).
  • Ключ кэша — пара sha256: содержимое файла решения + все файлы тест-директории. Любое изменение инвалидирует запись.
  • Хранилище — один .grader_cache/results.json в CWD (добавлен в .gitignore); битый/несовместимый по версии файл трактуется как пустой кэш, без падения.
  • CLI: --cache / --no-cache (argparse.BooleanOptionalAction, дефолт из [tool.stepik-grader] use_cache / GraderConfig.use_cache) и --clear-cache. Только для --mode 1/2; режимы 3/4 (бенчмарк) кэш не используют.
  • Режим 1 печатает пометку о попадании в кэш, режим 2 — сводку «N из M из кэша».
  • 15 тестов; общий сьют 637 passed, покрытие 95%; ruff/format/mypy — чисто.
  • Документация: README, CHANGELOG, CLAUDE.md.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions