Commit 6e6cb8e0 authored by Éric Araujo's avatar Éric Araujo

Provide links to Python source where the code is short, readable and

informative adjunct to the docs.  Forward-port of Raymond's r86225 and
r86245 using the new source reST role added in #10334.
parent dbe7519d
...@@ -19,6 +19,9 @@ helper provided in this module. The result will be a tree of objects whose ...@@ -19,6 +19,9 @@ helper provided in this module. The result will be a tree of objects whose
classes all inherit from :class:`ast.AST`. An abstract syntax tree can be classes all inherit from :class:`ast.AST`. An abstract syntax tree can be
compiled into a Python code object using the built-in :func:`compile` function. compiled into a Python code object using the built-in :func:`compile` function.
.. seealso::
Latest version of the :source:`ast module Python source code <Lib/ast.py>`
Node classes Node classes
------------ ------------
......
...@@ -11,6 +11,11 @@ The :mod:`atexit` module defines functions to register and unregister cleanup ...@@ -11,6 +11,11 @@ The :mod:`atexit` module defines functions to register and unregister cleanup
functions. Functions thus registered are automatically executed upon normal functions. Functions thus registered are automatically executed upon normal
interpreter termination. interpreter termination.
.. seealso::
Latest version of the :source:`atexit Python source code
<Lib/atexit.py>`
Note: the functions registered via this module are not called when the program Note: the functions registered via this module are not called when the program
is killed by a signal not handled by Python, when a Python fatal internal error is killed by a signal not handled by Python, when a Python fatal internal error
is detected, or when :func:`os._exit` is called. is detected, or when :func:`os._exit` is called.
......
...@@ -14,6 +14,11 @@ approach. The module is called :mod:`bisect` because it uses a basic bisection ...@@ -14,6 +14,11 @@ approach. The module is called :mod:`bisect` because it uses a basic bisection
algorithm to do its work. The source code may be most useful as a working algorithm to do its work. The source code may be most useful as a working
example of the algorithm (the boundary conditions are already right!). example of the algorithm (the boundary conditions are already right!).
.. seealso::
Latest version of the :source:`bisect module Python source code
<Lib/bisect.py>`
The following functions are provided: The following functions are provided:
......
...@@ -21,6 +21,10 @@ in both directions. This matches the definition of the "proleptic Gregorian" ...@@ -21,6 +21,10 @@ in both directions. This matches the definition of the "proleptic Gregorian"
calendar in Dershowitz and Reingold's book "Calendrical Calculations", where calendar in Dershowitz and Reingold's book "Calendrical Calculations", where
it's the base calendar for all computations. it's the base calendar for all computations.
.. seealso::
Latest version of the :source:`calendar module Python source code
<Lib/calendar.py>`
.. class:: Calendar(firstweekday=0) .. class:: Calendar(firstweekday=0)
......
...@@ -11,6 +11,9 @@ command interpreters. These are often useful for test harnesses, administrative ...@@ -11,6 +11,9 @@ command interpreters. These are often useful for test harnesses, administrative
tools, and prototypes that will later be wrapped in a more sophisticated tools, and prototypes that will later be wrapped in a more sophisticated
interface. interface.
.. seealso::
Latest version of the :source:`cmd module Python source code <Lib/cmd.py>`
.. class:: Cmd(completekey='tab', stdin=None, stdout=None) .. class:: Cmd(completekey='tab', stdin=None, stdout=None)
......
...@@ -31,6 +31,11 @@ In addition to the concrete container classes, the collections module provides ...@@ -31,6 +31,11 @@ In addition to the concrete container classes, the collections module provides
ABCs (abstract base classes) that can be used to test whether a class provides a ABCs (abstract base classes) that can be used to test whether a class provides a
particular interface, for example, whether it is hashable or a mapping. particular interface, for example, whether it is hashable or a mapping.
.. seealso::
Latest version of the :source:`collections module Python source code
<Lib/collections.py>`
:class:`Counter` objects :class:`Counter` objects
------------------------ ------------------------
...@@ -1059,6 +1064,9 @@ Notes on using :class:`Set` and :class:`MutableSet` as a mixin: ...@@ -1059,6 +1064,9 @@ Notes on using :class:`Set` and :class:`MutableSet` as a mixin:
.. seealso:: .. seealso::
* Latest version of the :source:`Python source code for the collections
abstract base classes <Lib/_abcoll.py>`
* `OrderedSet recipe <http://code.activestate.com/recipes/576694/>`_ for an * `OrderedSet recipe <http://code.activestate.com/recipes/576694/>`_ for an
example built on :class:`MutableSet`. example built on :class:`MutableSet`.
......
...@@ -9,6 +9,11 @@ This module provides utilities for common tasks involving the :keyword:`with` ...@@ -9,6 +9,11 @@ This module provides utilities for common tasks involving the :keyword:`with`
statement. For more information see also :ref:`typecontextmanager` and statement. For more information see also :ref:`typecontextmanager` and
:ref:`context-managers`. :ref:`context-managers`.
.. seealso::
Latest version of the :source:`contextlib Python source code
<Lib/contextlib.py>`
Functions provided: Functions provided:
......
...@@ -10,6 +10,10 @@ disassembling it. The CPython bytecode which this module takes as an ...@@ -10,6 +10,10 @@ disassembling it. The CPython bytecode which this module takes as an
input is defined in the file :file:`Include/opcode.h` and used by the compiler input is defined in the file :file:`Include/opcode.h` and used by the compiler
and the interpreter. and the interpreter.
.. seealso::
Latest version of the :source:`dis module Python source code <Lib/dis.py>`
.. impl-detail:: .. impl-detail::
Bytecode is an implementation detail of the CPython interpreter! No Bytecode is an implementation detail of the CPython interpreter! No
......
...@@ -10,6 +10,11 @@ The :mod:`filecmp` module defines functions to compare files and directories, ...@@ -10,6 +10,11 @@ The :mod:`filecmp` module defines functions to compare files and directories,
with various optional time/correctness trade-offs. For comparing files, with various optional time/correctness trade-offs. For comparing files,
see also the :mod:`difflib` module. see also the :mod:`difflib` module.
.. seealso::
Latest version of the :source:`filecmp Python source code
<Lib/filecmp.py>`
The :mod:`filecmp` module defines the following functions: The :mod:`filecmp` module defines the following functions:
......
...@@ -44,6 +44,11 @@ hook must be a function that takes two arguments, *filename* and *mode*, and ...@@ -44,6 +44,11 @@ hook must be a function that takes two arguments, *filename* and *mode*, and
returns an accordingly opened file-like object. Two useful hooks are already returns an accordingly opened file-like object. Two useful hooks are already
provided by this module. provided by this module.
.. seealso::
Latest version of the :source:`fileinput Python source code
<Lib/fileinput.py>`
The following function is the primary interface of this module: The following function is the primary interface of this module:
......
...@@ -33,6 +33,10 @@ module. See module :mod:`glob` for pathname expansion (:mod:`glob` uses ...@@ -33,6 +33,10 @@ module. See module :mod:`glob` for pathname expansion (:mod:`glob` uses
a period are not special for this module, and are matched by the ``*`` and ``?`` a period are not special for this module, and are matched by the ``*`` and ``?``
patterns. patterns.
.. seealso::
Latest version of the :source:`fnmatch Python source code
<Lib/fnmatch.py>`
.. function:: fnmatch(filename, pattern) .. function:: fnmatch(filename, pattern)
......
...@@ -13,6 +13,11 @@ The :mod:`functools` module is for higher-order functions: functions that act on ...@@ -13,6 +13,11 @@ The :mod:`functools` module is for higher-order functions: functions that act on
or return other functions. In general, any callable object can be treated as a or return other functions. In general, any callable object can be treated as a
function for the purposes of this module. function for the purposes of this module.
.. seealso::
Latest version of the :source:`functools Python source code
<Lib/functools.py>`
The :mod:`functools` module defines the following functions: The :mod:`functools` module defines the following functions:
.. function:: cmp_to_key(func) .. function:: cmp_to_key(func)
......
...@@ -15,6 +15,9 @@ matched. This is done by using the :func:`os.listdir` and ...@@ -15,6 +15,9 @@ matched. This is done by using the :func:`os.listdir` and
subshell. (For tilde and shell variable expansion, use subshell. (For tilde and shell variable expansion, use
:func:`os.path.expanduser` and :func:`os.path.expandvars`.) :func:`os.path.expanduser` and :func:`os.path.expandvars`.)
.. seealso::
Latest version of the :source:`glob module Python source code <Lib/glob.py>`
.. function:: glob(pathname) .. function:: glob(pathname)
......
...@@ -11,6 +11,11 @@ ...@@ -11,6 +11,11 @@
This module provides an implementation of the heap queue algorithm, also known This module provides an implementation of the heap queue algorithm, also known
as the priority queue algorithm. as the priority queue algorithm.
.. seealso::
Latest version of the :source:`heapq Python source code
<Lib/heapq.py>`
Heaps are arrays for which ``heap[k] <= heap[2*k+1]`` and ``heap[k] <= Heaps are arrays for which ``heap[k] <= heap[2*k+1]`` and ``heap[k] <=
heap[2*k+2]`` for all *k*, counting elements from zero. For the sake of heap[2*k+2]`` for all *k*, counting elements from zero. For the sake of
comparison, non-existing elements are considered to be infinite. The comparison, non-existing elements are considered to be infinite. The
......
...@@ -19,3 +19,8 @@ This module allows a Python program to determine if a string is a keyword. ...@@ -19,3 +19,8 @@ This module allows a Python program to determine if a string is a keyword.
keywords are defined to only be active when particular :mod:`__future__` keywords are defined to only be active when particular :mod:`__future__`
statements are in effect, these will be included as well. statements are in effect, these will be included as well.
.. seealso::
Latest version of the :source:`keyword module Python source code
<Lib/keyword.py>`
...@@ -11,6 +11,11 @@ attempting to optimize internally, using a cache, the common case where many ...@@ -11,6 +11,11 @@ attempting to optimize internally, using a cache, the common case where many
lines are read from a single file. This is used by the :mod:`traceback` module lines are read from a single file. This is used by the :mod:`traceback` module
to retrieve source lines for inclusion in the formatted traceback. to retrieve source lines for inclusion in the formatted traceback.
.. seealso::
Latest version of the :source:`linecache module Python source code
<Lib/linecache.py>`
The :mod:`linecache` module defines the following functions: The :mod:`linecache` module defines the following functions:
......
...@@ -21,6 +21,11 @@ width constraint. ...@@ -21,6 +21,11 @@ width constraint.
Dictionaries are sorted by key before the display is computed. Dictionaries are sorted by key before the display is computed.
.. seealso::
Latest version of the :source:`pprint module Python source code
<Lib/pprint.py>`
The :mod:`pprint` module defines one class: The :mod:`pprint` module defines one class:
.. First the implementation class: .. First the implementation class:
......
...@@ -19,6 +19,11 @@ the first retrieved (operating like a stack). With a priority queue, ...@@ -19,6 +19,11 @@ the first retrieved (operating like a stack). With a priority queue,
the entries are kept sorted (using the :mod:`heapq` module) and the the entries are kept sorted (using the :mod:`heapq` module) and the
lowest valued entry is retrieved first. lowest valued entry is retrieved first.
.. seealso::
Latest version of the :source:`queue module Python source code
<Lib/queue.py>`
The :mod:`queue` module defines the following classes and exceptions: The :mod:`queue` module defines the following classes and exceptions:
.. class:: Queue(maxsize=0) .. class:: Queue(maxsize=0)
......
...@@ -17,6 +17,10 @@ few nonprintable characters; the base64 encoding scheme available via the ...@@ -17,6 +17,10 @@ few nonprintable characters; the base64 encoding scheme available via the
:mod:`base64` module is more compact if there are many such characters, as when :mod:`base64` module is more compact if there are many such characters, as when
sending a graphics file. sending a graphics file.
.. seealso::
Latest version of the :source:`quopri module Python source code
<Lib/quopri.py>`
.. function:: decode(input, output, header=False) .. function:: decode(input, output, header=False)
......
...@@ -8,6 +8,11 @@ ...@@ -8,6 +8,11 @@
This module implements pseudo-random number generators for various This module implements pseudo-random number generators for various
distributions. distributions.
.. seealso::
Latest version of the :source:`random module Python source code
<Lib/random.py>`
For integers, there is uniform selection from a range. For sequences, there is For integers, there is uniform selection from a range. For sequences, there is
uniform selection of a random element, a function to generate a random uniform selection of a random element, a function to generate a random
permutation of a list in-place, and a function for random sampling without permutation of a list in-place, and a function for random sampling without
......
...@@ -10,6 +10,10 @@ ...@@ -10,6 +10,10 @@
The :mod:`sched` module defines a class which implements a general purpose event The :mod:`sched` module defines a class which implements a general purpose event
scheduler: scheduler:
.. seealso::
Latest version of the :source:`sched module Python source code
<Lib/sched.py>`
.. class:: scheduler(timefunc, delayfunc) .. class:: scheduler(timefunc, delayfunc)
......
...@@ -13,6 +13,10 @@ arbitrary Python objects --- anything that the :mod:`pickle` module can handle. ...@@ -13,6 +13,10 @@ arbitrary Python objects --- anything that the :mod:`pickle` module can handle.
This includes most class instances, recursive data types, and objects containing This includes most class instances, recursive data types, and objects containing
lots of shared sub-objects. The keys are ordinary strings. lots of shared sub-objects. The keys are ordinary strings.
.. seealso::
Latest version of the :source:`shelve module Python source code
<Lib/shelve.py>`
.. function:: open(filename, flag='c', protocol=None, writeback=False) .. function:: open(filename, flag='c', protocol=None, writeback=False)
......
...@@ -15,6 +15,11 @@ collections of files. In particular, functions are provided which support file ...@@ -15,6 +15,11 @@ collections of files. In particular, functions are provided which support file
copying and removal. For operations on individual files, see also the copying and removal. For operations on individual files, see also the
:mod:`os` module. :mod:`os` module.
.. seealso::
Latest version of the :source:`shutil module Python source code
<Lib/shutil.py>`
.. warning:: .. warning::
Even the higher-level file copying functions (:func:`copy`, :func:`copy2`) Even the higher-level file copying functions (:func:`copy`, :func:`copy2`)
...@@ -26,6 +31,7 @@ copying and removal. For operations on individual files, see also the ...@@ -26,6 +31,7 @@ copying and removal. For operations on individual files, see also the
not be correct. On Windows, file owners, ACLs and alternate data streams not be correct. On Windows, file owners, ACLs and alternate data streams
are not copied. are not copied.
Directory and files operations Directory and files operations
------------------------------ ------------------------------
......
...@@ -15,6 +15,11 @@ section, and also the string-specific methods described in the ...@@ -15,6 +15,11 @@ section, and also the string-specific methods described in the
:ref:`string-formatting` section. Also, see the :mod:`re` module for :ref:`string-formatting` section. Also, see the :mod:`re` module for
string functions based on regular expressions. string functions based on regular expressions.
.. seealso::
Latest version of the :source:`string module Python source code
<Lib/string.py>`
String constants String constants
---------------- ----------------
......
...@@ -13,6 +13,10 @@ and a utility function :func:`dedent`. If you're just wrapping or filling one ...@@ -13,6 +13,10 @@ and a utility function :func:`dedent`. If you're just wrapping or filling one
or two text strings, the convenience functions should be good enough; or two text strings, the convenience functions should be good enough;
otherwise, you should use an instance of :class:`TextWrapper` for efficiency. otherwise, you should use an instance of :class:`TextWrapper` for efficiency.
.. seealso::
Latest version of the :source:`textwrap module Python source code
<Lib/textwrap.py>`
.. function:: wrap(text, width=70, **kwargs) .. function:: wrap(text, width=70, **kwargs)
......
...@@ -17,6 +17,11 @@ The :mod:`dummy_threading` module is provided for situations where ...@@ -17,6 +17,11 @@ The :mod:`dummy_threading` module is provided for situations where
methods and functions in this module in the Python 2.x series are still methods and functions in this module in the Python 2.x series are still
supported by this module. supported by this module.
.. seealso::
Latest version of the :source:`threading module Python source code
<Lib/threading.py>`
This module defines the following functions and objects: This module defines the following functions and objects:
......
...@@ -12,6 +12,11 @@ implemented in Python. The scanner in this module returns comments as tokens ...@@ -12,6 +12,11 @@ implemented in Python. The scanner in this module returns comments as tokens
as well, making it useful for implementing "pretty-printers," including as well, making it useful for implementing "pretty-printers," including
colorizers for on-screen displays. colorizers for on-screen displays.
.. seealso::
Latest version of the :source:`tokenize module Python source code
<Lib/tokenize.py>`
The primary entry point is a :term:`generator`: The primary entry point is a :term:`generator`:
.. function:: tokenize(readline) .. function:: tokenize(readline)
......
...@@ -10,6 +10,10 @@ annotated statement coverage listings, print caller/callee relationships and ...@@ -10,6 +10,10 @@ annotated statement coverage listings, print caller/callee relationships and
list functions executed during a program run. It can be used in another program list functions executed during a program run. It can be used in another program
or from the command line. or from the command line.
.. seealso::
Latest version of the :source:`trace module Python source code
<Lib/trace.py>`
.. _trace-cli: .. _trace-cli:
......
...@@ -21,6 +21,10 @@ that, when required, the mode is ``'rb'`` or ``'wb'`` on Windows. ...@@ -21,6 +21,10 @@ that, when required, the mode is ``'rb'`` or ``'wb'`` on Windows.
This code was contributed by Lance Ellinghouse, and modified by Jack Jansen. This code was contributed by Lance Ellinghouse, and modified by Jack Jansen.
.. seealso::
Latest version of the :source:`uu module Python source code <Lib/uu.py>`
The :mod:`uu` module defines the following functions: The :mod:`uu` module defines the following functions:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment