Skip to content

Commit c708666

Browse files
authored
Make CircuitOp.fromjson more efficient (quantumlib#5527)
Call the circuitop constructor with all the fields, rather than using `with...` for each field and repeating a potentially expensive validation at each step. @95-martin-orion Fixes quantumlib#5516
1 parent e2abe4f commit c708666

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

cirq/circuits/circuit_operation.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -474,13 +474,16 @@ def _from_json_dict_(
474474
repeat_until=None,
475475
**kwargs,
476476
):
477-
return (
478-
cls(circuit, use_repetition_ids=use_repetition_ids, repeat_until=repeat_until)
479-
.with_qubit_mapping(dict(qubit_map))
480-
.with_measurement_key_mapping(measurement_key_map)
481-
.with_params(param_resolver)
482-
.with_key_path(tuple(parent_path))
483-
.repeat(repetitions, repetition_ids)
477+
return cls(
478+
circuit=circuit,
479+
repetitions=repetitions,
480+
repetition_ids=repetition_ids,
481+
use_repetition_ids=use_repetition_ids,
482+
repeat_until=repeat_until,
483+
param_resolver=param_resolver,
484+
qubit_map=dict(qubit_map),
485+
measurement_key_map=measurement_key_map,
486+
parent_path=tuple(parent_path),
484487
)
485488

486489
# Methods for constructing a similar object with one field modified.

0 commit comments

Comments
 (0)