]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-25066: Added repr for multiprocessing.Event (GH-29749)
authorKumar Aditya <rahuladitya303@gmail.com>
Thu, 9 Dec 2021 13:16:45 +0000 (18:46 +0530)
committerGitHub <noreply@github.com>
Thu, 9 Dec 2021 13:16:45 +0000 (13:16 +0000)
Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Lib/multiprocessing/synchronize.py
Lib/test/_test_multiprocessing.py
Misc/NEWS.d/next/Library/2021-11-24-12-25-42.bpo-25066.YIcIkn.rst [new file with mode: 0644]

index d0be48f1fd7a8f14b935f74d89c168d831b84dbc..42624b543601a16d47d01441578225dcaedc579f 100644 (file)
@@ -353,6 +353,9 @@ class Event(object):
                 return True
             return False
 
+    def __repr__(self) -> str:
+        set_status = 'set' if self.is_set() else 'unset'
+        return f"<{type(self).__qualname__} at {id(self):#x} {set_status}>"
 #
 # Barrier
 #
index 3bc5b8f3d79b02c3df5dbc705ddfd1a91d3c1696..b2d656ab428975dbf888d41bf389d5a9dde25958 100644 (file)
@@ -1645,7 +1645,20 @@ class _TestEvent(BaseTestCase):
         self.assertEqual(wait(), True)
         p.join()
 
-#
+    def test_repr(self) -> None:
+        event = self.Event()
+        if self.TYPE == 'processes':
+            self.assertRegex(repr(event), r"<Event at .* unset>")
+            event.set()
+            self.assertRegex(repr(event), r"<Event at .* set>")
+            event.clear()
+            self.assertRegex(repr(event), r"<Event at .* unset>")
+        elif self.TYPE == 'manager':
+            self.assertRegex(repr(event), r"<EventProxy object, typeid 'Event' at .*")
+            event.set()
+            self.assertRegex(repr(event), r"<EventProxy object, typeid 'Event' at .*")
+
+
 # Tests for Barrier - adapted from tests in test/lock_tests.py
 #
 
diff --git a/Misc/NEWS.d/next/Library/2021-11-24-12-25-42.bpo-25066.YIcIkn.rst b/Misc/NEWS.d/next/Library/2021-11-24-12-25-42.bpo-25066.YIcIkn.rst
new file mode 100644 (file)
index 0000000..df19d04
--- /dev/null
@@ -0,0 +1 @@
+Added a :meth:`__repr__` method to  :class:`multiprocessing.Event` objects, patch by Kumar Aditya.
\ No newline at end of file