cirq.quirk_json_to_circuit

cirq.quirk_json_to_circuit(data: dict, *, qubits: Optional[Sequence[cirq.Qid]] = None, extra_cell_makers: Union[Dict[str, cirq.Gate], Iterable[cirq.interop.quirk.cells.CellMaker]] = (), quirk_url: Optional[str] = None, max_operation_count: int = 1000000)cirq.Circuit[source]

Constructs a Cirq circuit from Quirk’s JSON format.

Parameters
  • data – Data parsed from quirk’s JSON representation.

  • qubits – Qubits to use in the circuit. See quirk_url_to_circuit.

  • extra_cell_makers – Non-standard Quirk cells to accept. See quirk_url_to_circuit.

  • quirk_url – If given, the original URL from which the JSON was parsed, as described in quirk_url_to_circuit.

  • max_operation_count – If the number of operations in the circuit would exceed this value, the method raises a ValueError instead of attempting to construct the circuit. This is important to specify for servers parsing unknown input, because Quirk’s format allows for a billion laughs attack in the form of nested custom gates.

Examples

>>> print(cirq.quirk_json_to_circuit(
...     {"cols":[["H"], ["•", "X"]]}
... ))
0: ───H───@───

1: ───────X───
Returns

The parsed circuit.

Raises

ValueError – Invalid circuit URL, or circuit would be larger than max_operations_count.