[Python-Dev] [Python-checkins] cpython (3.3): Issue #16641: Fix default values of sched.scheduler.enter arguments were

Georg Brandl g.brandl at gmx.net
Sat Dec 29 22:07:49 CET 2012


On 12/29/2012 08:32 PM, Eli Bendersky wrote:
> 
> 
> 
> On Sat, Dec 29, 2012 at 11:17 AM, serhiy.storchaka <python-checkins at python.org
> <mailto:python-checkins at python.org>> wrote:
> 
>     http://hg.python.org/cpython/rev/1c9c0f92df65
>     changeset:   81134:1c9c0f92df65
>     branch:      3.3
>     parent:      81132:5db0833f135b
>     user:        Serhiy Storchaka <storchaka at gmail.com <mailto:storchaka at gmail.com>>
>     date:        Sat Dec 29 21:13:45 2012 +0200
>     summary:
>       Issue #16641: Fix default values of sched.scheduler.enter arguments were
>     modifiable.
> 
>     files:
>       Doc/library/sched.rst |  23 ++++++++++++++---------
>       Lib/sched.py          |   8 ++++++--
>       Misc/NEWS             |   3 +++
>       3 files changed, 23 insertions(+), 11 deletions(-)
> 
> 
>     diff --git a/Doc/library/sched.rst b/Doc/library/sched.rst
>     --- a/Doc/library/sched.rst
>     +++ b/Doc/library/sched.rst
>     @@ -36,19 +36,22 @@
> 
>         >>> import sched, time
>         >>> s = sched.scheduler(time.time, time.sleep)
>     -   >>> def print_time(): print("From print_time", time.time())
>     +   >>> def print_time(a='default'):
>     +   ...     print("From print_time", time.time(), a)
>         ...
>         >>> def print_some_times():
>         ...     print(time.time())
>     -   ...     s.enter(5, 1, print_time, ())
>     -   ...     s.enter(10, 1, print_time, ())
>     +   ...     s.enter(10, 1, print_time)
>     +   ...     s.enter(5, 2, print_time, argument=('positional',))
>     +   ...     s.enter(5, 1, print_time, kwargs={'a': 'keyword'})
>         ...     s.run()
>         ...     print(time.time())
>         ...
>         >>> print_some_times()
>         930343690.257
>     -   From print_time 930343695.274
>     -   From print_time 930343700.273
>     +   From print_time 930343695.274 positional
>     +   From print_time 930343695.275 keyword
>     +   From print_time 930343700.273 default
>         930343700.276
> 
>      .. _scheduler-objects:
>     @@ -59,7 +62,7 @@
>      :class:`scheduler` instances have the following methods and attributes:
> 
> 
>     -.. method:: scheduler.enterabs(time, priority, action, argument=[], kwargs={})
>     +.. method:: scheduler.enterabs(time, priority, action, argument=(), kwargs={})
> 
>         Schedule a new event. The *time* argument should be a numeric type
>     compatible
>         with the return value of the *timefunc* function passed  to the constructor.
>     @@ -67,8 +70,10 @@
>         *priority*.
> 
>         Executing the event means executing ``action(*argument, **kwargs)``.
>     -   *argument* must be a sequence holding the parameters for *action*.
>     -   *kwargs* must be a dictionary holding the keyword parameters for *action*.
>     +   Optional *argument* argument must be a sequence holding the parameters
>     +   for *action* if any used.
>     +   Optional *kwargs* argument must be a dictionary holding the keyword
>     +   parameters for *action* if any used.
> 
> 
> I don't see how this change improves the documentation. To keep the grammar
> correct and just state that the arguments are optional, I would simply replace
> "must be" by "is". For example:
> 
>   *argument* is a sequence holding the parameters for *action*.
> 
> This is short, and since the function signature clearly shows that argument has
> a default value, I think it conveys the meaning it should.

Hi Eli,

I'm sure we non-native speakers are fine with any improvements you can make
during commit review.

Georg



More information about the Python-Dev mailing list