From 6eb5dc0bbaf9bb7e95d34740c4ac6c806e802a2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elena=20Pe=C3=B1a=20Tapia?= Date: Thu, 18 Jul 2024 14:11:34 +0200 Subject: [PATCH] Address cyclic import issues. Reorder imports alphabetically when relevant. --- qiskit/compiler/scheduler.py | 2 +- qiskit/transpiler/__init__.py | 2 +- qiskit/transpiler/instruction_durations.py | 6 ++-- .../passes/basis/translate_parameterized.py | 8 ++--- .../passes/calibration/rx_builder.py | 6 ++-- .../passes/layout/sabre_pre_layout.py | 5 ++- qiskit/transpiler/passes/layout/set_layout.py | 4 +-- .../commuting_2q_gate_router.py | 5 +-- .../swap_strategy.py | 2 +- .../passes/routing/layout_transformation.py | 3 +- .../passes/routing/star_prerouting.py | 4 +-- qiskit/transpiler/passes/scheduling/alap.py | 3 +- .../scheduling/alignments/check_durations.py | 2 +- .../alignments/pulse_gate_validation.py | 2 +- .../scheduling/alignments/reschedule.py | 2 +- qiskit/transpiler/passes/scheduling/asap.py | 3 +- .../passes/scheduling/base_scheduler.py | 8 ++--- .../passes/scheduling/dynamical_decoupling.py | 4 +-- .../padding/dynamical_decoupling.py | 2 +- .../scheduling/scheduling/base_scheduler.py | 8 ++--- .../passes/synthesis/unitary_synthesis.py | 35 ++++++++++--------- .../utils/convert_conditions_to_if_ops.py | 2 +- .../generate_preset_pass_manager.py | 9 ++--- tools/pgo_scripts/test_utility_scale.py | 5 ++- 24 files changed, 64 insertions(+), 68 deletions(-) diff --git a/qiskit/compiler/scheduler.py b/qiskit/compiler/scheduler.py index f141902b7062..e75e9a388f04 100644 --- a/qiskit/compiler/scheduler.py +++ b/qiskit/compiler/scheduler.py @@ -23,7 +23,7 @@ from qiskit.exceptions import QiskitError from qiskit.pulse import InstructionScheduleMap, Schedule from qiskit.providers.backend import Backend -from qiskit.scheduler import ScheduleConfig +from qiskit.scheduler.config import ScheduleConfig from qiskit.scheduler.schedule_circuit import schedule_circuit from qiskit.utils.parallel import parallel_map diff --git a/qiskit/transpiler/__init__.py b/qiskit/transpiler/__init__.py index cd7dd8490685..9ea0707272b8 100644 --- a/qiskit/transpiler/__init__.py +++ b/qiskit/transpiler/__init__.py @@ -1277,7 +1277,7 @@ from .coupling import CouplingMap from .layout import Layout, TranspileLayout from .instruction_durations import InstructionDurations +from .preset_passmanagers import generate_preset_pass_manager from .target import Target from .target import InstructionProperties from .target import QubitProperties -from .preset_passmanagers import generate_preset_pass_manager diff --git a/qiskit/transpiler/instruction_durations.py b/qiskit/transpiler/instruction_durations.py index a34b7e787f32..561f098dcae1 100644 --- a/qiskit/transpiler/instruction_durations.py +++ b/qiskit/transpiler/instruction_durations.py @@ -14,9 +14,7 @@ from __future__ import annotations from typing import Optional, List, Tuple, Union, Iterable -import qiskit.circuit -from qiskit.circuit import Barrier, Delay -from qiskit.circuit import Instruction, ParameterExpression +from qiskit.circuit import Barrier, Delay, Instruction, ParameterExpression from qiskit.circuit.duration import duration_in_dt from qiskit.providers import Backend from qiskit.transpiler.exceptions import TranspilerError @@ -164,7 +162,7 @@ def update(self, inst_durations: "InstructionDurationsType" | None, dt: float = def get( self, - inst: str | qiskit.circuit.Instruction, + inst: str | Instruction, qubits: int | list[int], unit: str = "dt", parameters: list[float] | None = None, diff --git a/qiskit/transpiler/passes/basis/translate_parameterized.py b/qiskit/transpiler/passes/basis/translate_parameterized.py index 9629132866dd..fd9699916f16 100644 --- a/qiskit/transpiler/passes/basis/translate_parameterized.py +++ b/qiskit/transpiler/passes/basis/translate_parameterized.py @@ -15,15 +15,13 @@ from __future__ import annotations from qiskit.circuit import Instruction, ParameterExpression, Qubit, Clbit +from qiskit.circuit.equivalence_library import EquivalenceLibrary from qiskit.converters import circuit_to_dag from qiskit.dagcircuit import DAGCircuit, DAGOpNode -from qiskit.circuit.equivalence_library import EquivalenceLibrary from qiskit.exceptions import QiskitError -from qiskit.transpiler import Target - from qiskit.transpiler.basepasses import TransformationPass - -from .basis_translator import BasisTranslator +from qiskit.transpiler.passes.basis.basis_translator import BasisTranslator +from qiskit.transpiler.target import Target class TranslateParameterizedGates(TransformationPass): diff --git a/qiskit/transpiler/passes/calibration/rx_builder.py b/qiskit/transpiler/passes/calibration/rx_builder.py index 7cf9c8a1b633..45789e4cd109 100644 --- a/qiskit/transpiler/passes/calibration/rx_builder.py +++ b/qiskit/transpiler/passes/calibration/rx_builder.py @@ -17,13 +17,13 @@ import numpy as np from qiskit.circuit import Instruction +from qiskit.circuit.library.standard_gates import RXGate +from qiskit.exceptions import QiskitError from qiskit.pulse import Schedule, ScheduleBlock, builder, ScalableSymbolicPulse from qiskit.pulse.channels import Channel from qiskit.pulse.library.symbolic_pulses import Drag from qiskit.transpiler.passes.calibration.base_builder import CalibrationBuilder -from qiskit.transpiler import Target -from qiskit.circuit.library.standard_gates import RXGate -from qiskit.exceptions import QiskitError +from qiskit.transpiler.target import Target class RXCalibrationBuilder(CalibrationBuilder): diff --git a/qiskit/transpiler/passes/layout/sabre_pre_layout.py b/qiskit/transpiler/passes/layout/sabre_pre_layout.py index 9e68fd77b019..4a7ea35e3f2a 100644 --- a/qiskit/transpiler/passes/layout/sabre_pre_layout.py +++ b/qiskit/transpiler/passes/layout/sabre_pre_layout.py @@ -14,8 +14,11 @@ import itertools -from qiskit.transpiler import CouplingMap, Target, AnalysisPass, TranspilerError +from qiskit.transpiler.basepasses import AnalysisPass +from qiskit.transpiler.coupling import CouplingMap +from qiskit.transpiler.exceptions import TranspilerError from qiskit.transpiler.passes.layout.vf2_layout import VF2Layout +from qiskit.transpiler.target import Target from qiskit._accelerate.error_map import ErrorMap diff --git a/qiskit/transpiler/passes/layout/set_layout.py b/qiskit/transpiler/passes/layout/set_layout.py index c4e5faa91fb5..2dd717085ff3 100644 --- a/qiskit/transpiler/passes/layout/set_layout.py +++ b/qiskit/transpiler/passes/layout/set_layout.py @@ -11,9 +11,9 @@ # that they have been altered from the originals. """Set the ``layout`` property to the given layout.""" -from qiskit.transpiler import Layout -from qiskit.transpiler.exceptions import InvalidLayoutError from qiskit.transpiler.basepasses import AnalysisPass +from qiskit.transpiler.exceptions import InvalidLayoutError +from qiskit.transpiler.layout import Layout class SetLayout(AnalysisPass): diff --git a/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py b/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py index 501400f70ced..ce47981ad2a6 100644 --- a/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py +++ b/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/commuting_2q_gate_router.py @@ -17,8 +17,9 @@ from qiskit.circuit import Gate, QuantumCircuit, Qubit from qiskit.converters import circuit_to_dag from qiskit.dagcircuit import DAGCircuit, DAGOpNode -from qiskit.transpiler import TransformationPass, Layout, TranspilerError - +from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.layout import Layout from qiskit.transpiler.passes.routing.commuting_2q_gate_routing.swap_strategy import SwapStrategy from qiskit.transpiler.passes.routing.commuting_2q_gate_routing.commuting_2q_block import ( Commuting2qBlock, diff --git a/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py b/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py index 72b62dc49a81..825c298dd304 100644 --- a/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py +++ b/qiskit/transpiler/passes/routing/commuting_2q_gate_routing/swap_strategy.py @@ -17,7 +17,7 @@ import numpy as np from qiskit.exceptions import QiskitError -from qiskit.transpiler import CouplingMap +from qiskit.transpiler.coupling import CouplingMap class SwapStrategy: diff --git a/qiskit/transpiler/passes/routing/layout_transformation.py b/qiskit/transpiler/passes/routing/layout_transformation.py index 42bf44e13f2a..01be9a3c1261 100644 --- a/qiskit/transpiler/passes/routing/layout_transformation.py +++ b/qiskit/transpiler/passes/routing/layout_transformation.py @@ -15,9 +15,10 @@ import numpy as np -from qiskit.transpiler import Layout, CouplingMap from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.coupling import CouplingMap from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.layout import Layout from qiskit.transpiler.passes.routing.algorithms import ApproximateTokenSwapper from qiskit.transpiler.target import Target diff --git a/qiskit/transpiler/passes/routing/star_prerouting.py b/qiskit/transpiler/passes/routing/star_prerouting.py index 3679e8bfb8e3..c00cee74de4b 100644 --- a/qiskit/transpiler/passes/routing/star_prerouting.py +++ b/qiskit/transpiler/passes/routing/star_prerouting.py @@ -15,10 +15,10 @@ from math import floor, log10 from qiskit.circuit import Barrier +from qiskit.circuit.library import SwapGate from qiskit.dagcircuit import DAGOpNode, DAGDepNode, DAGDependency, DAGCircuit -from qiskit.transpiler import Layout from qiskit.transpiler.basepasses import TransformationPass -from qiskit.circuit.library import SwapGate +from qiskit.transpiler.layout import Layout class StarBlock: diff --git a/qiskit/transpiler/passes/scheduling/alap.py b/qiskit/transpiler/passes/scheduling/alap.py index ee2c9160c197..10ae623c4659 100644 --- a/qiskit/transpiler/passes/scheduling/alap.py +++ b/qiskit/transpiler/passes/scheduling/alap.py @@ -15,10 +15,9 @@ from qiskit.circuit import Delay, Qubit, Measure from qiskit.dagcircuit import DAGCircuit from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.passes.scheduling.base_scheduler import BaseSchedulerTransform from qiskit.utils.deprecation import deprecate_func -from .base_scheduler import BaseSchedulerTransform - class ALAPSchedule(BaseSchedulerTransform): """ALAP Scheduling pass, which schedules the **stop** time of instructions as late as possible. diff --git a/qiskit/transpiler/passes/scheduling/alignments/check_durations.py b/qiskit/transpiler/passes/scheduling/alignments/check_durations.py index 5c4e2b331eb8..46fdb1f5160b 100644 --- a/qiskit/transpiler/passes/scheduling/alignments/check_durations.py +++ b/qiskit/transpiler/passes/scheduling/alignments/check_durations.py @@ -14,7 +14,7 @@ from qiskit.circuit.delay import Delay from qiskit.dagcircuit import DAGCircuit from qiskit.transpiler.basepasses import AnalysisPass -from qiskit.transpiler import Target +from qiskit.transpiler.target import Target class InstructionDurationCheck(AnalysisPass): diff --git a/qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py b/qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py index a4c23a645e17..955f712214a3 100644 --- a/qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py +++ b/qiskit/transpiler/passes/scheduling/alignments/pulse_gate_validation.py @@ -16,7 +16,7 @@ from qiskit.pulse import Play from qiskit.transpiler.basepasses import AnalysisPass from qiskit.transpiler.exceptions import TranspilerError -from qiskit.transpiler import Target +from qiskit.transpiler.target import Target class ValidatePulseGates(AnalysisPass): diff --git a/qiskit/transpiler/passes/scheduling/alignments/reschedule.py b/qiskit/transpiler/passes/scheduling/alignments/reschedule.py index 5cab7028745b..416a92e10390 100644 --- a/qiskit/transpiler/passes/scheduling/alignments/reschedule.py +++ b/qiskit/transpiler/passes/scheduling/alignments/reschedule.py @@ -21,7 +21,7 @@ from qiskit.dagcircuit import DAGCircuit, DAGOpNode, DAGOutNode from qiskit.transpiler.basepasses import AnalysisPass from qiskit.transpiler.exceptions import TranspilerError -from qiskit.transpiler import Target +from qiskit.transpiler.target import Target class ConstrainedReschedule(AnalysisPass): diff --git a/qiskit/transpiler/passes/scheduling/asap.py b/qiskit/transpiler/passes/scheduling/asap.py index 0ea56bb67468..b1e559718143 100644 --- a/qiskit/transpiler/passes/scheduling/asap.py +++ b/qiskit/transpiler/passes/scheduling/asap.py @@ -15,10 +15,9 @@ from qiskit.circuit import Delay, Qubit, Measure from qiskit.dagcircuit import DAGCircuit from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.passes.scheduling.base_scheduler import BaseSchedulerTransform from qiskit.utils.deprecation import deprecate_func -from .base_scheduler import BaseSchedulerTransform - class ASAPSchedule(BaseSchedulerTransform): """ASAP Scheduling pass, which schedules the start time of instructions as early as possible.. diff --git a/qiskit/transpiler/passes/scheduling/base_scheduler.py b/qiskit/transpiler/passes/scheduling/base_scheduler.py index e9076c5c637b..fe6d0e16cb76 100644 --- a/qiskit/transpiler/passes/scheduling/base_scheduler.py +++ b/qiskit/transpiler/passes/scheduling/base_scheduler.py @@ -13,13 +13,13 @@ """Base circuit scheduling pass.""" import warnings -from qiskit.transpiler import InstructionDurations -from qiskit.transpiler.basepasses import TransformationPass -from qiskit.transpiler.passes.scheduling.time_unit_conversion import TimeUnitConversion -from qiskit.dagcircuit import DAGOpNode, DAGCircuit, DAGOutNode from qiskit.circuit import Delay, Gate, Measure, Reset from qiskit.circuit.parameterexpression import ParameterExpression +from qiskit.dagcircuit import DAGOpNode, DAGCircuit, DAGOutNode +from qiskit.transpiler.basepasses import TransformationPass from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.instruction_durations import InstructionDurations +from qiskit.transpiler.passes.scheduling.time_unit_conversion import TimeUnitConversion from qiskit.transpiler.target import Target diff --git a/qiskit/transpiler/passes/scheduling/dynamical_decoupling.py b/qiskit/transpiler/passes/scheduling/dynamical_decoupling.py index 7be0e838ebff..a4695c24439c 100644 --- a/qiskit/transpiler/passes/scheduling/dynamical_decoupling.py +++ b/qiskit/transpiler/passes/scheduling/dynamical_decoupling.py @@ -20,10 +20,10 @@ from qiskit.dagcircuit import DAGOpNode, DAGInNode from qiskit.quantum_info.operators.predicates import matrix_equal from qiskit.synthesis.one_qubit import OneQubitEulerDecomposer -from qiskit.transpiler import InstructionDurations -from qiskit.transpiler.passes.optimization import Optimize1qGates from qiskit.transpiler.basepasses import TransformationPass from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.instruction_durations import InstructionDurations +from qiskit.transpiler.passes.optimization import Optimize1qGates from qiskit.utils.deprecation import deprecate_func diff --git a/qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py b/qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py index 45333de009bd..8c3ea87c8578 100644 --- a/qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py +++ b/qiskit/transpiler/passes/scheduling/padding/dynamical_decoupling.py @@ -26,9 +26,9 @@ from qiskit.transpiler.exceptions import TranspilerError from qiskit.transpiler.instruction_durations import InstructionDurations from qiskit.transpiler.passes.optimization import Optimize1qGates +from qiskit.transpiler.passes.scheduling.padding.base_padding import BasePadding from qiskit.transpiler.target import Target -from .base_padding import BasePadding logger = logging.getLogger(__name__) diff --git a/qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py b/qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py index 69bea32acca7..2c7c97ec856a 100644 --- a/qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py +++ b/qiskit/transpiler/passes/scheduling/scheduling/base_scheduler.py @@ -14,13 +14,13 @@ import warnings -from qiskit.transpiler import InstructionDurations -from qiskit.transpiler.basepasses import AnalysisPass -from qiskit.transpiler.passes.scheduling.time_unit_conversion import TimeUnitConversion -from qiskit.dagcircuit import DAGOpNode, DAGCircuit from qiskit.circuit import Delay, Gate from qiskit.circuit.parameterexpression import ParameterExpression +from qiskit.dagcircuit import DAGOpNode, DAGCircuit +from qiskit.transpiler.basepasses import AnalysisPass from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.instruction_durations import InstructionDurations +from qiskit.transpiler.passes.scheduling.time_unit_conversion import TimeUnitConversion from qiskit.transpiler.target import Target diff --git a/qiskit/transpiler/passes/synthesis/unitary_synthesis.py b/qiskit/transpiler/passes/synthesis/unitary_synthesis.py index ab7c5e04649f..a8152edb3926 100644 --- a/qiskit/transpiler/passes/synthesis/unitary_synthesis.py +++ b/qiskit/transpiler/passes/synthesis/unitary_synthesis.py @@ -28,21 +28,9 @@ from functools import partial import numpy as np -from qiskit.converters import circuit_to_dag, dag_to_circuit -from qiskit.transpiler import CouplingMap, Target -from qiskit.transpiler.basepasses import TransformationPass -from qiskit.transpiler.exceptions import TranspilerError -from qiskit.dagcircuit.dagcircuit import DAGCircuit, DAGOpNode -from qiskit.synthesis.one_qubit import one_qubit_decompose -from qiskit.transpiler.passes.optimization.optimize_1q_decomposition import _possible_decomposers -from qiskit.synthesis.two_qubit.xx_decompose import XXDecomposer, XXEmbodiments -from qiskit.synthesis.two_qubit.two_qubit_decompose import ( - TwoQubitBasisDecomposer, - TwoQubitWeylDecomposition, -) -from qiskit.quantum_info import Operator from qiskit.circuit.controlflow import CONTROL_FLOW_OP_NAMES from qiskit.circuit import Gate, Parameter +from qiskit.circuit.library.standard_gates import get_standard_gate_name_mapping from qiskit.circuit.library.standard_gates import ( iSwapGate, CXGate, @@ -62,13 +50,26 @@ RYGate, RGate, ) -from qiskit.transpiler.passes.synthesis import plugin +from qiskit.converters import circuit_to_dag, dag_to_circuit +from qiskit.dagcircuit.dagcircuit import DAGCircuit, DAGOpNode +from qiskit.exceptions import QiskitError +from qiskit.providers.models import BackendProperties +from qiskit.quantum_info import Operator +from qiskit.synthesis.one_qubit import one_qubit_decompose +from qiskit.synthesis.two_qubit.xx_decompose import XXDecomposer, XXEmbodiments +from qiskit.synthesis.two_qubit.two_qubit_decompose import ( + TwoQubitBasisDecomposer, + TwoQubitWeylDecomposition, +) +from qiskit.transpiler.basepasses import TransformationPass +from qiskit.transpiler.coupling import CouplingMap +from qiskit.transpiler.exceptions import TranspilerError from qiskit.transpiler.passes.optimization.optimize_1q_decomposition import ( Optimize1qGatesDecomposition, + _possible_decomposers, ) -from qiskit.providers.models import BackendProperties -from qiskit.circuit.library.standard_gates import get_standard_gate_name_mapping -from qiskit.exceptions import QiskitError +from qiskit.transpiler.passes.synthesis import plugin +from qiskit.transpiler.target import Target GATE_NAME_MAP = { diff --git a/qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py b/qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py index bf00aea87d40..46d91f7d6ce0 100644 --- a/qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py +++ b/qiskit/transpiler/passes/utils/convert_conditions_to_if_ops.py @@ -22,7 +22,7 @@ QuantumCircuit, ) from qiskit.dagcircuit import DAGCircuit -from qiskit.transpiler import TransformationPass +from qiskit.transpiler.basepasses import TransformationPass class ConvertConditionsToIfOps(TransformationPass): diff --git a/qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py b/qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py index 54f0cd9c3208..b8f342bd86be 100644 --- a/qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py +++ b/qiskit/transpiler/preset_passmanagers/generate_preset_pass_manager.py @@ -19,15 +19,12 @@ from qiskit.circuit.controlflow import CONTROL_FLOW_OP_NAMES from qiskit.circuit.library.standard_gates import get_standard_gate_name_mapping from qiskit.providers.backend_compat import BackendV2Converter - +from qiskit.transpiler.coupling import CouplingMap +from qiskit.transpiler.exceptions import TranspilerError from qiskit.transpiler.instruction_durations import InstructionDurations -from qiskit.transpiler.timing_constraints import TimingConstraints - from qiskit.transpiler.passmanager_config import PassManagerConfig from qiskit.transpiler.target import Target, target_to_backend_properties -from qiskit.transpiler import CouplingMap - -from qiskit.transpiler.exceptions import TranspilerError +from qiskit.transpiler.timing_constraints import TimingConstraints from .level0 import level_0_pass_manager from .level1 import level_1_pass_manager diff --git a/tools/pgo_scripts/test_utility_scale.py b/tools/pgo_scripts/test_utility_scale.py index 07ed72760979..0e9e94655692 100755 --- a/tools/pgo_scripts/test_utility_scale.py +++ b/tools/pgo_scripts/test_utility_scale.py @@ -15,11 +15,10 @@ """Script to generate 'utility scale' load for profiling in a PGO context""" import os - +from qiskit import qasm2 +from qiskit.providers.fake_provider import GenericBackendV2 from qiskit.transpiler import CouplingMap from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager -from qiskit.providers.fake_provider import GenericBackendV2 -from qiskit import qasm2 QASM_DIR = os.path.join( os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))),