autoresearch-quantum/pyproject.toml
saymrwulf 5d0c28f939 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 15:34:37 +02:00

71 lines
1.4 KiB
TOML

[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 = [
{ name = "saymrwulf" }
]
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",
]
notebooks = [
"notebook>=7,<8",
"jupyterlab>=4,<5",
"matplotlib>=3.8",
"ipywidgets>=8,<9",
]
dev = [
"pytest>=9,<10",
"pytest-cov>=6,<7",
"ruff>=0.11,<1",
"nbclient>=0.10,<1",
"nbformat>=5,<6",
]
[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"]
addopts = "--cov=autoresearch_quantum --cov-report=term-missing --cov-config=pyproject.toml"
[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__.",
]
[tool.ruff]
target-version = "py311"
line-length = 120
src = ["src", "tests"]
[tool.ruff.lint]
select = ["E", "F", "W", "I", "UP", "B", "SIM"]
ignore = ["E501"]