mirror of
https://github.com/python/cpython.git
synced 2025-11-14 07:49:28 +00:00
Entries for ElementTree, collectionsm, functools and ZipFile.
This commit is contained in:
parent
d6c5f749d8
commit
6046e22db3
1 changed files with 103 additions and 7 deletions
|
|
@ -530,6 +530,11 @@ The biggest news for Python 3.2 is that the :mod:`email` package and
|
||||||
:mod:`nntplib` modules now work correctly with the bytes/text model in Python 3.
|
:mod:`nntplib` modules now work correctly with the bytes/text model in Python 3.
|
||||||
For the first time, there is correct handling of inputs with mixed encodings.
|
For the first time, there is correct handling of inputs with mixed encodings.
|
||||||
|
|
||||||
|
Throughout the standard library, there has been more careful attention to
|
||||||
|
encodings and text versus bytes issues. In particular, interactions with the
|
||||||
|
operating system are now better able to pass non-ASCII data using the Windows
|
||||||
|
mcbs encoding, locale aware encodings, or UTF-8.
|
||||||
|
|
||||||
Another significant win is the addition of substantially better support for
|
Another significant win is the addition of substantially better support for
|
||||||
*SSL* connections and security certificates.
|
*SSL* connections and security certificates.
|
||||||
|
|
||||||
|
|
@ -576,6 +581,39 @@ format.
|
||||||
|
|
||||||
(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:`10321`.)
|
(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:`10321`.)
|
||||||
|
|
||||||
|
elementtree
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The :mod:`xml.etree.ElementTree` package and it's :mod:`xml.etree.cElementTree`
|
||||||
|
counterpart have been updated to version 1.3.
|
||||||
|
|
||||||
|
Several new and useful functions and methods have been added:
|
||||||
|
|
||||||
|
* :func:`xml.etree.ElementTree.fromstringlist` which builds an XML document
|
||||||
|
from a sequence of fragments
|
||||||
|
* :func:`xml.etree.ElementTree.register_namespace` for registering a global
|
||||||
|
namespace prefix
|
||||||
|
* :func:`xml.etree.ElementTree.tostringlist` for string representation
|
||||||
|
including all sublists
|
||||||
|
* :meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of zero
|
||||||
|
or more elements
|
||||||
|
* :meth:`xml.etree.ElementTree.Element.iterfind` searches an element and
|
||||||
|
subelements
|
||||||
|
* :meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over
|
||||||
|
an element and its sub-elements
|
||||||
|
* :meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element
|
||||||
|
* :meth:`xml.etree.ElementTree.TreeBuilder.doctype` handles a doctype
|
||||||
|
declaration
|
||||||
|
|
||||||
|
Two methods have been deprecated:
|
||||||
|
|
||||||
|
* :meth:`xml.etree.ElementTree.getchildren` use ``list(elem)`` instead.
|
||||||
|
* :meth:`xml.etree.ElementTree.getiterator` use ``Element.iter`` instead.
|
||||||
|
|
||||||
|
For details of the update, see `Introducing ElementTree
|
||||||
|
<http://effbot.org/zone/elementtree-13-intro.htm>`_ on Fredrik Lundh's website.
|
||||||
|
|
||||||
|
(Contributed by Fredrik Lundh.)
|
||||||
|
|
||||||
functools
|
functools
|
||||||
---------
|
---------
|
||||||
|
|
@ -619,6 +657,36 @@ functools
|
||||||
(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and
|
(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and
|
||||||
:issue:`8814`.)
|
:issue:`8814`.)
|
||||||
|
|
||||||
|
* To help write classes with rich comparison methods, a new decorator
|
||||||
|
:func:`functools.total_ordering` will use a existing equality and inequality
|
||||||
|
methods to fill-in the remaining methods.
|
||||||
|
|
||||||
|
For example, supplying *__eq__* and *__lt__* will enable
|
||||||
|
:func:`~functools.total_ordering` to fill-in *__le__*, *__gt__* and *__ge__*::
|
||||||
|
|
||||||
|
@total_ordering
|
||||||
|
class Student:
|
||||||
|
def __eq__(self, other):
|
||||||
|
return ((self.lastname.lower(), self.firstname.lower()) ==
|
||||||
|
(other.lastname.lower(), other.firstname.lower()))
|
||||||
|
def __lt__(self, other):
|
||||||
|
return ((self.lastname.lower(), self.firstname.lower()) <
|
||||||
|
(other.lastname.lower(), other.firstname.lower()))
|
||||||
|
|
||||||
|
(Contributed by Raymond Hettinger.)
|
||||||
|
|
||||||
|
* To aid in porting programs from Python 2, the :func:`~functools.cmp_to_key`
|
||||||
|
function converts an old-style comparion function to
|
||||||
|
modern :term:`key function`:
|
||||||
|
|
||||||
|
>>> # locale-aware sort order
|
||||||
|
>>> sorted(iterable, key=cmp_to_key(locale.strcoll))
|
||||||
|
|
||||||
|
For sorting examples and a brief sorting tutorial, see the `Sorting HowTo
|
||||||
|
<http://wiki.python.org/moin/HowTo/Sorting/>`_ tutorial.
|
||||||
|
|
||||||
|
(Contributed by Raymond Hettinger.)
|
||||||
|
|
||||||
itertools
|
itertools
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
|
@ -677,6 +745,21 @@ collections
|
||||||
>>> list(d)
|
>>> list(d)
|
||||||
['X', 'a', 'b', 'd', 'e']
|
['X', 'a', 'b', 'd', 'e']
|
||||||
|
|
||||||
|
(Contributed by Raymond Hettinger.)
|
||||||
|
|
||||||
|
* The :class:`collections.deque` grew two new methods :meth:`~collections.deque.count`
|
||||||
|
and :meth:`collections.deque.reverse` that make them more substitutable for
|
||||||
|
:class:`list` when needed:
|
||||||
|
|
||||||
|
>>> d = deque('simsalabim')
|
||||||
|
>>> d.count('s')
|
||||||
|
2
|
||||||
|
>>> d.reverse()
|
||||||
|
>>> d
|
||||||
|
deque(['m', 'i', 'b', 'a', 'l', 'a', 's', 'm', 'i', 's'])
|
||||||
|
|
||||||
|
(Contributed by Raymond Hettinger.)
|
||||||
|
|
||||||
datetime
|
datetime
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
@ -785,22 +868,27 @@ the constructor and to support mixed-type comparisons.
|
||||||
|
|
||||||
* The :class:`decimal.Decimal` contructor now accepts :class:`float` objects
|
* The :class:`decimal.Decimal` contructor now accepts :class:`float` objects
|
||||||
directly so there in no longer a need to use the :meth:`~decimal.Decimal.from_float`
|
directly so there in no longer a need to use the :meth:`~decimal.Decimal.from_float`
|
||||||
method.
|
method (:issue:`8257`).
|
||||||
|
|
||||||
* Mixed type comparisons are now fully supported so that
|
* Mixed type comparisons are now fully supported so that
|
||||||
:class:`~decimal.Decimal` objects can be directly compared with :class:`float`
|
:class:`~decimal.Decimal` objects can be directly compared with :class:`float`
|
||||||
and :class:`fractions.Fraction`.
|
and :class:`fractions.Fraction` (:issue:`2531` and :issue:`8188`).
|
||||||
|
|
||||||
Similar changes were made to :class:`fractions.Fraction` so that the
|
Similar changes were made to :class:`fractions.Fraction` so that the
|
||||||
:meth:`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction.from_decimal`
|
:meth:`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction.from_decimal`
|
||||||
methods are no longer needed.
|
methods are no longer needed (:issue:`8294`):
|
||||||
|
|
||||||
|
>>> Decimal(1.1)
|
||||||
|
Decimal('1.100000000000000088817841970012523233890533447265625')
|
||||||
|
>>> Fraction(1.1)
|
||||||
|
Fraction(2476979795053773, 2251799813685248)
|
||||||
|
|
||||||
Another useful change for the :mod:`decimal` module is that the
|
Another useful change for the :mod:`decimal` module is that the
|
||||||
:attr:`Context.clamp` attribute is now public. This is useful in creating
|
:attr:`Context.clamp` attribute is now public. This is useful in creating
|
||||||
contexts that correspond to the decimal interchange formats specified in IEEE
|
contexts that correspond to the decimal interchange formats specified in IEEE
|
||||||
754 (see :issue:`8540`).
|
754 (see :issue:`8540`).
|
||||||
|
|
||||||
(Contributed by Mark Dickinson.)
|
(Contributed by Mark Dickinson and Raymond Hettinger.)
|
||||||
|
|
||||||
ftp
|
ftp
|
||||||
---
|
---
|
||||||
|
|
@ -832,8 +920,8 @@ by Georg Brandl in :issue:`8046` and :issue:`1286`.)
|
||||||
|
|
||||||
.. XXX mention os.popen and subprocess.Popen auto-closing of fds
|
.. XXX mention os.popen and subprocess.Popen auto-closing of fds
|
||||||
|
|
||||||
gzip
|
gzip and zipfile
|
||||||
----
|
----------------
|
||||||
|
|
||||||
:class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase`
|
:class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase`
|
||||||
:term:`abstract base class` (except for ``truncate()``). It also has a
|
:term:`abstract base class` (except for ``truncate()``). It also has a
|
||||||
|
|
@ -860,6 +948,14 @@ before compressing and decompressing:
|
||||||
Aides and Brian Curtin in :issue:`9962`, :issue:`1675951`, :issue:`7471` and
|
Aides and Brian Curtin in :issue:`9962`, :issue:`1675951`, :issue:`7471` and
|
||||||
:issue:`2846`.)
|
:issue:`2846`.)
|
||||||
|
|
||||||
|
Also, the :class:`zipfile.ZipExtFile` class was reworked internally to represent
|
||||||
|
files stored inside an archive. The new implementation is significantly faster
|
||||||
|
and can be wrapped in a :class:`io.BufferedReader` object for more speedups. It
|
||||||
|
also solves an issue where interleaved calls to *read* and *readline* gave the
|
||||||
|
wrong results.
|
||||||
|
|
||||||
|
(Patch submitted by by Nir Aides in :issue:`7610`.)
|
||||||
|
|
||||||
shutil
|
shutil
|
||||||
------
|
------
|
||||||
|
|
||||||
|
|
@ -877,7 +973,7 @@ The :func:`shutil.copytree` function has two new options:
|
||||||
sqlite3
|
sqlite3
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The :mod:`sqlite3` module has two new capabilities.
|
The :mod:`sqlite3` module was updated to version 2.6.0. It has two new capabilities.
|
||||||
|
|
||||||
* The :attr:`sqlite3.Connection.in_transit` attribute is true if there is an
|
* The :attr:`sqlite3.Connection.in_transit` attribute is true if there is an
|
||||||
active transaction for uncommitted changes.
|
active transaction for uncommitted changes.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue