Skip to content

Commit b8fcee9

Browse files
authored
fix: fixes flakiness in bloq->qref conversion (#1664)
This should fix: #1657 . From what I could say from running it locally, I stopped getting the intermittent failures in Bloq -> QREF conversion. But you know how it is with flaky tests – in case it re-occurs, please ping me!
1 parent a426b33 commit b8fcee9

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

qualtran/qref_interop/_bloq_to_qref.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,9 @@ def _routine_with_decomposition(
192192
"""
193193
# CompositeBloq → recurse
194194
if isinstance(obj, CompositeBloq):
195-
children = [_routine_with_decomposition(i, preserve) for i in obj.bloq_instances]
195+
# Since bloq_instances is a set, we sort them to get a deterministic result
196+
bloq_instances = sorted(list(obj.bloq_instances), key=lambda inst: inst.i)
197+
children = [_routine_with_decomposition(inst, preserve) for inst in bloq_instances]
196198
connections = [_import_connection(c) for c in obj.connections]
197199
return RoutineV1(
198200
**_extract_common_bloq_attributes(obj, name), children=children, connections=connections
@@ -241,9 +243,11 @@ def _composite_bloq_to_routine(bloq: CompositeBloq, name: Optional[str] = None)
241243
See `import_from_qualtran` for more info.
242244
"""
243245
connections = [_import_connection(c) for c in bloq.connections]
246+
# Since bloq_instances is a set, we sort them to get a deterministic result
247+
bloq_instances = sorted(list(bloq.bloq_instances), key=lambda obj: obj.i)
244248
return RoutineV1(
245249
**_extract_common_bloq_attributes(bloq, name),
246-
children=[bloq_to_routine(instance) for instance in bloq.bloq_instances],
250+
children=[bloq_to_routine(instance) for instance in bloq_instances],
247251
connections=connections,
248252
)
249253

0 commit comments

Comments
 (0)