mirror of https://github.com/python/cpython.git
Edit the library section, rearranging items to flow better and making lots of edits
This commit is contained in:
parent
4907d27c1f
commit
fa881f2bd4
|
@ -1585,50 +1585,7 @@ Some smaller changes made to the core Python language are:
|
|||
>>> b.hex()
|
||||
'0x1.5555555555555p-2'
|
||||
|
||||
* Several new functions were added to the :mod:`math` module:
|
||||
|
||||
* :func:`~math.isinf` and :func:`~math.isnan` determine whether a given float
|
||||
is a (positive or negative) infinity or a NaN (Not a Number), respectively.
|
||||
|
||||
* :func:`~math.copysign` copies the sign bit of an IEEE 754 number,
|
||||
returning the absolute value of *x* combined with the sign bit of
|
||||
*y*. For example, ``math.copysign(1, -0.0)`` returns -1.0.
|
||||
(Contributed by Christian Heimes.)
|
||||
|
||||
* :func:`~math.factorial` computes the factorial of a number.
|
||||
(Contributed by Raymond Hettinger; :issue:`2138`.)
|
||||
|
||||
* :func:`~math.fsum` adds up the stream of numbers from an iterable,
|
||||
and is careful to avoid loss of precision through using partial sums.
|
||||
(Contributed by Jean Brouwers, Raymond Hettinger, and Mark Dickinson;
|
||||
:issue:`2819`.)
|
||||
|
||||
* :func:`~math.acosh`, :func:`~math.asinh`
|
||||
and :func:`~math.atanh` compute the inverse hyperbolic functions.
|
||||
|
||||
* The function :func:`~math.log1p` returns the natural logarithm of *1+x*
|
||||
(base *e*).
|
||||
|
||||
There's also a new :func:`trunc` built-in function from the
|
||||
backport of `PEP 3141's type hierarchy for numbers <#pep-3141>`__.
|
||||
|
||||
* The :mod:`math` module has been improved to give more consistent
|
||||
behaviour across platforms, especially with respect to handling of
|
||||
floating-point exceptions and IEEE 754 special values.
|
||||
|
||||
Whenever possible, the module follows the recommendations of the C99
|
||||
standard about 754's special values. For example, ``sqrt(-1.)``
|
||||
should now give a :exc:`ValueError` across almost all platforms,
|
||||
while ``sqrt(float('NaN'))`` should return a NaN on all IEEE 754
|
||||
platforms. Where Annex 'F' of the C99 standard recommends signaling
|
||||
'divide-by-zero' or 'invalid', Python will raise :exc:`ValueError`.
|
||||
Where Annex 'F' of the C99 standard recommends signaling 'overflow',
|
||||
Python will raise :exc:`OverflowError`. (See :issue:`711019` and
|
||||
:issue:`1640`.)
|
||||
|
||||
(Contributed by Christian Heimes and Mark Dickinson.)
|
||||
|
||||
* Another numerical nicety: when creating a complex number from two floats
|
||||
* A numerical nicety: when creating a complex number from two floats
|
||||
on systems that support signed zeros (-0 and +0), the
|
||||
:func:`complex` constructor will now preserve the sign
|
||||
of the zero. (Fixed by Mark T. Dickinson; :issue:`1507`.)
|
||||
|
@ -1737,10 +1694,10 @@ Optimizations
|
|||
|
||||
* To reduce memory usage, the garbage collector will now clear internal
|
||||
free lists when garbage-collecting the highest generation of objects.
|
||||
This may return memory to the OS sooner.
|
||||
This may return memory to the operating system sooner.
|
||||
|
||||
The net result of the 2.6 optimizations is that Python 2.6 runs the pystone
|
||||
benchmark around XX% faster than Python 2.5.
|
||||
benchmark around XXX% faster than Python 2.5.
|
||||
|
||||
.. ======================================================================
|
||||
|
||||
|
@ -1751,25 +1708,24 @@ Interpreter Changes
|
|||
|
||||
Two command-line options have been reserved for use by other Python
|
||||
implementations. The :option:`-J` switch has been reserved for use by
|
||||
Jython for Jython-specific options, such as ones that are passed to
|
||||
Jython for Jython-specific options, such as switches that are passed to
|
||||
the underlying JVM. :option:`-X` has been reserved for options
|
||||
specific to a particular implementation of Python such as CPython,
|
||||
Jython, or IronPython. If either option is used with Python 2.6, the
|
||||
interpreter will report that the option isn't currently used.
|
||||
|
||||
It's now possible to prevent Python from writing :file:`.pyc` or
|
||||
:file:`.pyo` files on importing a module by supplying the :option:`-B`
|
||||
switch to the Python interpreter, or by setting the
|
||||
:envvar:`PYTHONDONTWRITEBYTECODE` environment variable before running
|
||||
the interpreter. This setting is available to Python programs as the
|
||||
``sys.dont_write_bytecode`` variable, and can be changed by Python
|
||||
code to modify the interpreter's behaviour. (Contributed by Neal
|
||||
Norwitz and Georg Brandl.)
|
||||
Python can now be prevented from writing :file:`.pyc` or :file:`.pyo`
|
||||
files by supplying the :option:`-B` switch to the Python interpreter,
|
||||
or by setting the :envvar:`PYTHONDONTWRITEBYTECODE` environment
|
||||
variable before running the interpreter. This setting is available to
|
||||
Python programs as the ``sys.dont_write_bytecode`` variable, and
|
||||
Python code can change the value to modify the interpreter's
|
||||
behaviour. (Contributed by Neal Norwitz and Georg Brandl.)
|
||||
|
||||
The encoding used for standard input, output, and standard error can
|
||||
be specified by setting the :envvar:`PYTHONIOENCODING` environment
|
||||
variable before running the interpreter. The value should be a string
|
||||
in the form ``*encoding*`` or ``*encoding*:*errorhandler*``.
|
||||
in the form ``<encoding>`` or ``<encoding>:<errorhandler>``.
|
||||
The *encoding* part specifies the encoding's name, e.g. ``utf-8`` or
|
||||
``latin-1``; the optional *errorhandler* part specifies
|
||||
what to do with characters that can't be handled by the encoding,
|
||||
|
@ -1781,14 +1737,14 @@ by Martin von Loewis.)
|
|||
New, Improved, and Deprecated Modules
|
||||
=====================================
|
||||
|
||||
As usual, Python's standard library received a number of enhancements and bug
|
||||
fixes. Here's a partial list of the most notable changes, sorted alphabetically
|
||||
by module name. Consult the :file:`Misc/NEWS` file in the source tree for a more
|
||||
complete list of changes, or look through the Subversion logs for all the
|
||||
details.
|
||||
As in every release, Python's standard library received a number of
|
||||
enhancements and bug fixes. Here's a partial list of the most notable
|
||||
changes, sorted alphabetically by module name. Consult the
|
||||
:file:`Misc/NEWS` file in the source tree for a more complete list of
|
||||
changes, or look through the Subversion logs for all the details.
|
||||
|
||||
* (3.0-warning mode) Python 3.0 will feature a reorganized standard
|
||||
library; many outdated modules are being dropped.
|
||||
library that will drop many outdated modules and rename others.
|
||||
Python 2.6 running in 3.0-warning mode will warn about these modules
|
||||
when they are imported.
|
||||
|
||||
|
@ -1815,99 +1771,43 @@ details.
|
|||
:mod:`pure`,
|
||||
:mod:`statvfs`,
|
||||
:mod:`sunaudiodev`,
|
||||
:mod:`test.testall`,
|
||||
:mod:`test.testall`, and
|
||||
:mod:`toaiff`.
|
||||
|
||||
Various MacOS modules have been removed:
|
||||
:mod:`_builtinSuites`,
|
||||
:mod:`aepack`,
|
||||
:mod:`aetools`,
|
||||
:mod:`aetypes`,
|
||||
:mod:`applesingle`,
|
||||
:mod:`appletrawmain`,
|
||||
:mod:`appletrunner`,
|
||||
:mod:`argvemulator`,
|
||||
:mod:`Audio_mac`,
|
||||
:mod:`autoGIL`,
|
||||
:mod:`Carbon`,
|
||||
:mod:`cfmfile`,
|
||||
:mod:`CodeWarrior`,
|
||||
:mod:`ColorPicker`,
|
||||
:mod:`EasyDialogs`,
|
||||
:mod:`Explorer`,
|
||||
:mod:`Finder`,
|
||||
:mod:`FrameWork`,
|
||||
:mod:`findertools`,
|
||||
:mod:`ic`,
|
||||
:mod:`icglue`,
|
||||
:mod:`icopen`,
|
||||
:mod:`macerrors`,
|
||||
:mod:`MacOS`,
|
||||
:mod:`macostools`,
|
||||
:mod:`macresource`,
|
||||
:mod:`MiniAEFrame`,
|
||||
:mod:`Nav`,
|
||||
:mod:`Netscape`,
|
||||
:mod:`OSATerminology`,
|
||||
:mod:`pimp`,
|
||||
:mod:`PixMapWrapper`,
|
||||
:mod:`StdSuites`,
|
||||
:mod:`SystemEvents`,
|
||||
:mod:`Terminal`,
|
||||
:mod:`terminalcommand`.
|
||||
|
||||
A number of old IRIX-specific modules were deprecated:
|
||||
:mod:`al` and :mod:`AL`,
|
||||
:mod:`cd`,
|
||||
:mod:`cddb`,
|
||||
:mod:`cdplayer`,
|
||||
:mod:`CL` and :mod:`cl`,
|
||||
:mod:`DEVICE`,
|
||||
:mod:`ERRNO`,
|
||||
:mod:`FILE`,
|
||||
:mod:`FL` and :mod:`fl`,
|
||||
:mod:`flp`,
|
||||
:mod:`fm`,
|
||||
:mod:`GET`,
|
||||
:mod:`GLWS`,
|
||||
:mod:`GL` and :mod:`gl`,
|
||||
:mod:`IN`,
|
||||
:mod:`IOCTL`,
|
||||
:mod:`jpeg`,
|
||||
:mod:`panelparser`,
|
||||
:mod:`readcd`,
|
||||
:mod:`SV` and :mod:`sv`,
|
||||
:mod:`torgb`,
|
||||
:mod:`videoreader`,
|
||||
:mod:`WAIT`.
|
||||
|
||||
* The :mod:`asyncore` and :mod:`asynchat` modules are
|
||||
being actively maintained again, and a number of patches and bugfixes
|
||||
were applied. (Maintained by Josiah Carlson; see :issue:`1736190` for
|
||||
one patch.)
|
||||
|
||||
.. |uacute| unicode:: 0xA9
|
||||
|
||||
* The :mod:`bsddb` module also has a new maintainer, Jes|uacute|s Cea,
|
||||
and the package is now available as a standalone package.
|
||||
The web page for the package is
|
||||
`www.jcea.es/programacion/pybsddb.htm <http://www.jcea.es/programacion/pybsddb.htm>`__.
|
||||
|
||||
* The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol
|
||||
available, instead of restricting itself to protocol 1.
|
||||
(Contributed by W. Barnes; :issue:`1551443`.)
|
||||
|
||||
* The :mod:`cgi` module will now read variables from the query string of an
|
||||
HTTP POST request. This makes it possible to use form actions with
|
||||
URLs such as "/cgi-bin/add.py?category=1". (Contributed by
|
||||
Alexandre Fiori and Nubis; :issue:`1817`.)
|
||||
|
||||
* The :mod:`cmath` module underwent an extensive set of revisions,
|
||||
thanks to Mark Dickinson and Christian Heimes, that added some new
|
||||
features and greatly improved the accuracy of the computations.
|
||||
* The :mod:`cgi` module will now read variables from the query string
|
||||
of an HTTP POST request. This makes it possible to use form actions
|
||||
with URLs that include query strings such as
|
||||
"/cgi-bin/add.py?category=1". (Contributed by Alexandre Fiori and
|
||||
Nubis; :issue:`1817`.)
|
||||
|
||||
* The :mod:`cmath` module underwent extensive revision,
|
||||
contributed by Mark Dickinson and Christian Heimes.
|
||||
Five new functions were added:
|
||||
|
||||
* :func:`polar` converts a complex number to polar form, returning
|
||||
the modulus and argument of that complex number.
|
||||
the modulus and argument of the complex number.
|
||||
|
||||
* :func:`rect` does the opposite, turning a (modulus, argument) pair
|
||||
* :func:`rect` does the opposite, turning a modulus, argument pair
|
||||
back into the corresponding complex number.
|
||||
|
||||
* :func:`phase` returns the phase or argument of a complex number.
|
||||
* :func:`phase` returns the argument (also called the angle) of a complex
|
||||
number.
|
||||
|
||||
* :func:`isnan` returns True if either
|
||||
the real or imaginary part of its argument is a NaN.
|
||||
|
@ -1951,8 +1851,8 @@ details.
|
|||
>>> v2
|
||||
variable(id=1, name='amplitude', type='int', size=4)
|
||||
|
||||
Where the new :class:`namedtuple` type proved suitable, the standard
|
||||
library has been modified to return them. For example,
|
||||
Several places in the standard library that returned tuples have
|
||||
been modified to return :class:`namedtuple` instances. For example,
|
||||
the :meth:`Decimal.as_tuple` method now returns a named tuple with
|
||||
:attr:`sign`, :attr:`digits`, and :attr:`exponent` fields.
|
||||
|
||||
|
@ -1979,10 +1879,9 @@ details.
|
|||
|
||||
(Contributed by Raymond Hettinger.)
|
||||
|
||||
* A new method in the :mod:`curses` module: for a window, :meth:`chgat` changes
|
||||
the display characters for a certain number of characters on a single line.
|
||||
(Contributed by Fabian Kreutz.)
|
||||
::
|
||||
* A new window method in the :mod:`curses` module,
|
||||
:meth:`chgat`, changes the display attributes for a certain number of
|
||||
characters on a single line. (Contributed by Fabian Kreutz.) ::
|
||||
|
||||
# Boldface text starting at y=0,x=21
|
||||
# and affecting the rest of the line.
|
||||
|
@ -2017,32 +1916,29 @@ details.
|
|||
support added by Raymond Hettinger.)
|
||||
|
||||
* The :mod:`difflib` module's :class:`SequenceMatcher` class
|
||||
now returns named tuples representing matches.
|
||||
In addition to behaving like tuples, the returned values
|
||||
also have :attr:`a`, :attr:`b`, and :attr:`size` attributes.
|
||||
now returns named tuples representing matches,
|
||||
with :attr:`a`, :attr:`b`, and :attr:`size` attributes.
|
||||
(Contributed by Raymond Hettinger.)
|
||||
|
||||
* An optional ``timeout`` parameter was added to the
|
||||
:class:`ftplib.FTP` class constructor as well as the :meth:`connect`
|
||||
method, specifying a timeout measured in seconds. (Added by Facundo
|
||||
Batista.) Also, the :class:`FTP` class's
|
||||
:meth:`storbinary` and :meth:`storlines`
|
||||
now take an optional *callback* parameter that will be called with
|
||||
each block of data after the data has been sent.
|
||||
* An optional ``timeout`` parameter, specifying a timeout measured in
|
||||
seconds, was added to the :class:`ftplib.FTP` class constructor as
|
||||
well as the :meth:`connect` method. (Added by Facundo Batista.)
|
||||
Also, the :class:`FTP` class's :meth:`storbinary` and
|
||||
:meth:`storlines` now take an optional *callback* parameter that
|
||||
will be called with each block of data after the data has been sent.
|
||||
(Contributed by Phil Schwartz; :issue:`1221598`.)
|
||||
|
||||
* The :func:`reduce` built-in function is also available in the
|
||||
:mod:`functools` module. In Python 3.0, the built-in is dropped and it's
|
||||
only available from :mod:`functools`; currently there are no plans
|
||||
to drop the built-in in the 2.x series. (Patched by
|
||||
Christian Heimes; :issue:`1739906`.)
|
||||
:mod:`functools` module. In Python 3.0, the built-in has been
|
||||
dropped and :func:`reduce` is only available from :mod:`functools`;
|
||||
currently there are no plans to drop the built-in in the 2.x series.
|
||||
(Patched by Christian Heimes; :issue:`1739906`.)
|
||||
|
||||
* When possible, the :mod:`getpass` module will now use
|
||||
:file:`/dev/tty` (when available) to print
|
||||
a prompting message and read the password, falling back to using
|
||||
standard error and standard input. If the password may be echoed to
|
||||
the terminal, a warning is printed before the prompt is displayed.
|
||||
(Contributed by Gregory P. Smith.)
|
||||
:file:`/dev/tty` to print a prompt message and read the password,
|
||||
falling back to standard error and standard input. If the
|
||||
password may be echoed to the terminal, a warning is printed before
|
||||
the prompt is displayed. (Contributed by Gregory P. Smith.)
|
||||
|
||||
* The :func:`glob.glob` function can now return Unicode filenames if
|
||||
a Unicode path was used and Unicode filenames are matched within the
|
||||
|
@ -2050,9 +1946,9 @@ details.
|
|||
|
||||
* The :mod:`gopherlib` module has been removed.
|
||||
|
||||
* A new function in the :mod:`heapq` module: ``merge(iter1, iter2, ...)``
|
||||
takes any number of iterables that return data *in sorted
|
||||
order*, and returns a new iterator that returns the contents of all
|
||||
* A new function in the :mod:`heapq` module, ``merge(iter1, iter2, ...)``,
|
||||
takes any number of iterables returning data in sorted
|
||||
order, and returns a new iterator that returns the contents of all
|
||||
the iterators, also in sorted order. For example::
|
||||
|
||||
heapq.merge([1, 3, 5, 9], [2, 8, 16]) ->
|
||||
|
@ -2065,14 +1961,14 @@ details.
|
|||
|
||||
:mod:`heapq` is now implemented to only use less-than comparison,
|
||||
instead of the less-than-or-equal comparison it previously used.
|
||||
This makes :mod:`heapq`'s usage of a type match that of the
|
||||
This makes :mod:`heapq`'s usage of a type match the
|
||||
:meth:`list.sort` method.
|
||||
(Contributed by Raymond Hettinger.)
|
||||
|
||||
* An optional ``timeout`` parameter was added to the
|
||||
:class:`httplib.HTTPConnection` and :class:`HTTPSConnection`
|
||||
class constructors, specifying a timeout measured in seconds.
|
||||
(Added by Facundo Batista.)
|
||||
* An optional ``timeout`` parameter, specifying a timeout measured in
|
||||
seconds, was added to the :class:`httplib.HTTPConnection` and
|
||||
:class:`HTTPSConnection` class constructors. (Added by Facundo
|
||||
Batista.)
|
||||
|
||||
* Most of the :mod:`inspect` module's functions, such as
|
||||
:func:`getmoduleinfo` and :func:`getargs`, now return named tuples.
|
||||
|
@ -2157,7 +2053,7 @@ details.
|
|||
* The :mod:`logging` module's :class:`FileHandler` class
|
||||
and its subclasses :class:`WatchedFileHandler`, :class:`RotatingFileHandler`,
|
||||
and :class:`TimedRotatingFileHandler` now
|
||||
have an optional *delay* parameter to its constructor. If *delay*
|
||||
have an optional *delay* parameter to their constructors. If *delay*
|
||||
is true, opening of the log file is deferred until the first
|
||||
:meth:`emit` call is made. (Contributed by Vinay Sajip.)
|
||||
|
||||
|
@ -2166,15 +2062,55 @@ details.
|
|||
in determining when midnight occurs and in generating filenames;
|
||||
otherwise local time will be used.
|
||||
|
||||
* The :mod:`macfs` module has been removed. This in turn required the
|
||||
:func:`macostools.touched` function to be removed because it depended on the
|
||||
:mod:`macfs` module. (:issue:`1490190`)
|
||||
* Several new functions were added to the :mod:`math` module:
|
||||
|
||||
* :class:`mmap` objects now have a :meth:`rfind` method that finds
|
||||
a substring, beginning at the end of the string and searching
|
||||
backwards. The :meth:`find` method
|
||||
also gained an *end* parameter containing the index at which to stop
|
||||
the forward search.
|
||||
* :func:`~math.isinf` and :func:`~math.isnan` determine whether a given float
|
||||
is a (positive or negative) infinity or a NaN (Not a Number), respectively.
|
||||
|
||||
* :func:`~math.copysign` copies the sign bit of an IEEE 754 number,
|
||||
returning the absolute value of *x* combined with the sign bit of
|
||||
*y*. For example, ``math.copysign(1, -0.0)`` returns -1.0.
|
||||
(Contributed by Christian Heimes.)
|
||||
|
||||
* :func:`~math.factorial` computes the factorial of a number.
|
||||
(Contributed by Raymond Hettinger; :issue:`2138`.)
|
||||
|
||||
* :func:`~math.fsum` adds up the stream of numbers from an iterable,
|
||||
and is careful to avoid loss of precision through using partial sums.
|
||||
(Contributed by Jean Brouwers, Raymond Hettinger, and Mark Dickinson;
|
||||
:issue:`2819`.)
|
||||
|
||||
* :func:`~math.acosh`, :func:`~math.asinh`
|
||||
and :func:`~math.atanh` compute the inverse hyperbolic functions.
|
||||
|
||||
* :func:`~math.log1p` returns the natural logarithm of *1+x*
|
||||
(base *e*).
|
||||
|
||||
* :func:`trunc` rounds a number toward zero, returning the closest
|
||||
:class:`Integral` that's between the function's argument and zero.
|
||||
Added as part of the backport of
|
||||
`PEP 3141's type hierarchy for numbers <#pep-3141>`__.
|
||||
|
||||
* The :mod:`math` module has been improved to give more consistent
|
||||
behaviour across platforms, especially with respect to handling of
|
||||
floating-point exceptions and IEEE 754 special values.
|
||||
|
||||
Whenever possible, the module follows the recommendations of the C99
|
||||
standard about 754's special values. For example, ``sqrt(-1.)``
|
||||
should now give a :exc:`ValueError` across almost all platforms,
|
||||
while ``sqrt(float('NaN'))`` should return a NaN on all IEEE 754
|
||||
platforms. Where Annex 'F' of the C99 standard recommends signaling
|
||||
'divide-by-zero' or 'invalid', Python will raise :exc:`ValueError`.
|
||||
Where Annex 'F' of the C99 standard recommends signaling 'overflow',
|
||||
Python will raise :exc:`OverflowError`. (See :issue:`711019` and
|
||||
:issue:`1640`.)
|
||||
|
||||
(Contributed by Christian Heimes and Mark Dickinson.)
|
||||
|
||||
* :class:`mmap` objects now have a :meth:`rfind` method that searches for a
|
||||
substring beginning at the end of the string and searching
|
||||
backwards. The :meth:`find` method also gained an *end* parameter
|
||||
giving an index at which to stop searching.
|
||||
(Contributed by John Lenton.)
|
||||
|
||||
* The :mod:`operator` module gained a
|
||||
|
@ -2192,7 +2128,8 @@ details.
|
|||
The :func:`attrgetter` function now accepts dotted names and performs
|
||||
the corresponding attribute lookups::
|
||||
|
||||
>>> inst_name = operator.attrgetter('__class__.__name__')
|
||||
>>> inst_name = operator.attrgetter(
|
||||
... '__class__.__name__')
|
||||
>>> inst_name('')
|
||||
'str'
|
||||
>>> inst_name(help)
|
||||
|
@ -2200,14 +2137,28 @@ details.
|
|||
|
||||
(Contributed by Georg Brandl, after a suggestion by Barry Warsaw.)
|
||||
|
||||
* New functions in the :mod:`os` module include
|
||||
``fchmod(fd, mode)``, ``fchown(fd, uid, gid)``,
|
||||
and ``lchmod(path, mode)``, on operating systems that support these
|
||||
functions. :func:`fchmod` and :func:`fchown` change the mode
|
||||
and ownership of an opened file, and :func:`lchmod` changes the mode
|
||||
of a symlink.
|
||||
* The :mod:`os` module now wraps several new system calls.
|
||||
``fchmod(fd, mode)`` and ``fchown(fd, uid, gid)`` change the mode
|
||||
and ownership of an opened file, and ``lchmod(path, mode)`` changes
|
||||
the mode of a symlink. (Contributed by Georg Brandl and Christian
|
||||
Heimes.)
|
||||
|
||||
(Contributed by Georg Brandl and Christian Heimes.)
|
||||
:func:`chflags` and :func:`lchflags` are wrappers for the
|
||||
corresponding system calls (where they're available), changing the
|
||||
flags set on a file. Constants for the flag values are defined in
|
||||
the :mod:`stat` module; some possible values include
|
||||
:const:`UF_IMMUTABLE` to signal the file may not be changed and
|
||||
:const:`UF_APPEND` to indicate that data can only be appended to the
|
||||
file. (Contributed by M. Levinson.)
|
||||
|
||||
``os.closerange(*low*, *high*)`` efficiently closes all file descriptors
|
||||
from *low* to *high*, ignoring any errors and not including *high* itself.
|
||||
This function is now used by the :mod:`subprocess` module to make starting
|
||||
processes faster. (Contributed by Georg Brandl; :issue:`1663329`.)
|
||||
|
||||
* The ``os.environ`` object's :meth:`clear` method will now unset the
|
||||
environment variables using :func:`os.unsetenv` in addition to clearing
|
||||
the object's keys. (Contributed by Martin Horcicka; :issue:`1181`.)
|
||||
|
||||
* The :func:`os.walk` function now has a ``followlinks`` parameter. If
|
||||
set to True, it will follow symlinks pointing to directories and
|
||||
|
@ -2216,10 +2167,6 @@ details.
|
|||
into an infinite recursion if there's a symlink that points to a
|
||||
parent directory. (:issue:`1273829`)
|
||||
|
||||
* The ``os.environ`` object's :meth:`clear` method will now unset the
|
||||
environment variables using :func:`os.unsetenv` in addition to clearing
|
||||
the object's keys. (Contributed by Martin Horcicka; :issue:`1181`.)
|
||||
|
||||
* In the :mod:`os.path` module, the :func:`splitext` function
|
||||
has been changed to not split on leading period characters.
|
||||
This produces better results when operating on Unix's dot-files.
|
||||
|
@ -2227,22 +2174,22 @@ details.
|
|||
now returns ``('.ipython', '')`` instead of ``('', '.ipython')``.
|
||||
(:issue:`115886`)
|
||||
|
||||
A new function, :func:`relpath(path, start)` returns a relative path
|
||||
A new function, ``os.path.relpath(path, start='.')``, returns a relative path
|
||||
from the ``start`` path, if it's supplied, or from the current
|
||||
working directory to the destination ``path``. (Contributed by
|
||||
Richard Barran; :issue:`1339796`.)
|
||||
|
||||
On Windows, :func:`os.path.expandvars` will now expand environment variables
|
||||
in the form "%var%", and "~user" will be expanded into the
|
||||
given in the form "%var%", and "~user" will be expanded into the
|
||||
user's home directory path. (Contributed by Josiah Carlson;
|
||||
:issue:`957650`.)
|
||||
|
||||
* The Python debugger provided by the :mod:`pdb` module
|
||||
gained a new command: "run" restarts the Python program being debugged,
|
||||
gained a new command: "run" restarts the Python program being debugged
|
||||
and can optionally take new command-line arguments for the program.
|
||||
(Contributed by Rocky Bernstein; :issue:`1393667`.)
|
||||
|
||||
The :func:`post_mortem` function, used to enter debugging of a
|
||||
The :func:`post_mortem` function, used to begin debugging a
|
||||
traceback, will now use the traceback returned by :func:`sys.exc_info`
|
||||
if no traceback is supplied. (Contributed by Facundo Batista;
|
||||
:issue:`1106316`.)
|
||||
|
@ -2270,24 +2217,12 @@ details.
|
|||
|
||||
(Contributed by Paul Moore; :issue:`2439`.)
|
||||
|
||||
* New functions in the :mod:`posix` module: :func:`chflags` and :func:`lchflags`
|
||||
are wrappers for the corresponding system calls (where they're available).
|
||||
Constants for the flag values are defined in the :mod:`stat` module; some
|
||||
possible values include :const:`UF_IMMUTABLE` to signal the file may not be
|
||||
changed and :const:`UF_APPEND` to indicate that data can only be appended to the
|
||||
file. (Contributed by M. Levinson.)
|
||||
|
||||
``os.closerange(*low*, *high*)`` efficiently closes all file descriptors
|
||||
from *low* to *high*, ignoring any errors and not including *high* itself.
|
||||
This function is now used by the :mod:`subprocess` module to make starting
|
||||
processes faster. (Contributed by Georg Brandl; :issue:`1663329`.)
|
||||
|
||||
* The :mod:`pyexpat` module's :class:`Parser` objects now allow setting
|
||||
their :attr:`buffer_size` attribute to change the size of the buffer
|
||||
used to hold character data.
|
||||
(Contributed by Achim Gaedke; :issue:`1137`.)
|
||||
|
||||
* The :mod:`Queue` module now provides queue classes that retrieve entries
|
||||
* The :mod:`Queue` module now provides queue variants that retrieve entries
|
||||
in different orders. The :class:`PriorityQueue` class stores
|
||||
queued items in a heap and retrieves them in priority order,
|
||||
and :class:`LifoQueue` retrieves the most recently added entries first,
|
||||
|
@ -2304,12 +2239,12 @@ details.
|
|||
The new ``triangular(low, high, mode)`` function returns random
|
||||
numbers following a triangular distribution. The returned values
|
||||
are between *low* and *high*, not including *high* itself, and
|
||||
with *mode* as the mode, the most frequently occurring value
|
||||
with *mode* as the most frequently occurring value
|
||||
in the distribution. (Contributed by Wladmir van der Laan and
|
||||
Raymond Hettinger; :issue:`1681432`.)
|
||||
|
||||
* Long regular expression searches carried out by the :mod:`re`
|
||||
module will now check for signals being delivered, so especially
|
||||
module will check for signals being delivered, so
|
||||
time-consuming searches can now be interrupted.
|
||||
(Contributed by Josh Hoyt and Ralf Schmitt; :issue:`846388`.)
|
||||
|
||||
|
@ -2334,10 +2269,10 @@ details.
|
|||
|
||||
* The :mod:`select` module now has wrapper functions
|
||||
for the Linux :cfunc:`epoll` and BSD :cfunc:`kqueue` system calls.
|
||||
Also, a :meth:`modify` method was added to the existing :class:`poll`
|
||||
:meth:`modify` method was added to the existing :class:`poll`
|
||||
objects; ``pollobj.modify(fd, eventmask)`` takes a file descriptor
|
||||
or file object and an event mask,
|
||||
|
||||
or file object and an event mask, modifying the recorded event mask
|
||||
for that file.
|
||||
(Contributed by Christian Heimes; :issue:`1657`.)
|
||||
|
||||
* The :mod:`sets` module has been deprecated; it's better to
|
||||
|
@ -2351,8 +2286,8 @@ details.
|
|||
The :mod:`shutil` module also provides an :func:`ignore_patterns`
|
||||
function for use with this new parameter.
|
||||
:func:`ignore_patterns` takes an arbitrary number of glob-style patterns
|
||||
and will ignore any files and directories that match this pattern.
|
||||
The following example copies a directory tree, but skip both SVN's internal
|
||||
and will ignore any files and directories that match any of these patterns.
|
||||
The following example copies a directory tree, but skips both
|
||||
:file:`.svn` directories and Emacs backup
|
||||
files, which have names ending with '~'::
|
||||
|
||||
|
@ -2363,7 +2298,8 @@ details.
|
|||
|
||||
* Integrating signal handling with GUI handling event loops
|
||||
like those used by Tkinter or GTk+ has long been a problem; most
|
||||
software ends up polling, waking up every fraction of a second.
|
||||
software ends up polling, waking up every fraction of a second to check
|
||||
if any GUI events have occurred.
|
||||
The :mod:`signal` module can now make this more efficient.
|
||||
Calling ``signal.set_wakeup_fd(fd)`` sets a file descriptor
|
||||
to be used; when a signal is received, a byte is written to that
|
||||
|
@ -2376,7 +2312,7 @@ details.
|
|||
will be added to the list of descriptors monitored by the event loop via
|
||||
:cfunc:`select` or :cfunc:`poll`.
|
||||
On receiving a signal, a byte will be written and the main event loop
|
||||
will be woken up, without the need to poll.
|
||||
will be woken up, avoiding the need to poll.
|
||||
|
||||
(Contributed by Adam Olsen; :issue:`1583`.)
|
||||
|
||||
|
@ -2385,7 +2321,7 @@ details.
|
|||
(Contributed by Ralf Schmitt.)
|
||||
|
||||
The :func:`setitimer` and :func:`getitimer` functions have also been
|
||||
added on systems that support these system calls. :func:`setitimer`
|
||||
added (where they're available). :func:`setitimer`
|
||||
allows setting interval timers that will cause a signal to be
|
||||
delivered to the process after a specified time, measured in
|
||||
wall-clock time, consumed process time, or combined process+system
|
||||
|
@ -2393,22 +2329,20 @@ details.
|
|||
|
||||
* The :mod:`smtplib` module now supports SMTP over SSL thanks to the
|
||||
addition of the :class:`SMTP_SSL` class. This class supports an
|
||||
interface identical to the existing :class:`SMTP` class. Both
|
||||
class constructors also have an optional ``timeout`` parameter
|
||||
that specifies a timeout for the initial connection attempt, measured in
|
||||
seconds.
|
||||
interface identical to the existing :class:`SMTP` class.
|
||||
(Contributed by Monty Taylor.) Both class constructors also have an
|
||||
optional ``timeout`` parameter that specifies a timeout for the
|
||||
initial connection attempt, measured in seconds. (Contributed by
|
||||
Facundo Batista.)
|
||||
|
||||
An implementation of the LMTP protocol (:rfc:`2033`) was also added to
|
||||
the module. LMTP is used in place of SMTP when transferring e-mail
|
||||
between agents that don't manage a mail queue.
|
||||
An implementation of the LMTP protocol (:rfc:`2033`) was also added
|
||||
to the module. LMTP is used in place of SMTP when transferring
|
||||
e-mail between agents that don't manage a mail queue. (LMTP
|
||||
implemented by Leif Hedstrom; :issue:`957003`.)
|
||||
|
||||
(SMTP over SSL contributed by Monty Taylor; timeout parameter
|
||||
added by Facundo Batista; LMTP implemented by Leif
|
||||
Hedstrom; :issue:`957003`.)
|
||||
|
||||
* In the :mod:`smtplib` module, SMTP.starttls() now complies with :rfc:`3207`
|
||||
and forgets any knowledge obtained from the server not obtained from
|
||||
the TLS negotiation itself. (Patch contributed by Bill Fenner;
|
||||
SMTP.starttls() now complies with :rfc:`3207` and forgets any
|
||||
knowledge obtained from the server not obtained from the TLS
|
||||
negotiation itself. (Patch contributed by Bill Fenner;
|
||||
:issue:`829951`.)
|
||||
|
||||
* The :mod:`socket` module now supports TIPC (http://tipc.sf.net),
|
||||
|
@ -2440,15 +2374,13 @@ details.
|
|||
:cfunc:`TerminateProcess`.
|
||||
(Contributed by Christian Heimes.)
|
||||
|
||||
* A new variable in the :mod:`sys` module,
|
||||
:attr:`float_info`, is an object
|
||||
containing information about the platform's floating-point support
|
||||
derived from the :file:`float.h` file. Attributes of this object
|
||||
include
|
||||
:attr:`mant_dig` (number of digits in the mantissa), :attr:`epsilon`
|
||||
(smallest difference between 1.0 and the next largest value
|
||||
representable), and several others. (Contributed by Christian Heimes;
|
||||
:issue:`1534`.)
|
||||
* A new variable in the :mod:`sys` module, :attr:`float_info`, is an
|
||||
object containing information derived from the :file:`float.h` file
|
||||
about the platform's floating-point support. Attributes of this
|
||||
object include :attr:`mant_dig` (number of digits in the mantissa),
|
||||
:attr:`epsilon` (smallest difference between 1.0 and the next
|
||||
largest value representable), and several others. (Contributed by
|
||||
Christian Heimes; :issue:`1534`.)
|
||||
|
||||
Another new variable, :attr:`dont_write_bytecode`, controls whether Python
|
||||
writes any :file:`.pyc` or :file:`.pyo` files on importing a module.
|
||||
|
@ -2486,16 +2418,17 @@ details.
|
|||
is GNU tar; specify the ``format`` parameter to open a file
|
||||
using a different format::
|
||||
|
||||
tar = tarfile.open("output.tar", "w", format=tarfile.PAX_FORMAT)
|
||||
tar = tarfile.open("output.tar", "w",
|
||||
format=tarfile.PAX_FORMAT)
|
||||
|
||||
The new ``errors`` parameter specifies an error handling
|
||||
scheme for character conversions: the three standard ways Python can
|
||||
handle errors ``'strict'``, ``'ignore'``, ``'replace'`` , or the
|
||||
special value ``'utf-8'``, which replaces bad characters with their
|
||||
UTF-8 representation. Character conversions occur because the PAX
|
||||
format supports Unicode filenames, defaulting to UTF-8 encoding.
|
||||
The new ``errors`` parameter specifies an error handling scheme for
|
||||
character conversions. ``'strict'``, ``'ignore'``, and
|
||||
``'replace'`` are the three standard ways Python can handle errors,;
|
||||
``'utf-8'`` is a special value that replaces bad characters with
|
||||
their UTF-8 representation. (Character conversions occur because the
|
||||
PAX format supports Unicode filenames, defaulting to UTF-8 encoding.)
|
||||
|
||||
The :meth:`TarFile.add` method now accepts a ``exclude`` argument that's
|
||||
The :meth:`TarFile.add` method now accepts an ``exclude`` argument that's
|
||||
a function that can be used to exclude certain filenames from
|
||||
an archive.
|
||||
The function must take a filename and return true if the file
|
||||
|
@ -2524,9 +2457,9 @@ details.
|
|||
``with tempfile.NamedTemporaryFile() as tmp: ...``.
|
||||
(Contributed by Alexander Belopolsky; :issue:`2021`.)
|
||||
|
||||
* The :mod:`test.test_support` module now contains a
|
||||
* The :mod:`test.test_support` module now contains an
|
||||
:func:`EnvironmentVarGuard`
|
||||
context manager that supports temporarily changing environment variables and
|
||||
context manager that temporarily changes environment variables and
|
||||
automatically restores them to their old values.
|
||||
|
||||
Another context manager, :class:`TransientResource`, can surround calls
|
||||
|
@ -2535,7 +2468,8 @@ details.
|
|||
a network test may ignore certain failures when connecting to an
|
||||
external web site::
|
||||
|
||||
with test_support.TransientResource(IOError, errno=errno.ETIMEDOUT):
|
||||
with test_support.TransientResource(IOError,
|
||||
errno=errno.ETIMEDOUT):
|
||||
f = urllib.urlopen('https://sf.net')
|
||||
...
|
||||
|
||||
|
@ -2546,7 +2480,8 @@ details.
|
|||
by specifying ``drop_whitespace=False``
|
||||
as an argument::
|
||||
|
||||
>>> S = """This sentence has a bunch of extra whitespace."""
|
||||
>>> S = """This sentence has a bunch of
|
||||
... extra whitespace."""
|
||||
>>> print textwrap.fill(S, width=15)
|
||||
This sentence
|
||||
has a bunch
|
||||
|
@ -2561,7 +2496,7 @@ details.
|
|||
|
||||
(Contributed by Dwayne Bailey; :issue:`1581073`.)
|
||||
|
||||
* The :mod:`threading` module API is being changed for Python 3.0, to
|
||||
* The :mod:`threading` module API is being changed in Python 3.0 to
|
||||
use properties such as :attr:`daemon` instead of :meth:`setDaemon`
|
||||
and :meth:`isDaemon` methods, and some methods have been renamed to
|
||||
use underscores instead of camel-case; for example, the
|
||||
|
@ -2593,11 +2528,11 @@ details.
|
|||
Gregor Lingl. New features in the module include:
|
||||
|
||||
* Better animation of turtle movement and rotation.
|
||||
* Control over turtle movement using the new delay(),
|
||||
tracer(), and speed() methods.
|
||||
* Control over turtle movement using the new :meth:`delay`,
|
||||
:meth:`tracer`, and :meth:`speed` methods.
|
||||
* The ability to set new shapes for the turtle, and to
|
||||
define a new coordinate system.
|
||||
* Turtles now have an undo() method that can roll back actions.
|
||||
* Turtles now have an :meth:`undo()` method that can roll back actions.
|
||||
* Simple support for reacting to input events such as mouse and keyboard
|
||||
activity, making it possible to write simple games.
|
||||
* A :file:`turtle.cfg` file can be used to customize the starting appearance
|
||||
|
@ -2613,7 +2548,8 @@ details.
|
|||
:func:`urllib2.urlopen` function. The parameter specifies a timeout
|
||||
measured in seconds. For example::
|
||||
|
||||
>>> u = urllib2.urlopen("http://slow.example.com", timeout=3)
|
||||
>>> u = urllib2.urlopen("http://slow.example.com",
|
||||
timeout=3)
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
urllib2.URLError: <urlopen error timed out>
|
||||
|
@ -2639,7 +2575,7 @@ details.
|
|||
attribute; if true, the exception and formatted traceback are returned
|
||||
as HTTP headers "X-Exception" and "X-Traceback". This feature is
|
||||
for debugging purposes only and should not be used on production servers
|
||||
because the tracebacks could possibly reveal passwords or other sensitive
|
||||
because the tracebacks might reveal passwords or other sensitive
|
||||
information. (Contributed by Alan McIntyre as part of his
|
||||
project for Google's Summer of Code 2007.)
|
||||
|
||||
|
@ -2660,7 +2596,8 @@ details.
|
|||
|
||||
z = zipfile.ZipFile('python-251.zip')
|
||||
|
||||
# Unpack a single file, writing it relative to the /tmp directory.
|
||||
# Unpack a single file, writing it relative
|
||||
# to the /tmp directory.
|
||||
z.extract('Python/sysmodule.c', '/tmp')
|
||||
|
||||
# Unpack all the files in the archive.
|
||||
|
@ -3077,6 +3014,83 @@ Port-Specific Changes: MacOS X
|
|||
:option:`--with-framework-name=` option to the
|
||||
:program:`configure` script.
|
||||
|
||||
* The :mod:`macfs` module has been removed. This in turn required the
|
||||
:func:`macostools.touched` function to be removed because it depended on the
|
||||
:mod:`macfs` module. (:issue:`1490190`)
|
||||
|
||||
* Many other MacOS modules have been deprecated and will removed in
|
||||
Python 3.0:
|
||||
:mod:`_builtinSuites`,
|
||||
:mod:`aepack`,
|
||||
:mod:`aetools`,
|
||||
:mod:`aetypes`,
|
||||
:mod:`applesingle`,
|
||||
:mod:`appletrawmain`,
|
||||
:mod:`appletrunner`,
|
||||
:mod:`argvemulator`,
|
||||
:mod:`Audio_mac`,
|
||||
:mod:`autoGIL`,
|
||||
:mod:`Carbon`,
|
||||
:mod:`cfmfile`,
|
||||
:mod:`CodeWarrior`,
|
||||
:mod:`ColorPicker`,
|
||||
:mod:`EasyDialogs`,
|
||||
:mod:`Explorer`,
|
||||
:mod:`Finder`,
|
||||
:mod:`FrameWork`,
|
||||
:mod:`findertools`,
|
||||
:mod:`ic`,
|
||||
:mod:`icglue`,
|
||||
:mod:`icopen`,
|
||||
:mod:`macerrors`,
|
||||
:mod:`MacOS`,
|
||||
:mod:`macfs`,
|
||||
:mod:`macostools`,
|
||||
:mod:`macresource`,
|
||||
:mod:`MiniAEFrame`,
|
||||
:mod:`Nav`,
|
||||
:mod:`Netscape`,
|
||||
:mod:`OSATerminology`,
|
||||
:mod:`pimp`,
|
||||
:mod:`PixMapWrapper`,
|
||||
:mod:`StdSuites`,
|
||||
:mod:`SystemEvents`,
|
||||
:mod:`Terminal`, and
|
||||
:mod:`terminalcommand`.
|
||||
|
||||
.. ======================================================================
|
||||
|
||||
Port-Specific Changes: IRIX
|
||||
-----------------------------------
|
||||
|
||||
A number of old IRIX-specific modules were deprecated and will
|
||||
be removed in Python 3.0:
|
||||
:mod:`al` and :mod:`AL`,
|
||||
:mod:`cd`,
|
||||
:mod:`cddb`,
|
||||
:mod:`cdplayer`,
|
||||
:mod:`CL` and :mod:`cl`,
|
||||
:mod:`DEVICE`,
|
||||
:mod:`ERRNO`,
|
||||
:mod:`FILE`,
|
||||
:mod:`FL` and :mod:`fl`,
|
||||
:mod:`flp`,
|
||||
:mod:`fm`,
|
||||
:mod:`GET`,
|
||||
:mod:`GLWS`,
|
||||
:mod:`GL` and :mod:`gl`,
|
||||
:mod:`IN`,
|
||||
:mod:`IOCTL`,
|
||||
:mod:`jpeg`,
|
||||
:mod:`panelparser`,
|
||||
:mod:`readcd`,
|
||||
:mod:`SV` and :mod:`sv`,
|
||||
:mod:`torgb`,
|
||||
:mod:`videoreader`, and
|
||||
:mod:`WAIT`.
|
||||
|
||||
|
||||
|
||||
.. ======================================================================
|
||||
|
||||
|
||||
|
@ -3113,7 +3127,7 @@ that may require changes to your code:
|
|||
* The :meth:`__init__` method of :class:`collections.deque`
|
||||
now clears any existing contents of the deque
|
||||
before adding elements from the iterable. This change makes the
|
||||
behavior match that of ``list.__init__()``.
|
||||
behavior match ``list.__init__()``.
|
||||
|
||||
* The :class:`Decimal` constructor now accepts leading and trailing
|
||||
whitespace when passed a string. Previously it would raise an
|
||||
|
|
Loading…
Reference in New Issue