From f9e49dd346711dff6d4301a2edc0ca23f7f12b6f Mon Sep 17 00:00:00 2001 From: Victor Stinner <victor.stinner@gmail.com> Date: Thu, 5 Jun 2014 12:06:44 +0200 Subject: [PATCH] Tulip issue 83, Python issue #21252: Fill some XXX docstrings in asyncio --- Doc/library/asyncio-eventloop.rst | 8 +++---- Lib/asyncio/events.py | 35 ++++++++++++++++++++----------- Lib/asyncio/unix_events.py | 4 ++-- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst index b961260e35e..6d0e617e4bb 100644 --- a/Doc/library/asyncio-eventloop.rst +++ b/Doc/library/asyncio-eventloop.rst @@ -64,19 +64,19 @@ An event loop policy must implement the following interface: .. method:: get_event_loop() - Get the event loop for current context. Returns an event loop object - implementing :class:`BaseEventLoop` interface, or raises an exception in case + Get the event loop for the current context. Returns an event loop object + implementing the :class:`BaseEventLoop` interface, or raises an exception in case no event loop has been set for the current context and the current policy does not specify to create one. It should never return ``None``. .. method:: set_event_loop(loop) - Set the event loop of the current context to *loop*. + Set the event loop for the current context to *loop*. .. method:: new_event_loop() Create and return a new event loop object according to this policy's rules. - If there's need to set this loop as the event loop of the current context, + If there's need to set this loop as the event loop for the current context, :meth:`set_event_loop` must be called explicitly. Access to the global loop policy diff --git a/Lib/asyncio/events.py b/Lib/asyncio/events.py index f0ad5680520..4a9a9a38857 100644 --- a/Lib/asyncio/events.py +++ b/Lib/asyncio/events.py @@ -355,25 +355,33 @@ class AbstractEventLoopPolicy: """Abstract policy for accessing the event loop.""" def get_event_loop(self): - """XXX""" + """Get the event loop for the current context. + + Returns an event loop object implementing the BaseEventLoop interface, + or raises an exception in case no event loop has been set for the + current context and the current policy does not specify to create one. + + It should never return None.""" raise NotImplementedError def set_event_loop(self, loop): - """XXX""" + """Set the event loop for the current context to loop.""" raise NotImplementedError def new_event_loop(self): - """XXX""" + """Create and return a new event loop object according to this + policy's rules. If there's need to set this loop as the event loop for + the current context, set_event_loop must be called explicitly.""" raise NotImplementedError # Child processes handling (Unix only). def get_child_watcher(self): - """XXX""" + "Get the watcher for child processes." raise NotImplementedError def set_child_watcher(self, watcher): - """XXX""" + """Set the watcher for child processes.""" raise NotImplementedError @@ -447,39 +455,42 @@ def _init_event_loop_policy(): def get_event_loop_policy(): - """XXX""" + """Get the current event loop policy.""" if _event_loop_policy is None: _init_event_loop_policy() return _event_loop_policy def set_event_loop_policy(policy): - """XXX""" + """Set the current event loop policy. + + If policy is None, the default policy is restored.""" global _event_loop_policy assert policy is None or isinstance(policy, AbstractEventLoopPolicy) _event_loop_policy = policy def get_event_loop(): - """XXX""" + """Equivalent to calling get_event_loop_policy().get_event_loop().""" return get_event_loop_policy().get_event_loop() def set_event_loop(loop): - """XXX""" + """Equivalent to calling get_event_loop_policy().set_event_loop(loop).""" get_event_loop_policy().set_event_loop(loop) def new_event_loop(): - """XXX""" + """Equivalent to calling get_event_loop_policy().new_event_loop().""" return get_event_loop_policy().new_event_loop() def get_child_watcher(): - """XXX""" + """Equivalent to calling get_event_loop_policy().get_child_watcher().""" return get_event_loop_policy().get_child_watcher() def set_child_watcher(watcher): - """XXX""" + """Equivalent to calling + get_event_loop_policy().set_child_watcher(watcher).""" return get_event_loop_policy().set_child_watcher(watcher) diff --git a/Lib/asyncio/unix_events.py b/Lib/asyncio/unix_events.py index 230fbc38b41..acb327d9981 100644 --- a/Lib/asyncio/unix_events.py +++ b/Lib/asyncio/unix_events.py @@ -822,7 +822,7 @@ class _UnixDefaultEventLoopPolicy(events.BaseDefaultEventLoopPolicy): self._watcher.attach_loop(loop) def get_child_watcher(self): - """Get the child watcher + """Get the watcher for child processes. If not yet set, a SafeChildWatcher object is automatically created. """ @@ -832,7 +832,7 @@ class _UnixDefaultEventLoopPolicy(events.BaseDefaultEventLoopPolicy): return self._watcher def set_child_watcher(self, watcher): - """Set the child watcher""" + """Set the watcher for child processes.""" assert watcher is None or isinstance(watcher, AbstractChildWatcher)