mirror of https://github.com/python/cpython
Add various items
This commit is contained in:
parent
c2936b786a
commit
2c130b6be7
|
@ -88,8 +88,25 @@ Other Language Changes
|
||||||
|
|
||||||
Some smaller changes made to the core Python language are:
|
Some smaller changes made to the core Python language are:
|
||||||
|
|
||||||
|
* The string :method:`format` method now supports automatic numbering
|
||||||
|
of the replacement fields. This makes using :meth:`format`
|
||||||
|
more closely resemble using ``%s`` formatting::
|
||||||
|
|
||||||
|
>>> '{}:{}:{}'.format(2009, 04, 'Sunday')
|
||||||
|
'2009:4:Sunday'
|
||||||
|
>>> '{}:{}:{day}'.format(2009, 4, day='Sunday')
|
||||||
|
'2009:4:Sunday'
|
||||||
|
|
||||||
|
The auto-numbering takes the fields from left to right, so the first
|
||||||
|
``{...}`` specifier will use the first argument to :meth:`format`,
|
||||||
|
the next specifier will use the next argument, and so on. You can't
|
||||||
|
mix auto-numbering and explicit numbering -- either number all of
|
||||||
|
your specifier fields or none of them -- but you can mix
|
||||||
|
auto-numbering and named fields, as in the second example above.
|
||||||
|
(Contributed by XXX; :issue`5237`.)
|
||||||
|
|
||||||
* The :func:`int` and :func:`long` types gained a ``bit_length``
|
* The :func:`int` and :func:`long` types gained a ``bit_length``
|
||||||
method that returns the number of bits necessary to represent
|
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' method that returns the number of bits necessary to represent
|
||||||
its argument in binary::
|
its argument in binary::
|
||||||
|
|
||||||
>>> n = 37
|
>>> n = 37
|
||||||
|
@ -106,7 +123,7 @@ Some smaller changes made to the core Python language are:
|
||||||
(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.)
|
(Contributed by Fredrik Johansson and Victor Stinner; :issue:`3439`.)
|
||||||
|
|
||||||
* The :class:`bytearray` type's :meth:`translate` method will
|
* The :class:`bytearray` type's :meth:`translate` method will
|
||||||
now accept None as its first argument. (Fixed by Georg Brandl;
|
now accept ``None`` as its first argument. (Fixed by Georg Brandl;
|
||||||
:issue:`4759`.)
|
:issue:`4759`.)
|
||||||
|
|
||||||
.. ======================================================================
|
.. ======================================================================
|
||||||
|
@ -201,7 +218,7 @@ changes, or look through the Subversion logs for all the details.
|
||||||
management protocol, so you can write ``with bz2.BZ2File(...) as f: ...``.
|
management protocol, so you can write ``with bz2.BZ2File(...) as f: ...``.
|
||||||
(Contributed by Hagen Fuerstenau; :issue:`3860`.)
|
(Contributed by Hagen Fuerstenau; :issue:`3860`.)
|
||||||
|
|
||||||
* A new :class:`Counter` class in the :mod:`collections` module is
|
* New class: the :class:`Counter` class in the :mod:`collections` module is
|
||||||
useful for tallying data. :class:`Counter` instances behave mostly
|
useful for tallying data. :class:`Counter` instances behave mostly
|
||||||
like dictionaries but return zero for missing keys instead of
|
like dictionaries but return zero for missing keys instead of
|
||||||
raising a :exc:`KeyError`::
|
raising a :exc:`KeyError`::
|
||||||
|
@ -236,7 +253,7 @@ changes, or look through the Subversion logs for all the details.
|
||||||
Contributed by Raymond Hettinger; :issue:`1696199`.
|
Contributed by Raymond Hettinger; :issue:`1696199`.
|
||||||
|
|
||||||
The :class:`namedtuple` class now has an optional *rename* parameter.
|
The :class:`namedtuple` class now has an optional *rename* parameter.
|
||||||
If *rename* is True, field names that are invalid because they've
|
If *rename* is true, field names that are invalid because they've
|
||||||
been repeated or that aren't legal Python identifiers will be
|
been repeated or that aren't legal Python identifiers will be
|
||||||
renamed to legal names that are derived from the field's
|
renamed to legal names that are derived from the field's
|
||||||
position within the list of fields:
|
position within the list of fields:
|
||||||
|
@ -247,8 +264,13 @@ changes, or look through the Subversion logs for all the details.
|
||||||
|
|
||||||
(Added by Raymond Hettinger; :issue:`1818`.)
|
(Added by Raymond Hettinger; :issue:`1818`.)
|
||||||
|
|
||||||
|
The :class:`deque` data type now exposes its maximum length as the
|
||||||
|
read-only :attr:`maxlen` attribute. (Added by Raymond Hettinger.)
|
||||||
|
|
||||||
* In Distutils, :func:`distutils.sdist.add_defaults` now uses
|
* In Distutils, :func:`distutils.sdist.add_defaults` now uses
|
||||||
*package_dir* and *data_files* to create the MANIFEST file.
|
*package_dir* and *data_files* to create the MANIFEST file.
|
||||||
|
:mod:`distutils.sysconfig` will now read the :envvar:`AR`
|
||||||
|
environment variable.
|
||||||
|
|
||||||
It is no longer mandatory to store clear-text passwords in the
|
It is no longer mandatory to store clear-text passwords in the
|
||||||
:file:`.pypirc` file when registering and uploading packages to PyPI. As long
|
:file:`.pypirc` file when registering and uploading packages to PyPI. As long
|
||||||
|
@ -256,6 +278,12 @@ changes, or look through the Subversion logs for all the details.
|
||||||
prompt for the password if not present. (Added by Tarek Ziade,
|
prompt for the password if not present. (Added by Tarek Ziade,
|
||||||
based on an initial contribution by Nathan Van Gheem; :issue:`4394`.)
|
based on an initial contribution by Nathan Van Gheem; :issue:`4394`.)
|
||||||
|
|
||||||
|
A Distutils setup can now specify that a C extension is optional by
|
||||||
|
setting the *optional* option setting to true. If this optional is
|
||||||
|
supplied, failure to build the extension will not abort the build
|
||||||
|
process, but instead simply not install the failing extension.
|
||||||
|
(Contributed by XXX; :issue:`5583`.)
|
||||||
|
|
||||||
* New method: the :class:`Decimal` class gained a
|
* New method: the :class:`Decimal` class gained a
|
||||||
:meth:`from_float` class method that performs an exact conversion
|
:meth:`from_float` class method that performs an exact conversion
|
||||||
of a floating-point number to a :class:`Decimal`.
|
of a floating-point number to a :class:`Decimal`.
|
||||||
|
@ -267,8 +295,8 @@ changes, or look through the Subversion logs for all the details.
|
||||||
``Decimal('0.1000000000000000055511151231257827021181583404541015625')``.
|
``Decimal('0.1000000000000000055511151231257827021181583404541015625')``.
|
||||||
(Implemented by Raymond Hettinger; :issue:`4796`.)
|
(Implemented by Raymond Hettinger; :issue:`4796`.)
|
||||||
|
|
||||||
* A new function in the :mod:`gc` module, :func:`is_tracked`, returns
|
* New function: the :mod:`gc` module's :func:`is_tracked` returns
|
||||||
True if a given instance is tracked by the garbage collector, False
|
true if a given instance is tracked by the garbage collector, false
|
||||||
otherwise. (Contributed by Antoine Pitrou; :issue:`4688`.)
|
otherwise. (Contributed by Antoine Pitrou; :issue:`4688`.)
|
||||||
|
|
||||||
* The :mod:`gzip` module's :class:`GzipFile` now supports the context
|
* The :mod:`gzip` module's :class:`GzipFile` now supports the context
|
||||||
|
@ -284,7 +312,7 @@ changes, or look through the Subversion logs for all the details.
|
||||||
|
|
||||||
* New function: ``itertools.compress(*data*, *selectors*)`` takes two
|
* New function: ``itertools.compress(*data*, *selectors*)`` takes two
|
||||||
iterators. Elements of *data* are returned if the corresponding
|
iterators. Elements of *data* are returned if the corresponding
|
||||||
value in *selectors* is True::
|
value in *selectors* is true::
|
||||||
|
|
||||||
itertools.compress('ABCDEF', [1,0,1,0,1,1]) =>
|
itertools.compress('ABCDEF', [1,0,1,0,1,1]) =>
|
||||||
A, C, E, F
|
A, C, E, F
|
||||||
|
@ -332,8 +360,12 @@ changes, or look through the Subversion logs for all the details.
|
||||||
uses. You can now do ``help('<<')`` or ``help('@')``, for example.
|
uses. You can now do ``help('<<')`` or ``help('@')``, for example.
|
||||||
(Contributed by David Laban; :issue:`4739`.)
|
(Contributed by David Laban; :issue:`4739`.)
|
||||||
|
|
||||||
* A new function in the :mod:`subprocess` module,
|
* The :mod:`re` module's :func:`split`, :func:`sub`, and :func:`subn`
|
||||||
:func:`check_output`, runs a command with a specified set of arguments
|
now accept an optional *flags* argument, for consistency with the
|
||||||
|
other functions in the module. (Added by Gregory P. Smith.)
|
||||||
|
|
||||||
|
* New function: the :mod:`subprocess` module's
|
||||||
|
:func:`check_output` runs a command with a specified set of arguments
|
||||||
and returns the command's output as a string when the command runs without
|
and returns the command's output as a string when the command runs without
|
||||||
error, or raises a :exc:`CalledProcessError` exception otherwise.
|
error, or raises a :exc:`CalledProcessError` exception otherwise.
|
||||||
|
|
||||||
|
@ -349,13 +381,25 @@ changes, or look through the Subversion logs for all the details.
|
||||||
|
|
||||||
(Contributed by Gregory P. Smith.)
|
(Contributed by Gregory P. Smith.)
|
||||||
|
|
||||||
|
* New function: :func:`is_declared_global` in the :mod:`symtable` module
|
||||||
|
returns true for variables that are explicitly declared to be global,
|
||||||
|
false for ones that are implicitly global.
|
||||||
|
(Contributed by Jeremy Hylton.)
|
||||||
|
|
||||||
* The ``sys.version_info`` value is now a named tuple, with attributes
|
* The ``sys.version_info`` value is now a named tuple, with attributes
|
||||||
named ``major``, ``minor``, ``micro``, ``releaselevel``, and ``serial``.
|
named ``major``, ``minor``, ``micro``, ``releaselevel``, and ``serial``.
|
||||||
(Contributed by Ross Light; :issue:`4285`.)
|
(Contributed by Ross Light; :issue:`4285`.)
|
||||||
|
|
||||||
|
* The :mod:`threading` module's :meth:`Event.wait` method now returns
|
||||||
|
the internal flag on exit. This means the method will usually
|
||||||
|
return true because :meth:`wait` is supposed to block until the
|
||||||
|
internal flag becomes true. The return value will only be false if
|
||||||
|
a timeout was provided and the operation timed out.
|
||||||
|
(Contributed by XXX; :issue:`1674032`.)
|
||||||
|
|
||||||
* The :mod:`unittest` module was enhanced in several ways.
|
* The :mod:`unittest` module was enhanced in several ways.
|
||||||
The progress messages will now print 'x' for expected failures
|
The progress messages will now show 'x' for expected failures
|
||||||
and 'u' for unexpected successes when run in its verbose mode.
|
and 'u' for unexpected successes when run in verbose mode.
|
||||||
(Contributed by Benjamin Peterson.)
|
(Contributed by Benjamin Peterson.)
|
||||||
Test cases can raise the :exc:`SkipTest` exception to skip a test.
|
Test cases can raise the :exc:`SkipTest` exception to skip a test.
|
||||||
(:issue:`1034053`.)
|
(:issue:`1034053`.)
|
||||||
|
@ -443,7 +487,37 @@ changes, or look through the Subversion logs for all the details.
|
||||||
importlib: Importing Modules
|
importlib: Importing Modules
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
XXX write this
|
Python 3.1 includes the :mod:`importlib` package, a re-implementation
|
||||||
|
of the logic underlying Python's :keyword:`import` statement.
|
||||||
|
:mod:`importlib` is useful for implementors of Python interpreters and
|
||||||
|
to user who wish to write new importers that can participate in the
|
||||||
|
import process. Python 2.7 doesn't contain the complete
|
||||||
|
:mod:`importlib` package, but instead has a tiny subset that contains
|
||||||
|
a single function, :func:`import_module`.
|
||||||
|
|
||||||
|
``import_module(*name*, *package*=None)`` imports a module. *name* is
|
||||||
|
a string containing the module or package's name. It's possible to do
|
||||||
|
relative imports by providing a string that begins with a ``.``
|
||||||
|
character, such as ``..utils.errors``. For relative imports, the
|
||||||
|
*package* argument must be provided and is the name of the package that
|
||||||
|
will be used as the anchor for
|
||||||
|
the relative import. :func:`import_module` both inserts the imported
|
||||||
|
module into ``sys.modules`` and returns the module object.
|
||||||
|
|
||||||
|
Here are some examples::
|
||||||
|
|
||||||
|
>>> from importlib import import_module
|
||||||
|
>>> anydbm = import_module('anydbm') # Standard absolute import
|
||||||
|
>>> anydbm
|
||||||
|
<module 'anydbm' from '/p/python/Lib/anydbm.py'>
|
||||||
|
>>> # Relative import
|
||||||
|
>>> sysconfig = import_module('..sysconfig', 'distutils.command')
|
||||||
|
>>> sysconfig
|
||||||
|
<module 'distutils.sysconfig' from '/p/python/Lib/distutils/sysconfig.pyc'>
|
||||||
|
|
||||||
|
:mod:`importlib` was implemented by Brett Cannon and introduced in
|
||||||
|
Python 3.1.
|
||||||
|
|
||||||
|
|
||||||
ttk: Themed Widgets for Tk
|
ttk: Themed Widgets for Tk
|
||||||
--------------------------
|
--------------------------
|
||||||
|
|
Loading…
Reference in New Issue