| Project | What it does | Stack |
|---|---|---|
| Stepik-Python-Grader PyPI · Quick start · History | A local offline autograder for Python. Downloads task data from Stepik, runs correctness checks without a submit limit, and compares several solutions honestly — correctness first, benchmark metrics second. | CLI · web UI · GUI · pytest plugin · OS sandbox |
| Glossary-Python | Supporting layer: the glossary the grader links into when a run fails. | content · tooling |
Quick start
pipx install stepik-python-grader && stepik-graderBeyond running tests: an offline RU/EN glossary reachable straight from the error you just hit · a step-by-step tracer with a memory graph · timeit microbenchmarks with time and memory ranking · an optional OS sandbox for Linux, macOS and Windows · opt-in AI failure explanations, bring-your-own-key.
| tests across a 197-module suite | checks per PR, 11 of them required | OS × Python versions, 3.14 experimental | releases shipped, latest v1.11.0 |
- Gates instead of memory —
preflight.pybefore a commit,check_pr_ready.pybefore a merge. Things you cannot forget, because they are enforced rather than remembered. - The rule applies to the owner too — the branch-protection bypass list is empty. Not a policy, a mechanism.
- Every rule cites its incident — each convention in the docs carries the issue number it grew from, so half a year later it is clear not only what the rule is, but why.
- A changelog assembled from fragments, not written after the fact — entries land with the change that caused them.
| Architecture refinement | keeping module boundaries honest as surface area grows |
| CI & merge automation | stronger gates, less manual shepherding |
| Regression coverage | every fixed bug leaves a test behind |
| English documentation | full parity with the Russian docs tree |
| Local web UX | making --serve the primary workflow, not the fallback |
| Safer execution | tighter boundaries for untrusted code paths |
Python · pytest · Hypothesis · Ruff · mypy · GitHub Actions · PyPI · Playwright
CLI tooling · local web UI · benchmarking · OS sandboxing · docs architecture · release automation · typed boundaries · property-based testing
The grader has a "First contribution in 15 minutes" onramp, and every good first issue is written in both Russian and English — a bilingual body is enforced by a dedicated check, not by good intentions.
Мейнтейнер open-source на Python. Делаю инструменты для тех, кто проверяет, сравнивает, отлаживает и выпускает код. Флагман — Stepik-Python-Grader: локальный грейдер, который не просто прогоняет тесты, а сравнивает решения честно — сначала по корректности, потом по benchmark-метрикам.
Качество держится механикой, а не памятью: гейты перед коммитом и мержем, пустой список обходов защиты ветки, каждое правило подписано инцидентом, из которого выросло.
Сейчас в работе: границы модулей по мере роста площади · автоматизация очереди мержей ·
регрессионное покрытие (каждый исправленный баг оставляет тест) · паритет английской документации ·
--serve как основной сценарий вместо запасного · более тесные границы для недоверенного кода.
Стек: Python · pytest · Hypothesis · Ruff · mypy · GitHub Actions · PyPI · Playwright.
Открыт для вклада: онрамп «Первый вклад за 15 минут», задачи good first issue заводятся сразу
на двух языках — двуязычие проверяет отдельный скрипт, а не добрая воля.
Подробности — в проекте: README грейдера (на русском) · история проекта · как включиться



