cirq-core 1.5.0.dev20250122193351__py3-none-any.whl → 1.5.0.dev20250123021547__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.

cirq/_version.py CHANGED
@@ -28,4 +28,4 @@ if sys.version_info < (3, 10, 0): # pragma: no cover
28
28
  'of cirq (e.g. "python -m pip install cirq==1.1.*")'
29
29
  )
30
30
 
31
- __version__ = "1.5.0.dev20250122193351"
31
+ __version__ = "1.5.0.dev20250123021547"
cirq/_version_test.py CHANGED
@@ -3,4 +3,4 @@ import cirq
3
3
 
4
4
 
5
5
  def test_version():
6
- assert cirq.__version__ == "1.5.0.dev20250122193351"
6
+ assert cirq.__version__ == "1.5.0.dev20250123021547"
cirq/ops/op_tree.py CHANGED
@@ -16,7 +16,6 @@
16
16
  """
17
17
 
18
18
  from typing import Callable, Iterable, Iterator, NoReturn, Union, TYPE_CHECKING
19
- from typing_extensions import Protocol
20
19
 
21
20
  from cirq._doc import document
22
21
  from cirq._import import LazyLoader
@@ -28,32 +27,7 @@ if TYPE_CHECKING:
28
27
  moment = LazyLoader("moment", globals(), "cirq.circuits.moment")
29
28
 
30
29
 
31
- class OpTree(Protocol):
32
- """The recursive type consumed by circuit builder methods.
33
-
34
- An OpTree is a type protocol, satisfied by anything that can be recursively
35
- flattened into Operations. We also define the Union type OP_TREE which
36
- can be an OpTree or just a single Operation.
37
-
38
- For example:
39
- - An Operation is an OP_TREE all by itself.
40
- - A list of operations is an OP_TREE.
41
- - A list of tuples of operations is an OP_TREE.
42
- - A list with a mix of operations and lists of operations is an OP_TREE.
43
- - A generator yielding operations is an OP_TREE.
44
-
45
- Note: once mypy supports recursive types this could be defined as an alias:
46
-
47
- OP_TREE = Union[Operation, Iterable['OP_TREE']]
48
-
49
- See: https://github.com/python/mypy/issues/731
50
- """
51
-
52
- def __iter__(self) -> Iterator[Union[Operation, 'OpTree']]:
53
- pass
54
-
55
-
56
- OP_TREE = Union[Operation, OpTree]
30
+ OP_TREE = Union[Operation, Iterable['OP_TREE']]
57
31
  document(
58
32
  OP_TREE,
59
33
  """An operation or nested collections of operations.
@@ -19,7 +19,7 @@ Based on:
19
19
  Synthesis of Quantum Logic Circuits. Tech. rep. 2006,
20
20
  https://arxiv.org/abs/quant-ph/0406176
21
21
  """
22
- from typing import List, Callable, TYPE_CHECKING
22
+ from typing import Callable, Iterable, List, TYPE_CHECKING
23
23
 
24
24
  from scipy.linalg import cossin
25
25
 
@@ -38,12 +38,11 @@ from cirq.circuits.frozen_circuit import FrozenCircuit
38
38
 
39
39
  if TYPE_CHECKING:
40
40
  import cirq
41
- from cirq.ops import op_tree
42
41
 
43
42
 
44
43
  def quantum_shannon_decomposition(
45
44
  qubits: 'List[cirq.Qid]', u: np.ndarray, atol: float = 1e-8
46
- ) -> 'op_tree.OpTree':
45
+ ) -> Iterable['cirq.Operation']:
47
46
  """Decomposes n-qubit unitary 1-q, 2-q and GlobalPhase gates, preserving global phase.
48
47
 
49
48
  The gates used are CX/YPow/ZPow/CNOT/GlobalPhase/CZ/PhasedXZGate/PhasedXPowGate.
@@ -141,7 +140,7 @@ def quantum_shannon_decomposition(
141
140
  yield from _msb_demuxer(qubits, u1, u2)
142
141
 
143
142
 
144
- def _single_qubit_decomposition(qubit: 'cirq.Qid', u: np.ndarray) -> 'op_tree.OpTree':
143
+ def _single_qubit_decomposition(qubit: 'cirq.Qid', u: np.ndarray) -> Iterable['cirq.Operation']:
145
144
  """Decomposes single-qubit gate, and returns list of operations, keeping phase invariant.
146
145
 
147
146
  Args:
@@ -186,7 +185,7 @@ def _single_qubit_decomposition(qubit: 'cirq.Qid', u: np.ndarray) -> 'op_tree.Op
186
185
 
187
186
  def _msb_demuxer(
188
187
  demux_qubits: 'List[cirq.Qid]', u1: np.ndarray, u2: np.ndarray
189
- ) -> 'op_tree.OpTree':
188
+ ) -> Iterable['cirq.Operation']:
190
189
  """Demultiplexes a unitary matrix that is multiplexed in its most-significant-qubit.
191
190
 
192
191
  Decomposition structure:
@@ -249,7 +248,7 @@ def _nth_gray(n: int) -> int:
249
248
 
250
249
  def _multiplexed_cossin(
251
250
  cossin_qubits: 'List[cirq.Qid]', angles: List[float], rot_func: Callable = ops.ry
252
- ) -> 'op_tree.OpTree':
251
+ ) -> Iterable['cirq.Operation']:
253
252
  """Performs a multiplexed rotation over all qubits in this unitary matrix,
254
253
 
255
254
  Uses ry and rz multiplexing for quantum shannon decomposition
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cirq-core
3
- Version: 1.5.0.dev20250122193351
3
+ Version: 1.5.0.dev20250123021547
4
4
  Summary: A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.
5
5
  Home-page: http://github.com/quantumlib/cirq
6
6
  Author: The Cirq Developers
@@ -4,8 +4,8 @@ cirq/_compat_test.py,sha256=Qq3ZcfgD-Nb81cEppQdJqhAyrVqXKtfXZYGXT0p-Wh0,34718
4
4
  cirq/_doc.py,sha256=yDyWUD_2JDS0gShfGRb-rdqRt9-WeL7DhkqX7np0Nko,2879
5
5
  cirq/_import.py,sha256=p9gMHJscbtDDkfHOaulvd3Aer0pwUF5AXpL89XR8dNw,8402
6
6
  cirq/_import_test.py,sha256=6K_v0riZJXOXUphHNkGA8MY-JcmGlezFaGmvrNhm3OQ,1015
7
- cirq/_version.py,sha256=WFhJmgYICxtpdKSoM9Ddzu3ntb_okVm0AooNMz81zBE,1206
8
- cirq/_version_test.py,sha256=h5jubeUTqzv-sokoqfTg1Fz-9jU9O4F8vV9KQ88ThCs,147
7
+ cirq/_version.py,sha256=u_m_cD2d_HEazuNrgNctCw4iZELrg_GWcnlaOeAL_2U,1206
8
+ cirq/_version_test.py,sha256=VDv1tmDBN8bYaxwNfmiKf7uPAbAP66EmrAPvGJVRtXY,147
9
9
  cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
10
10
  cirq/json_resolver_cache.py,sha256=p-vEOa-8GQ2cFIAdze-kd6C1un1uRvtujVPljVKaHBg,13557
11
11
  cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
@@ -321,7 +321,7 @@ cirq/ops/mixed_unitary_channel.py,sha256=k3O4ovH3bFs1WnAZc647IgCK8thC5JnTGxsCzjB
321
321
  cirq/ops/mixed_unitary_channel_test.py,sha256=x8LIAea2KcutNupnRJ_cLy1kmxhbUh3K3BkZtg3OkKQ,5058
322
322
  cirq/ops/named_qubit.py,sha256=niAsH7m32n3lEVIcy1nnVDPkPqk6PY2qlriz7mzgZmk,10006
323
323
  cirq/ops/named_qubit_test.py,sha256=mtJVRe4JzFSNckMQJSGCj1P0VBtpGh--6YxKbIEE3TQ,5221
324
- cirq/ops/op_tree.py,sha256=iXsIFcQCciU7C9SiPxhd_zrp4TBGCsmnqxKDjUl1aEo,6159
324
+ cirq/ops/op_tree.py,sha256=7hcyqhuK41Rg3vDPvRPkCn6G6a_shvmxEQvnYiQfbDw,5277
325
325
  cirq/ops/op_tree_test.py,sha256=h4phqrxQwYAfyu8o4f_fLi3WP2kdVuzWqrSCWGLHo_c,5575
326
326
  cirq/ops/parallel_gate.py,sha256=duCtDht-HRlYM3V7JmFnB_l2rx5PRqAwyRMjug9kvnM,6318
327
327
  cirq/ops/parallel_gate_test.py,sha256=M6o3AyXFQrwyiOTtGxlYH09TbHdjtTxCuMjmn-ALnn0,6298
@@ -1086,7 +1086,7 @@ cirq/transformers/analytical_decompositions/cphase_to_fsim.py,sha256=RDg0wzYa_YX
1086
1086
  cirq/transformers/analytical_decompositions/cphase_to_fsim_test.py,sha256=bwZa0BDclAd1sX3bD-GdNF2MO5DtH7mw2YLppEK0LG0,5568
1087
1087
  cirq/transformers/analytical_decompositions/pauli_string_decomposition.py,sha256=bU9IoY0igVZTmF_wsTdTxAfqPKWyqZ14Gt2AJoK5D_4,4524
1088
1088
  cirq/transformers/analytical_decompositions/pauli_string_decomposition_test.py,sha256=qpFODpCJrE9piYLWR1FzweTn3v80EvLCV-PP2fbHcoE,2112
1089
- cirq/transformers/analytical_decompositions/quantum_shannon_decomposition.py,sha256=beW4G_yE2lGNQEGbItwEa_w7lx0ECmGFZ7bCvMfk3bg,11768
1089
+ cirq/transformers/analytical_decompositions/quantum_shannon_decomposition.py,sha256=ZN6qKTdGs-ZLM8uIYhs3iGBQSAkj6_CjqFNiI_EZwBI,11785
1090
1090
  cirq/transformers/analytical_decompositions/quantum_shannon_decomposition_test.py,sha256=E7NM5NzNUVwlTcgzDs18tmnybA4DUVvGl9y6_Geikss,7685
1091
1091
  cirq/transformers/analytical_decompositions/single_qubit_decompositions.py,sha256=iAPdMwHKM1B3mJtQWH-iNjR-VkzhkUDFC23f8kjXY6M,8436
1092
1092
  cirq/transformers/analytical_decompositions/single_qubit_decompositions_test.py,sha256=4GfU6wctBoG-OVFqFOE08xymd5dXzY-doE8ZNpsKohI,12308
@@ -1202,8 +1202,8 @@ cirq/work/sampler.py,sha256=bE5tmVkcR6cZZMLETxDfHehdsYUMbx2RvBeIBetehI4,19187
1202
1202
  cirq/work/sampler_test.py,sha256=hL2UWx3dz2ukZVNxWftiKVvJcQoLplLZdQm-k1QcA40,13282
1203
1203
  cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
1204
1204
  cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
1205
- cirq_core-1.5.0.dev20250122193351.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1206
- cirq_core-1.5.0.dev20250122193351.dist-info/METADATA,sha256=CgeMBbwsI8eAcEZR-fru-N4jHXdUTXfxB9qoPBt4yJM,2105
1207
- cirq_core-1.5.0.dev20250122193351.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1208
- cirq_core-1.5.0.dev20250122193351.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1209
- cirq_core-1.5.0.dev20250122193351.dist-info/RECORD,,
1205
+ cirq_core-1.5.0.dev20250123021547.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1206
+ cirq_core-1.5.0.dev20250123021547.dist-info/METADATA,sha256=kMZkbns_CNygokLXred5EMsE3Xh9osu8fFnFNxuqxQE,2105
1207
+ cirq_core-1.5.0.dev20250123021547.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1208
+ cirq_core-1.5.0.dev20250123021547.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1209
+ cirq_core-1.5.0.dev20250123021547.dist-info/RECORD,,