Skip to content

Commit 4b6a714

Browse files
author
Rajib Chakravorty
authored
Merge pull request #30 from qctrl/lazy-loading
Lazy /Conditional loading of 3rd party Quantum libraries
2 parents be7d04b + 7699a44 commit 4b6a714

File tree

5 files changed

+19
-20
lines changed

5 files changed

+19
-20
lines changed

qctrlopencontrols/cirq/circuit.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@
2020

2121
import numpy as np
2222

23-
import cirq
24-
2523
from ..dynamic_decoupling_sequences.dynamic_decoupling_sequence import DynamicDecouplingSequence
2624
from ..exceptions.exceptions import ArgumentsValueError
2725
from ..globals import (FIX_DURATION_UNITARY, INSTANT_UNITARY)
2826

2927

30-
def convert_dds_to_cirq_circuit(
28+
def convert_dds_to_cirq_circuit( #pylint: disable=too-many-locals
3129
dynamic_decoupling_sequence,
3230
target_qubits=None,
3331
gate_time=0.1,
@@ -93,6 +91,8 @@ def convert_dds_to_cirq_circuit(
9391
any offset.
9492
"""
9593

94+
import cirq
95+
9696
if dynamic_decoupling_sequence is None:
9797
raise ArgumentsValueError('No dynamic decoupling sequence provided.',
9898
{'dynamic_decoupling_sequence': dynamic_decoupling_sequence})

qctrlopencontrols/cirq/schedule.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@
2020

2121
import numpy as np
2222

23-
import cirq
24-
2523
from ..dynamic_decoupling_sequences.dynamic_decoupling_sequence import DynamicDecouplingSequence
2624
from ..exceptions.exceptions import ArgumentsValueError
2725

2826

29-
def convert_dds_to_cirq_schedule(
27+
def convert_dds_to_cirq_schedule( #pylint: disable=too-many-locals
3028
dynamic_decoupling_sequence,
3129
target_qubits=None,
3230
gate_time=0.1,
@@ -87,6 +85,8 @@ def convert_dds_to_cirq_schedule(
8785
any offset.
8886
"""
8987

88+
import cirq
89+
9090
if dynamic_decoupling_sequence is None:
9191
raise ArgumentsValueError('No dynamic decoupling sequence provided.',
9292
{'dynamic_decoupling_sequence': dynamic_decoupling_sequence})
@@ -146,8 +146,8 @@ def convert_dds_to_cirq_schedule(
146146
nonzero_pulse_counts = 3 - np.sum(zero_pulses)
147147
if nonzero_pulse_counts > 1:
148148
raise ArgumentsValueError(
149-
'Open Controls support a sequence with one '
150-
'valid pulse at any offset. Found sequence '
149+
'Open Controls support a sequence with one'
150+
'valid pulse at any offset. Found sequence'
151151
'with multiple rotation operations at an offset.',
152152
{'dynamic_decoupling_sequence': str(dynamic_decoupling_sequence),
153153
'offset': dynamic_decoupling_sequence.offsets[op_idx],

qctrlopencontrols/pyquil/program.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,17 +20,13 @@
2020

2121
import numpy as np
2222

23-
from pyquil import Program
24-
from pyquil.gates import I, RX, RY, RZ, MEASURE
25-
from pyquil.quil import Pragma
26-
2723
from ..dynamic_decoupling_sequences.dynamic_decoupling_sequence import DynamicDecouplingSequence
2824
from ..exceptions.exceptions import ArgumentsValueError
2925
from ..globals import (
3026
FIX_DURATION_UNITARY, INSTANT_UNITARY)
3127

3228

33-
def convert_dds_to_pyquil_program(
29+
def convert_dds_to_pyquil_program( #pylint: disable=too-many-locals
3430
dynamic_decoupling_sequence,
3531
target_qubits=None,
3632
gate_time=0.1,
@@ -93,6 +89,10 @@ def convert_dds_to_pyquil_program(
9389
any offset.
9490
"""
9591

92+
from pyquil import Program
93+
from pyquil.gates import I, RX, RY, RZ, MEASURE
94+
from pyquil.quil import Pragma
95+
9696
if dynamic_decoupling_sequence is None:
9797
raise ArgumentsValueError('No dynamic decoupling sequence provided.',
9898
{'dynamic_decoupling_sequence': dynamic_decoupling_sequence})

qctrlopencontrols/qiskit/quantum_circuit.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,9 @@
2020

2121
import numpy as np
2222

23-
from qiskit import (
24-
QuantumRegister, ClassicalRegister, QuantumCircuit)
25-
from qiskit.qasm import pi
26-
23+
from ..globals import (FIX_DURATION_UNITARY, INSTANT_UNITARY)
2724
from ..dynamic_decoupling_sequences.dynamic_decoupling_sequence import DynamicDecouplingSequence
2825
from ..exceptions.exceptions import ArgumentsValueError
29-
from ..globals import (FIX_DURATION_UNITARY, INSTANT_UNITARY)
3026

3127

3228
def convert_dds_to_qiskit_quantum_circuit(
@@ -97,6 +93,10 @@ def convert_dds_to_qiskit_quantum_circuit(
9793
any offset.
9894
"""
9995

96+
from qiskit import (
97+
QuantumRegister, ClassicalRegister, QuantumCircuit)
98+
from qiskit.qasm import pi
99+
100100
if dynamic_decoupling_sequence is None:
101101
raise ArgumentsValueError('No dynamic decoupling sequence provided.',
102102
{'dynamic_decoupling_sequence': dynamic_decoupling_sequence})

tests/test_qiskit_sequence.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
"""
1616
===================================
17-
Tests converstion to Qiskit Circuit
17+
Tests conversion to Qiskit Circuit
1818
===================================
1919
"""
2020

@@ -127,6 +127,5 @@ def test_identity_operation():
127127
_check_circuit_unitary(True, _multiplier, 'fixed duration unitary')
128128

129129

130-
131130
if __name__ == '__main__':
132131
pass

0 commit comments

Comments
 (0)