2026-04-04 15:39:15 +00:00
|
|
|
[build-system]
|
|
|
|
|
requires = ["setuptools>=68", "wheel"]
|
|
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
|
|
[project]
|
|
|
|
|
name = "autoresearch-quantum"
|
|
|
|
|
version = "0.1.0"
|
|
|
|
|
description = "Karpathy-style autoresearch harness for encoded magic-state preparation experiments."
|
|
|
|
|
readme = "README.md"
|
|
|
|
|
requires-python = ">=3.11"
|
|
|
|
|
authors = [
|
Add teaching notebooks, widget-based quizzes, bug fixes, and expanded tests
- 8 Jupyter notebooks across 3 learning plans (A: bottom-up, B: spiral, C: parallel tracks)
- Teaching toolkit (src/autoresearch_quantum/teaching/) with ipywidgets-based
quiz, predict_choice, reflect, and order widgets — visually distinct from code cells
- Fix spectator_z operator: was {1:'Z',2:'Z'} (IZZI, expectation=0), now {1:'Z',3:'Z'}
(ZIZI, expectation=+1 for ideal T-state, commutes with logical operators)
- Fix u_magic seed: swap phase arguments to match h_p and ry_rz preparations
- Fix double-display bug: widgets rendered twice when function returned the box
- Fix CLI override parser for negative integers and missing '=' validation
- Fix stabilizer detection quiz: ZZZZ detects X errors, not Z errors
- Add ties parameter to order() for questions with interchangeable items
- Expand test suite from 21 to 107 tests
- Update README with notebook instructions and project tree
2026-04-07 15:14:37 +00:00
|
|
|
{ name = "saymrwulf" }
|
2026-04-04 15:39:15 +00:00
|
|
|
]
|
|
|
|
|
dependencies = [
|
|
|
|
|
"qiskit>=2.3,<3",
|
|
|
|
|
"qiskit-aer>=0.17,<0.18",
|
|
|
|
|
"pyyaml>=6,<7",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
|
hardware = [
|
|
|
|
|
"qiskit-ibm-runtime>=0.46,<0.47",
|
|
|
|
|
]
|
Add teaching notebooks, widget-based quizzes, bug fixes, and expanded tests
- 8 Jupyter notebooks across 3 learning plans (A: bottom-up, B: spiral, C: parallel tracks)
- Teaching toolkit (src/autoresearch_quantum/teaching/) with ipywidgets-based
quiz, predict_choice, reflect, and order widgets — visually distinct from code cells
- Fix spectator_z operator: was {1:'Z',2:'Z'} (IZZI, expectation=0), now {1:'Z',3:'Z'}
(ZIZI, expectation=+1 for ideal T-state, commutes with logical operators)
- Fix u_magic seed: swap phase arguments to match h_p and ry_rz preparations
- Fix double-display bug: widgets rendered twice when function returned the box
- Fix CLI override parser for negative integers and missing '=' validation
- Fix stabilizer detection quiz: ZZZZ detects X errors, not Z errors
- Add ties parameter to order() for questions with interchangeable items
- Expand test suite from 21 to 107 tests
- Update README with notebook instructions and project tree
2026-04-07 15:14:37 +00:00
|
|
|
notebooks = [
|
|
|
|
|
"notebook>=7,<8",
|
|
|
|
|
"jupyterlab>=4,<5",
|
|
|
|
|
"matplotlib>=3.8",
|
|
|
|
|
"ipywidgets>=8,<9",
|
|
|
|
|
]
|
2026-04-04 15:39:15 +00:00
|
|
|
dev = [
|
|
|
|
|
"pytest>=9,<10",
|
Harden teaching layer, add notebook execution tests, fix repo hygiene
Quality fixes:
- Add deprecation warnings to 5 silent no-op legacy wrappers in assess.py
- Remove dead code in tracker.py score_by_section (unused first loop)
- Remove unused variable in assess.py _check_order
- Fix .gitignore: add progress JSONs, checkpoints, .coverage, .DS_Store, LaTeX aux
- Fix "all three plans" → "all four plans" in learning_objectives.md
- Add teaching/ package to README project tree
- Add compendium to README paper tree
Testing:
- Add 43 unit tests for teaching/assess.py and tracker.py (quiz, predict_choice,
reflect, order, checkpoint_summary, legacy wrapper deprecation warnings,
tracker scoring, persistence, mastery calculation)
- Add notebook execution test suite (nbclient): all 11 notebooks execute without
errors in a fresh kernel, structural validation (valid JSON, has code cells,
has assessments, section parameters, learning objectives document)
- Overall test count: 185 passing (was 107), coverage: 85% (was ~25% in tests)
Toolchain:
- Add pytest-cov, ruff, nbclient, nbformat to dev dependencies
- Add ruff config (E, F, W, I, UP, B, SIM rules)
- Add coverage config with term-missing output
- Fix all ruff lint issues across src/ and tests/ (import sorting, unused imports)
- Fix Plan D notebook paths (configs/rungs → ../../configs/rungs)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 13:34:37 +00:00
|
|
|
"pytest-cov>=6,<7",
|
|
|
|
|
"ruff>=0.11,<1",
|
|
|
|
|
"nbclient>=0.10,<1",
|
|
|
|
|
"nbformat>=5,<6",
|
Add professional toolchain: mypy strict, CI pipeline, Playwright UX tests, pedagogy validation
Infrastructure:
- Configure mypy strict mode in pyproject.toml; fix all 53 type errors across 8 source files
- Add .pre-commit-config.yaml (ruff, mypy, nbstripout, trailing whitespace)
- Add .github/workflows/ci.yml: lint + type check, unit tests (Python 3.11/3.12), notebook execution
- Add scripts/app.sh consumer lifecycle manager (bootstrap, start, stop, status, validate, logs, reset)
Testing:
- Add tests/test_browser_ux.py: Playwright end-to-end UX tests covering JupyterLab launch,
notebook rendering, navigation links, widget rendering, and full consumer walkthrough
- Add tests/test_pedagogy.py: 130 pedagogical structure tests validating prose quality
(word counts, markdown ratio), section structure, assessment density and variety,
Bloom's taxonomy coverage, checkpoint presence, tracker integration, key insight
callouts, and cross-plan concept consistency
Quality:
- Fix ruff E741 (ambiguous variable name) across all builder scripts
- Add Key Insight callouts to plan_a/01_encoded_magic_state.ipynb
- Add pytest 'browser' marker for selective UX test runs
- Expand .gitignore with .logs/ and build artifacts
319 tests pass, 85% coverage, mypy strict clean, ruff clean.
2026-04-15 18:00:19 +00:00
|
|
|
"mypy>=1.15,<2",
|
|
|
|
|
]
|
|
|
|
|
ux = [
|
|
|
|
|
"playwright>=1.52,<2",
|
2026-04-04 15:39:15 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[project.scripts]
|
|
|
|
|
autoresearch-quantum = "autoresearch_quantum.cli:main"
|
|
|
|
|
|
|
|
|
|
[tool.setuptools]
|
|
|
|
|
package-dir = {"" = "src"}
|
|
|
|
|
|
|
|
|
|
[tool.setuptools.packages.find]
|
|
|
|
|
where = ["src"]
|
|
|
|
|
|
|
|
|
|
[tool.pytest.ini_options]
|
|
|
|
|
pythonpath = ["src"]
|
|
|
|
|
testpaths = ["tests"]
|
Add professional toolchain: mypy strict, CI pipeline, Playwright UX tests, pedagogy validation
Infrastructure:
- Configure mypy strict mode in pyproject.toml; fix all 53 type errors across 8 source files
- Add .pre-commit-config.yaml (ruff, mypy, nbstripout, trailing whitespace)
- Add .github/workflows/ci.yml: lint + type check, unit tests (Python 3.11/3.12), notebook execution
- Add scripts/app.sh consumer lifecycle manager (bootstrap, start, stop, status, validate, logs, reset)
Testing:
- Add tests/test_browser_ux.py: Playwright end-to-end UX tests covering JupyterLab launch,
notebook rendering, navigation links, widget rendering, and full consumer walkthrough
- Add tests/test_pedagogy.py: 130 pedagogical structure tests validating prose quality
(word counts, markdown ratio), section structure, assessment density and variety,
Bloom's taxonomy coverage, checkpoint presence, tracker integration, key insight
callouts, and cross-plan concept consistency
Quality:
- Fix ruff E741 (ambiguous variable name) across all builder scripts
- Add Key Insight callouts to plan_a/01_encoded_magic_state.ipynb
- Add pytest 'browser' marker for selective UX test runs
- Expand .gitignore with .logs/ and build artifacts
319 tests pass, 85% coverage, mypy strict clean, ruff clean.
2026-04-15 18:00:19 +00:00
|
|
|
addopts = "--cov=autoresearch_quantum --cov-report=term-missing --cov-config=pyproject.toml -m 'not browser'"
|
|
|
|
|
markers = [
|
|
|
|
|
"browser: end-to-end browser UX tests (requires playwright)",
|
|
|
|
|
]
|
Harden teaching layer, add notebook execution tests, fix repo hygiene
Quality fixes:
- Add deprecation warnings to 5 silent no-op legacy wrappers in assess.py
- Remove dead code in tracker.py score_by_section (unused first loop)
- Remove unused variable in assess.py _check_order
- Fix .gitignore: add progress JSONs, checkpoints, .coverage, .DS_Store, LaTeX aux
- Fix "all three plans" → "all four plans" in learning_objectives.md
- Add teaching/ package to README project tree
- Add compendium to README paper tree
Testing:
- Add 43 unit tests for teaching/assess.py and tracker.py (quiz, predict_choice,
reflect, order, checkpoint_summary, legacy wrapper deprecation warnings,
tracker scoring, persistence, mastery calculation)
- Add notebook execution test suite (nbclient): all 11 notebooks execute without
errors in a fresh kernel, structural validation (valid JSON, has code cells,
has assessments, section parameters, learning objectives document)
- Overall test count: 185 passing (was 107), coverage: 85% (was ~25% in tests)
Toolchain:
- Add pytest-cov, ruff, nbclient, nbformat to dev dependencies
- Add ruff config (E, F, W, I, UP, B, SIM rules)
- Add coverage config with term-missing output
- Fix all ruff lint issues across src/ and tests/ (import sorting, unused imports)
- Fix Plan D notebook paths (configs/rungs → ../../configs/rungs)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 13:34:37 +00:00
|
|
|
|
|
|
|
|
[tool.coverage.run]
|
|
|
|
|
source = ["autoresearch_quantum"]
|
|
|
|
|
|
|
|
|
|
[tool.coverage.report]
|
|
|
|
|
show_missing = true
|
|
|
|
|
skip_empty = true
|
|
|
|
|
exclude_lines = [
|
|
|
|
|
"pragma: no cover",
|
|
|
|
|
"if TYPE_CHECKING:",
|
|
|
|
|
"if __name__ == .__main__.",
|
|
|
|
|
]
|
|
|
|
|
|
Add professional toolchain: mypy strict, CI pipeline, Playwright UX tests, pedagogy validation
Infrastructure:
- Configure mypy strict mode in pyproject.toml; fix all 53 type errors across 8 source files
- Add .pre-commit-config.yaml (ruff, mypy, nbstripout, trailing whitespace)
- Add .github/workflows/ci.yml: lint + type check, unit tests (Python 3.11/3.12), notebook execution
- Add scripts/app.sh consumer lifecycle manager (bootstrap, start, stop, status, validate, logs, reset)
Testing:
- Add tests/test_browser_ux.py: Playwright end-to-end UX tests covering JupyterLab launch,
notebook rendering, navigation links, widget rendering, and full consumer walkthrough
- Add tests/test_pedagogy.py: 130 pedagogical structure tests validating prose quality
(word counts, markdown ratio), section structure, assessment density and variety,
Bloom's taxonomy coverage, checkpoint presence, tracker integration, key insight
callouts, and cross-plan concept consistency
Quality:
- Fix ruff E741 (ambiguous variable name) across all builder scripts
- Add Key Insight callouts to plan_a/01_encoded_magic_state.ipynb
- Add pytest 'browser' marker for selective UX test runs
- Expand .gitignore with .logs/ and build artifacts
319 tests pass, 85% coverage, mypy strict clean, ruff clean.
2026-04-15 18:00:19 +00:00
|
|
|
[tool.mypy]
|
|
|
|
|
python_version = "3.11"
|
|
|
|
|
strict = true
|
|
|
|
|
warn_return_any = true
|
|
|
|
|
warn_unused_configs = true
|
|
|
|
|
disallow_untyped_defs = true
|
|
|
|
|
disallow_incomplete_defs = true
|
|
|
|
|
check_untyped_defs = true
|
|
|
|
|
no_implicit_optional = true
|
|
|
|
|
warn_redundant_casts = true
|
|
|
|
|
warn_unused_ignores = true
|
|
|
|
|
show_error_codes = true
|
|
|
|
|
namespace_packages = true
|
|
|
|
|
explicit_package_bases = true
|
|
|
|
|
mypy_path = ["src"]
|
|
|
|
|
|
|
|
|
|
[[tool.mypy.overrides]]
|
|
|
|
|
module = [
|
|
|
|
|
"qiskit.*",
|
|
|
|
|
"qiskit_aer.*",
|
|
|
|
|
"qiskit_ibm_runtime.*",
|
|
|
|
|
"IPython.*",
|
|
|
|
|
"ipywidgets.*",
|
|
|
|
|
"nbformat.*",
|
|
|
|
|
"matplotlib.*",
|
|
|
|
|
"numpy.*",
|
|
|
|
|
"yaml.*",
|
|
|
|
|
]
|
|
|
|
|
ignore_missing_imports = true
|
|
|
|
|
|
Harden teaching layer, add notebook execution tests, fix repo hygiene
Quality fixes:
- Add deprecation warnings to 5 silent no-op legacy wrappers in assess.py
- Remove dead code in tracker.py score_by_section (unused first loop)
- Remove unused variable in assess.py _check_order
- Fix .gitignore: add progress JSONs, checkpoints, .coverage, .DS_Store, LaTeX aux
- Fix "all three plans" → "all four plans" in learning_objectives.md
- Add teaching/ package to README project tree
- Add compendium to README paper tree
Testing:
- Add 43 unit tests for teaching/assess.py and tracker.py (quiz, predict_choice,
reflect, order, checkpoint_summary, legacy wrapper deprecation warnings,
tracker scoring, persistence, mastery calculation)
- Add notebook execution test suite (nbclient): all 11 notebooks execute without
errors in a fresh kernel, structural validation (valid JSON, has code cells,
has assessments, section parameters, learning objectives document)
- Overall test count: 185 passing (was 107), coverage: 85% (was ~25% in tests)
Toolchain:
- Add pytest-cov, ruff, nbclient, nbformat to dev dependencies
- Add ruff config (E, F, W, I, UP, B, SIM rules)
- Add coverage config with term-missing output
- Fix all ruff lint issues across src/ and tests/ (import sorting, unused imports)
- Fix Plan D notebook paths (configs/rungs → ../../configs/rungs)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 13:34:37 +00:00
|
|
|
[tool.ruff]
|
|
|
|
|
target-version = "py311"
|
|
|
|
|
line-length = 120
|
|
|
|
|
src = ["src", "tests"]
|
|
|
|
|
|
|
|
|
|
[tool.ruff.lint]
|
|
|
|
|
select = ["E", "F", "W", "I", "UP", "B", "SIM"]
|
|
|
|
|
ignore = ["E501"]
|