Skip to content

Commit 93ad517

Browse files
committed
seo: expand package discovery metadata
1 parent 3017e25 commit 93ad517

1 file changed

Lines changed: 48 additions & 27 deletions

File tree

pyproject.toml

Lines changed: 48 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,69 @@ build-backend = "maturin"
55
[project]
66
name = "qector-decoder-v3"
77
version = "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"
99
readme = {file = "PYPI_README.md", content-type = "text/markdown"}
1010
requires-python = ">=3.9,<3.14"
1111
license = {file = "LICENSE"}
1212
authors = [
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+
]
1646
classifiers = [
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
]
2972
dependencies = [
3073
"numpy>=1.24.0",
@@ -83,6 +126,8 @@ Issues = "https://github.com/GuillaumeLessard/qector-decoder/issues"
83126
PyPI = "https://pypi.org/project/qector-decoder-v3/"
84127
DOI = "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]
88133
python-source = "python"
@@ -118,27 +163,3 @@ python_version = "3.10"
118163
warn_return_any = true
119164
warn_unused_configs = true
120165
ignore_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

Comments
 (0)