@@ -5,26 +5,69 @@ build-backend = "maturin"
55[project ]
66name = " qector-decoder-v3"
77version = " 0.5.2"
8- description = " Source-available Rust/Python QEC R&D platform with PyMatching-compatible validation, belief-matching, BP-OSD/qLDPC workflows, CPU/GPU batch decoding, and artifact-backed benchmark evidence"
8+ description = " Source-available Rust/Python quantum error correction decoder package for QEC research, PyMatching-compatible validation, belief-matching, BP-OSD/qLDPC workflows, CPU/GPU batch decoding, and reproducible benchmark evidence"
99readme = {file = " PYPI_README.md" , content-type = " text/markdown" }
1010requires-python = " >=3.9,<3.14"
1111license = {file = " LICENSE" }
1212authors = [
1313 {name = " Guillaume Lessard / iD01t Productions" , email = " admin@qector.store" }
1414]
15- keywords = [" quantum" , " error correction" , " decoder" , " union-find" , " QEC" , " rust" , " MWPM" , " Stim" , " PyMatching" , " LDPC" , " qLDPC" ]
15+ keywords = [
16+ " quantum error correction" ,
17+ " QEC" ,
18+ " quantum computing" ,
19+ " fault tolerant quantum computing" ,
20+ " decoder" ,
21+ " quantum decoder" ,
22+ " MWPM" ,
23+ " minimum weight perfect matching" ,
24+ " PyMatching" ,
25+ " Stim" ,
26+ " Sinter" ,
27+ " union find decoder" ,
28+ " belief matching" ,
29+ " BP OSD" ,
30+ " belief propagation" ,
31+ " ordered statistics decoding" ,
32+ " LDPC" ,
33+ " qLDPC" ,
34+ " surface code" ,
35+ " rotated surface code" ,
36+ " syndrome decoding" ,
37+ " Rust" ,
38+ " Python" ,
39+ " PyO3" ,
40+ " maturin" ,
41+ " research software" ,
42+ " benchmark artifacts" ,
43+ " reproducibility" ,
44+ " QECTOR"
45+ ]
1646classifiers = [
1747 " Development Status :: 4 - Beta" ,
48+ " Environment :: Console" ,
49+ " Intended Audience :: Developers" ,
50+ " Intended Audience :: Education" ,
1851 " Intended Audience :: Science/Research" ,
1952 " License :: Other/Proprietary License" ,
20- " Programming Language :: Rust" ,
53+ " Natural Language :: English" ,
54+ " Operating System :: MacOS :: MacOS X" ,
55+ " Operating System :: Microsoft :: Windows" ,
56+ " Operating System :: POSIX :: Linux" ,
2157 " Programming Language :: Python :: 3" ,
2258 " Programming Language :: Python :: 3.9" ,
2359 " Programming Language :: Python :: 3.10" ,
2460 " Programming Language :: Python :: 3.11" ,
2561 " Programming Language :: Python :: 3.12" ,
2662 " Programming Language :: Python :: 3.13" ,
63+ " Programming Language :: Python :: Implementation :: CPython" ,
64+ " Programming Language :: Rust" ,
65+ " Topic :: Scientific/Engineering" ,
66+ " Topic :: Scientific/Engineering :: Artificial Intelligence" ,
67+ " Topic :: Scientific/Engineering :: Mathematics" ,
2768 " Topic :: Scientific/Engineering :: Physics" ,
69+ " Topic :: Software Development :: Libraries" ,
70+ " Topic :: Software Development :: Libraries :: Python Modules" ,
2871]
2972dependencies = [
3073 " numpy>=1.24.0" ,
@@ -83,6 +126,8 @@ Issues = "https://github.com/GuillaumeLessard/qector-decoder/issues"
83126PyPI = " https://pypi.org/project/qector-decoder-v3/"
84127DOI = " https://doi.org/10.5281/zenodo.20825980"
85128"Commercial Licensing" = " https://www.qector.store"
129+ "Benchmark Artifacts" = " https://github.com/GuillaumeLessard/qector-decoder/tree/main/benchmark_results"
130+ "Zenodo Record" = " https://doi.org/10.5281/zenodo.20825980"
86131
87132[tool .maturin ]
88133python-source = " python"
@@ -118,27 +163,3 @@ python_version = "3.10"
118163warn_return_any = true
119164warn_unused_configs = true
120165ignore_missing_imports = true
121-
122- [tool .ruff ]
123- line-length = 120
124- target-version = " py39"
125-
126- [tool .ruff .lint ]
127- # E702: semicolons used intentionally for chained one-liners in plotting helpers.
128- # E731: lambda assignments used for compact callback tables in a few helpers.
129- # E741: single-letter variable names (l, I, O) are domain-conventional in QEC math.
130- # These are minor style choices that do not affect correctness.
131- ignore = [" E702" , " E731" , " E741" ]
132-
133- [tool .ruff .lint .per-file-ignores ]
134- # __init__: late imports (E402) are intentional (runtime optional deps).
135- "python/qector_decoder_v3/__init__.py" = [" E402" ]
136- # workbench.py: json imported for optional serialization path, Tuple aliased for py3.8 compat.
137- "python/qector_decoder_v3/workbench.py" = [" F401" ]
138- # qiskit_plugin.py: Tuple re-exported for downstream type annotations.
139- "python/qector_decoder_v3/qiskit_plugin.py" = [" F401" ]
140- # Test files: many use sys.path manipulation (E402), conditional imports (F401),
141- # convenience imports kept for symmetry (F401), unused locals in scaffolding (F841),
142- # f-strings used as comment-like strings for readability (F541).
143- "python/tests/*.py" = [" E402" , " F401" , " F541" , " F841" ]
144- "python/tests/**/*.py" = [" E402" , " F401" , " F541" , " F841" ]
0 commit comments