Skip to content

Commit

Permalink
♻️ make qiskit an optional dependency
Browse files Browse the repository at this point in the history
Signed-off-by: burgholzer <[email protected]>
  • Loading branch information
burgholzer committed Jan 7, 2025
1 parent 67006aa commit fd9ba73
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 37 deletions.
13 changes: 9 additions & 4 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,16 @@ dependencies = [
"mqt.core @ git+https://github.com/cda-tum/mqt-core@shared-libs",
"importlib_resources>=5.0; python_version < '3.10'",
"typing_extensions>=4.2; python_version < '3.11'", # used for typing.Unpack
"qiskit[qasm3-import]>=1.0.0",
"numpy>=2.1; python_version >= '3.13'",
"numpy>=1.26; python_version >= '3.12'",
"numpy>=1.24; python_version >= '3.11'",
"numpy>=1.22",
]
dynamic = ["version"]

[project.optional-dependencies]
qiskit = ["qiskit[qasm3-import]>=1.0.0"]

[project.urls]
Homepage = "https://github.com/cda-tum/mqt-qcec"
Documentation = "https://mqt.readthedocs.io/projects/qcec"
Expand Down Expand Up @@ -308,7 +314,7 @@ build = [
]
docs = [
"furo>=2024.8.6",
"qiskit[visualization]>=1.0.0",
"qiskit[qasm3-import,visualization]>=1.0.0",
"setuptools-scm>=8.1",
"sphinx-autoapi>=3.4.0",
"sphinx-copybutton>=0.5.2",
Expand All @@ -319,12 +325,11 @@ docs = [
"ipykernel>=6.29.5",
"nbsphinx>=0.9.6",
"sphinx-autodoc-typehints>=2.3.0",
"mqt-core[qiskit] @ git+https://github.com/cda-tum/mqt-core@shared-libs",
]
test = [
"pytest>=8.3.4",
"pytest-cov>=6",
"mqt-core[qiskit] @ git+https://github.com/cda-tum/mqt-core@shared-libs",
"qiskit[qasm3-import]>=1.0.0",
]
dev = [
{include-group = "build"},
Expand Down
16 changes: 11 additions & 5 deletions src/mqt/qcec/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from __future__ import annotations

from ._version import version as __version__
from .compilation_flow_profiles import AncillaMode, generate_profile
from .pyqcec import (
ApplicationScheme,
Configuration,
Expand All @@ -16,17 +15,24 @@
StateType,
)
from .verify import verify
from .verify_compilation_flow import verify_compilation

# Conditionally import functionality depending on the availability of Qiskit
try:
from .compilation_flow_profiles import AncillaMode, generate_profile
from .verify_compilation_flow import verify_compilation

qiskit_installed = True
except ImportError:
qiskit_installed = False

__all__ = [
"AncillaMode",
"ApplicationScheme",
"Configuration",
"EquivalenceCheckingManager",
"EquivalenceCriterion",
"StateType",
"__version__",
"generate_profile",
"verify",
"verify_compilation",
]
if qiskit_installed:
__all__ += ["AncillaMode", "generate_profile", "verify_compilation"]
69 changes: 41 additions & 28 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit fd9ba73

Please sign in to comment.