Skip to content

Commit

Permalink
Fix MeasurementKey repr s.t. eval(repr(k)) == k (#4441)
Browse files Browse the repository at this point in the history
Fixes first part of #4440
  • Loading branch information
tanujkhattar committed Aug 19, 2021
1 parent e0c4a8a commit b1db3fa
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 5 deletions.
6 changes: 5 additions & 1 deletion cirq-core/cirq/protocols/json_test_data/MeasurementKey.repr
@@ -1 +1,5 @@
[cirq.MeasurementKey('key'), cirq.MeasurementKey('key', ('outer',)), cirq.MeasurementKey('key', ('nested','path'))]
[
cirq.MeasurementKey(name="key"),
cirq.MeasurementKey(path=('outer',), name='key'),
cirq.MeasurementKey(path=('nested', 'path'), name='key'),
]
4 changes: 2 additions & 2 deletions cirq-core/cirq/value/measurement_key.py
Expand Up @@ -61,9 +61,9 @@ def __eq__(self, other) -> bool:

def __repr__(self):
if self.path:
return f'cirq.MeasurementKey(path={self.path}, name={self.name})'
return f"cirq.MeasurementKey(path={self.path!r}, name='{self.name}')"
else:
return f'cirq.MeasurementKey(name={self.name})'
return f"cirq.MeasurementKey(name='{self.name}')"

def __str__(self):
if self._str is None:
Expand Down
6 changes: 4 additions & 2 deletions cirq-core/cirq/value/measurement_key_test.py
Expand Up @@ -59,9 +59,11 @@ def test_str(key_string):

def test_repr():
mkey = cirq.MeasurementKey('key_string')
assert repr(mkey) == f'cirq.MeasurementKey(name=key_string)'
assert repr(mkey) == f"cirq.MeasurementKey(name='key_string')"
assert eval(repr(mkey)) == mkey
mkey = cirq.MeasurementKey.parse_serialized('nested:key')
assert repr(mkey) == f'cirq.MeasurementKey(path=(\'nested\',), name=key)'
assert repr(mkey) == f"cirq.MeasurementKey(path=('nested',), name='key')"
assert eval(repr(mkey)) == mkey


def test_json_dict():
Expand Down

0 comments on commit b1db3fa

Please sign in to comment.