@@ -77,63 +77,4 @@ all = [
7777Homepage = " https://www.qector.store"
7878Repository = " https://github.com/GuillaumeLessard/qector-decoder.git"
7979Issues = " https://github.com/GuillaumeLessard/qector-decoder/issues"
80- "Commercial licensing" = " mailto:admin@qector.store"
81-
82- [tool .maturin ]
83- python-source = " python"
84- module-name = " qector_decoder_v3.qector_decoder_v3"
85- manifest-path = " Cargo.toml"
86- # Exclude all Rust source from sdist / wheel metadata -- compiled .so/.pyd only.
87- # The src/ in this repo contains only a stub compile_error! placeholder.
88- # The real source is injected at CI build time via encrypted Actions secrets.
89- exclude = [
90- " src/**" ,
91- " tests/**" ,
92- " actions-runner/**" ,
93- " artifacts/**" ,
94- " target/**" ,
95- " .venv/**" ,
96- ]
97- # Strip debug symbols from compiled extension
98- strip = true
99-
100- [tool .pytest .ini_options ]
101- testpaths = [" python/tests" ]
102- python_files = [" test_*.py" ]
103- python_classes = [" Test*" ]
104- python_functions = [" test_*" ]
105- filterwarnings = [
106- # Starlette's TestClient warns that httpx is deprecated in favor of httpx2;
107- # this is upstream noise, not actionable from this project.
108- " ignore::starlette.exceptions.StarletteDeprecationWarning" ,
109- ]
110-
111- [tool .mypy ]
112- python_version = " 3.10"
113- warn_return_any = true
114- warn_unused_configs = true
115- ignore_missing_imports = true
116-
117- [tool .ruff ]
118- line-length = 120
119- target-version = " py39"
120-
121- [tool .ruff .lint ]
122- # E702: semicolons used intentionally for chained one-liners in plotting helpers.
123- # E731: lambda assignments used for compact callback tables in a few helpers.
124- # E741: single-letter variable names (l, I, O) are domain-conventional in QEC math.
125- # These are minor style choices that do not affect correctness.
126- ignore = [" E702" , " E731" , " E741" ]
127-
128- [tool .ruff .lint .per-file-ignores ]
129- # __init__: late imports (E402) are intentional (runtime optional deps).
130- "python/qector_decoder_v3/__init__.py" = [" E402" ]
131- # workbench.py: json imported for optional serialization path, Tuple aliased for py3.8 compat.
132- "python/qector_decoder_v3/workbench.py" = [" F401" ]
133- # qiskit_plugin.py: Tuple re-exported for downstream type annotations.
134- "python/qector_decoder_v3/qiskit_plugin.py" = [" F401" ]
135- # Test files: many use sys.path manipulation (E402), conditional imports (F401),
136- # convenience imports kept for symmetry (F401), unused locals in scaffolding (F841),
137- # f-strings used as comment-like strings for readability (F541).
138- "python/tests/*.py" = [" E402" , " F401" , " F541" , " F841" ]
139- "python/tests/**/*.py" = [" E402" , " F401" , " F541" , " F841" ]
80+ "Commercial licensing" = " https://www.qector.store"
0 commit comments