Evaluate a precompiled code object, given a particular environment for its
evaluation. This environment consists of a dictionary of global variables,
a mapping object of local variables, arrays of arguments, keywords and
- defaults, a dictionary of default values for :ref:`keyword-only\
+ defaults, a dictionary of default values for :ref:`keyword-only
<keyword-only_parameter>` arguments and a closure tuple of cells.
| *sources* | list of source filenames, | a list of strings |
| | relative to the distribution | |
| | root (where the setup script | |
- | | lives), in Unix form (slash- | |
- | | separated) for portability. | |
+ | | lives), in Unix form | |
+ | | (slash-separated) for | |
+ | | portability. | |
| | Source files may be C, C++, | |
| | SWIG (.i), platform-specific | |
| | resource files, or whatever | |
+------------------+--------------------------------+---------+
| option name | description | default |
+==================+================================+=========+
- | *strip_comments* | strip from ``'#'`` to end-of- | true |
- | | line, as well as any | |
+ | *strip_comments* | strip from ``'#'`` to | true |
+ | | end-of-line, as well as any | |
| | whitespace leading up to the | |
| | ``'#'``\ ---unless it is | |
| | escaped by a backslash | |
python setup.py bdist --format=zip
-would, when run on a Unix system, create :file:`Distutils-1.0.{plat}.zip`\
----again, this archive would be unpacked from the root directory to install the
-Distutils.
+would, when run on a Unix system, create
+:file:`Distutils-1.0.{plat}.zip`\ ---again, this archive would be unpacked
+from the root directory to install the Distutils.
The available formats for built distributions are:
:c:func:`PyObject_CallObject` returns a Python object pointer: this is the return
value of the Python function. :c:func:`PyObject_CallObject` is
"reference-count-neutral" with respect to its arguments. In the example a new
-tuple was created to serve as the argument list, which is :c:func:`Py_DECREF`\
--ed immediately after the :c:func:`PyObject_CallObject` call.
+tuple was created to serve as the argument list, which is
+:c:func:`Py_DECREF`\ -ed immediately after the :c:func:`PyObject_CallObject`
+call.
The return value of :c:func:`PyObject_CallObject` is "new": either it is a brand
new object, or it is an existing object whose reference count has been
The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler`
classes are defined in the core logging package. The other handlers are
-defined in a sub- module, :mod:`logging.handlers`. (There is also another
+defined in a sub-module, :mod:`logging.handlers`. (There is also another
sub-module, :mod:`logging.config`, for configuration functionality.)
Logged messages are formatted for presentation through instances of the
These override options can be relative, absolute,
or explicitly defined in terms of one of the installation base directories.
-(There are two installation base directories, and they are normally the same---
-they only differ when you use the Unix "prefix scheme" and supply different
-``--prefix`` and ``--exec-prefix`` options; using ``--install-lib`` will
-override values computed or given for ``--install-purelib`` and
+(There are two installation base directories, and they are normally the
+same---they only differ when you use the Unix "prefix scheme" and supply
+different ``--prefix`` and ``--exec-prefix`` options; using ``--install-lib``
+will override values computed or given for ``--install-purelib`` and
``--install-platlib``, and is recommended for schemes that don't make a
difference between Python and extension modules.)
If you maintain Python on Windows, you might want third-party modules to live in
a subdirectory of :file:`{prefix}`, rather than right in :file:`{prefix}`
-itself. This is almost as easy as customizing the script installation directory
----you just have to remember that there are two types of modules to worry about,
-Python and extension modules, which can conveniently be both controlled by one
-option::
+itself. This is almost as easy as customizing the script installation
+directory---you just have to remember that there are two types of modules
+to worry about, Python and extension modules, which can conveniently be both
+controlled by one option::
python setup.py install --install-lib=Site
| | ks_c-5601, ks_c-5601-1987, | |
| | ksx1001, ks_x-1001 | |
+-----------------+--------------------------------+--------------------------------+
-| gb2312 | chinese, csiso58gb231280, euc- | Simplified Chinese |
-| | cn, euccn, eucgb2312-cn, | |
-| | gb2312-1980, gb2312-80, iso- | |
-| | ir-58 | |
+| gb2312 | chinese, csiso58gb231280, | Simplified Chinese |
+| | euc-cn, euccn, eucgb2312-cn, | |
+| | gb2312-1980, gb2312-80, | |
+| | iso-ir-58 | |
+-----------------+--------------------------------+--------------------------------+
| gbk | 936, cp936, ms936 | Unified Chinese |
+-----------------+--------------------------------+--------------------------------+
| ``+t1`` | Returns a :class:`timedelta` object with the |
| | same value. (2) |
+--------------------------------+-----------------------------------------------+
-| ``-t1`` | equivalent to :class:`timedelta`\ |
-| | (-*t1.days*, -*t1.seconds*, |
-| | -*t1.microseconds*), and to *t1*\* -1. (1)(4) |
+| ``-t1`` | equivalent to |
+| | :class:`timedelta`\ (-*t1.days*, |
+| | -*t1.seconds*, -*t1.microseconds*), |
+| | and to *t1*\* -1. (1)(4) |
+--------------------------------+-----------------------------------------------+
| ``abs(t)`` | equivalent to +\ *t* when ``t.days >= 0``, and|
| | to -*t* when ``t.days < 0``. (2) |
.. method:: is_multipart()
- Return ``True`` if the message's payload is a list of sub-\
- :class:`Message` objects, otherwise return ``False``. When
+ Return ``True`` if the message's payload is a list of
+ sub-\ :class:`Message` objects, otherwise return ``False``. When
:meth:`is_multipart` returns ``False``, the payload should be a string
object (which might be a CTE encoded binary payload. (Note that
:meth:`is_multipart` returning ``True`` does not necessarily mean that
.. method:: is_multipart()
- Return ``True`` if the message's payload is a list of sub-\
- :class:`EmailMessage` objects, otherwise return ``False``. When
+ Return ``True`` if the message's payload is a list of
+ sub-\ :class:`EmailMessage` objects, otherwise return ``False``. When
:meth:`is_multipart` returns ``False``, the payload should be a string
object (which might be a CTE encoded binary payload). Note that
:meth:`is_multipart` returning ``True`` does not necessarily mean that
Module-Level Functions
----------------------
-In addition to the classes described above, there are a number of module- level
+In addition to the classes described above, there are a number of module-level
functions.
parser.add_option("-q", action="store_false", dest="verbose")
Here we have two different options with the same destination, which is perfectly
-OK. (It just means you have to be a bit careful when setting default values---
-see below.)
+OK. (It just means you have to be a bit careful when setting default
+values---see below.)
When :mod:`optparse` encounters ``-v`` on the command line, it sets
``options.verbose`` to ``True``; when it encounters ``-q``,
default: ``"Usage: %prog [options]"``, which is fine if your script doesn't
take any positional arguments.
-* every option defines a help string, and doesn't worry about line-wrapping---
- :mod:`optparse` takes care of wrapping lines and making the help output look
- good.
+* every option defines a help string, and doesn't worry about
+ line-wrapping---\ :mod:`optparse` takes care of wrapping lines and making
+ the help output look good.
* options that take a value indicate this fact in their automatically-generated
help message, e.g. for the "mode" option::
.. function:: wait3(options)
Similar to :func:`waitpid`, except no process id argument is given and a
- 3-element tuple containing the child's process id, exit status indication, and
- resource usage information is returned. Refer to :mod:`resource`.\
- :func:`~resource.getrusage` for details on resource usage information. The
- option argument is the same as that provided to :func:`waitpid` and
- :func:`wait4`.
+ 3-element tuple containing the child's process id, exit status indication,
+ and resource usage information is returned. Refer to
+ :mod:`resource`.\ :func:`~resource.getrusage` for details on resource usage
+ information. The option argument is the same as that provided to
+ :func:`waitpid` and :func:`wait4`.
.. availability:: Unix.
number of bytes written. If the audio device is in blocking mode (the
default), the entire data is always written (again, this is different from
usual Unix device semantics). If the device is in non-blocking mode, some
- data may not be written
- ---see :meth:`writeall`.
+ data may not be written---see :meth:`writeall`.
.. versionchanged:: 3.5
Writable :term:`bytes-like object` is now accepted.
.. function:: S_IMODE(mode)
- Return the portion of the file's mode that can be set by :func:`os.chmod`\
- ---that is, the file's permission bits, plus the sticky bit, set-group-id, and
- set-user-id bits (on systems that support them).
+ Return the portion of the file's mode that can be set by
+ :func:`os.chmod`\ ---that is, the file's permission bits, plus the sticky
+ bit, set-group-id, and set-user-id bits (on systems that support them).
.. function:: S_IFMT(mode)
+---------+----------------------------------------------------------+
| ``'o'`` | Octal format. Outputs the number in base 8. |
+---------+----------------------------------------------------------+
- | ``'x'`` | Hex format. Outputs the number in base 16, using lower- |
- | | case letters for the digits above 9. |
+ | ``'x'`` | Hex format. Outputs the number in base 16, using |
+ | | lower-case letters for the digits above 9. |
+---------+----------------------------------------------------------+
- | ``'X'`` | Hex format. Outputs the number in base 16, using upper- |
- | | case letters for the digits above 9. |
+ | ``'X'`` | Hex format. Outputs the number in base 16, using |
+ | | upper-case letters for the digits above 9. |
+---------+----------------------------------------------------------+
| ``'n'`` | Number. This is the same as ``'d'``, except that it uses |
| | the current locale setting to insert the appropriate |
.. function:: tcsendbreak(fd, duration)
- Send a break on file descriptor *fd*. A zero *duration* sends a break for 0.25
- --0.5 seconds; a nonzero *duration* has a system dependent meaning.
+ Send a break on file descriptor *fd*. A zero *duration* sends a break for
+ 0.25--0.5 seconds; a nonzero *duration* has a system dependent meaning.
.. function:: tcdrain(fd)
.. index::
single: **; in function calls
-In the same fashion, dictionaries can deliver keyword arguments with the ``**``\
--operator::
+In the same fashion, dictionaries can deliver keyword arguments with the
+``**``\ -operator::
>>> def parrot(voltage, state='a stiff', action='voom'):
... print("-- This parrot wouldn't", action, end=' ')
variables are preserved. On the next call to the generator's ``next()`` method,
the function will resume executing immediately after the :keyword:`yield`
statement. (For complicated reasons, the :keyword:`yield` statement isn't
-allowed inside the :keyword:`try` block of a :keyword:`try`...\
-:keyword:`finally` statement; read :pep:`255` for a full explanation of the
-interaction between :keyword:`yield` and exceptions.)
+allowed inside the :keyword:`try` block of a
+:keyword:`try`...\ :keyword:`finally` statement; read :pep:`255` for a full
+explanation of the interaction between :keyword:`yield` and exceptions.)
Here's a sample usage of the :func:`generate_ints` generator::
variables are preserved. On the next call to the generator's ``.next()``
method, the function will resume executing immediately after the
:keyword:`yield` statement. (For complicated reasons, the :keyword:`yield`
-statement isn't allowed inside the :keyword:`try` block of a :keyword:`try`...\
-:keyword:`finally` statement; read :pep:`255` for a full explanation of the
-interaction between :keyword:`yield` and exceptions.)
+statement isn't allowed inside the :keyword:`try` block of a
+:keyword:`try`...\ :keyword:`finally` statement; read :pep:`255` for a full
+explanation of the interaction between :keyword:`yield` and exceptions.)
Here's a sample usage of the :func:`generate_ints` generator::
will have to change your ``import`` statements to import it as :mod:`bsddb`.
* The new :mod:`bz2` module is an interface to the bz2 data compression library.
- bz2-compressed data is usually smaller than corresponding :mod:`zlib`\
- -compressed data. (Contributed by Gustavo Niemeyer.)
+ bz2-compressed data is usually smaller than corresponding
+ :mod:`zlib`\ -compressed data. (Contributed by Gustavo Niemeyer.)
* A set of standard date/time types has been added in the new :mod:`datetime`
module. See the following section for more details.
The parentheses aren't always necessary, but it's easier to always add them
instead of having to remember when they're needed.
-(:pep:`342` explains the exact rules, which are that a :keyword:`yield`\
--expression must always be parenthesized except when it occurs at the top-level
+(:pep:`342` explains the exact rules, which are that a
+:keyword:`yield`\ -expression must always be parenthesized except when it
+occurs at the top-level
expression on the right-hand side of an assignment. This means you can write
``val = yield i`` but have to use parentheses when there's an operation, as in
``val = (yield i) + 12``.)
:class:`~ssl.SSLContext` has a new method,
:meth:`~ssl.SSLContext.cert_store_stats`, that reports the number of loaded
-``X.509`` certs, ``X.509 CA`` certs, and certificate revocation lists (``crl``\
-s), as well as a :meth:`~ssl.SSLContext.get_ca_certs` method that returns a
-list of the loaded ``CA`` certificates. (Contributed by Christian Heimes in
-:issue:`18147`.)
+``X.509`` certs, ``X.509 CA`` certs, and certificate revocation lists
+(``crl``\ s), as well as a :meth:`~ssl.SSLContext.get_ca_certs` method that
+returns a list of the loaded ``CA`` certificates. (Contributed by Christian
+Heimes in :issue:`18147`.)
If OpenSSL 0.9.8 or later is available, :class:`~ssl.SSLContext` has a new
attribute :attr:`~ssl.SSLContext.verify_flags` that can be used to control the
* The interpreter loop has been simplified by moving the logic of unrolling
the stack of blocks into the compiler. The compiler emits now explicit
- instructions for adjusting the stack of values and calling the cleaning-
- up code for :keyword:`break`, :keyword:`continue` and :keyword:`return`.
+ instructions for adjusting the stack of values and calling the
+ cleaning-up code for :keyword:`break`, :keyword:`continue` and
+ :keyword:`return`.
Removed opcodes :opcode:`BREAK_LOOP`, :opcode:`CONTINUE_LOOP`,
:opcode:`SETUP_LOOP` and :opcode:`SETUP_EXCEPT`. Added new opcodes
.. nonce: ZLsRil
.. section: Library
-Don't force 3rd party C extensions to be built with -Werror=declaration-
-after-statement.
+Don't force 3rd party C extensions to be built with
+-Werror=declaration-after-statement.
..
.. nonce: DFMEgN
.. section: Library
-Fix inspect.getcallargs() to raise correct TypeError for missing keyword-
-only arguments. Patch by Jeremiah Lowin.
+Fix inspect.getcallargs() to raise correct TypeError for missing
+keyword-only arguments. Patch by Jeremiah Lowin.
..
.. nonce: KAl7aO
.. section: Build
-Prevent possible segfaults and other random failures of python --generate-
-posix-vars in pybuilddir.txt build target.
+Prevent possible segfaults and other random failures of python
+--generate-posix-vars in pybuilddir.txt build target.
..
.. nonce: b5M04V
.. section: Library
-The groupindex attribute of regular expression pattern object now is non-
-modifiable mapping.
+The groupindex attribute of regular expression pattern object now is
+non-modifiable mapping.
..
.. nonce: aAbWbQ
.. section: Library
-Restore semantic round-trip correctness in tokenize/untokenize for tab-
-indented blocks.
+Restore semantic round-trip correctness in tokenize/untokenize for
+tab-indented blocks.
..
.. nonce: hwXwCH
.. section: Library
-SMTP.auth() and SMTP.login() now support RFC 4954's optional initial-
-response argument to the SMTP AUTH command.
+SMTP.auth() and SMTP.login() now support RFC 4954's optional
+initial-response argument to the SMTP AUTH command.
..
On Solaris 11.3 or newer, os.urandom() now uses the getrandom() function
instead of the getentropy() function. The getentropy() function is blocking
-to generate very good quality entropy, os.urandom() doesn't need such high-
-quality entropy.
+to generate very good quality entropy, os.urandom() doesn't need such
+high-quality entropy.
..
.. nonce: -j_BV7
.. section: IDLE
-Enhance the initial html viewer now used for Idle Help. * Properly indent
-fixed-pitch text (patch by Mark Roseman). * Give code snippet a very Sphinx-
-like light blueish-gray background. * Re-use initial width and height set by
-users for shell and editor. * When the Table of Contents (TOC) menu is used,
-put the section header at the top of the screen.
+Enhance the initial html viewer now used for Idle Help. Properly indent
+fixed-pitch text (patch by Mark Roseman). Give code snippet a very
+Sphinx-like light blueish-gray background. Re-use initial width and height
+set by users for shell and editor. When the Table of Contents (TOC) menu is
+used, put the section header at the top of the screen.
..
.. section: Library
The "urllib.request" module now percent-encodes non-ASCII bytes found in
-redirect target URLs. Some servers send Location header fields with non-
-ASCII bytes, but "http.client" requires the request target to be ASCII-
-encodable, otherwise a UnicodeEncodeError is raised. Based on patch by
+redirect target URLs. Some servers send Location header fields with
+non-ASCII bytes, but "http.client" requires the request target to be
+ASCII-encodable, otherwise a UnicodeEncodeError is raised. Based on patch by
Christian Heimes.
..
.. nonce: HDjM4s
.. section: Build
-Disable the rules for running _freeze_importlib and pgen when cross-
-compiling. The output of these programs is normally saved with the source
-code anyway, and is still regenerated when doing a native build. Patch by
-Xavier de Gaye.
+Disable the rules for running _freeze_importlib and pgen when
+cross-compiling. The output of these programs is normally saved with the
+source code anyway, and is still regenerated when doing a native build.
+Patch by Xavier de Gaye.
..
.. nonce: RYbEGH
.. section: Core and Builtins
-Extra slash no longer added to sys.path components in case of empty compile-
-time PYTHONPATH components.
+Extra slash no longer added to sys.path components in case of empty
+compile-time PYTHONPATH components.
..
.. section: Core and Builtins
Standard __import__() no longer look up "__import__" in globals or builtins
-for importing submodules or "from import". Fixed handling an error of non-
-string package name.
+for importing submodules or "from import". Fixed handling an error of
+non-string package name.
..
.. nonce: cYraeH
.. section: Library
-A new version of typing.py from https://github.com/python/typing: -
-Collection (only for 3.6) (Issue #27598) - Add FrozenSet to __all__
-(upstream #261) - fix crash in _get_type_vars() (upstream #259) - Remove the
-dict constraint in ForwardRef._eval_type (upstream #252)
+A new version of typing.py from https://github.com/python/typing:
+Collection (only for 3.6) (Issue #27598). Add FrozenSet to __all__
+(upstream #261). Fix crash in _get_type_vars() (upstream #259). Remove the
+dict constraint in ForwardRef._eval_type (upstream #252).
..
.. section: Build
Cause lack of llvm-profdata tool when using clang as required for PGO
-linking to be a configure time error rather than make time when --with-
-optimizations is enabled. Also improve our ability to find the llvm-
-profdata tool on MacOS and some Linuxes.
+linking to be a configure time error rather than make time when
+--with-optimizations is enabled. Also improve our ability to find the
+llvm-profdata tool on MacOS and some Linuxes.
..
.. section: Build
The configure script now inserts comments into the makefile to prevent the
-pgen and _freeze_importlib executables from being cross- compiled.
+pgen and _freeze_importlib executables from being cross-compiled.
..
vulnerabilities including: CVE-2017-9233 (External entity infinite loop
DoS), CVE-2016-9063 (Integer overflow, re-fix), CVE-2016-0718 (Fix
regression bugs from 2.2.0's fix to CVE-2016-0718) and CVE-2012-0876
-(Counter hash flooding with SipHash). Note: the CVE-2016-5300 (Use os-
-specific entropy sources like getrandom) doesn't impact Python, since Python
+(Counter hash flooding with SipHash). Note: the CVE-2016-5300 (Use
+os-specific entropy sources like getrandom) doesn't impact Python, since Python
already gets entropy from the OS to set the expat secret using
``XML_SetHashSalt()``.
.. nonce: N3KI-o
.. section: Library
-os.listdir() and os.scandir() now emit bytes names when called with bytes-
-like argument.
+os.listdir() and os.scandir() now emit bytes names when called with
+bytes-like argument.
..
.. section: Library
Various updates to typing module: add typing.NoReturn type, use
-WrapperDescriptorType, minor bug-fixes. Original PRs by Jim Fasarakis-
-Hilliard and Ivan Levkivskyi.
+WrapperDescriptorType, minor bug-fixes. Original PRs by Jim
+Fasarakis-Hilliard and Ivan Levkivskyi.
..
.. section: Build
Prevent unnecessary rebuilding of Python during ``make test``, ``make
-install`` and some other make targets when configured with ``--enable-
-optimizations``.
+install`` and some other make targets when configured with
+``--enable-optimizations``.
..
-Improve the C-API doc for PyTypeObject. This includes adding several quick-
-reference tables and a lot of missing slot/typedef entries. The existing
-entries were also cleaned up with a slightly more consistent format.
+Improve the C-API doc for PyTypeObject. This includes adding several
+quick-reference tables and a lot of missing slot/typedef entries. The
+existing entries were also cleaned up with a slightly more consistent format.
-Avoid small type when running htests. Since part of the purpose of human-
-viewed tests is to determine that widgets look right, it is important that
-they look the same for testing as when running IDLE.
+Avoid small type when running htests. Since part of the purpose of
+human-viewed tests is to determine that widgets look right, it is important
+that they look the same for testing as when running IDLE.
-Improve difflib.SequenceManager.get_matching_blocks doc by adding 'non-
-overlapping' and changing '!=' to '<'.
+Improve difflib.SequenceManager.get_matching_blocks doc by adding
+'non-overlapping' and changing '!=' to '<'.