Skip to content

Commit

Permalink
pythongh-106232: Make timeit doc command lines compatible with Window…
Browse files Browse the repository at this point in the history
…s. (python#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.
  • Loading branch information
terryjreedy authored Jul 1, 2023
1 parent eb7d6e7 commit 04dfc6f
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 04dfc6f

Please sign in to comment.