cirq-core 1.5.0.dev20240803000525__py3-none-any.whl → 1.5.0.dev20240807173926__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 +1 -1
- cirq/_version_test.py +1 -1
- cirq/circuits/circuit_operation.py +11 -0
- cirq/circuits/frozen_circuit.py +3 -3
- cirq/circuits/moment.py +9 -0
- cirq/devices/grid_qubit.py +8 -0
- cirq/devices/line_qubit.py +8 -0
- cirq/experiments/qubit_characterizations.py +1 -1
- cirq/linalg/decompositions.py +1 -1
- cirq/ops/boolean_hamiltonian.py +1 -1
- cirq/ops/common_channels.py +1 -1
- cirq/ops/named_qubit.py +8 -0
- cirq/ops/raw_types.py +10 -1
- cirq/protocols/hash_from_pickle_test.py +111 -0
- cirq/qis/clifford_tableau.py +10 -1
- cirq/sim/clifford/clifford_simulator.py +1 -1
- cirq/sim/clifford/stabilizer_state_ch_form.py +1 -1
- cirq/study/resolver.py +8 -0
- cirq/value/measurement_key.py +9 -1
- cirq/value/value_equality_attr.py +13 -1
- cirq/vis/heatmap.py +2 -2
- cirq/vis/state_histogram.py +1 -1
- cirq/work/observable_measurement_data.py +3 -0
- {cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/METADATA +13 -13
- {cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/RECORD +28 -27
- {cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/WHEEL +1 -1
- {cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/LICENSE +0 -0
- {cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/top_level.txt +0 -0
cirq/_version.py
CHANGED
cirq/_version_test.py
CHANGED
|
@@ -21,6 +21,7 @@ component operations in order, including any nested CircuitOperations.
|
|
|
21
21
|
import math
|
|
22
22
|
from functools import cached_property
|
|
23
23
|
from typing import (
|
|
24
|
+
Any,
|
|
24
25
|
Callable,
|
|
25
26
|
cast,
|
|
26
27
|
Dict,
|
|
@@ -508,6 +509,16 @@ class CircuitOperation(ops.Operation):
|
|
|
508
509
|
def __hash__(self) -> int:
|
|
509
510
|
return self._hash
|
|
510
511
|
|
|
512
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
513
|
+
# clear cached hash value when pickling, see #6674
|
|
514
|
+
state = self.__dict__
|
|
515
|
+
# cached_property stores value in the property-named attribute
|
|
516
|
+
hash_attr = "_hash"
|
|
517
|
+
if hash_attr in state:
|
|
518
|
+
state = state.copy()
|
|
519
|
+
del state[hash_attr]
|
|
520
|
+
return state
|
|
521
|
+
|
|
511
522
|
def _json_dict_(self):
|
|
512
523
|
resp = {
|
|
513
524
|
'circuit': self.circuit,
|
cirq/circuits/frozen_circuit.py
CHANGED
|
@@ -119,10 +119,10 @@ class FrozenCircuit(AbstractCircuit, protocols.SerializableByKey):
|
|
|
119
119
|
def __getstate__(self):
|
|
120
120
|
# Don't save hash when pickling; see #3777.
|
|
121
121
|
state = self.__dict__
|
|
122
|
-
|
|
123
|
-
if
|
|
122
|
+
hash_attr = _compat._method_cache_name(self.__hash__)
|
|
123
|
+
if hash_attr in state:
|
|
124
124
|
state = state.copy()
|
|
125
|
-
del state[
|
|
125
|
+
del state[hash_attr]
|
|
126
126
|
return state
|
|
127
127
|
|
|
128
128
|
@_compat.cached_method
|
cirq/circuits/moment.py
CHANGED
|
@@ -365,6 +365,15 @@ class Moment:
|
|
|
365
365
|
def __hash__(self):
|
|
366
366
|
return hash((Moment, self._sorted_operations_()))
|
|
367
367
|
|
|
368
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
369
|
+
# clear cached hash value when pickling, see #6674
|
|
370
|
+
state = self.__dict__
|
|
371
|
+
hash_attr = _compat._method_cache_name(self.__hash__)
|
|
372
|
+
if hash_attr in state:
|
|
373
|
+
state = state.copy()
|
|
374
|
+
del state[hash_attr]
|
|
375
|
+
return state
|
|
376
|
+
|
|
368
377
|
def __iter__(self) -> Iterator['cirq.Operation']:
|
|
369
378
|
return iter(self.operations)
|
|
370
379
|
|
cirq/devices/grid_qubit.py
CHANGED
|
@@ -230,6 +230,10 @@ class GridQid(_BaseGridQid):
|
|
|
230
230
|
"""Returns a tuple of (args, kwargs) to pass to __new__ when unpickling."""
|
|
231
231
|
return (self._row, self._col), {"dimension": self._dimension}
|
|
232
232
|
|
|
233
|
+
# avoid pickling the _hash value, attributes are already stored with __getnewargs_ex__
|
|
234
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
235
|
+
return {}
|
|
236
|
+
|
|
233
237
|
def _with_row_col(self, row: int, col: int) -> 'GridQid':
|
|
234
238
|
return GridQid(row, col, dimension=self._dimension)
|
|
235
239
|
|
|
@@ -387,6 +391,10 @@ class GridQubit(_BaseGridQid):
|
|
|
387
391
|
"""Returns a tuple of args to pass to __new__ when unpickling."""
|
|
388
392
|
return (self._row, self._col)
|
|
389
393
|
|
|
394
|
+
# avoid pickling the _hash value, attributes are already stored with __getnewargs__
|
|
395
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
396
|
+
return {}
|
|
397
|
+
|
|
390
398
|
def _with_row_col(self, row: int, col: int) -> 'GridQubit':
|
|
391
399
|
return GridQubit(row, col)
|
|
392
400
|
|
cirq/devices/line_qubit.py
CHANGED
|
@@ -207,6 +207,10 @@ class LineQid(_BaseLineQid):
|
|
|
207
207
|
"""Returns a tuple of args to pass to __new__ when unpickling."""
|
|
208
208
|
return (self._x, self._dimension)
|
|
209
209
|
|
|
210
|
+
# avoid pickling the _hash value, attributes are already stored with __getnewargs__
|
|
211
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
212
|
+
return {}
|
|
213
|
+
|
|
210
214
|
def _with_x(self, x: int) -> 'LineQid':
|
|
211
215
|
return LineQid(x, dimension=self._dimension)
|
|
212
216
|
|
|
@@ -308,6 +312,10 @@ class LineQubit(_BaseLineQid):
|
|
|
308
312
|
"""Returns a tuple of args to pass to __new__ when unpickling."""
|
|
309
313
|
return (self._x,)
|
|
310
314
|
|
|
315
|
+
# avoid pickling the _hash value, attributes are already stored with __getnewargs__
|
|
316
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
317
|
+
return {}
|
|
318
|
+
|
|
311
319
|
def _with_x(self, x: int) -> 'LineQubit':
|
|
312
320
|
return LineQubit(x)
|
|
313
321
|
|
|
@@ -105,7 +105,7 @@ class RandomizedBenchMarkResult:
|
|
|
105
105
|
The plt.Axes containing the plot.
|
|
106
106
|
"""
|
|
107
107
|
show_plot = not ax
|
|
108
|
-
if
|
|
108
|
+
if ax is None:
|
|
109
109
|
fig, ax = plt.subplots(1, 1, figsize=(8, 8)) # pragma: no cover
|
|
110
110
|
ax.set_ylim((0.0, 1.0)) # pragma: no cover
|
|
111
111
|
ax.plot(self._num_cfds_seq, self._gnd_state_probs, 'ro', label='data', **plot_kwargs)
|
cirq/linalg/decompositions.py
CHANGED
cirq/ops/boolean_hamiltonian.py
CHANGED
|
@@ -80,7 +80,7 @@ class BooleanHamiltonianGate(raw_types.Gate):
|
|
|
80
80
|
return (2,) * len(self._parameter_names)
|
|
81
81
|
|
|
82
82
|
def _value_equality_values_(self) -> Any:
|
|
83
|
-
return self._parameter_names, self._boolean_strs, self._theta
|
|
83
|
+
return tuple(self._parameter_names), tuple(self._boolean_strs), self._theta
|
|
84
84
|
|
|
85
85
|
def _json_dict_(self) -> Dict[str, Any]:
|
|
86
86
|
return {
|
cirq/ops/common_channels.py
CHANGED
|
@@ -131,7 +131,7 @@ class AsymmetricDepolarizingChannel(raw_types.Gate):
|
|
|
131
131
|
return True
|
|
132
132
|
|
|
133
133
|
def _value_equality_values_(self):
|
|
134
|
-
return self._num_qubits,
|
|
134
|
+
return self._num_qubits, tuple(sorted(self._error_probabilities.items()))
|
|
135
135
|
|
|
136
136
|
def __repr__(self) -> str:
|
|
137
137
|
return 'cirq.asymmetric_depolarize(' + f"error_probabilities={self._error_probabilities})"
|
cirq/ops/named_qubit.py
CHANGED
|
@@ -134,6 +134,10 @@ class NamedQid(_BaseNamedQid):
|
|
|
134
134
|
"""Returns a tuple of args to pass to __new__ when unpickling."""
|
|
135
135
|
return (self._name, self._dimension)
|
|
136
136
|
|
|
137
|
+
# avoid pickling the _hash value, attributes are already stored with __getnewargs__
|
|
138
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
139
|
+
return {}
|
|
140
|
+
|
|
137
141
|
def __repr__(self) -> str:
|
|
138
142
|
return f'cirq.NamedQid({self._name!r}, dimension={self._dimension})'
|
|
139
143
|
|
|
@@ -202,6 +206,10 @@ class NamedQubit(_BaseNamedQid):
|
|
|
202
206
|
"""Returns a tuple of args to pass to __new__ when unpickling."""
|
|
203
207
|
return (self._name,)
|
|
204
208
|
|
|
209
|
+
# avoid pickling the _hash value, attributes are already stored with __getnewargs__
|
|
210
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
211
|
+
return {}
|
|
212
|
+
|
|
205
213
|
def __str__(self) -> str:
|
|
206
214
|
return self._name
|
|
207
215
|
|
cirq/ops/raw_types.py
CHANGED
|
@@ -41,7 +41,7 @@ import sympy
|
|
|
41
41
|
|
|
42
42
|
from cirq import protocols, value
|
|
43
43
|
from cirq._import import LazyLoader
|
|
44
|
-
from cirq._compat import __cirq_debug__, cached_method
|
|
44
|
+
from cirq._compat import __cirq_debug__, _method_cache_name, cached_method
|
|
45
45
|
from cirq.type_workarounds import NotImplementedType
|
|
46
46
|
from cirq.ops import control_values as cv
|
|
47
47
|
|
|
@@ -115,6 +115,15 @@ class Qid(metaclass=abc.ABCMeta):
|
|
|
115
115
|
def __hash__(self) -> int:
|
|
116
116
|
return hash((Qid, self._comparison_key()))
|
|
117
117
|
|
|
118
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
119
|
+
# clear cached hash value when pickling, see #6674
|
|
120
|
+
state = self.__dict__
|
|
121
|
+
hash_attr = _method_cache_name(self.__hash__)
|
|
122
|
+
if hash_attr in state:
|
|
123
|
+
state = state.copy()
|
|
124
|
+
del state[hash_attr]
|
|
125
|
+
return state
|
|
126
|
+
|
|
118
127
|
def __eq__(self, other):
|
|
119
128
|
if not isinstance(other, Qid):
|
|
120
129
|
return NotImplemented
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Copyright 2024 The Cirq Developers
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
from __future__ import annotations
|
|
16
|
+
|
|
17
|
+
import multiprocessing
|
|
18
|
+
import os
|
|
19
|
+
import pathlib
|
|
20
|
+
import pickle
|
|
21
|
+
from collections.abc import Iterator
|
|
22
|
+
from typing import Any, Hashable
|
|
23
|
+
|
|
24
|
+
import pytest
|
|
25
|
+
|
|
26
|
+
import cirq
|
|
27
|
+
from cirq.protocols.json_serialization_test import MODULE_TEST_SPECS
|
|
28
|
+
|
|
29
|
+
_EXCLUDE_JSON_FILES = (
|
|
30
|
+
# sympy - related objects
|
|
31
|
+
"cirq/protocols/json_test_data/sympy.Add.json",
|
|
32
|
+
"cirq/protocols/json_test_data/sympy.E.json",
|
|
33
|
+
"cirq/protocols/json_test_data/sympy.Equality.json",
|
|
34
|
+
"cirq/protocols/json_test_data/sympy.EulerGamma.json",
|
|
35
|
+
"cirq/protocols/json_test_data/sympy.Float.json",
|
|
36
|
+
"cirq/protocols/json_test_data/sympy.GreaterThan.json",
|
|
37
|
+
"cirq/protocols/json_test_data/sympy.Integer.json",
|
|
38
|
+
"cirq/protocols/json_test_data/sympy.LessThan.json",
|
|
39
|
+
"cirq/protocols/json_test_data/sympy.Mul.json",
|
|
40
|
+
"cirq/protocols/json_test_data/sympy.Pow.json",
|
|
41
|
+
"cirq/protocols/json_test_data/sympy.Rational.json",
|
|
42
|
+
"cirq/protocols/json_test_data/sympy.StrictGreaterThan.json",
|
|
43
|
+
"cirq/protocols/json_test_data/sympy.StrictLessThan.json",
|
|
44
|
+
"cirq/protocols/json_test_data/sympy.Symbol.json",
|
|
45
|
+
"cirq/protocols/json_test_data/sympy.Unequality.json",
|
|
46
|
+
"cirq/protocols/json_test_data/sympy.pi.json",
|
|
47
|
+
# RigettiQCSAspenDevice does not pickle
|
|
48
|
+
"cirq_rigetti/json_test_data/RigettiQCSAspenDevice.json",
|
|
49
|
+
# TODO(#6674,pavoljuhas) - fix pickling of ProjectorSum
|
|
50
|
+
"cirq/protocols/json_test_data/ProjectorSum.json",
|
|
51
|
+
)
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def _is_included(json_filename: str) -> bool:
|
|
55
|
+
json_posix_path = pathlib.PurePath(json_filename).as_posix()
|
|
56
|
+
if any(json_posix_path.endswith(t) for t in _EXCLUDE_JSON_FILES):
|
|
57
|
+
return False
|
|
58
|
+
if not os.path.isfile(json_filename):
|
|
59
|
+
return False
|
|
60
|
+
return True
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@pytest.fixture(scope='module')
|
|
64
|
+
def pool() -> Iterator[multiprocessing.pool.Pool]:
|
|
65
|
+
ctx = multiprocessing.get_context("spawn")
|
|
66
|
+
with ctx.Pool(1) as pool:
|
|
67
|
+
yield pool
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def _read_json(json_filename: str) -> Any:
|
|
71
|
+
obj = cirq.read_json(json_filename)
|
|
72
|
+
obj = obj[0] if isinstance(obj, list) else obj
|
|
73
|
+
# trigger possible caching of the hash value
|
|
74
|
+
if isinstance(obj, Hashable):
|
|
75
|
+
_ = hash(obj)
|
|
76
|
+
return obj
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def test_exclude_json_files_has_valid_entries() -> None:
|
|
80
|
+
"""Verify _EXCLUDE_JSON_FILES has valid entries."""
|
|
81
|
+
# do not check rigetti files if not installed
|
|
82
|
+
skip_rigetti = all(m.name != "cirq_rigetti" for m in MODULE_TEST_SPECS)
|
|
83
|
+
json_file_validates = lambda f: any(
|
|
84
|
+
m.test_data_path.joinpath(os.path.basename(f)).is_file() for m in MODULE_TEST_SPECS
|
|
85
|
+
) or (skip_rigetti and f.startswith("cirq_rigetti/"))
|
|
86
|
+
invalid_json_paths = [f for f in _EXCLUDE_JSON_FILES if not json_file_validates(f)]
|
|
87
|
+
assert invalid_json_paths == []
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
@pytest.mark.parametrize(
|
|
91
|
+
'json_filename',
|
|
92
|
+
[
|
|
93
|
+
f"{abs_path}.json"
|
|
94
|
+
for m in MODULE_TEST_SPECS
|
|
95
|
+
for abs_path in m.all_test_data_keys()
|
|
96
|
+
if _is_included(f"{abs_path}.json")
|
|
97
|
+
],
|
|
98
|
+
)
|
|
99
|
+
def test_hash_from_pickle(json_filename: str, pool: multiprocessing.pool.Pool):
|
|
100
|
+
obj_local = _read_json(json_filename)
|
|
101
|
+
if not isinstance(obj_local, Hashable):
|
|
102
|
+
return
|
|
103
|
+
# check if pickling works in the main process for the sake of debugging
|
|
104
|
+
obj_copy = pickle.loads(pickle.dumps(obj_local))
|
|
105
|
+
assert obj_copy == obj_local
|
|
106
|
+
assert hash(obj_copy) == hash(obj_local)
|
|
107
|
+
# Read and hash the object in a separate worker process and then
|
|
108
|
+
# send it back which requires pickling and unpickling.
|
|
109
|
+
obj_worker = pool.apply(_read_json, [json_filename])
|
|
110
|
+
assert obj_worker == obj_local
|
|
111
|
+
assert hash(obj_worker) == hash(obj_local)
|
cirq/qis/clifford_tableau.py
CHANGED
|
@@ -17,7 +17,7 @@ from typing import Any, Dict, List, Optional, Sequence, TYPE_CHECKING
|
|
|
17
17
|
import numpy as np
|
|
18
18
|
|
|
19
19
|
from cirq import protocols
|
|
20
|
-
from cirq._compat import proper_repr, cached_method
|
|
20
|
+
from cirq._compat import proper_repr, _method_cache_name, cached_method
|
|
21
21
|
from cirq.qis import quantum_state_representation
|
|
22
22
|
from cirq.value import big_endian_int_to_digits, linear_dict, random_state
|
|
23
23
|
|
|
@@ -658,3 +658,12 @@ class CliffordTableau(StabilizerState):
|
|
|
658
658
|
@cached_method
|
|
659
659
|
def __hash__(self) -> int:
|
|
660
660
|
return hash(self.matrix().tobytes() + self.rs.tobytes())
|
|
661
|
+
|
|
662
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
663
|
+
# clear cached hash value when pickling, see #6674
|
|
664
|
+
state = self.__dict__
|
|
665
|
+
hash_attr = _method_cache_name(self.__hash__)
|
|
666
|
+
if hash_attr in state:
|
|
667
|
+
state = state.copy()
|
|
668
|
+
del state[hash_attr]
|
|
669
|
+
return state
|
|
@@ -20,7 +20,7 @@ from cirq import protocols, qis, value
|
|
|
20
20
|
from cirq.value import big_endian_int_to_digits, random_state
|
|
21
21
|
|
|
22
22
|
|
|
23
|
-
@value.value_equality
|
|
23
|
+
@value.value_equality(unhashable=True)
|
|
24
24
|
class StabilizerStateChForm(qis.StabilizerState):
|
|
25
25
|
r"""A representation of stabilizer states using the CH form,
|
|
26
26
|
|
cirq/study/resolver.py
CHANGED
|
@@ -244,6 +244,14 @@ class ParamResolver:
|
|
|
244
244
|
self._param_hash = hash(frozenset(self._param_dict.items()))
|
|
245
245
|
return self._param_hash
|
|
246
246
|
|
|
247
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
248
|
+
# clear cached hash value when pickling, see #6674
|
|
249
|
+
state = self.__dict__
|
|
250
|
+
if state["_param_hash"] is not None:
|
|
251
|
+
state = state.copy()
|
|
252
|
+
state["_param_hash"] = None
|
|
253
|
+
return state
|
|
254
|
+
|
|
247
255
|
def __eq__(self, other):
|
|
248
256
|
if not isinstance(other, ParamResolver):
|
|
249
257
|
return NotImplemented
|
cirq/value/measurement_key.py
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
# See the License for the specific language governing permissions and
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
|
|
15
|
-
from typing import FrozenSet, Mapping, Optional, Tuple
|
|
15
|
+
from typing import Any, Dict, FrozenSet, Mapping, Optional, Tuple
|
|
16
16
|
|
|
17
17
|
import dataclasses
|
|
18
18
|
|
|
@@ -77,6 +77,14 @@ class MeasurementKey:
|
|
|
77
77
|
object.__setattr__(self, '_hash', hash(str(self)))
|
|
78
78
|
return self._hash
|
|
79
79
|
|
|
80
|
+
def __getstate__(self) -> Dict[str, Any]:
|
|
81
|
+
# clear cached hash value when pickling, see #6674
|
|
82
|
+
state = self.__dict__
|
|
83
|
+
if "_hash" in state:
|
|
84
|
+
state = state.copy()
|
|
85
|
+
del state["_hash"]
|
|
86
|
+
return state
|
|
87
|
+
|
|
80
88
|
def __lt__(self, other):
|
|
81
89
|
if isinstance(other, MeasurementKey):
|
|
82
90
|
if self.path != other.path:
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
# limitations under the License.
|
|
14
14
|
"""Defines `@cirq.value_equality`, for easy __eq__/__hash__ methods."""
|
|
15
15
|
|
|
16
|
-
from typing import Any, Callable, Optional, overload, Union
|
|
16
|
+
from typing import Any, Callable, Dict, Optional, overload, Union
|
|
17
17
|
|
|
18
18
|
from typing_extensions import Protocol
|
|
19
19
|
|
|
@@ -110,6 +110,16 @@ def _value_equality_approx_eq(
|
|
|
110
110
|
)
|
|
111
111
|
|
|
112
112
|
|
|
113
|
+
def _value_equality_getstate(self: _SupportsValueEquality) -> Dict[str, Any]:
|
|
114
|
+
# clear cached hash value when pickling, see #6674
|
|
115
|
+
state = self.__dict__
|
|
116
|
+
hash_attr = _compat._method_cache_name(self.__hash__)
|
|
117
|
+
if hash_attr in state:
|
|
118
|
+
state = state.copy()
|
|
119
|
+
del state[hash_attr]
|
|
120
|
+
return state
|
|
121
|
+
|
|
122
|
+
|
|
113
123
|
# pylint: disable=function-redefined
|
|
114
124
|
@overload
|
|
115
125
|
def value_equality(
|
|
@@ -228,6 +238,8 @@ def value_equality(
|
|
|
228
238
|
cached_values_getter = values_getter if unhashable else _compat.cached_method(values_getter)
|
|
229
239
|
setattr(cls, '_value_equality_values_', cached_values_getter)
|
|
230
240
|
setattr(cls, '__hash__', None if unhashable else _compat.cached_method(_value_equality_hash))
|
|
241
|
+
if not unhashable:
|
|
242
|
+
setattr(cls, '__getstate__', _value_equality_getstate)
|
|
231
243
|
setattr(cls, '__eq__', _value_equality_eq)
|
|
232
244
|
setattr(cls, '__ne__', _value_equality_ne)
|
|
233
245
|
|
cirq/vis/heatmap.py
CHANGED
|
@@ -296,7 +296,7 @@ class Heatmap:
|
|
|
296
296
|
is plotted on. ``collection`` is the collection of paths drawn and filled.
|
|
297
297
|
"""
|
|
298
298
|
show_plot = not ax
|
|
299
|
-
if
|
|
299
|
+
if ax is None:
|
|
300
300
|
fig, ax = plt.subplots(figsize=(8, 8))
|
|
301
301
|
original_config = copy.deepcopy(self._config)
|
|
302
302
|
self.update_config(**kwargs)
|
|
@@ -413,7 +413,7 @@ class TwoQubitInteractionHeatmap(Heatmap):
|
|
|
413
413
|
is plotted on. ``collection`` is the collection of paths drawn and filled.
|
|
414
414
|
"""
|
|
415
415
|
show_plot = not ax
|
|
416
|
-
if
|
|
416
|
+
if ax is None:
|
|
417
417
|
fig, ax = plt.subplots(figsize=(8, 8))
|
|
418
418
|
original_config = copy.deepcopy(self._config)
|
|
419
419
|
self.update_config(**kwargs)
|
cirq/vis/state_histogram.py
CHANGED
|
@@ -109,6 +109,9 @@ class ObservableMeasuredResult:
|
|
|
109
109
|
repetitions: int
|
|
110
110
|
circuit_params: Mapping[Union[str, sympy.Expr], Union[value.Scalar, sympy.Expr]]
|
|
111
111
|
|
|
112
|
+
# unhashable because of the mapping-type circuit_params attribute
|
|
113
|
+
__hash__ = None # type: ignore
|
|
114
|
+
|
|
112
115
|
def __repr__(self):
|
|
113
116
|
# I wish we could use the default dataclass __repr__ but
|
|
114
117
|
# we need to prefix our class name with `cirq.work.`
|
{cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/METADATA
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cirq-core
|
|
3
|
-
Version: 1.5.0.
|
|
3
|
+
Version: 1.5.0.dev20240807173926
|
|
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
|
|
@@ -8,22 +8,22 @@ Author-email: cirq-dev@googlegroups.com
|
|
|
8
8
|
License: Apache 2
|
|
9
9
|
Requires-Python: >=3.10.0
|
|
10
10
|
License-File: LICENSE
|
|
11
|
-
Requires-Dist: attrs
|
|
12
|
-
Requires-Dist: duet
|
|
13
|
-
Requires-Dist: matplotlib
|
|
14
|
-
Requires-Dist: networkx
|
|
15
|
-
Requires-Dist: numpy
|
|
11
|
+
Requires-Dist: attrs>=21.3.0
|
|
12
|
+
Requires-Dist: duet>=0.2.8
|
|
13
|
+
Requires-Dist: matplotlib~=3.0
|
|
14
|
+
Requires-Dist: networkx>=2.4
|
|
15
|
+
Requires-Dist: numpy~=1.22
|
|
16
16
|
Requires-Dist: pandas
|
|
17
|
-
Requires-Dist: sortedcontainers
|
|
18
|
-
Requires-Dist: scipy
|
|
17
|
+
Requires-Dist: sortedcontainers~=2.0
|
|
18
|
+
Requires-Dist: scipy~=1.0
|
|
19
19
|
Requires-Dist: sympy
|
|
20
|
-
Requires-Dist: typing-extensions
|
|
20
|
+
Requires-Dist: typing-extensions>=4.2
|
|
21
21
|
Requires-Dist: tqdm
|
|
22
22
|
Provides-Extra: contrib
|
|
23
|
-
Requires-Dist: ply
|
|
24
|
-
Requires-Dist: pylatex
|
|
25
|
-
Requires-Dist: quimb
|
|
26
|
-
Requires-Dist: opt-einsum
|
|
23
|
+
Requires-Dist: ply>=3.6; extra == "contrib"
|
|
24
|
+
Requires-Dist: pylatex~=1.4; extra == "contrib"
|
|
25
|
+
Requires-Dist: quimb~=1.7; extra == "contrib"
|
|
26
|
+
Requires-Dist: opt-einsum; extra == "contrib"
|
|
27
27
|
|
|
28
28
|
**This is a development version of Cirq-core and may be unstable.**
|
|
29
29
|
|
{cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/RECORD
RENAMED
|
@@ -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=
|
|
8
|
-
cirq/_version_test.py,sha256=
|
|
7
|
+
cirq/_version.py,sha256=jvby6efB3zbe4ahafK4kKy13_e_C0VNd6OXgl1c15K4,1206
|
|
8
|
+
cirq/_version_test.py,sha256=r5EpZqLFuek4oLn_CnINb5NHRsLsYyE1kuF54es-zH4,147
|
|
9
9
|
cirq/conftest.py,sha256=X7yLFL8GLhg2CjPw0hp5e_dGASfvHx1-QT03aUbhKJw,1168
|
|
10
10
|
cirq/json_resolver_cache.py,sha256=ytePZtNZgKjOF2NiVpUTuotB-JKZmQNOFIFdvXqsxHw,13271
|
|
11
11
|
cirq/py.typed,sha256=VFSlmh_lNwnaXzwY-ZuW-C2Ws5PkuDoVgBdNCs0jXJE,63
|
|
@@ -18,14 +18,14 @@ cirq/circuits/_box_drawing_character_data_test.py,sha256=XO94z0piwZRHaNZHTf-5tKH
|
|
|
18
18
|
cirq/circuits/_bucket_priority_queue.py,sha256=hxFuii2fKD8G6EKT_aVLEsA7FmSfqFXPwIbA0KsoSC4,6745
|
|
19
19
|
cirq/circuits/_bucket_priority_queue_test.py,sha256=t6u_hG7K2e2WKWrgCsKxNRtp4ghKwiCrp0_WSY0W25k,5288
|
|
20
20
|
cirq/circuits/circuit.py,sha256=XIwQh9Gkb8ya4Q2Q92EfsAUh9W6YZemcGqlu1cZCi2s,114620
|
|
21
|
-
cirq/circuits/circuit_operation.py,sha256=
|
|
21
|
+
cirq/circuits/circuit_operation.py,sha256=cdcx8vxzATR-qmpYV2p1Bya98tvru3JndSUU1T-XJr0,34737
|
|
22
22
|
cirq/circuits/circuit_operation_test.py,sha256=u-23dDZ6htNSiP8oXR67rmtb-XDBmObvbJjJrARhmis,44646
|
|
23
23
|
cirq/circuits/circuit_test.py,sha256=sRZC558PZZZUHByZ1R00_j8ez6TL9l5ZmT8YLGopH_Q,160117
|
|
24
|
-
cirq/circuits/frozen_circuit.py,sha256=
|
|
24
|
+
cirq/circuits/frozen_circuit.py,sha256=s-OWD4ngioE41NG1jQJbLrJd7dP283aYn7IOahbJQw4,9259
|
|
25
25
|
cirq/circuits/frozen_circuit_test.py,sha256=rHyii8hLhOQ6jdA8dC1OcYPGnyeBC4uY5Q53XspkkCk,4133
|
|
26
26
|
cirq/circuits/insert_strategy.py,sha256=L0OLXuo24TtBfdJGOAG2PsVDMrbvQl4iN5lUk6IPuyo,2851
|
|
27
27
|
cirq/circuits/insert_strategy_test.py,sha256=dgz13_ssa_GWqzzx5W4G4sJJw4SUHC3-g3K0_Z4TRiA,686
|
|
28
|
-
cirq/circuits/moment.py,sha256=
|
|
28
|
+
cirq/circuits/moment.py,sha256=ABYiqNVUKbUrZUDxGvKLZKOq8pgoZgf3K6DzPSGtaQw,26180
|
|
29
29
|
cirq/circuits/moment_test.py,sha256=SAZR-BxNiFaYaPLKLN59LCBqxvBMrVJWa-js1kfhOZA,26905
|
|
30
30
|
cirq/circuits/optimization_pass.py,sha256=uw3ne0-ebZo6GNjwfQMuQ3b5u9RCgyaXRfhpbljlxao,6468
|
|
31
31
|
cirq/circuits/optimization_pass_test.py,sha256=eQB0NBJ9EvqjgSFGQMgaHIh5niQhksdnvqSXhsj3nOg,5947
|
|
@@ -155,11 +155,11 @@ cirq/devices/device.py,sha256=9rUZwpbbmqk8AUVH4N4KfJ59j5im7hVgDJAHtN9iH_0,5361
|
|
|
155
155
|
cirq/devices/device_test.py,sha256=v3gT6jrGLLfYnZbTizIaIMkI3s5_xVM3OV9JQchvAxY,1124
|
|
156
156
|
cirq/devices/grid_device_metadata.py,sha256=h4Xo_PaiZqQSVUgb1ctVtYYYE2tNik2KQhCgooilZrE,8629
|
|
157
157
|
cirq/devices/grid_device_metadata_test.py,sha256=IeOqYOZcUGhB4ivuQW2g0Q9dt-zFA0H6Dav6yv6Lul0,8592
|
|
158
|
-
cirq/devices/grid_qubit.py,sha256=
|
|
158
|
+
cirq/devices/grid_qubit.py,sha256=CeR3ILjzN6H6UjOp2KBhxOoVSjX1TFaAUvbmsU-uGuQ,18793
|
|
159
159
|
cirq/devices/grid_qubit_test.py,sha256=EzI8dWWnCfYbwruwsKlBzb41lQTA6AEOB2X16oQAz-0,14044
|
|
160
160
|
cirq/devices/insertion_noise_model.py,sha256=-X07pSTp-lxQj6AQT_89gTHx_jKtI9GSMrD4dozCwTs,3614
|
|
161
161
|
cirq/devices/insertion_noise_model_test.py,sha256=i9jB257VXO5wi5QdDO5G4tphx5RKMaouUsdsQT3kiBU,3992
|
|
162
|
-
cirq/devices/line_qubit.py,sha256=
|
|
162
|
+
cirq/devices/line_qubit.py,sha256=q7rqUx8Pda3hlL8u6Zu2Ufe0eI5IN5m8Kz_oyBV_yTw,11825
|
|
163
163
|
cirq/devices/line_qubit_test.py,sha256=_X1ofFHtuo0myFfsu1nlTJf9OLuLWRgZHHW2VG23ERY,9547
|
|
164
164
|
cirq/devices/named_topologies.py,sha256=grFXvi0UDHZl1pRyHDWSqjub3xF_Yf7RLXfMAZbyoEA,15790
|
|
165
165
|
cirq/devices/named_topologies_test.py,sha256=Nj_tlGmqPH7IVUzpUHPnAPlfUWhSGbZsIHdsLLjxIZs,4736
|
|
@@ -184,7 +184,7 @@ cirq/experiments/n_qubit_tomography.py,sha256=9M_kf2-1hvFxfZOWND7ACwHYgD9SJU5nYF
|
|
|
184
184
|
cirq/experiments/n_qubit_tomography_test.py,sha256=wHfV2OpGYSDXfoyEh-B5dc1Dv8sxKNFbUoHyjIWZoFk,4362
|
|
185
185
|
cirq/experiments/purity_estimation.py,sha256=6D1UwFlQRzHeajXMTyTUfBYAc0jJQ8Cfz4lteFKeUaM,2467
|
|
186
186
|
cirq/experiments/purity_estimation_test.py,sha256=xlBGp0NOBYR0IhTy3bckHPgi81FkGSGxKqk9hwXG-I8,923
|
|
187
|
-
cirq/experiments/qubit_characterizations.py,sha256
|
|
187
|
+
cirq/experiments/qubit_characterizations.py,sha256=-a-krc7Pw68VjsVvQmeZ92oXrpeME31j4cVrAkKFkr4,36730
|
|
188
188
|
cirq/experiments/qubit_characterizations_test.py,sha256=b_ONqxyW6s01Ts8T65BEdb4e8Xy24Qp4zTGXWesL0ic,9733
|
|
189
189
|
cirq/experiments/random_quantum_circuit_generation.py,sha256=R_w7z35plUHEYBY0-F80bPcWJSSSjNQDaP2GbxVBEZg,28143
|
|
190
190
|
cirq/experiments/random_quantum_circuit_generation_test.py,sha256=1rvgN8-Ajedn_70FyYKVzjvzR6NVpHj6KQgo6tra-Jc,15995
|
|
@@ -246,7 +246,7 @@ cirq/ion/__init__.py,sha256=GKBoQfjGrCOkVQR1MqK32s9YxA8PsrKecekz7LChUlk,734
|
|
|
246
246
|
cirq/linalg/__init__.py,sha256=iMN1jVWzuZrSdHuE-gN2N1QyP0q6wgj6F4zetxJLCJQ,2527
|
|
247
247
|
cirq/linalg/combinators.py,sha256=5q_cNjnJrDgC7qMX8rYdnCmBKXT_iVbtxnCeJQ4ZPTM,5350
|
|
248
248
|
cirq/linalg/combinators_test.py,sha256=nZ3snkVA2nAOZ6WJK1hNd1f_i2a5xNdnostfMD1upbc,4699
|
|
249
|
-
cirq/linalg/decompositions.py,sha256=
|
|
249
|
+
cirq/linalg/decompositions.py,sha256=cNIcKylK4tnGgIreO7X4cpsRmwvOycKRSS8xf9gaIG0,39229
|
|
250
250
|
cirq/linalg/decompositions_test.py,sha256=-6q2u3BDG9b32QSUAjhmBNWrL3KzyiMH_R0WIHhdOqU,25790
|
|
251
251
|
cirq/linalg/diagonalize.py,sha256=Ym7C0JTAC9xfRQDYI72U6NxMYg0DfchjfXcbdg_92QE,10051
|
|
252
252
|
cirq/linalg/diagonalize_test.py,sha256=H-JcLvcCBdN-DrKo2o1Gs7B8Q9SU70oAZmdT4yTLAi4,9089
|
|
@@ -265,13 +265,13 @@ cirq/neutral_atoms/neutral_atom_devices.py,sha256=s-LInrNp8k_txKbpLWfsaoiZvUScOW
|
|
|
265
265
|
cirq/ops/__init__.py,sha256=7xt2bPwndo2OhuLLnI5GwBpG9rZHlt1rv7cp-bOBmxM,5455
|
|
266
266
|
cirq/ops/arithmetic_operation.py,sha256=PBqIwOfADRlsij11Lo1ao_OZM-O8PDlObgZBxGKsYKs,10125
|
|
267
267
|
cirq/ops/arithmetic_operation_test.py,sha256=axy8xy9IvDb-ATUV-LE1HNWRqCEz06VyZWVrLNOtXXI,4942
|
|
268
|
-
cirq/ops/boolean_hamiltonian.py,sha256=
|
|
268
|
+
cirq/ops/boolean_hamiltonian.py,sha256=1SMdoZtcGnR3xFnS9pjVJNbOXZKqxf4XVikEVNDblFI,14897
|
|
269
269
|
cirq/ops/boolean_hamiltonian_test.py,sha256=1ey5yfYZPKZDsfM3jpCPAOpbPs_y8i4K_WvDK2d5_4Y,8518
|
|
270
270
|
cirq/ops/classically_controlled_operation.py,sha256=bMqKutwzqbvN2r7mOVOI12HTPDGSJLkhQQgfAcTtbDU,9166
|
|
271
271
|
cirq/ops/classically_controlled_operation_test.py,sha256=MNU0Adff4kTosqsrQ3PUT3ARcZee_PkchT6u0xDl8Qg,48039
|
|
272
272
|
cirq/ops/clifford_gate.py,sha256=ARbHGptZxQo6kX9QTrh_kZ89N7lW6V3GQSE3o-1kixU,39366
|
|
273
273
|
cirq/ops/clifford_gate_test.py,sha256=NF_if1X8LCMA9hy0vBO7lxvVPdumlvMMnI2XRQ-RLpk,37472
|
|
274
|
-
cirq/ops/common_channels.py,sha256=
|
|
274
|
+
cirq/ops/common_channels.py,sha256=h2BlRs1qCz96qZmcOgXMWOVLjvvGtl4yb-r8XqyQVjM,38276
|
|
275
275
|
cirq/ops/common_channels_test.py,sha256=EL_PxbqD3KPC8ioihiukhmW8bUdclqqigKoFyUQpmIM,29690
|
|
276
276
|
cirq/ops/common_gate_families.py,sha256=e5M8wlDYtdrpWBrhdns6iizIvSqzfxDyIsBdxt8hVMc,8611
|
|
277
277
|
cirq/ops/common_gate_families_test.py,sha256=Oo3C7BPO3gt3ePuqwsI_lx_lY38et8Ps4AuVydX2Aww,5275
|
|
@@ -317,7 +317,7 @@ cirq/ops/measurement_gate.py,sha256=4nZPQ-ckEu8Atv1HGlDUPvXjP4WOlub-O-yPHK28GBw,
|
|
|
317
317
|
cirq/ops/measurement_gate_test.py,sha256=XfTDqbYUUc7zsMURh7D3jo8DwKWVVT9uJRBvtTm8Frk,18308
|
|
318
318
|
cirq/ops/mixed_unitary_channel.py,sha256=k3O4ovH3bFs1WnAZc647IgCK8thC5JnTGxsCzjBacEY,5259
|
|
319
319
|
cirq/ops/mixed_unitary_channel_test.py,sha256=x8LIAea2KcutNupnRJ_cLy1kmxhbUh3K3BkZtg3OkKQ,5058
|
|
320
|
-
cirq/ops/named_qubit.py,sha256=
|
|
320
|
+
cirq/ops/named_qubit.py,sha256=niAsH7m32n3lEVIcy1nnVDPkPqk6PY2qlriz7mzgZmk,10006
|
|
321
321
|
cirq/ops/named_qubit_test.py,sha256=mtJVRe4JzFSNckMQJSGCj1P0VBtpGh--6YxKbIEE3TQ,5221
|
|
322
322
|
cirq/ops/op_tree.py,sha256=iXsIFcQCciU7C9SiPxhd_zrp4TBGCsmnqxKDjUl1aEo,6159
|
|
323
323
|
cirq/ops/op_tree_test.py,sha256=h4phqrxQwYAfyu8o4f_fLi3WP2kdVuzWqrSCWGLHo_c,5575
|
|
@@ -358,7 +358,7 @@ cirq/ops/qubit_order_or_list.py,sha256=WVnhQcOYCgAhiB4t47Kji-pN1tnvs--X5deCQwwGV
|
|
|
358
358
|
cirq/ops/qubit_order_test.py,sha256=B9xMIxlaI7YjRUNA6AkHJuUCFejGYw-lT7ZaSl31yTU,4238
|
|
359
359
|
cirq/ops/random_gate_channel.py,sha256=gKDqZa6AwdCIuuh2UOvO5oxCdGRDOInA7fI3ZLQ-LTY,5121
|
|
360
360
|
cirq/ops/random_gate_channel_test.py,sha256=U3EAaAlCZkgFIYxqwcSkPsaVGrKA2PSeG_DK2ou--AE,8606
|
|
361
|
-
cirq/ops/raw_types.py,sha256=
|
|
361
|
+
cirq/ops/raw_types.py,sha256=hbUwUufTLP7pBICDagQJwYb4BNmZ49IB4uilyR2YLjs,40290
|
|
362
362
|
cirq/ops/raw_types_test.py,sha256=RWUiB2TypXxbDTVaetQ7h-buGScUcQgY6YsFkmodZGY,33484
|
|
363
363
|
cirq/ops/state_preparation_channel.py,sha256=PjVtoLbjBAy_XqnFAY40Am-NifeuCFVVLW6RJxph5sQ,4778
|
|
364
364
|
cirq/ops/state_preparation_channel_test.py,sha256=yKUvLw_ft6cvIgRJcFQ779wZS-V6V-pzQq-rZRWdCmU,5922
|
|
@@ -399,6 +399,7 @@ cirq/protocols/has_stabilizer_effect_protocol.py,sha256=XH6Lv9SGuYhuuSB0mi5v8Eg5
|
|
|
399
399
|
cirq/protocols/has_stabilizer_effect_protocol_test.py,sha256=0ia7ehyGpmscjRP448dBANZKwnlbqSODdPUYRUhDEN0,3879
|
|
400
400
|
cirq/protocols/has_unitary_protocol.py,sha256=inj17qr8Pz2Zofj0Lsp2o7TWlfmdU1TybtRjs1TWVow,5372
|
|
401
401
|
cirq/protocols/has_unitary_protocol_test.py,sha256=IjmJ3dqvteFUUO4FLwCTokgUvYy8H2HJjLmTDzt2__Q,5610
|
|
402
|
+
cirq/protocols/hash_from_pickle_test.py,sha256=M95CrhwfXpavflvSetxUF7Qsm8boHoki4fZy2Tdijl8,4176
|
|
402
403
|
cirq/protocols/inverse_protocol.py,sha256=CEqtGRRj86WQyyALonRXxQrNq-fENOs_Zqrlr_BVau8,4115
|
|
403
404
|
cirq/protocols/inverse_protocol_test.py,sha256=pqqIU4_G4Npc9Z-SeoM9eCB2T5JRTeI02NCXhP0UtaI,2017
|
|
404
405
|
cirq/protocols/json_serialization.py,sha256=Otrrzsi74rfE_2wbK-xBUI3QzQaRnEXqsY1D_ktW4jk,24360
|
|
@@ -877,7 +878,7 @@ cirq/protocols/json_test_data/sympy.pi.repr,sha256=ZQS0my0esr3dWTZ3mWlqgR63uorPC
|
|
|
877
878
|
cirq/qis/__init__.py,sha256=YxFbb_S4mnR1OlAiiz8rst8vtU7o_1DBr0-YjMeROJA,1903
|
|
878
879
|
cirq/qis/channels.py,sha256=AxKgLUbWLrb1pz9xLtSpYm_stjN-IWOwLFYC9YZSons,12798
|
|
879
880
|
cirq/qis/channels_test.py,sha256=iqkSyfvx_c2ZpJKAVEsFyZRmKpzNrJsyFjHbaJUMqcQ,14454
|
|
880
|
-
cirq/qis/clifford_tableau.py,sha256=
|
|
881
|
+
cirq/qis/clifford_tableau.py,sha256=IBjjRobDIaohp6CCYJGjzIb7LC4LSwzxpUaUwpxizn0,25681
|
|
881
882
|
cirq/qis/clifford_tableau_test.py,sha256=Z-5YSysJw2H3AfgZxhptvUMr5GUjUFgPcAUdcust9Qk,18441
|
|
882
883
|
cirq/qis/entropy.py,sha256=H9WcGlTK0NBU3aOtRWS8HM53ghmUqLB4OXicbbmwJj0,3954
|
|
883
884
|
cirq/qis/entropy_test.py,sha256=NUT7Otn14rkoBbuOI3_PRthUf5aYxfc5tafCv0_wETw,1672
|
|
@@ -919,7 +920,7 @@ cirq/sim/state_vector_simulator.py,sha256=j1Dcu6k3gtX2cHedVlJiSgDQ_WQ2UUUyFnAEeH
|
|
|
919
920
|
cirq/sim/state_vector_simulator_test.py,sha256=wJq1OZRzKokeM9cJyaJXi6wHH2qi97h0HmJlYOEBDzU,7864
|
|
920
921
|
cirq/sim/state_vector_test.py,sha256=OjhAL2tWqJWstHV8RvJYQVqg95zm0PcS9nQKrLOhMmQ,16934
|
|
921
922
|
cirq/sim/clifford/__init__.py,sha256=lD7l6JuE5n0xwvOYNYH-giCH3qAEVH1SUwDrZM1jKKY,636
|
|
922
|
-
cirq/sim/clifford/clifford_simulator.py,sha256=
|
|
923
|
+
cirq/sim/clifford/clifford_simulator.py,sha256=JgwXOpdmiaMnsxfjodNi2OX03IpAKRrIEMZszXxKXZw,9749
|
|
923
924
|
cirq/sim/clifford/clifford_simulator_test.py,sha256=pgLz8-SSFLBq6kcJ516ufQMJiJI2dG9NM2nkmzwY124,20380
|
|
924
925
|
cirq/sim/clifford/clifford_tableau_simulation_state.py,sha256=fNkK0gZgfWIvMknGiCr4BjGO0wVYGW1Rc0pnwluerho,2160
|
|
925
926
|
cirq/sim/clifford/clifford_tableau_simulation_state_test.py,sha256=KTzEoK5HcauVBj5tc8sXLt5vBXbDhxnFyj1bLt09nHo,3184
|
|
@@ -929,12 +930,12 @@ cirq/sim/clifford/stabilizer_sampler.py,sha256=XfJ2Y0bpCZTdAmiOVMIYPKDQ5SII5EuDJ
|
|
|
929
930
|
cirq/sim/clifford/stabilizer_sampler_test.py,sha256=sNqJyUY--wqHjsPfm4E1YPBll1-GirvxKFz04n5I0f4,1338
|
|
930
931
|
cirq/sim/clifford/stabilizer_simulation_state.py,sha256=5ZeHd1mlz6LW_suOOEWHNX9i2FPFTfHSkGiWCxmGUO0,6739
|
|
931
932
|
cirq/sim/clifford/stabilizer_simulation_state_test.py,sha256=dsphoXTaIwRCjprGJQirSs0qeVKHlni_pt_GZJn5Vpc,4317
|
|
932
|
-
cirq/sim/clifford/stabilizer_state_ch_form.py,sha256=
|
|
933
|
+
cirq/sim/clifford/stabilizer_state_ch_form.py,sha256=vyyIKLcI-_Ox1QQbUSbTj_Zo4hotpDwvxQQ2u7zJxns,14049
|
|
933
934
|
cirq/sim/clifford/stabilizer_state_ch_form_test.py,sha256=FK0IsyrTfT6ZPZeBYmyPG2xpzUT7RG6P6UQw_61c6kU,3149
|
|
934
935
|
cirq/study/__init__.py,sha256=HCuFRBzCJGGDhtoHRzrnD5IWB8EnMrX-4M6AmVO0tP0,1220
|
|
935
936
|
cirq/study/flatten_expressions.py,sha256=B-CQcj8eSWAJPIff5bQiZGobnYx8kB0c5WTLowfCVXo,15604
|
|
936
937
|
cirq/study/flatten_expressions_test.py,sha256=6e7pTkaBrZW-EmG4teZxcwemqnxCtJW3kq2KOlPcwW8,6078
|
|
937
|
-
cirq/study/resolver.py,sha256=
|
|
938
|
+
cirq/study/resolver.py,sha256=dDEGIwWueP7ZICbEAUc6G5li2UoTFkPS9Qs2dSDCbV8,11906
|
|
938
939
|
cirq/study/resolver_test.py,sha256=QQe9Rr0z6qNbSWPEvCKd_DNka6454AWVKbG2J2DD1Wg,10228
|
|
939
940
|
cirq/study/result.py,sha256=KzjpjvDVCTFjMyq9r91pZSYdtcD1x3yj8jP_StlOSMg,19285
|
|
940
941
|
cirq/study/result_test.py,sha256=fq5BH78RswfTiYjMchJ4wEDDyaJu0QdJoGobMjKDeSI,15591
|
|
@@ -1136,7 +1137,7 @@ cirq/value/duration.py,sha256=isNzA1TuKb5rSaAYy4JpgT91Zt9_5XLQBSmMkuWCtD4,10358
|
|
|
1136
1137
|
cirq/value/duration_test.py,sha256=C7nwg7IlHoQOUhWa_aX8vy7_qp654ZIDtmnKF35UiqE,8244
|
|
1137
1138
|
cirq/value/linear_dict.py,sha256=BG3pckQPX4DPqNvp-HxI_dTzQf8sGx6nIRkn0-ye4Qg,10643
|
|
1138
1139
|
cirq/value/linear_dict_test.py,sha256=uEHbvobWV4EypOXQGe6B4xh6atLbQq8YSOomNHgv38o,17107
|
|
1139
|
-
cirq/value/measurement_key.py,sha256=
|
|
1140
|
+
cirq/value/measurement_key.py,sha256=glvyn36NylWMdtHYLFsD72jPZJsnKpFqQXKh8XpOX4Q,5200
|
|
1140
1141
|
cirq/value/measurement_key_test.py,sha256=GnEX5QdEVbmi0dR9URcgXQH23aqW7Y_PKmTb2eIdRCg,4466
|
|
1141
1142
|
cirq/value/periodic_value.py,sha256=U_tYBgWNVblZ6XDSwbXZin67KA0jUZiDAPpz-w7bnhw,3956
|
|
1142
1143
|
cirq/value/periodic_value_test.py,sha256=mMvj_Ai2T8BWRbc7jdvb7JPX8OZxlL4H7jtdvy54ono,4319
|
|
@@ -1149,16 +1150,16 @@ cirq/value/random_state_test.py,sha256=0VyxtuBYgrbHsNCXFZtcgucd5KwI1obMjILH2ZTZ5
|
|
|
1149
1150
|
cirq/value/timestamp.py,sha256=u0v5FmnSF_o3NE7aF-xIfQ5cDAVZzaUb-ZMdrxWYg2Y,3649
|
|
1150
1151
|
cirq/value/timestamp_test.py,sha256=eZt9LLVK6TQy-2Bo1djitUD4at7i7M4lN60bLCx9UPs,4029
|
|
1151
1152
|
cirq/value/type_alias.py,sha256=YD5m-77rx-hatIEVi5Q5j5tZ2Ji3Mmg4jUY9GT3LscM,1144
|
|
1152
|
-
cirq/value/value_equality_attr.py,sha256=
|
|
1153
|
+
cirq/value/value_equality_attr.py,sha256=9tU54y5JUAGKsvNV9G1nCWJioP6gvTlYfGN7Pe3YebI,10545
|
|
1153
1154
|
cirq/value/value_equality_attr_test.py,sha256=k_nl5hWxo4yMO6WNu0wU68wyeb-RN9Ua_Ix7s9UTfOE,6412
|
|
1154
1155
|
cirq/vis/__init__.py,sha256=e3Z1PI-Ay0hDHhIgFZEDwQIuO8C_aayNdL-EByF0J4o,1001
|
|
1155
1156
|
cirq/vis/density_matrix.py,sha256=kMAPcRh6f0ghZKSe86nB_2iFngrDsw0pNael1EZ5BEw,4819
|
|
1156
1157
|
cirq/vis/density_matrix_test.py,sha256=Xg41NQZBfoyrkaX3n9pW4q1LIxWpOW3Cr_I_Wx51GlQ,6965
|
|
1157
|
-
cirq/vis/heatmap.py,sha256=
|
|
1158
|
+
cirq/vis/heatmap.py,sha256=L1jLSXMM52BcriCqYrhbb7yv1fXverJuwgOM-0ZOL6c,17694
|
|
1158
1159
|
cirq/vis/heatmap_test.py,sha256=5kWIxJZZbZcc93XZrZ18lF2gRUleR1iqYbWfHs4cvu4,20531
|
|
1159
1160
|
cirq/vis/histogram.py,sha256=gQUrcebsk5wgPT38pWFW55jG9zaKhxp8zLRGmmVDk8s,5107
|
|
1160
1161
|
cirq/vis/histogram_test.py,sha256=Qlw0e3amw_MFga-hNweiLzRCH174W9bB2qkmX_RiS-U,1904
|
|
1161
|
-
cirq/vis/state_histogram.py,sha256=
|
|
1162
|
+
cirq/vis/state_histogram.py,sha256=4Wd25783W_s0R3qzhSrPFXRjyxQb0_u0lTbDMW8-DK0,4264
|
|
1162
1163
|
cirq/vis/state_histogram_test.py,sha256=KzxDJedwE-KZR-K_TZlMh01DroSnZPArZPOo4CBEYWI,3761
|
|
1163
1164
|
cirq/vis/vis_utils.py,sha256=CsNHb9vMBF9UjxZ2k5XqMESbATOx0FXhWAwxFbq-9pQ,1239
|
|
1164
1165
|
cirq/vis/vis_utils_test.py,sha256=-aiL5WmhPDs_5BF2lDol1koD4JuHTiYxLK2ofyWrbCU,939
|
|
@@ -1168,7 +1169,7 @@ cirq/work/collector_test.py,sha256=MirBDZ584HMZ3nJRUOSSQZcAyLR6sKc124GTQqPkunc,4
|
|
|
1168
1169
|
cirq/work/observable_grouping.py,sha256=-FVJPuB-sDqoNQtiMxuO_TKhy-5uvMeRzfeWMfbxoT4,3492
|
|
1169
1170
|
cirq/work/observable_grouping_test.py,sha256=lVLLhQlwpAuBPUEkfCg7cTS_AhtuojLbvy288XX3Rn0,5811
|
|
1170
1171
|
cirq/work/observable_measurement.py,sha256=8XwQmlOpTYrFEdAPQo6c29fkghq6z6fsbLg3lJp57DI,28319
|
|
1171
|
-
cirq/work/observable_measurement_data.py,sha256=
|
|
1172
|
+
cirq/work/observable_measurement_data.py,sha256=dR3_HZvWf949DxC7mYm5kvE5TZOrk6OH-STNsgXdgK0,20940
|
|
1172
1173
|
cirq/work/observable_measurement_data_test.py,sha256=vI_SMbG4riMu0XD0tN9d_Kbq2u73k6kxTWU6Vx_tfOI,19696
|
|
1173
1174
|
cirq/work/observable_measurement_test.py,sha256=mKa_iXZ5lBy5zWD_X9UBabwm6MQnTwx2dDMTpPwpqBM,20189
|
|
1174
1175
|
cirq/work/observable_readout_calibration.py,sha256=9lfeybebV4Fh3Y-ExtxIGErPzZcK16oyTbN5XHMIaBA,1888
|
|
@@ -1181,8 +1182,8 @@ cirq/work/sampler.py,sha256=JEAeQQRF3bqlO9AkOf4XbrTATDI5f5JgyM_FAUCNxao,19751
|
|
|
1181
1182
|
cirq/work/sampler_test.py,sha256=B2ZsuqGT854gQtBIAh8k0LiG9Vj5wSzcGvkxOUoTcW4,13217
|
|
1182
1183
|
cirq/work/zeros_sampler.py,sha256=x1C7cup66a43n-3tm8QjhiqJa07qcJW10FxNp9jJ59Q,2356
|
|
1183
1184
|
cirq/work/zeros_sampler_test.py,sha256=JIkpBBFPJe5Ba4142vzogyWyboG1Q1ZAm0UVGgOoZn8,3279
|
|
1184
|
-
cirq_core-1.5.0.
|
|
1185
|
-
cirq_core-1.5.0.
|
|
1186
|
-
cirq_core-1.5.0.
|
|
1187
|
-
cirq_core-1.5.0.
|
|
1188
|
-
cirq_core-1.5.0.
|
|
1185
|
+
cirq_core-1.5.0.dev20240807173926.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
|
|
1186
|
+
cirq_core-1.5.0.dev20240807173926.dist-info/METADATA,sha256=_4_5OYVZqfwvNsyZ--WrZ69qIt6OjqM-0JKKVAsFq5c,1992
|
|
1187
|
+
cirq_core-1.5.0.dev20240807173926.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
|
1188
|
+
cirq_core-1.5.0.dev20240807173926.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
|
|
1189
|
+
cirq_core-1.5.0.dev20240807173926.dist-info/RECORD,,
|
{cirq_core-1.5.0.dev20240803000525.dist-info → cirq_core-1.5.0.dev20240807173926.dist-info}/LICENSE
RENAMED
|
File without changes
|
|
File without changes
|