cirq-core 1.6.0.dev20250519175318__py3-none-any.whl → 1.6.0.dev20250519190234__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of cirq-core might be problematic. Click here for more details.

Files changed (207) hide show
  1. cirq/_version.py +1 -1
  2. cirq/_version_test.py +1 -1
  3. cirq/devices/grid_qubit_test.py +3 -0
  4. cirq/devices/insertion_noise_model_test.py +2 -0
  5. cirq/devices/line_qubit_test.py +2 -0
  6. cirq/devices/named_topologies_test.py +3 -0
  7. cirq/devices/noise_properties_test.py +2 -0
  8. cirq/devices/noise_utils_test.py +2 -0
  9. cirq/devices/superconducting_qubits_noise_properties_test.py +2 -0
  10. cirq/devices/thermal_noise_model_test.py +2 -0
  11. cirq/devices/unconstrained_device_test.py +2 -0
  12. cirq/experiments/benchmarking/parallel_xeb_test.py +2 -0
  13. cirq/experiments/fidelity_estimation_test.py +3 -0
  14. cirq/experiments/n_qubit_tomography_test.py +3 -0
  15. cirq/experiments/purity_estimation.py +2 -0
  16. cirq/experiments/purity_estimation_test.py +2 -0
  17. cirq/experiments/qubit_characterizations_test.py +2 -0
  18. cirq/experiments/readout_confusion_matrix_test.py +2 -0
  19. cirq/experiments/t1_decay_experiment_test.py +2 -0
  20. cirq/experiments/t2_decay_experiment_test.py +2 -0
  21. cirq/experiments/two_qubit_xeb_test.py +4 -0
  22. cirq/experiments/xeb_sampling_test.py +3 -0
  23. cirq/experiments/z_phase_calibration_test.py +2 -0
  24. cirq/interop/quirk/cells/all_cells.py +7 -2
  25. cirq/interop/quirk/cells/arithmetic_cells_test.py +3 -0
  26. cirq/interop/quirk/cells/cell_test.py +3 -0
  27. cirq/interop/quirk/cells/composite_cell_test.py +2 -0
  28. cirq/interop/quirk/cells/control_cells_test.py +2 -0
  29. cirq/interop/quirk/cells/frequency_space_cells_test.py +2 -0
  30. cirq/interop/quirk/cells/ignored_cells.py +3 -0
  31. cirq/interop/quirk/cells/ignored_cells_test.py +2 -0
  32. cirq/interop/quirk/cells/input_cells_test.py +2 -0
  33. cirq/interop/quirk/cells/input_rotation_cells_test.py +2 -0
  34. cirq/interop/quirk/cells/measurement_cells_test.py +2 -0
  35. cirq/interop/quirk/cells/parse.py +2 -0
  36. cirq/interop/quirk/cells/parse_test.py +2 -0
  37. cirq/interop/quirk/cells/qubit_permutation_cells_test.py +2 -0
  38. cirq/interop/quirk/cells/scalar_cells_test.py +2 -0
  39. cirq/interop/quirk/cells/single_qubit_rotation_cells_test.py +2 -0
  40. cirq/interop/quirk/cells/swap_cell_test.py +2 -0
  41. cirq/interop/quirk/cells/testing.py +2 -0
  42. cirq/interop/quirk/cells/testing_test.py +2 -0
  43. cirq/interop/quirk/cells/unsupported_cells.py +3 -0
  44. cirq/interop/quirk/cells/unsupported_cells_test.py +2 -0
  45. cirq/interop/quirk/url_to_circuit_test.py +3 -0
  46. cirq/linalg/combinators_test.py +3 -0
  47. cirq/linalg/decompositions_test.py +2 -0
  48. cirq/linalg/diagonalize.py +2 -0
  49. cirq/linalg/diagonalize_test.py +2 -0
  50. cirq/linalg/operator_spaces_test.py +2 -0
  51. cirq/linalg/predicates_test.py +2 -0
  52. cirq/linalg/tolerance_test.py +2 -0
  53. cirq/linalg/transformations.py +4 -1
  54. cirq/linalg/transformations_test.py +2 -0
  55. cirq/neutral_atoms/convert_to_neutral_atom_gates_test.py +2 -0
  56. cirq/neutral_atoms/neutral_atom_devices.py +2 -0
  57. cirq/ops/arithmetic_operation_test.py +2 -0
  58. cirq/ops/boolean_hamiltonian_test.py +3 -0
  59. cirq/ops/classically_controlled_operation_test.py +2 -0
  60. cirq/ops/common_channels_test.py +2 -0
  61. cirq/ops/common_gate_families.py +2 -0
  62. cirq/ops/common_gate_families_test.py +2 -0
  63. cirq/ops/common_gates_test.py +2 -0
  64. cirq/ops/control_values_test.py +2 -0
  65. cirq/ops/controlled_gate_test.py +4 -2
  66. cirq/ops/controlled_operation_test.py +4 -2
  67. cirq/ops/dense_pauli_string_test.py +3 -0
  68. cirq/ops/diagonal_gate_test.py +2 -0
  69. cirq/ops/eigen_gate_test.py +2 -0
  70. cirq/ops/fourier_transform_test.py +2 -0
  71. cirq/ops/fsim_gate_test.py +2 -0
  72. cirq/ops/gate_features.py +2 -0
  73. cirq/ops/gate_features_test.py +2 -0
  74. cirq/ops/gate_operation_test.py +3 -0
  75. cirq/ops/gateset_test.py +2 -0
  76. cirq/ops/global_phase_op_test.py +2 -0
  77. cirq/ops/greedy_qubit_manager_test.py +2 -0
  78. cirq/ops/identity_test.py +3 -0
  79. cirq/ops/kraus_channel_test.py +3 -0
  80. cirq/ops/linear_combinations_test.py +2 -0
  81. cirq/ops/matrix_gates_test.py +3 -0
  82. cirq/ops/measure_util_test.py +2 -0
  83. cirq/ops/measurement_gate_test.py +2 -0
  84. cirq/ops/mixed_unitary_channel_test.py +3 -0
  85. cirq/ops/named_qubit_test.py +2 -0
  86. cirq/ops/op_tree_test.py +3 -0
  87. cirq/ops/parallel_gate_test.py +2 -0
  88. cirq/ops/parity_gates_test.py +2 -0
  89. cirq/ops/pauli_gates_test.py +2 -0
  90. cirq/ops/pauli_interaction_gate_test.py +2 -0
  91. cirq/ops/pauli_measurement_gate_test.py +2 -0
  92. cirq/ops/pauli_string_phasor_test.py +2 -0
  93. cirq/ops/pauli_string_raw_types_test.py +2 -0
  94. cirq/ops/pauli_string_test.py +2 -0
  95. cirq/ops/pauli_sum_exponential_test.py +2 -0
  96. cirq/ops/permutation_gate_test.py +2 -0
  97. cirq/ops/phased_iswap_gate_test.py +2 -0
  98. cirq/ops/phased_x_gate_test.py +2 -0
  99. cirq/ops/phased_x_z_gate_test.py +3 -0
  100. cirq/ops/projector_test.py +3 -0
  101. cirq/ops/qid_util_test.py +2 -0
  102. cirq/ops/qubit_manager_test.py +2 -0
  103. cirq/ops/qubit_order.py +11 -13
  104. cirq/ops/qubit_order_or_list.py +2 -0
  105. cirq/ops/qubit_order_test.py +2 -0
  106. cirq/ops/random_gate_channel_test.py +3 -0
  107. cirq/ops/state_preparation_channel_test.py +2 -0
  108. cirq/ops/swap_gates_test.py +2 -0
  109. cirq/ops/tags.py +4 -0
  110. cirq/ops/tags_test.py +2 -0
  111. cirq/ops/three_qubit_gates_test.py +2 -0
  112. cirq/ops/two_qubit_diagonal_gate_test.py +2 -0
  113. cirq/ops/uniform_superposition_gate_test.py +2 -0
  114. cirq/ops/wait_gate_test.py +3 -0
  115. cirq/protocols/apply_channel_protocol.py +6 -4
  116. cirq/protocols/apply_channel_protocol_test.py +2 -0
  117. cirq/protocols/apply_mixture_protocol.py +6 -4
  118. cirq/protocols/apply_mixture_protocol_test.py +3 -0
  119. cirq/protocols/apply_unitary_protocol_test.py +2 -0
  120. cirq/protocols/approximate_equality_protocol.py +2 -0
  121. cirq/protocols/approximate_equality_protocol_test.py +2 -0
  122. cirq/protocols/circuit_diagram_info_protocol_test.py +3 -0
  123. cirq/protocols/commutes_protocol.py +3 -0
  124. cirq/protocols/commutes_protocol_test.py +2 -0
  125. cirq/protocols/control_key_protocol_test.py +2 -0
  126. cirq/protocols/equal_up_to_global_phase_protocol.py +2 -0
  127. cirq/protocols/equal_up_to_global_phase_protocol_test.py +3 -0
  128. cirq/protocols/has_stabilizer_effect_protocol.py +2 -0
  129. cirq/protocols/has_stabilizer_effect_protocol_test.py +2 -0
  130. cirq/protocols/has_unitary_protocol.py +2 -0
  131. cirq/protocols/has_unitary_protocol_test.py +2 -0
  132. cirq/protocols/inverse_protocol_test.py +3 -1
  133. cirq/protocols/json_serialization.py +3 -0
  134. cirq/protocols/json_serialization_test.py +2 -0
  135. cirq/protocols/json_test_data/spec.py +2 -0
  136. cirq/protocols/kraus_protocol.py +2 -0
  137. cirq/protocols/kraus_protocol_test.py +2 -0
  138. cirq/protocols/measurement_key_protocol_test.py +4 -1
  139. cirq/protocols/mixture_protocol.py +2 -0
  140. cirq/protocols/mixture_protocol_test.py +2 -0
  141. cirq/protocols/mul_protocol.py +2 -0
  142. cirq/protocols/mul_protocol_test.py +2 -0
  143. cirq/protocols/pauli_expansion_protocol.py +3 -0
  144. cirq/protocols/pauli_expansion_protocol_test.py +2 -0
  145. cirq/protocols/phase_protocol.py +2 -0
  146. cirq/protocols/phase_protocol_test.py +2 -0
  147. cirq/protocols/pow_protocol_test.py +2 -0
  148. cirq/protocols/qasm_test.py +3 -0
  149. cirq/protocols/qid_shape_protocol.py +2 -0
  150. cirq/protocols/qid_shape_protocol_test.py +2 -0
  151. cirq/protocols/resolve_parameters_test.py +3 -2
  152. cirq/protocols/trace_distance_bound.py +2 -0
  153. cirq/protocols/trace_distance_bound_test.py +2 -0
  154. cirq/protocols/unitary_protocol.py +2 -0
  155. cirq/protocols/unitary_protocol_test.py +3 -0
  156. cirq/qis/channels.py +6 -2
  157. cirq/qis/channels_test.py +4 -0
  158. cirq/qis/clifford_tableau_test.py +2 -0
  159. cirq/qis/entropy.py +2 -0
  160. cirq/qis/entropy_test.py +2 -0
  161. cirq/qis/measures_test.py +4 -0
  162. cirq/qis/noise_utils.py +2 -0
  163. cirq/qis/noise_utils_test.py +2 -0
  164. cirq/qis/states_test.py +2 -0
  165. cirq/sim/classical_simulator_test.py +2 -0
  166. cirq/sim/clifford/clifford_simulator_test.py +3 -0
  167. cirq/sim/clifford/clifford_tableau_simulation_state_test.py +2 -0
  168. cirq/sim/clifford/stabilizer_ch_form_simulation_state_test.py +2 -0
  169. cirq/sim/clifford/stabilizer_sampler_test.py +2 -0
  170. cirq/sim/clifford/stabilizer_simulation_state_test.py +2 -0
  171. cirq/sim/clifford/stabilizer_state_ch_form_test.py +2 -0
  172. cirq/sim/density_matrix_simulation_state_test.py +2 -0
  173. cirq/sim/density_matrix_simulator_test.py +3 -0
  174. cirq/sim/density_matrix_utils_test.py +2 -0
  175. cirq/sim/mux_test.py +3 -0
  176. cirq/sim/simulation_product_state_test.py +3 -0
  177. cirq/sim/simulation_state_test.py +2 -0
  178. cirq/sim/simulation_utils.py +2 -0
  179. cirq/sim/simulation_utils_test.py +3 -0
  180. cirq/sim/sparse_simulator_test.py +3 -0
  181. cirq/sim/state_vector_simulation_state_test.py +2 -0
  182. cirq/sim/state_vector_simulator_test.py +2 -0
  183. cirq/sim/state_vector_test.py +3 -0
  184. cirq/study/flatten_expressions_test.py +2 -0
  185. cirq/study/resolver_test.py +2 -0
  186. cirq/study/result_test.py +2 -0
  187. cirq/study/sweepable.py +5 -3
  188. cirq/study/sweepable_test.py +3 -0
  189. cirq/study/sweeps_test.py +3 -0
  190. cirq/testing/circuit_compare.py +2 -0
  191. cirq/testing/circuit_compare_test.py +2 -0
  192. cirq/testing/consistent_act_on.py +9 -3
  193. cirq/testing/consistent_act_on_test.py +2 -0
  194. cirq/testing/consistent_channels.py +2 -0
  195. cirq/testing/consistent_channels_test.py +2 -0
  196. cirq/testing/consistent_controlled_gate_op.py +2 -0
  197. cirq/testing/consistent_decomposition.py +2 -0
  198. cirq/testing/consistent_decomposition_test.py +2 -0
  199. cirq/testing/consistent_pauli_expansion.py +2 -0
  200. cirq/testing/consistent_pauli_expansion_test.py +2 -0
  201. cirq/testing/consistent_phase_by.py +2 -0
  202. cirq/testing/consistent_phase_by_test.py +2 -0
  203. {cirq_core-1.6.0.dev20250519175318.dist-info → cirq_core-1.6.0.dev20250519190234.dist-info}/METADATA +1 -1
  204. {cirq_core-1.6.0.dev20250519175318.dist-info → cirq_core-1.6.0.dev20250519190234.dist-info}/RECORD +207 -207
  205. {cirq_core-1.6.0.dev20250519175318.dist-info → cirq_core-1.6.0.dev20250519190234.dist-info}/WHEEL +0 -0
  206. {cirq_core-1.6.0.dev20250519175318.dist-info → cirq_core-1.6.0.dev20250519190234.dist-info}/licenses/LICENSE +0 -0
  207. {cirq_core-1.6.0.dev20250519175318.dist-info → cirq_core-1.6.0.dev20250519190234.dist-info}/top_level.txt +0 -0
@@ -14,6 +14,8 @@
14
14
 
15
15
  """A protocol for implementing high performance channel evolutions."""
16
16
 
17
+ from __future__ import annotations
18
+
17
19
  from types import NotImplementedType
18
20
  from typing import Any, Iterable, Optional, Sequence, Tuple, TypeVar, Union
19
21
 
@@ -273,7 +275,7 @@ def apply_channel(
273
275
  )
274
276
 
275
277
 
276
- def _apply_unitary(val: Any, args: 'ApplyChannelArgs') -> Optional[np.ndarray]:
278
+ def _apply_unitary(val: Any, args: ApplyChannelArgs) -> Optional[np.ndarray]:
277
279
  """Attempt to use `apply_unitary` and return the result.
278
280
 
279
281
  If `val` does not support `apply_unitary` returns None.
@@ -297,7 +299,7 @@ def _apply_unitary(val: Any, args: 'ApplyChannelArgs') -> Optional[np.ndarray]:
297
299
 
298
300
 
299
301
  def _apply_kraus(
300
- kraus: Union[Tuple[np.ndarray], Sequence[Any]], args: 'ApplyChannelArgs'
302
+ kraus: Union[Tuple[np.ndarray], Sequence[Any]], args: ApplyChannelArgs
301
303
  ) -> np.ndarray:
302
304
  """Directly apply the kraus operators to the target tensor."""
303
305
  # Initialize output.
@@ -313,7 +315,7 @@ def _apply_kraus(
313
315
 
314
316
 
315
317
  def _apply_kraus_single_qubit(
316
- kraus: Union[Tuple[Any], Sequence[Any]], args: 'ApplyChannelArgs'
318
+ kraus: Union[Tuple[Any], Sequence[Any]], args: ApplyChannelArgs
317
319
  ) -> np.ndarray:
318
320
  """Use slicing to apply single qubit channel. Only for two-level qubits."""
319
321
  zero_left = linalg.slice_for_qubits_equal_to(args.left_axes, 0)
@@ -338,7 +340,7 @@ def _apply_kraus_single_qubit(
338
340
 
339
341
 
340
342
  def _apply_kraus_multi_qubit(
341
- kraus: Union[Tuple[Any], Sequence[Any]], args: 'ApplyChannelArgs'
343
+ kraus: Union[Tuple[Any], Sequence[Any]], args: ApplyChannelArgs
342
344
  ) -> np.ndarray:
343
345
  """Use numpy's einsum to apply a multi-qubit channel."""
344
346
  qid_shape = tuple(args.target_tensor.shape[i] for i in args.left_axes)
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
 
@@ -14,6 +14,8 @@
14
14
 
15
15
  """A protocol for implementing high performance mixture evolutions."""
16
16
 
17
+ from __future__ import annotations
18
+
17
19
  from types import NotImplementedType
18
20
  from typing import Any, cast, Iterable, Optional, Tuple, TypeVar, Union
19
21
 
@@ -273,7 +275,7 @@ def apply_mixture(
273
275
  )
274
276
 
275
277
 
276
- def _validate_input(val: Any, args: 'ApplyMixtureArgs') -> Tuple[Any, 'ApplyMixtureArgs', bool]:
278
+ def _validate_input(val: Any, args: ApplyMixtureArgs) -> Tuple[Any, ApplyMixtureArgs, bool]:
277
279
  """Validate args input and determine if we are operating on a
278
280
  density matrix or a state vector.
279
281
  """
@@ -303,7 +305,7 @@ def _validate_input(val: Any, args: 'ApplyMixtureArgs') -> Tuple[Any, 'ApplyMixt
303
305
 
304
306
 
305
307
  def _apply_unitary_strat(
306
- val: Any, args: 'ApplyMixtureArgs', is_density_matrix: bool
308
+ val: Any, args: ApplyMixtureArgs, is_density_matrix: bool
307
309
  ) -> Optional[np.ndarray]:
308
310
  """Attempt to use `apply_unitary` and return the result.
309
311
 
@@ -333,7 +335,7 @@ def _apply_unitary_strat(
333
335
 
334
336
 
335
337
  def _apply_unitary_from_matrix_strat(
336
- val: np.ndarray, args: 'ApplyMixtureArgs', is_density_matrix: bool
338
+ val: np.ndarray, args: ApplyMixtureArgs, is_density_matrix: bool
337
339
  ) -> Optional[np.ndarray]:
338
340
  """Used to enact mixture tuples that are given as (probability, np.ndarray)
339
341
 
@@ -359,7 +361,7 @@ def _apply_unitary_from_matrix_strat(
359
361
 
360
362
 
361
363
  def _apply_mixture_from_mixture_strat(
362
- val: Any, args: 'ApplyMixtureArgs', is_density_matrix: bool
364
+ val: Any, args: ApplyMixtureArgs, is_density_matrix: bool
363
365
  ) -> Optional[np.ndarray]:
364
366
  """Attempt to use unitary matrices in _mixture_ and return the result."""
365
367
  method = getattr(val, '_mixture_', None)
@@ -11,6 +11,9 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
14
17
  from typing import Any, cast, Iterable, Optional, Tuple
15
18
 
16
19
  import numpy as np
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numbers
16
18
  from decimal import Decimal
17
19
  from fractions import Fraction
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from decimal import Decimal
16
18
  from fractions import Fraction
17
19
  from numbers import Number
@@ -11,6 +11,9 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
14
17
  import numpy as np
15
18
  import pytest
16
19
  import sympy
@@ -11,8 +11,11 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
14
15
  """Protocol for determining commutativity."""
15
16
 
17
+ from __future__ import annotations
18
+
16
19
  from types import NotImplementedType
17
20
  from typing import Any, overload, TypeVar, Union
18
21
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
  import sympy
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import cirq
16
18
 
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numbers
16
18
  from collections.abc import Iterable
17
19
  from typing import Any
@@ -11,6 +11,9 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
14
17
  import numpy as np
15
18
 
16
19
  import cirq
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from typing import Any, Optional
16
18
 
17
19
  import cirq.protocols.decompose_protocol as decompose_protocol
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
 
17
19
  import cirq
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from typing import Any, Optional, TypeVar
16
18
 
17
19
  import numpy as np
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pytest
16
18
 
17
19
  import cirq
@@ -32,7 +34,7 @@ class ReturnsFive:
32
34
 
33
35
 
34
36
  class SelfInverse:
35
- def __pow__(self, exponent) -> 'SelfInverse':
37
+ def __pow__(self, exponent) -> SelfInverse:
36
38
  return self
37
39
 
38
40
 
@@ -11,6 +11,9 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
14
17
  import dataclasses
15
18
  import datetime
16
19
  import gzip
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import contextlib
16
18
  import dataclasses
17
19
  import datetime
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pathlib
16
18
 
17
19
  import cirq
@@ -14,6 +14,8 @@
14
14
 
15
15
  """Protocol and methods for obtaining Kraus representation of quantum channels."""
16
16
 
17
+ from __future__ import annotations
18
+
17
19
  import warnings
18
20
  from types import NotImplementedType
19
21
  from typing import Any, Sequence, Tuple, TypeVar, Union
@@ -14,6 +14,8 @@
14
14
 
15
15
  """Tests for kraus_protocol.py."""
16
16
 
17
+ from __future__ import annotations
18
+
17
19
  from typing import Iterable, List, Sequence, Tuple
18
20
 
19
21
  import numpy as np
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pytest
16
18
 
17
19
  import cirq
@@ -99,7 +101,8 @@ def test_is_measurement() -> None:
99
101
  assert not cirq.is_measurement(cirq.bit_flip(1))
100
102
 
101
103
  class NotImplementedOperation(cirq.Operation):
102
- def with_qubits(self, *new_qubits) -> 'NotImplementedOperation':
104
+ # pylint: disable=undefined-variable
105
+ def with_qubits(self, *new_qubits) -> NotImplementedOperation:
103
106
  raise NotImplementedError()
104
107
 
105
108
  @property
@@ -14,6 +14,8 @@
14
14
 
15
15
  """Protocol for objects that are mixtures (probabilistic combinations)."""
16
16
 
17
+ from __future__ import annotations
18
+
17
19
  from types import NotImplementedType
18
20
  from typing import Any, Sequence, Tuple, Union
19
21
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from typing import Any
16
18
 
17
19
  from cirq.protocols.resolve_parameters import is_parameterized
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pytest
16
18
  import sympy
17
19
 
@@ -11,8 +11,11 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
14
15
  """Protocol for obtaining expansion of linear operators in Pauli basis."""
15
16
 
17
+ from __future__ import annotations
18
+
16
19
  from typing import Any, TypeVar, Union
17
20
 
18
21
  from typing_extensions import Protocol
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from typing import Any, TypeVar
16
18
 
17
19
  from typing_extensions import Protocol
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pytest
16
18
 
17
19
  import cirq
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pytest
16
18
 
17
19
  import cirq
@@ -11,6 +11,9 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
14
17
  import pytest
15
18
 
16
19
  import cirq
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from types import NotImplementedType
16
18
  from typing import Any, Sequence, Tuple, TypeVar, Union
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pytest
16
18
 
17
19
  import cirq
@@ -12,11 +12,12 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import pytest
16
18
  import sympy
17
19
 
18
20
  import cirq
19
- from cirq.study import ParamResolver
20
21
 
21
22
 
22
23
  @pytest.mark.parametrize('resolve_fn', [cirq.resolve_parameters, cirq.resolve_parameters_once])
@@ -38,7 +39,7 @@ def test_resolve_parameters(resolve_fn) -> None:
38
39
  def _is_parameterized_(self) -> bool:
39
40
  return self.parameter != 0
40
41
 
41
- def _resolve_parameters_(self, resolver: ParamResolver, recursive: bool):
42
+ def _resolve_parameters_(self, resolver: cirq.ParamResolver, recursive: bool):
42
43
  self.parameter = resolver.value_of(self.parameter, recursive)
43
44
  return self
44
45
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from typing import Any, Optional, Sequence, TypeVar, Union
16
18
 
17
19
  import numpy as np
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
 
17
19
  import cirq
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from types import NotImplementedType
16
18
  from typing import Any, Optional, TypeVar, Union
17
19
 
@@ -11,6 +11,9 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
15
+ from __future__ import annotations
16
+
14
17
  from typing import Optional
15
18
 
16
19
  import numpy as np
cirq/qis/channels.py CHANGED
@@ -11,7 +11,11 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
14
15
  """Tools for analyzing and manipulating quantum channels."""
16
+
17
+ from __future__ import annotations
18
+
15
19
  from typing import Sequence
16
20
 
17
21
  import numpy as np
@@ -280,7 +284,7 @@ def superoperator_to_choi(superoperator: np.ndarray) -> np.ndarray:
280
284
  return np.reshape(c, (d * d, d * d))
281
285
 
282
286
 
283
- def operation_to_choi(operation: 'protocols.SupportsKraus') -> np.ndarray:
287
+ def operation_to_choi(operation: protocols.SupportsKraus) -> np.ndarray:
284
288
  r"""Returns the unique Choi matrix associated with an operation .
285
289
 
286
290
  Choi matrix J(E) of a linear map E: L(H1) -> L(H2) which takes linear operators
@@ -302,7 +306,7 @@ def operation_to_choi(operation: 'protocols.SupportsKraus') -> np.ndarray:
302
306
  return kraus_to_choi(protocols.kraus(operation))
303
307
 
304
308
 
305
- def operation_to_superoperator(operation: 'protocols.SupportsKraus') -> np.ndarray:
309
+ def operation_to_superoperator(operation: protocols.SupportsKraus) -> np.ndarray:
306
310
  """Returns the matrix representation of an operation in standard basis.
307
311
 
308
312
  Let E: L(H1) -> L(H2) denote a linear map which takes linear operators on Hilbert space H1
cirq/qis/channels_test.py CHANGED
@@ -11,7 +11,11 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
14
15
  """Tests for channels."""
16
+
17
+ from __future__ import annotations
18
+
15
19
  from typing import Iterable, Sequence
16
20
 
17
21
  import numpy as np
@@ -14,6 +14,8 @@
14
14
 
15
15
  """Tests for clifford tableau."""
16
16
 
17
+ from __future__ import annotations
18
+
17
19
  import numpy as np
18
20
  import pytest
19
21
 
cirq/qis/entropy.py CHANGED
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from collections.abc import Sequence
16
18
  from concurrent.futures import ThreadPoolExecutor
17
19
  from itertools import product
cirq/qis/entropy_test.py CHANGED
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from concurrent.futures import ThreadPoolExecutor
16
18
 
17
19
  import numpy as np
cirq/qis/measures_test.py CHANGED
@@ -11,7 +11,11 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
+
14
15
  """Tests for measures."""
16
+
17
+ from __future__ import annotations
18
+
15
19
  import numpy as np
16
20
  import pytest
17
21
 
cirq/qis/noise_utils.py CHANGED
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
 
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
 
cirq/qis/states_test.py CHANGED
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  import numpy as np
16
18
  import pytest
17
19
 
@@ -12,6 +12,8 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ from __future__ import annotations
16
+
15
17
  from itertools import product
16
18
 
17
19
  import numpy as np