Skip to content

Commit af6b406

Browse files
bpo-25066: Added repr for multiprocessing.Event (GH-29749)
Co-authored-by: Pablo Galindo Salgado <[email protected]>
1 parent e2cfc89 commit af6b406

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

Lib/multiprocessing/synchronize.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,9 @@ def wait(self, timeout=None):
353353
return True
354354
return False
355355

356+
def __repr__(self) -> str:
357+
set_status = 'set' if self.is_set() else 'unset'
358+
return f"<{type(self).__qualname__} at {id(self):#x} {set_status}>"
356359
#
357360
# Barrier
358361
#

Lib/test/_test_multiprocessing.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1645,7 +1645,20 @@ def test_event(self):
16451645
self.assertEqual(wait(), True)
16461646
p.join()
16471647

1648-
#
1648+
def test_repr(self) -> None:
1649+
event = self.Event()
1650+
if self.TYPE == 'processes':
1651+
self.assertRegex(repr(event), r"<Event at .* unset>")
1652+
event.set()
1653+
self.assertRegex(repr(event), r"<Event at .* set>")
1654+
event.clear()
1655+
self.assertRegex(repr(event), r"<Event at .* unset>")
1656+
elif self.TYPE == 'manager':
1657+
self.assertRegex(repr(event), r"<EventProxy object, typeid 'Event' at .*")
1658+
event.set()
1659+
self.assertRegex(repr(event), r"<EventProxy object, typeid 'Event' at .*")
1660+
1661+
16491662
# Tests for Barrier - adapted from tests in test/lock_tests.py
16501663
#
16511664

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Added a :meth:`__repr__` method to :class:`multiprocessing.Event` objects, patch by Kumar Aditya.

0 commit comments

Comments
 (0)