cirq-core 1.5.0.dev20250228220317__py3-none-any.whl → 1.5.0.dev20250303232646__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.dev20250228220317"
31
+ __version__ = "1.5.0.dev20250303232646"
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.dev20250228220317"
6
+ assert cirq.__version__ == "1.5.0.dev20250303232646"
@@ -213,8 +213,6 @@ class GridQid(_BaseGridQid):
213
213
  dimension: The dimension of the qid's Hilbert space, i.e.
214
214
  the number of quantum levels.
215
215
  """
216
- row = int(row)
217
- col = int(col)
218
216
  dimension = int(dimension)
219
217
  key = (row, col, dimension)
220
218
  inst = cls._cache.get(key)
@@ -224,7 +222,7 @@ class GridQid(_BaseGridQid):
224
222
  inst._row = row
225
223
  inst._col = col
226
224
  inst._dimension = dimension
227
- inst._hash = ((dimension - 2) * 1_000_003 + col) * 1_000_003 + row
225
+ inst._hash = ((dimension - 2) * 1_000_003 + hash(col)) * 1_000_003 + hash(row)
228
226
  cls._cache[key] = inst
229
227
  return inst
230
228
 
@@ -380,15 +378,13 @@ class GridQubit(_BaseGridQid):
380
378
  row: the row coordinate
381
379
  col: the column coordinate
382
380
  """
383
- row = int(row)
384
- col = int(col)
385
381
  key = (row, col)
386
382
  inst = cls._cache.get(key)
387
383
  if inst is None:
388
384
  inst = super().__new__(cls)
389
385
  inst._row = row
390
386
  inst._col = col
391
- inst._hash = col * 1_000_003 + row
387
+ inst._hash = hash(col) * 1_000_003 + hash(row)
392
388
  cls._cache[key] = inst
393
389
  return inst
394
390
 
@@ -393,22 +393,30 @@ def test_complex():
393
393
  assert isinstance(complex(cirq.GridQubit(row=1, col=2)), complex)
394
394
 
395
395
 
396
- def test_numpy_index():
397
- np5, np6, np3 = [np.int64(i) for i in [5, 6, 3]]
396
+ @pytest.mark.parametrize('dtype', (np.int8, np.int64, float, np.float64))
397
+ def test_numpy_index(dtype):
398
+ np5, np6, np3 = [dtype(i) for i in [5, 6, 3]]
398
399
  q = cirq.GridQubit(np5, np6)
399
- hash(q) # doesn't throw
400
+ assert hash(q) == hash(cirq.GridQubit(5, 6))
400
401
  assert q.row == 5
401
402
  assert q.col == 6
402
403
  assert q.dimension == 2
403
- assert isinstance(q.row, int)
404
- assert isinstance(q.col, int)
405
404
  assert isinstance(q.dimension, int)
406
405
 
407
406
  q = cirq.GridQid(np5, np6, dimension=np3)
408
- hash(q) # doesn't throw
407
+ assert hash(q) == hash(cirq.GridQid(5, 6, dimension=3))
409
408
  assert q.row == 5
410
409
  assert q.col == 6
411
410
  assert q.dimension == 3
412
- assert isinstance(q.row, int)
413
- assert isinstance(q.col, int)
414
411
  assert isinstance(q.dimension, int)
412
+
413
+
414
+ @pytest.mark.parametrize('dtype', (float, np.float64))
415
+ def test_non_integer_index(dtype):
416
+ # Not supported type-wise, but is used in practice, so behavior needs to be preserved.
417
+ q = cirq.GridQubit(dtype(5.5), dtype(6.5))
418
+ assert hash(q) == hash(cirq.GridQubit(5.5, 6.5))
419
+ assert q.row == 5.5
420
+ assert q.col == 6.5
421
+ assert isinstance(q.row, dtype)
422
+ assert isinstance(q.col, dtype)
@@ -191,7 +191,6 @@ class LineQid(_BaseLineQid):
191
191
  dimension: The dimension of the qid's Hilbert space, i.e.
192
192
  the number of quantum levels.
193
193
  """
194
- x = int(x)
195
194
  dimension = int(dimension)
196
195
  key = (x, dimension)
197
196
  inst = cls._cache.get(key)
@@ -200,7 +199,7 @@ class LineQid(_BaseLineQid):
200
199
  inst = super().__new__(cls)
201
200
  inst._x = x
202
201
  inst._dimension = dimension
203
- inst._hash = (dimension - 2) * 1_000_003 + x
202
+ inst._hash = (dimension - 2) * 1_000_003 + hash(x)
204
203
  cls._cache[key] = inst
205
204
  return inst
206
205
 
@@ -302,12 +301,11 @@ class LineQubit(_BaseLineQid):
302
301
  Args:
303
302
  x: The x coordinate.
304
303
  """
305
- x = int(x)
306
304
  inst = cls._cache.get(x)
307
305
  if inst is None:
308
306
  inst = super().__new__(cls)
309
307
  inst._x = x
310
- inst._hash = x
308
+ inst._hash = hash(x)
311
309
  cls._cache[x] = inst
312
310
  return inst
313
311
 
@@ -287,18 +287,26 @@ def test_numeric():
287
287
  assert isinstance(complex(cirq.LineQubit(x=5)), complex)
288
288
 
289
289
 
290
- def test_numpy_index():
291
- np5 = np.int64(5)
290
+ @pytest.mark.parametrize('dtype', (np.int8, np.int64, float, np.float64))
291
+ def test_numpy_index(dtype):
292
+ np5 = dtype(5)
292
293
  q = cirq.LineQubit(np5)
293
294
  assert hash(q) == 5
294
295
  assert q.x == 5
295
296
  assert q.dimension == 2
296
- assert isinstance(q.x, int)
297
297
  assert isinstance(q.dimension, int)
298
298
 
299
- q = cirq.LineQid(np5, np.int64(3))
299
+ q = cirq.LineQid(np5, dtype(3))
300
300
  hash(q) # doesn't throw
301
301
  assert q.x == 5
302
302
  assert q.dimension == 3
303
- assert isinstance(q.x, int)
304
303
  assert isinstance(q.dimension, int)
304
+
305
+
306
+ @pytest.mark.parametrize('dtype', (float, np.float64))
307
+ def test_non_integer_index(dtype):
308
+ # Not supported type-wise, but is used in practice, so behavior needs to be preserved.
309
+ q = cirq.LineQubit(dtype(5.5))
310
+ assert q.x == 5.5
311
+ assert q.x == dtype(5.5)
312
+ assert isinstance(q.x, dtype)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cirq-core
3
- Version: 1.5.0.dev20250228220317
3
+ Version: 1.5.0.dev20250303232646
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=mQS8KdaZuqddrX85Gce8BiTwbXKlAA3-76pRebOXt6o,1206
8
- cirq/_version_test.py,sha256=bTPakGqAk4fYExSWkfQFy2gLSyZT0OkyE2yNf8aLB4o,147
7
+ cirq/_version.py,sha256=5ZYL8YisEAJmvf7uCiOE__WF4XbQiu82jV2Ci4emFc8,1206
8
+ cirq/_version_test.py,sha256=f2hAsut7CTpxQp2HzLKtCb8j7VkWefO4tTKWTgjnRFk,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
@@ -157,12 +157,12 @@ cirq/devices/device.py,sha256=9rUZwpbbmqk8AUVH4N4KfJ59j5im7hVgDJAHtN9iH_0,5361
157
157
  cirq/devices/device_test.py,sha256=v3gT6jrGLLfYnZbTizIaIMkI3s5_xVM3OV9JQchvAxY,1124
158
158
  cirq/devices/grid_device_metadata.py,sha256=h4Xo_PaiZqQSVUgb1ctVtYYYE2tNik2KQhCgooilZrE,8629
159
159
  cirq/devices/grid_device_metadata_test.py,sha256=IeOqYOZcUGhB4ivuQW2g0Q9dt-zFA0H6Dav6yv6Lul0,8592
160
- cirq/devices/grid_qubit.py,sha256=7Pvy5FXwOJPxN-EDrEaS3Jip_2PLEeih8uZHYgcgsHM,18927
161
- cirq/devices/grid_qubit_test.py,sha256=qC7AEp9r8-KWSRiM-GMua8rYAyPWFLSq8dedLjwf6Ks,14621
160
+ cirq/devices/grid_qubit.py,sha256=oT7UbNAOL7Sgh-aksI1Uow4SH9O1MTgfOgLiSYLX94A,18859
161
+ cirq/devices/grid_qubit_test.py,sha256=Mf1AfjvcpKPHeg-2GWDZaKPUsXGn8wvidIbwu_3rZu4,15015
162
162
  cirq/devices/insertion_noise_model.py,sha256=-X07pSTp-lxQj6AQT_89gTHx_jKtI9GSMrD4dozCwTs,3614
163
163
  cirq/devices/insertion_noise_model_test.py,sha256=i9jB257VXO5wi5QdDO5G4tphx5RKMaouUsdsQT3kiBU,3992
164
- cirq/devices/line_qubit.py,sha256=XXZl1WfqOl4PuTgZTbijtwMxzZoB77t3_C-c8XAExBA,11876
165
- cirq/devices/line_qubit_test.py,sha256=1smZ8Jvf8y0KkLM-zuDWg_TH05nwF07WxZORD1z-6Es,9975
164
+ cirq/devices/line_qubit.py,sha256=iVxyiJsnvlMQ_GExpmWyoGMwGRObxlxEFhsSjtD1RLY,11850
165
+ cirq/devices/line_qubit_test.py,sha256=eu47MSzy5eymIccIuHct8Z_WJeHhZYEARR3yB3NXyO8,10287
166
166
  cirq/devices/named_topologies.py,sha256=grFXvi0UDHZl1pRyHDWSqjub3xF_Yf7RLXfMAZbyoEA,15790
167
167
  cirq/devices/named_topologies_test.py,sha256=Nj_tlGmqPH7IVUzpUHPnAPlfUWhSGbZsIHdsLLjxIZs,4736
168
168
  cirq/devices/noise_model.py,sha256=c00mxBd7ZYw8k-cCoKgF5ePI8WKcPyJS925NarivIRI,11339
@@ -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.dev20250228220317.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1206
- cirq_core-1.5.0.dev20250228220317.dist-info/METADATA,sha256=KmW10JtLUvvFPmlfTTPrCZ-gMOIsjqX57TwpwhhChGw,4817
1207
- cirq_core-1.5.0.dev20250228220317.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1208
- cirq_core-1.5.0.dev20250228220317.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1209
- cirq_core-1.5.0.dev20250228220317.dist-info/RECORD,,
1205
+ cirq_core-1.5.0.dev20250303232646.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
1206
+ cirq_core-1.5.0.dev20250303232646.dist-info/METADATA,sha256=TBd_aS_DbyScMMaiBdcHbYTa0I_sEka249ESOSWtzw8,4817
1207
+ cirq_core-1.5.0.dev20250303232646.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
1208
+ cirq_core-1.5.0.dev20250303232646.dist-info/top_level.txt,sha256=Sz9iOxHU0IEMLSFGwiwOCaN2e9K-jFbBbtpPN1hB73g,5
1209
+ cirq_core-1.5.0.dev20250303232646.dist-info/RECORD,,