From 474a03dc9f276a8d09eba39dd2782802b3106110 Mon Sep 17 00:00:00 2001 From: Ryan Hill Date: Thu, 14 Dec 2023 13:16:13 -0600 Subject: [PATCH 1/2] display to top-level, compat py39 --- .../display_utils.py => _display.py} | 0 qbraid/_qdevice.py | 14 +++++----- qbraid/_qprogram.py | 26 +++++++------------ qbraid/get_devices.py | 2 +- qbraid/get_jobs.py | 4 +-- setup.cfg | 3 ++- tests/top_level/test_top_level.py | 2 +- 7 files changed, 22 insertions(+), 29 deletions(-) rename qbraid/{visualization/display_utils.py => _display.py} (100%) diff --git a/qbraid/visualization/display_utils.py b/qbraid/_display.py similarity index 100% rename from qbraid/visualization/display_utils.py rename to qbraid/_display.py diff --git a/qbraid/_qdevice.py b/qbraid/_qdevice.py index 3af2790f..123ad71a 100644 --- a/qbraid/_qdevice.py +++ b/qbraid/_qdevice.py @@ -43,14 +43,12 @@ def __dynamic_importer(opt_modules: List[str]) -> list: def __get_class(module: str): - match module: - # pylint: disable=undefined-variable - case "qiskit_ibm_provider": - return qiskit_ibm_provider.IBMBackend # type: ignore - case "braket.aws": - return braket.aws.AwsDevice # type: ignore - case _: - pass + # pylint: disable=undefined-variable + module_to_class_map = { + "qiskit_ibm_provider": qiskit_ibm_provider.IBMBackend, # type: ignore + "braket.aws": braket.aws.AwsDevice, # type: ignore + } + return module_to_class_map.get(module) # Returns None if module not found # Supported quantum devices. diff --git a/qbraid/_qprogram.py b/qbraid/_qprogram.py index 3735eb76..4b8da18e 100644 --- a/qbraid/_qprogram.py +++ b/qbraid/_qprogram.py @@ -47,22 +47,16 @@ def __dynamic_importer(opt_modules: List[str]) -> list: def __get_class(module: str): - match module: - # pylint: disable=undefined-variable - case "cirq": - return cirq.Circuit # type: ignore - case "qiskit": - return qiskit.QuantumCircuit # type: ignore - case "braket.circuits": - return braket.circuits.Circuit # type: ignore - case "pyquil": - return pyquil.Program # type: ignore - case "pytket": - return pytket._tket.circuit.Circuit # type: ignore - case "openqasm3": - return openqasm3.ast.Program # type: ignore - case _: - pass + # pylint: disable=undefined-variable + module_to_class_map = { + "cirq": cirq.Circuit, # type: ignore + "qiskit": qiskit.QuantumCircuit, # type: ignore + "braket.circuits": braket.circuits.Circuit, # type: ignore + "pyquil": pyquil.Program, # type: ignore + "pytket": pytket._tket.circuit.Circuit, # type: ignore + "openqasm3": openqasm3.ast.Program, # type: ignore + } + return module_to_class_map.get(module) # Returns None if module not found # Supported quantum programs. diff --git a/qbraid/get_devices.py b/qbraid/get_devices.py index 5e144770..c5775d54 100644 --- a/qbraid/get_devices.py +++ b/qbraid/get_devices.py @@ -24,9 +24,9 @@ except ImportError: pass +from qbraid._display import running_in_jupyter, update_progress_bar from qbraid.api import ApiError, QbraidSession from qbraid.load_provider import device_wrapper -from qbraid.visualization.display_utils import running_in_jupyter, update_progress_bar def refresh_devices(): diff --git a/qbraid/get_jobs.py b/qbraid/get_jobs.py index 3d1d87d5..a6bde80f 100644 --- a/qbraid/get_jobs.py +++ b/qbraid/get_jobs.py @@ -24,9 +24,9 @@ except ImportError: pass +from ._display import running_in_jupyter, update_progress_bar from .api import QbraidSession from .load_provider import job_wrapper -from .visualization.display_utils import running_in_jupyter, update_progress_bar def _display_jobs_basic(data, msg): @@ -141,7 +141,7 @@ def get_jobs(filters: Optional[dict] = None, refresh: bool = False): if refresh and not QuantumJob.status_final(status): try: qbraid_job = job_wrapper(job_id) - status_obj = qbraid_job.status() + status_obj = qbraid_job.status() # TODO: surpress warnings here status = status_obj.name except Exception: # pylint: disable=broad-except pass diff --git a/setup.cfg b/setup.cfg index c86771c0..a7abb2f5 100644 --- a/setup.cfg +++ b/setup.cfg @@ -19,6 +19,7 @@ classifiers = Intended Audience :: Science/Research Natural Language :: English Programming Language :: Python + Programming Language :: Python :: 3.9 Programming Language :: Python :: 3.10 Programming Language :: Python :: 3.11 Topic :: Scientific/Engineering @@ -26,7 +27,7 @@ classifiers = [options] packages = find: -python_requires = >=3.10 +python_requires = >=3.9 install_requires = networkx>=2.5,<4.0 diff --git a/tests/top_level/test_top_level.py b/tests/top_level/test_top_level.py index b5f3685d..44cd3886 100644 --- a/tests/top_level/test_top_level.py +++ b/tests/top_level/test_top_level.py @@ -19,11 +19,11 @@ import pytest from qbraid import __version__ +from qbraid._display import running_in_jupyter, update_progress_bar from qbraid._warnings import _warn_new_version from qbraid.exceptions import PackageValueError from qbraid.get_devices import get_devices from qbraid.get_jobs import _display_jobs_jupyter, get_jobs -from qbraid.visualization.display_utils import running_in_jupyter, update_progress_bar # pylint: disable=missing-function-docstring,redefined-outer-name From d2461ad34310d50320b44c8b796fde2cb896d210 Mon Sep 17 00:00:00 2001 From: Ryan Hill Date: Thu, 14 Dec 2023 15:01:12 -0600 Subject: [PATCH 2/2] get class change to conditionals --- qbraid/_qdevice.py | 11 +++++------ qbraid/_qprogram.py | 23 +++++++++++++---------- qbraid/get_devices.py | 6 +++--- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/qbraid/_qdevice.py b/qbraid/_qdevice.py index 123ad71a..ecd63be9 100644 --- a/qbraid/_qdevice.py +++ b/qbraid/_qdevice.py @@ -42,13 +42,12 @@ def __dynamic_importer(opt_modules: List[str]) -> list: return imported +# pylint: disable=undefined-variable,inconsistent-return-statements def __get_class(module: str): - # pylint: disable=undefined-variable - module_to_class_map = { - "qiskit_ibm_provider": qiskit_ibm_provider.IBMBackend, # type: ignore - "braket.aws": braket.aws.AwsDevice, # type: ignore - } - return module_to_class_map.get(module) # Returns None if module not found + if module == "qiskit_ibm_provider": + return qiskit_ibm_provider.IBMBackend # type: ignore + if module == "braket.aws": + return braket.aws.AwsDevice # type: ignore # Supported quantum devices. diff --git a/qbraid/_qprogram.py b/qbraid/_qprogram.py index 4b8da18e..59e4a250 100644 --- a/qbraid/_qprogram.py +++ b/qbraid/_qprogram.py @@ -46,17 +46,20 @@ def __dynamic_importer(opt_modules: List[str]) -> list: return imported +# pylint: disable=undefined-variable,inconsistent-return-statements def __get_class(module: str): - # pylint: disable=undefined-variable - module_to_class_map = { - "cirq": cirq.Circuit, # type: ignore - "qiskit": qiskit.QuantumCircuit, # type: ignore - "braket.circuits": braket.circuits.Circuit, # type: ignore - "pyquil": pyquil.Program, # type: ignore - "pytket": pytket._tket.circuit.Circuit, # type: ignore - "openqasm3": openqasm3.ast.Program, # type: ignore - } - return module_to_class_map.get(module) # Returns None if module not found + if module == "cirq": + return cirq.Circuit # type: ignore + if module == "qiskit": + return qiskit.QuantumCircuit # type: ignore + if module == "braket.circuits": + return braket.circuits.Circuit # type: ignore + if module == "pyquil": + return pyquil.Program # type: ignore + if module == "pytket": + return pytket._tket.circuit.Circuit # type: ignore + if module == "openqasm3": + return openqasm3.ast.Program # type: ignore # Supported quantum programs. diff --git a/qbraid/get_devices.py b/qbraid/get_devices.py index c5775d54..46dc0472 100644 --- a/qbraid/get_devices.py +++ b/qbraid/get_devices.py @@ -24,9 +24,9 @@ except ImportError: pass -from qbraid._display import running_in_jupyter, update_progress_bar -from qbraid.api import ApiError, QbraidSession -from qbraid.load_provider import device_wrapper +from ._display import running_in_jupyter, update_progress_bar +from .api import ApiError, QbraidSession +from .load_provider import device_wrapper def refresh_devices():