Skip to content

Commit b8ff0f0

Browse files
committed
Changes required to please mypy with new SoquetT
1 parent 8496830 commit b8ff0f0

File tree

7 files changed

+16
-23
lines changed

7 files changed

+16
-23
lines changed

qualtran/bloqs/basic_gates/rotation.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,7 @@ def signature(self) -> 'Signature':
220220
def build_composite_bloq(self, bb: 'BloqBuilder', q: 'SoquetT') -> Dict[str, 'SoquetT']:
221221
from qualtran.bloqs.mcmt import And
222222

223-
q1, q2 = q # type: ignore
224-
(q1, q2), anc = bb.add(And(), ctrl=[q1, q2])
223+
(q1, q2), anc = bb.add(And(), ctrl=q)
225224
anc = bb.add(ZPowGate(self.exponent, eps=self.eps), q=anc)
226225
(q1, q2) = bb.add(And().adjoint(), ctrl=[q1, q2], target=anc)
227226
return {'q': np.array([q1, q2])}

qualtran/bloqs/block_encoding/sparse_matrix.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,7 @@ def build_composite_bloq(
237237
if is_symbolic(self.system_bitsize) or is_symbolic(self.row_oracle.num_nonzero):
238238
raise DecomposeTypeError(f"Cannot decompose symbolic {self=}")
239239

240-
assert not isinstance(ancilla, np.ndarray)
241-
ancilla_bits = bb.split(ancilla)
240+
ancilla_bits = bb.split(ancilla.item())
242241
q, l = ancilla_bits[0], bb.join(ancilla_bits[1:])
243242

244243
l = bb.add(self.diffusion, target=l)

qualtran/bloqs/chemistry/pbc/first_quantization/select_and_prepare.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,11 +153,11 @@ def _reshape_reg(
153153
"""
154154
# np.prod(()) returns a float (1.0), so take int
155155
size = int(np.prod(out_shape))
156-
if isinstance(in_reg, np.ndarray):
156+
if BloqBuilder.is_ndarray(in_reg):
157157
# split an array of bitsize qubits into flat list of qubits
158158
split_qubits = bb.split(bb.join(np.concatenate([bb.split(x) for x in in_reg.ravel()])))
159159
else:
160-
split_qubits = bb.split(in_reg)
160+
split_qubits = bb.split(in_reg.item())
161161
merged_qubits = np.array(
162162
[bb.join(split_qubits[i * bitsize : (i + 1) * bitsize]) for i in range(size)]
163163
)

qualtran/bloqs/chemistry/trotter/grid_ham/potential.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
QAny,
2828
Register,
2929
Signature,
30-
Soquet,
3130
SoquetT,
3231
)
3332
from qualtran._infra.data_types import BQUInt
@@ -93,7 +92,7 @@ def wire_symbol(
9392
def build_composite_bloq(
9493
self, bb: BloqBuilder, *, system_i: SoquetT, system_j: SoquetT
9594
) -> Dict[str, SoquetT]:
96-
if isinstance(system_i, Soquet) or isinstance(system_j, Soquet):
95+
if not (BloqBuilder.is_ndarray(system_i) and BloqBuilder.is_ndarray(system_j)):
9796
raise ValueError("system_i and system_j must be numpy arrays of Soquet")
9897
# compute r_i - r_j
9998
# r_i + (-r_j), in practice we need to flip the sign bit, but this is just 3 cliffords.
@@ -227,7 +226,7 @@ def wire_symbol(
227226
return super().wire_symbol(reg, idx)
228227

229228
def build_composite_bloq(self, bb: BloqBuilder, *, system: SoquetT) -> Dict[str, SoquetT]:
230-
if isinstance(system, Soquet):
229+
if not BloqBuilder.is_ndarray(system):
231230
raise ValueError("system must be a numpy array of Soquet")
232231
bitsize = (self.num_grid - 1).bit_length() + 1
233232
ij_pairs = np.triu_indices(self.num_elec, k=1)

qualtran/bloqs/data_loading/qroam_clean.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -520,8 +520,8 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **soqs: 'SoquetT') -> Dict[str
520520
# Construct and return dictionary of final soquets.
521521
soqs |= {reg.name: soq for reg, soq in zip(self.control_registers, ctrl)}
522522
soqs |= {reg.name: soq for reg, soq in zip(self.selection_registers, selection)}
523-
soqs |= {reg.name: soq.flat[1:] for reg, soq in zip(self.junk_registers, qrom_targets)} # type: ignore[union-attr]
524-
soqs |= {reg.name: soq.flat[0] for reg, soq in zip(self.target_registers, qrom_targets)} # type: ignore[union-attr]
523+
soqs |= {reg.name: soq.flat[1:] for reg, soq in zip(self.junk_registers, qrom_targets)} # type: ignore[attr-defined]
524+
soqs |= {reg.name: soq.flat[0] for reg, soq in zip(self.target_registers, qrom_targets)} # type: ignore[attr-defined]
525525
return soqs
526526

527527
def on_classical_vals(

qualtran/bloqs/for_testing/with_decomposition.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,13 @@
1313
# limitations under the License.
1414

1515
from functools import cached_property
16-
from typing import Dict, TYPE_CHECKING
16+
from typing import Dict
1717

1818
from attrs import frozen
1919

20-
from qualtran import Bloq, BloqBuilder, Signature, Soquet
20+
from qualtran import Bloq, BloqBuilder, Signature, SoquetT
2121
from qualtran.bloqs.for_testing.atom import TestAtom
2222

23-
if TYPE_CHECKING:
24-
from qualtran import SoquetT
25-
2623

2724
@frozen
2825
class TestSerialCombo(Bloq):
@@ -47,7 +44,7 @@ def signature(self) -> Signature:
4744
return Signature.build(reg=3)
4845

4946
def build_composite_bloq(self, bb: 'BloqBuilder', reg: 'SoquetT') -> Dict[str, 'SoquetT']:
50-
assert isinstance(reg, Soquet)
47+
assert BloqBuilder.is_single(reg)
5148
reg = bb.split(reg)
5249
for i in range(len(reg)):
5350
reg[i] = bb.add(TestAtom(), q=reg[i])

qualtran/bloqs/hamiltonian_simulation/hamiltonian_simulation_by_gqsp.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from attrs import field, frozen
2020
from numpy.typing import NDArray
2121

22-
from qualtran import Bloq, bloq_example, BloqDocSpec, CtrlSpec, Signature, Soquet
22+
from qualtran import Bloq, bloq_example, BloqBuilder, BloqDocSpec, CtrlSpec, Signature, SoquetT
2323
from qualtran.bloqs.basic_gates.su2_rotation import SU2RotationGate
2424
from qualtran.bloqs.bookkeeping import Always
2525
from qualtran.bloqs.qsp.generalized_qsp import GeneralizedQSP
@@ -32,7 +32,6 @@
3232
from qualtran.symbolics import is_symbolic, Shaped, SymbolicFloat, SymbolicInt
3333

3434
if TYPE_CHECKING:
35-
from qualtran import BloqBuilder, SoquetT
3635
from qualtran.resource_counting import BloqCountDictT, SympySymbolAllocator
3736

3837

@@ -175,11 +174,11 @@ def build_composite_bloq(self, bb: 'BloqBuilder', **soqs: 'SoquetT') -> Dict[str
175174
soqs, state_prep_ancilla = self.__add_prepare(bb, soqs, state_prep_ancilla, adjoint=True)
176175

177176
for soq in state_prep_ancilla.values():
178-
if isinstance(soq, Soquet):
179-
bb.free(soq)
177+
if BloqBuilder.is_ndarray(soq):
178+
for soq_element in soq.reshape(-1):
179+
bb.free(soq_element.item())
180180
else:
181-
for soq_element in soq:
182-
bb.free(cast(Soquet, soq_element))
181+
bb.free(soq.item())
183182

184183
return soqs
185184

0 commit comments

Comments
 (0)