Skip to content

Commit cf4b367

Browse files
committed
Change OrderedSet.__repr__ to use OrderedSet.of
I believe OrderedSet.of(1, 2, 3) is slightly more readable than OrderedSet([1, 2, 3]). It avoids an extra pair of brackets.
1 parent 84bd454 commit cf4b367

File tree

3 files changed

+8
-6
lines changed

3 files changed

+8
-6
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ A simple and efficient pure-python ordered set.
1212
from techcable.orderedset import OrderedSet
1313

1414
# prints {1, 2, 7, 3}
15-
print(OrderedSet([1, 2, 7, 2, 3]))
15+
print(OrderedSet.of(1, 2, 7, 2, 3))
1616
```
1717

1818
Supports [pydantic](pydantic.org) validation & serialization:
@@ -21,9 +21,9 @@ import pydantic
2121
from techcable.orderedset import OrderedSet
2222

2323
model = pydantic.TypeAdapter(OrderedSet[int])
24-
# prints OrderedSet([1,2,7,8])
24+
# prints OrderedSet.of(1,2,7,8)
2525
print(repr(model.validate_python([1,2,7,8])))
26-
assert model.dump_python(OrderedSet([1,2,7,8])) == [1,2,7,8]
26+
assert model.dump_python(OrderedSet.of(1,2,7,8)) == [1,2,7,8]
2727
```
2828

2929
## Potential Future Features

src/techcable/orderedset/_orderedset.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@ def copy(self) -> OrderedSet[T]:
241241
@override
242242
def __repr__(self) -> str:
243243
# by convention, this should roundtrip through eval
244-
return f"OrderedSet([{', '.join(map(repr, self))}])"
244+
# in v0.1.6, this changed to use OrderedSet.of(1,2,3) instead of OrderedSet([1,2,3])
245+
return f"OrderedSet.of({', '.join(map(repr, self))})"
245246

246247
@override
247248
def __str__(self) -> str:

tests/test_simple.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ def test_dedup():
5858

5959
def test_format():
6060
# OrderedSet.__repr__ needs to round trip through eval
61-
assert repr(OrderedSet([1, 2, 3])) == "OrderedSet([1, 2, 3])"
62-
assert repr(OrderedSet(["foo"])) == "OrderedSet(['foo'])"
61+
# since v0.1.6 we use of OrderedSet.of
62+
assert repr(OrderedSet([1, 2, 3])) == "OrderedSet.of(1, 2, 3)"
63+
assert repr(OrderedSet(["foo"])) == "OrderedSet.of('foo')"
6364
# OrderedSet.__str__ has no such requirement
6465
assert str(OrderedSet([1, 2, 3])) == "{1, 2, 3}"
6566
# however, it still should call repr on each element, not str

0 commit comments

Comments
 (0)