diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index a5d6466c..5c45292d 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -128,6 +128,13 @@ repos:
- id: rumdl-fmt
priority: 6
+ ## Format pyproject.toml with pyproject-fmt
+ - repo: https://github.com/tox-dev/pyproject-fmt
+ rev: v2.29.3
+ hooks:
+ - id: pyproject-fmt
+ priority: 5
+
## Format and lint Python files with ruff
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.16.6
diff --git a/README.md b/README.md
index d700dfb9..0a3b4f24 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,9 @@
[](https://pypi.org/project/mqt.problemsolver/)
+
[](https://opensource.org/licenses/MIT)
+[](https://github.com/munich-quantum-toolkit/problemsolver/actions/workflows/ci.yml)
+[](https://github.com/munich-quantum-toolkit/problemsolver/actions/workflows/cd.yml)
+[](https://mqt.readthedocs.io/projects/problemsolver)
[](https://codecov.io/gh/munich-quantum-toolkit/problemsolver)
@@ -79,7 +83,7 @@ To support this endeavor, please consider:
requests
- Citing the MQT in your publications (see [Cite This](#cite-this))
- Citing our research in your publications (see
- [References](https://mqt.readthedocs.io/projects/problemsolver/en/latest/references.html))
+ [References](https://mqt.readthedocs.io/projects/problemsolver/en/stable/references.html))
- Using the MQT in research and teaching, and sharing feedback and use cases
- Sponsoring us on GitHub:
diff --git a/docs/conf.py b/docs/conf.py
index 7e5bda4c..3650f7ec 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -76,12 +76,11 @@
"python": ("https://docs.python.org/3", None),
"numpy": ("https://numpy.org/doc/stable/", None),
"qiskit": ("https://docs.quantum.ibm.com/api/qiskit", None),
- "mqt": ("https://mqt.readthedocs.io/en/latest", None),
- "ddsim": ("https://mqt.readthedocs.io/projects/ddsim/en/latest", None),
- "qmap": ("https://mqt.readthedocs.io/projects/qmap/en/latest", None),
- "qcec": ("https://mqt.readthedocs.io/projects/qcec/en/latest", None),
- "qecc": ("https://mqt.readthedocs.io/projects/qecc/en/latest", None),
- "syrec": ("https://mqt.readthedocs.io/projects/syrec/en/latest", None),
+ "mqt": ("https://mqt.readthedocs.io/en/stable", None),
+ "ddsim": ("https://mqt.readthedocs.io/projects/ddsim/en/stable", None),
+ "qmap": ("https://mqt.readthedocs.io/projects/qmap/en/stable", None),
+ "qcec": ("https://mqt.readthedocs.io/projects/qcec/en/stable", None),
+ "syrec": ("https://mqt.readthedocs.io/projects/syrec/en/stable", None),
}
myst_enable_extensions = [
diff --git a/noxfile.py b/noxfile.py
index b8cc76c0..48816e0d 100755
--- a/noxfile.py
+++ b/noxfile.py
@@ -103,7 +103,7 @@ def minimums(session: nox.Session) -> None:
session.run("uv", "tree", "--frozen", env=env)
-@nox.session(reuse_venv=True)
+@nox.session(python="3.14", reuse_venv=True)
def docs(session: nox.Session) -> None:
"""Build the docs. Use "--non-interactive" to avoid serving. Pass "-b linkcheck" to check links."""
parser = argparse.ArgumentParser()
diff --git a/pyproject.toml b/pyproject.toml
index aab7e195..f1f8be5d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,100 +1,80 @@
[build-system]
-requires = [
- "hatchling>=1.27.0",
- "hatch-vcs>=0.4.0"
-]
build-backend = "hatchling.build"
+requires = [ "hatch-vcs>=0.4", "hatchling>=1.27" ]
+
[project]
-name = "mqt.problemsolver"
+name = "mqt-problemsolver"
description = "MQT ProblemSolver - A MQT tool for Solving Problems Using Quantum Computing"
readme = "README.md"
-authors = [
- { name = "Nils Quetschlich", email = "nils.quetschlich@tum.de" },
- { name = "Lukas Burgholzer", email = "burgholzer@me.com" },
- { name = "Tobias Forster", email = "tobias.forster@tum.de" },
-]
-keywords = ["MQT", "quantum computing"]
+keywords = [ "MQT", "quantum computing" ]
license = "MIT"
-license-files = ["LICENSE"]
+license-files = [ "LICENSE" ]
requires-python = ">=3.11"
-dynamic = ["version"]
-
+classifiers = [
+ "Development Status :: 4 - Beta",
+ "Intended Audience :: Developers",
+ "Intended Audience :: Information Technology",
+ "Intended Audience :: Science/Research",
+ "Natural Language :: English",
+ "Operating System :: MacOS",
+ "Operating System :: Microsoft :: Windows",
+ "Operating System :: POSIX :: Linux",
+ "Programming Language :: Python :: 3",
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.11",
+ "Programming Language :: Python :: 3.12",
+ "Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
+ "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
+ "Topic :: Scientific/Engineering :: Quantum Computing",
+ "Typing :: Typed",
+]
+dynamic = [ "version" ]
dependencies = [
- "mqt.core>=3.8.0",
- "qiskit>=2.0.3",
- "qiskit_aer>=0.16.4; python_version < '3.14'",
- "numpy>=1.24",
- "numpy>=1.26; python_version >= '3.12'",
- "numpy>=2.1; python_version >= '3.13'",
- "numpy>=2.3.2; python_version >= '3.14'",
- "scipy>=1.13.1",
- "scipy>=1.14.1; python_version >= '3.13'",
- "scipy>=1.16.1; python_version >= '3.14'",
- "pandas>=2.1.2",
- "pandas>=2.2.3; python_version >= '3.13'",
- "pandas>=2.3.3; python_version >= '3.14'",
- "matplotlib>=3.9.4",
- "matplotlib>=3.10.5; python_version >= '3.14'",
- "networkx>=2.8.8",
- "python_tsp>=0.5.0",
- "docplex>=2.28.240",
- "joblib>=1.4.2",
- "qdk[qiskit]>=1.20.0",
- "mqt-bench>=2.0.1",
- "pytket>=1.29.0",
- "pytket>=2.4.0; python_version >= '3.14'",
- "pytket-qiskit>=0.67.0",
- "pytket-qiskit>=0.78.0; python_version >= '3.14'",
- "qiskit-ibm-runtime>=0.30.0",
- "z3-solver>=4.15.3.0",
- "openpyxl>=3.1.5",
- "jsonschema>=4.20.0",
- "referencing>=0.37.0",
+ "docplex>=2.28.240",
+ "joblib>=1.4.2",
+ "jsonschema>=4.20",
+ "matplotlib>=3.9.4",
+ "matplotlib>=3.10.5; python_version>='3.14'",
+ "mqt-bench>=2.0.1",
+ "mqt-core>=3.8",
+ "networkx>=2.8.8",
+ "numpy>=1.24",
+ "numpy>=1.26; python_version>='3.12'",
+ "numpy>=2.1; python_version>='3.13'",
+ "numpy>=2.3.2; python_version>='3.14'",
+ "openpyxl>=3.1.5",
+ "pandas>=2.1.2",
+ "pandas>=2.2.3; python_version>='3.13'",
+ "pandas>=2.3.3; python_version>='3.14'",
+ "python-tsp>=0.5",
+ "pytket>=1.29",
+ "pytket>=2.4; python_version>='3.14'",
+ "pytket-qiskit>=0.67",
+ "pytket-qiskit>=0.78; python_version>='3.14'",
+ "qdk[qiskit]>=1.20",
+ "qiskit>=2.0.3",
+ "qiskit-aer>=0.16.4; python_version<'3.14'",
+ "qiskit-ibm-runtime>=0.30",
+ "referencing>=0.37",
+ "scipy>=1.13.1",
+ "scipy>=1.14.1; python_version>='3.13'",
+ "scipy>=1.16.1; python_version>='3.14'",
+ "z3-solver>=4.15.3",
]
-classifiers = [
- "Development Status :: 4 - Beta",
- "Intended Audience :: Developers",
- "Intended Audience :: Information Technology",
- "Intended Audience :: Science/Research",
- "Natural Language :: English",
- "Operating System :: MacOS",
- "Operating System :: Microsoft :: Windows",
- "Operating System :: POSIX :: Linux",
- "Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3 :: Only",
- "Programming Language :: Python :: 3.11",
- "Programming Language :: Python :: 3.12",
- "Programming Language :: Python :: 3.13",
- "Programming Language :: Python :: 3.14",
- "Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)",
- "Topic :: Scientific/Engineering :: Quantum Computing",
- "Typing :: Typed",
-]
+[[project.authors]]
+name = "Nils Quetschlich"
+email = "nils.quetschlich@tum.de"
-[dependency-groups]
-docs = [
- "furo>=2025.09.25",
- "myst-nb>=1.3.0",
- "sphinx>=8.2.3",
- "sphinx-autoapi>=3.6.0",
- "sphinx-copybutton>=0.5.2",
- "sphinx-design>=0.6.1",
- "sphinx-llm>=0.4.1",
- "sphinxcontrib-bibtex>=2.6.5",
- "sphinxext-opengraph>=0.13.0",
-]
-test = [
- "pytest>=9.0.1",
- "pytest-cov>=7.1.0",
- "pytest-sugar>=1.1.1",
- "pytest-xdist>=3.8.0",
-]
-dev = [
- {include-group = "test"},
- "nox>=2025.11.12",
-]
+[[project.authors]]
+name = "Lukas Burgholzer"
+email = "burgholzer@me.com"
+
+[[project.authors]]
+name = "Tobias Forster"
+email = "tobias.forster@tum.de"
[project.urls]
Homepage = "https://github.com/munich-quantum-toolkit/problemsolver"
@@ -102,8 +82,30 @@ Homepage = "https://github.com/munich-quantum-toolkit/problemsolver"
Discussions = "https://github.com/munich-quantum-toolkit/problemsolver/discussions"
Research = "https://www.cda.cit.tum.de/research/quantum/"
-[tool.hatch.build.targets.wheel]
-packages = ["src/mqt"]
+
+[dependency-groups]
+dev = [
+ { include-group = "test" },
+ "nox>=2025.11.12",
+]
+test = [
+ "pytest>=9.0.1",
+ "pytest-cov>=7.1",
+ "pytest-sugar>=1.1.1",
+ "pytest-xdist>=3.8",
+]
+docs = [
+ "furo>=2025.12.19",
+ "myst-nb>=1.4",
+ "sphinx>=9",
+ "sphinx-autoapi>=3.6",
+ "sphinx-copybutton>=0.5.2",
+ "sphinx-design>=0.7",
+ "sphinx-llm>=1",
+ "sphinxcontrib-bibtex>=2.7",
+ "sphinxext-opengraph>=0.13",
+]
+
[tool.hatch.version]
source = "vcs"
@@ -111,50 +113,17 @@ source = "vcs"
[tool.hatch.build.hooks.vcs]
version-file = "src/mqt/problemsolver/_version.py"
+[tool.hatch.build.targets.wheel]
+packages = [ "src/mqt" ]
-[tool.pytest]
-minversion = "9.0"
-testpaths = ["tests"]
-strict = true
-addopts = [
- "-ra",
- "--showlocals",
- "--numprocesses=auto", # Automatically use all available CPU cores for parallel testing
-]
-log_level = "INFO"
-filterwarnings = [
- "error",
- # Qiskit 2.1 internal deprecations
- 'ignore:.*``qiskit.circuit.library.blueprintcircuit.BlueprintCircuit`` is deprecated as of Qiskit 2.1.*:DeprecationWarning:qiskit.*',
- 'ignore:.*``qiskit.circuit.library.n_local.n_local.NLocal`` is deprecated as of Qiskit 2.1.*:DeprecationWarning:qiskit.*',
- # Qiskit 2.2 internal deprecations
- 'ignore:.*``qiskit.circuit.library.phase_oracle.PhaseOracle`` is deprecated as of Qiskit 2.2.*:DeprecationWarning',
- 'ignore:.*Trying to add QuantumRegister to a QuantumCircuit having a layout.*:UserWarning:qiskit.*',
- # QDK 1.28.0 internal deprecations
- 'ignore:.*This version of QRE is deprecated and will be removed in a future release.*:DeprecationWarning',
-]
+[tool.uv.sources]
+mqt-problemsolver = { workspace = true }
-[tool.coverage]
-run.source = ["mqt.problemsolver"]
-run.core = "sysmon"
-run.parallel = true
-run.disable_warnings = [
- "no-sysmon",
-]
-report.exclude_also = [
- '\.\.\.',
- 'if TYPE_CHECKING:',
- 'raise AssertionError',
- 'raise NotImplementedError',
-]
-show_missing = true
-skip_empty = true
-precision = 1
[tool.ruff]
line-length = 120
-namespace-packages = ["mqt"]
+namespace-packages = [ "mqt" ]
preview = true
fix = true
unsafe-fixes = true
@@ -164,95 +133,97 @@ show-fixes = true
preview = true
docstring-code-format = true
+[tool.ruff.lint.per-file-ignores]
+"*.pyi" = [ "D" ] # pydocstyle
+"*.ipynb" = [
+ "D", # pydocstyle
+ "E402", # Allow imports to appear anywhere in Jupyter notebooks
+ "I002", # Allow missing `from __future__ import annotations` import
+]
+
+[tool.ruff.lint.isort]
+known-first-party = [ "mqt.problemsolver" ]
+
+[tool.ruff.lint.pydocstyle]
+convention = "google"
+
[tool.ruff.lint]
extend-select = [
- "A", # flake8-builtins
- "ANN", # flake8-annotations
- "ARG", # flake8-unused-arguments
- "ASYNC", # flake8-async
- "B", # flake8-bugbear
- "C4", # flake8-comprehensions
- "D", # pydocstyle
- "EM", # flake8-errmsg
- "EXE", # flake8-executable
- "FA", # flake8-future-annotations
- "FLY", # flynt
- "I", # isort
- "ICN", # flake8-import-conventions
- "ISC", # flake8-implicit-str-concat
- "N", # flake8-naming
- "NPY", # numpy
- "PERF", # perflint
- "PGH", # pygrep-hooks
- "PIE", # flake8-pie
- "PL", # pylint
- "PT", # flake8-pytest-style
- "PTH", # flake8-use-pathlib
- "PYI", # flake8-pyi
- "Q", # flake8-quotes
- "RET", # flake8-return
- "RSE", # flake8-raise
- "RUF", # Ruff-specific
- "SLF", # flake8-self
- "SLOT", # flake8-slots
- "SIM", # flake8-simplify
- "TC", # flake8-type-checking
- "TID", # flake8-tidy-imports
- "TRY", # tryceratops
- "UP", # pyupgrade
- "YTT", # flake8-2020
+ "A", # flake8-builtins
+ "ANN", # flake8-annotations
+ "ARG", # flake8-unused-arguments
+ "ASYNC", # flake8-async
+ "B", # flake8-bugbear
+ "C4", # flake8-comprehensions
+ "D", # pydocstyle
+ "EM", # flake8-errmsg
+ "EXE", # flake8-executable
+ "FA", # flake8-future-annotations
+ "FLY", # flynt
+ "I", # isort
+ "ICN", # flake8-import-conventions
+ "ISC", # flake8-implicit-str-concat
+ "N", # flake8-naming
+ "NPY", # numpy
+ "PERF", # perflint
+ "PGH", # pygrep-hooks
+ "PIE", # flake8-pie
+ "PL", # pylint
+ "PT", # flake8-pytest-style
+ "PTH", # flake8-use-pathlib
+ "PYI", # flake8-pyi
+ "Q", # flake8-quotes
+ "RET", # flake8-return
+ "RSE", # flake8-raise
+ "RUF", # Ruff-specific
+ "SIM", # flake8-simplify
+ "SLF", # flake8-self
+ "SLOT", # flake8-slots
+ "TC", # flake8-type-checking
+ "TID", # flake8-tidy-imports
+ "TRY", # tryceratops
+ "UP", # pyupgrade
+ "YTT", # flake8-2020
]
ignore = [
- "E501", # Line too long (Black is enough)
- "PLR", # Design-related pylint codes
- "S101", # Use of assert detected
- "D100",
- "D101",
- "D102",
- "D103",
- "D104",
- "D107",
+ "D100",
+ "D101",
+ "D102",
+ "D103",
+ "D104",
+ "D107",
+ "E501", # Line too long (Black is enough)
+ "PLR", # Design-related pylint codes
+ "S101", # Use of assert detected
]
flake8-unused-arguments.ignore-variadic-names = true
future-annotations = true
-[tool.ruff.lint.isort]
-known-first-party = ["mqt.problemsolver"]
-[tool.ruff.lint.per-file-ignores]
-"*.pyi" = ["D"] # pydocstyle
-"*.ipynb" = [
- "D", # pydocstyle
- "E402", # Allow imports to appear anywhere in Jupyter notebooks
- "I002", # Allow missing `from __future__ import annotations` import
-]
+[tool.repo-review.ignore]
+GH200 = "We use Renovate instead of Dependabot"
+PC160 = "We use a mirror of crate-ci/typos"
+PC170 = "We do not use rST files anymore"
-[tool.ruff.lint.pydocstyle]
-convention = "google"
+[tool.check-sdist]
+sdist-only = [ "src/mqt/problemsolver/_version.py" ]
-[tool.ty.terminal]
-# Error if ty emits any warning-level diagnostics.
-error-on-warning = true
-[tool.ty.src]
-exclude = [
- "docs/**",
- "notebooks/**",
-]
+[tool.pyproject-fmt]
+generate_python_version_classifiers = false
+table_format = "long"
+sub_table_spacing = "\n"
+separate_root_table = "\n\n"
[tool.typos]
-default.extend-ignore-re = [
- '"id": ".*",',
- "(?Rm)^.*(#|//)\\s*spellchecker:disable-line$", # ignore line
- "(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on" # ignore block
-]
-[tool.typos.files]
-extend-exclude = [
- "*.tsx",
- "package-lock.json"
+[tool.typos.default]
+extend-ignore-re = [
+ '"id": ".*",',
+ "(?Rm)^.*(#|//)\\s*spellchecker:disable-line$", # ignore line
+ "(?s)(#|//)\\s*spellchecker:off.*?\\n\\s*(#|//)\\s*spellchecker:on" # ignore block
]
[tool.typos.default.extend-words]
@@ -260,12 +231,67 @@ wille = "wille"
anc = "anc"
aer = "aer"
+[tool.typos.files]
+extend-exclude = [ "*.tsx", "package-lock.json" ]
+
-[tool.repo-review.ignore]
-GH200 = "We use Renovate instead of Dependabot"
-PC160 = "We use a mirror of crate-ci/typos"
-PC170 = "We do not use rST files anymore"
+[tool.ty.src]
+exclude = [
+ "docs/**",
+ "notebooks/**",
+]
+[tool.ty.terminal]
+# Error if ty emits any warning-level diagnostics.
+error-on-warning = true
-[tool.check-sdist]
-sdist-only = ["src/mqt/problemsolver/_version.py"]
+
+[tool.pytest]
+addopts = [
+ "-ra",
+ "--showlocals",
+ "--numprocesses=auto", # Automatically use all available CPU cores for parallel testing
+]
+filterwarnings = [
+ "error",
+ # Qiskit 2.1 internal deprecations
+ """\
+ ignore:.*``qiskit.circuit.library.blueprintcircuit.BlueprintCircuit`` is deprecated as of Qiskit \
+ 2.1.*:DeprecationWarning:qiskit.*\
+ """,
+ """\
+ ignore:.*``qiskit.circuit.library.n_local.n_local.NLocal`` is deprecated as of Qiskit \
+ 2.1.*:DeprecationWarning:qiskit.*\
+ """,
+ # Qiskit 2.2 internal deprecations
+ "ignore:.*``qiskit.circuit.library.phase_oracle.PhaseOracle`` is deprecated as of Qiskit 2.2.*:DeprecationWarning",
+ "ignore:.*Trying to add QuantumRegister to a QuantumCircuit having a layout.*:UserWarning:qiskit.*",
+ # QDK 1.28.0 internal deprecations
+ "ignore:.*This version of QRE is deprecated and will be removed in a future release.*:DeprecationWarning",
+]
+log_level = "INFO"
+minversion = "9.0"
+strict = true
+testpaths = [ "tests" ]
+
+
+[tool.coverage]
+precision = 1
+show_missing = true
+skip_empty = true
+
+[tool.coverage.run]
+source = [ "mqt.problemsolver" ]
+parallel = true
+disable_warnings = [
+ "no-sysmon",
+]
+core = "sysmon"
+
+[tool.coverage.report]
+exclude_also = [
+ '\.\.\.',
+ "if TYPE_CHECKING:",
+ "raise AssertionError",
+ "raise NotImplementedError",
+]
diff --git a/uv.lock b/uv.lock
index 7398bfd7..ef85740b 100644
--- a/uv.lock
+++ b/uv.lock
@@ -3,10 +3,10 @@ revision = 3
requires-python = ">=3.11"
resolution-markers = [
"python_full_version >= '3.15' and sys_platform == 'win32'",
- "python_full_version == '3.14.*' and sys_platform == 'win32'",
"python_full_version >= '3.15' and sys_platform == 'emscripten'",
- "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'emscripten'",
@@ -1717,14 +1717,14 @@ dev = [
{ name = "pytest-xdist", specifier = ">=3.8.0" },
]
docs = [
- { name = "furo", specifier = ">=2025.9.25" },
- { name = "myst-nb", specifier = ">=1.3.0" },
- { name = "sphinx", specifier = ">=8.2.3" },
+ { name = "furo", specifier = ">=2025.12.19" },
+ { name = "myst-nb", specifier = ">=1.4.0" },
+ { name = "sphinx", specifier = ">=9.0" },
{ name = "sphinx-autoapi", specifier = ">=3.6.0" },
{ name = "sphinx-copybutton", specifier = ">=0.5.2" },
- { name = "sphinx-design", specifier = ">=0.6.1" },
- { name = "sphinx-llm", specifier = ">=0.4.1" },
- { name = "sphinxcontrib-bibtex", specifier = ">=2.6.5" },
+ { name = "sphinx-design", specifier = ">=0.7.0" },
+ { name = "sphinx-llm", specifier = ">=1.0.0" },
+ { name = "sphinxcontrib-bibtex", specifier = ">=2.7.0" },
{ name = "sphinxext-opengraph", specifier = ">=0.13.0" },
]
test = [
@@ -1990,10 +1990,10 @@ version = "2.5.3"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.15' and sys_platform == 'win32'",
- "python_full_version == '3.14.*' and sys_platform == 'win32'",
"python_full_version >= '3.15' and sys_platform == 'emscripten'",
- "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'emscripten'",
@@ -3537,10 +3537,10 @@ version = "1.18.1"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.15' and sys_platform == 'win32'",
- "python_full_version == '3.14.*' and sys_platform == 'win32'",
"python_full_version >= '3.15' and sys_platform == 'emscripten'",
- "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'emscripten'",
@@ -3691,10 +3691,10 @@ version = "9.1.0"
source = { registry = "https://pypi.org/simple" }
resolution-markers = [
"python_full_version >= '3.15' and sys_platform == 'win32'",
- "python_full_version == '3.14.*' and sys_platform == 'win32'",
"python_full_version >= '3.15' and sys_platform == 'emscripten'",
- "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version >= '3.15' and sys_platform != 'emscripten' and sys_platform != 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
+ "python_full_version == '3.14.*' and sys_platform == 'emscripten'",
"python_full_version == '3.14.*' and sys_platform != 'emscripten' and sys_platform != 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'win32'",
"python_full_version == '3.13.*' and sys_platform == 'emscripten'",
diff --git a/webpage/app/infoScreen.tsx b/webpage/app/infoScreen.tsx
index b15a4986..74f8c6cf 100644
--- a/webpage/app/infoScreen.tsx
+++ b/webpage/app/infoScreen.tsx
@@ -6,7 +6,7 @@ const InfoScreen: React.FC = () => {
MQT QUBOMaker: Pathfinder
This web app is a supporting GUI for the MQT QUBOMaker framework. It allows users to define pathfinding problems using a set of constraints that can be converted into a QUBO formulation by the framework.
Further details are given in the following paper: D. Rovara, N. Quetschlich, and R. Wille "A Framework to Formulate Pathfinding Problems for Quantum Computing", arXiv, 2024
- The corresponding code can be found in the framework's GitHub repository.
+ The corresponding code can be found in the framework's GitHub repository.
MQT QUBOMaker is part of the Munich Quantum Toolkit (MQT) developed by the Chair for Design Automation at the Technical University of Munich.
);