Skip to content

Commit

Permalink
[3.12] pythongh-106232: Make timeit doc command lines compatible with…
Browse files Browse the repository at this point in the history
… Windows. (pythonGH-106296) (python#106298)

pythongh-106232: Make timeit doc command lines compatible with Windows. (pythonGH-106296)

Command Prompt (CMD Shell) and older versions of PowerShell
require double quotes and single quotes inside the string.
This form also works on linux and macOS.
(cherry picked from commit 04dfc6f)

Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
  • Loading branch information
miss-islington and terryjreedy authored Jul 1, 2023
1 parent c4298d5 commit 8738c5b
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
18 changes: 9 additions & 9 deletions Doc/library/timeit.rst
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ can be used to compare three different expressions:

.. code-block:: shell-session
$ python -m timeit '"-".join(str(n) for n in range(100))'
$ python -m timeit "'-'.join(str(n) for n in range(100))"
10000 loops, best of 5: 30.2 usec per loop
$ python -m timeit '"-".join([str(n) for n in range(100)])'
$ python -m timeit "'-'.join([str(n) for n in range(100)])"
10000 loops, best of 5: 27.5 usec per loop
$ python -m timeit '"-".join(map(str, range(100)))'
$ python -m timeit "'-'.join(map(str, range(100)))"
10000 loops, best of 5: 23.2 usec per loop
This can be achieved from the :ref:`python-interface` with::
Expand Down Expand Up @@ -277,9 +277,9 @@ It is possible to provide a setup statement that is executed only once at the be

.. code-block:: shell-session
$ python -m timeit -s 'text = "sample string"; char = "g"' 'char in text'
$ python -m timeit -s "text = 'sample string'; char = 'g'" "char in text"
5000000 loops, best of 5: 0.0877 usec per loop
$ python -m timeit -s 'text = "sample string"; char = "g"' 'text.find(char)'
$ python -m timeit -s "text = 'sample string'; char = 'g'" "text.find(char)"
1000000 loops, best of 5: 0.342 usec per loop
In the output, there are three fields. The loop count, which tells you how many
Expand Down Expand Up @@ -313,14 +313,14 @@ to test for missing and present object attributes:

.. code-block:: shell-session
$ python -m timeit 'try:' ' str.__bool__' 'except AttributeError:' ' pass'
$ python -m timeit "try:" " str.__bool__" "except AttributeError:" " pass"
20000 loops, best of 5: 15.7 usec per loop
$ python -m timeit 'if hasattr(str, "__bool__"): pass'
$ python -m timeit "if hasattr(str, '__bool__'): pass"
50000 loops, best of 5: 4.26 usec per loop
$ python -m timeit 'try:' ' int.__bool__' 'except AttributeError:' ' pass'
$ python -m timeit "try:" " int.__bool__" "except AttributeError:" " pass"
200000 loops, best of 5: 1.43 usec per loop
$ python -m timeit 'if hasattr(int, "__bool__"): pass'
$ python -m timeit "if hasattr(int, '__bool__'): pass"
100000 loops, best of 5: 2.23 usec per loop
::
Expand Down
2 changes: 1 addition & 1 deletion Doc/using/cmdline.rst
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ source.
Many standard library modules contain code that is invoked on their execution
as a script. An example is the :mod:`timeit` module::

python -m timeit -s 'setup here' 'benchmarked code here'
python -m timeit -s "setup here" "benchmarked code here"
python -m timeit -h # for details

.. audit-event:: cpython.run_module module-name cmdoption-m
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Make timeit doc command lines compatible with Windows by using double quotes
for arguments. This works on linux and macOS also.

0 comments on commit 8738c5b

Please sign in to comment.