mirror of https://github.com/python/cpython
Merged revisions 69998-69999,70002,70022-70023,70025-70026,70061,70086,70145,70171,70183,70188,70235,70244,70275,70281 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r69998 | benjamin.peterson | 2009-02-26 13:04:40 -0600 (Thu, 26 Feb 2009) | 1 line the startship is rather outdated now ........ r69999 | benjamin.peterson | 2009-02-26 13:05:59 -0600 (Thu, 26 Feb 2009) | 1 line comma ........ r70002 | andrew.kuchling | 2009-02-26 16:34:30 -0600 (Thu, 26 Feb 2009) | 1 line The curses panel library is now supported ........ r70022 | georg.brandl | 2009-02-27 10:23:18 -0600 (Fri, 27 Feb 2009) | 1 line #5361: fix typo. ........ r70023 | georg.brandl | 2009-02-27 10:39:26 -0600 (Fri, 27 Feb 2009) | 1 line #5363: fix cmpfiles() docs. Another instance where a prose description is twice as long as the code. ........ r70025 | georg.brandl | 2009-02-27 10:52:55 -0600 (Fri, 27 Feb 2009) | 1 line #5344: fix punctuation. ........ r70026 | georg.brandl | 2009-02-27 10:59:03 -0600 (Fri, 27 Feb 2009) | 1 line #5365: add quick look conversion table for different time representations. ........ r70061 | hirokazu.yamamoto | 2009-02-28 09:24:00 -0600 (Sat, 28 Feb 2009) | 1 line Binary flag is needed on windows. ........ r70086 | benjamin.peterson | 2009-03-01 21:35:12 -0600 (Sun, 01 Mar 2009) | 1 line fix a silly problem of caching gone wrong #5401 ........ r70145 | benjamin.peterson | 2009-03-03 16:51:57 -0600 (Tue, 03 Mar 2009) | 1 line making the writing more formal ........ r70171 | facundo.batista | 2009-03-04 15:18:17 -0600 (Wed, 04 Mar 2009) | 3 lines Fixed a typo. ........ r70183 | benjamin.peterson | 2009-03-04 18:17:57 -0600 (Wed, 04 Mar 2009) | 1 line add example ........ r70188 | hirokazu.yamamoto | 2009-03-05 03:34:14 -0600 (Thu, 05 Mar 2009) | 1 line Fixed memory leak on failure. ........ r70235 | benjamin.peterson | 2009-03-07 18:21:17 -0600 (Sat, 07 Mar 2009) | 1 line fix funky indentation ........ r70244 | martin.v.loewis | 2009-03-08 09:06:19 -0500 (Sun, 08 Mar 2009) | 2 lines Add Chris Withers. ........ r70275 | georg.brandl | 2009-03-09 11:35:48 -0500 (Mon, 09 Mar 2009) | 2 lines Add missing space. ........ r70281 | benjamin.peterson | 2009-03-09 15:38:56 -0500 (Mon, 09 Mar 2009) | 1 line gzip and bz2 are context managers ........
This commit is contained in:
parent
07c0a7579b
commit
e0124bd9c3
|
@ -426,7 +426,7 @@ quirks, and provide complete lists of all the functions, attributes, and
|
||||||
Because the curses API is so large, some functions aren't supported in the
|
Because the curses API is so large, some functions aren't supported in the
|
||||||
Python interface, not because they're difficult to implement, but because no one
|
Python interface, not because they're difficult to implement, but because no one
|
||||||
has needed them yet. Feel free to add them and then submit a patch. Also, we
|
has needed them yet. Feel free to add them and then submit a patch. Also, we
|
||||||
don't yet have support for the menus or panels libraries associated with
|
don't yet have support for the menu library associated with
|
||||||
ncurses; feel free to add that.
|
ncurses; feel free to add that.
|
||||||
|
|
||||||
If you write an interesting little program, feel free to contribute it as
|
If you write an interesting little program, feel free to contribute it as
|
||||||
|
|
|
@ -58,6 +58,11 @@ Handling of compressed files is offered by the :class:`BZ2File` class.
|
||||||
reading. Instances support iteration in the same way as normal :class:`file`
|
reading. Instances support iteration in the same way as normal :class:`file`
|
||||||
instances.
|
instances.
|
||||||
|
|
||||||
|
:class:`BZ2File` supports the :keyword:`with` statement.
|
||||||
|
|
||||||
|
.. versionchanged:: 2.7
|
||||||
|
Support for the :keyword:`with` statement was added.
|
||||||
|
|
||||||
|
|
||||||
.. method:: close()
|
.. method:: close()
|
||||||
|
|
||||||
|
|
|
@ -31,17 +31,24 @@ The :mod:`filecmp` module defines the following functions:
|
||||||
|
|
||||||
.. function:: cmpfiles(dir1, dir2, common[, shallow])
|
.. function:: cmpfiles(dir1, dir2, common[, shallow])
|
||||||
|
|
||||||
Returns three lists of file names: *match*, *mismatch*, *errors*. *match*
|
Compare the files in the two directories *dir1* and *dir2* whose names are
|
||||||
contains the list of files match in both directories, *mismatch* includes the
|
given by *common*.
|
||||||
names of those that don't, and *errros* lists the names of files which could not
|
|
||||||
be compared. Files may be listed in *errors* because the user may lack
|
|
||||||
permission to read them or many other reasons, but always that the comparison
|
|
||||||
could not be done for some reason.
|
|
||||||
|
|
||||||
The *common* parameter is a list of file names found in both directories. The
|
Returns three lists of file names: *match*, *mismatch*,
|
||||||
*shallow* parameter has the same meaning and default value as for
|
*errors*. *match* contains the list of files that match, *mismatch* contains
|
||||||
|
the names of those that don't, and *errors* lists the names of files which
|
||||||
|
could not be compared. Files are listed in *errors* if they don't exist in
|
||||||
|
one of the directories, the user lacks permission to read them or if the
|
||||||
|
comparison could not be done for some other reason.
|
||||||
|
|
||||||
|
The *shallow* parameter has the same meaning and default value as for
|
||||||
:func:`filecmp.cmp`.
|
:func:`filecmp.cmp`.
|
||||||
|
|
||||||
|
For example, ``cmpfiles('a', 'b', ['c', 'd/e'])`` will compare ``a/c`` with
|
||||||
|
``b/c`` and ``a/d/e`` with ``b/d/e``. ``'c'`` and ``'d/e'`` will each be in
|
||||||
|
one of the three returned lists.
|
||||||
|
|
||||||
|
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
>>> import filecmp
|
>>> import filecmp
|
||||||
|
|
|
@ -53,7 +53,7 @@ The module defines the following items:
|
||||||
``9`` is slowest and produces the most compression. The default is ``9``.
|
``9`` is slowest and produces the most compression. The default is ``9``.
|
||||||
|
|
||||||
The *mtime* argument is an optional numeric timestamp to be written to
|
The *mtime* argument is an optional numeric timestamp to be written to
|
||||||
the stream when compressing. All :program:`gzip`compressed streams are
|
the stream when compressing. All :program:`gzip` compressed streams are
|
||||||
required to contain a timestamp. If omitted or ``None``, the current
|
required to contain a timestamp. If omitted or ``None``, the current
|
||||||
time is used. This module ignores the timestamp when decompressing;
|
time is used. This module ignores the timestamp when decompressing;
|
||||||
however, some programs, such as :program:`gunzip`\ , make use of it.
|
however, some programs, such as :program:`gunzip`\ , make use of it.
|
||||||
|
@ -67,6 +67,11 @@ The module defines the following items:
|
||||||
writing as *fileobj*, and retrieve the resulting memory buffer using the
|
writing as *fileobj*, and retrieve the resulting memory buffer using the
|
||||||
:class:`StringIO` object's :meth:`getvalue` method.
|
:class:`StringIO` object's :meth:`getvalue` method.
|
||||||
|
|
||||||
|
:class:`GzipFile` supports the :keyword:`with` statement.
|
||||||
|
|
||||||
|
.. versionchanged:: 2.7
|
||||||
|
Support for the :keyword:`with` statement was added.
|
||||||
|
|
||||||
|
|
||||||
.. function:: open(filename[, mode[, compresslevel]])
|
.. function:: open(filename[, mode[, compresslevel]])
|
||||||
|
|
||||||
|
|
|
@ -93,10 +93,10 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
|
||||||
import mmap
|
import mmap
|
||||||
|
|
||||||
# write a simple example file
|
# write a simple example file
|
||||||
with open("hello.txt", "w") as f:
|
with open("hello.txt", "wb") as f:
|
||||||
f.write("Hello Python!\n")
|
f.write("Hello Python!\n")
|
||||||
|
|
||||||
with open("hello.txt", "r+") as f:
|
with open("hello.txt", "r+b") as f:
|
||||||
# memory-map the file, size 0 means whole file
|
# memory-map the file, size 0 means whole file
|
||||||
map = mmap.mmap(f.fileno(), 0)
|
map = mmap.mmap(f.fileno(), 0)
|
||||||
# read content via standard file methods
|
# read content via standard file methods
|
||||||
|
|
|
@ -1247,7 +1247,7 @@ The conversion types are:
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'o'`` | Signed octal value. | \(1) |
|
| ``'o'`` | Signed octal value. | \(1) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'u'`` | Obselete type -- it is identical to ``'d'``. | \(7) |
|
| ``'u'`` | Obsolete type -- it is identical to ``'d'``. | \(7) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
| ``'x'`` | Signed hexadecimal (lowercase). | \(2) |
|
| ``'x'`` | Signed hexadecimal (lowercase). | \(2) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
|
|
|
@ -48,7 +48,7 @@ The module defines the following exception and functions:
|
||||||
|
|
||||||
.. function:: unpack_from(fmt, buffer[,offset=0])
|
.. function:: unpack_from(fmt, buffer[,offset=0])
|
||||||
|
|
||||||
Unpack the *buffer* according to tthe given format. The result is a tuple even
|
Unpack the *buffer* according to the given format. The result is a tuple even
|
||||||
if it contains exactly one item. The *buffer* must contain at least the amount
|
if it contains exactly one item. The *buffer* must contain at least the amount
|
||||||
of data required by the format (``len(buffer[offset:])`` must be at least
|
of data required by the format (``len(buffer[offset:])`` must be at least
|
||||||
``calcsize(fmt)``).
|
``calcsize(fmt)``).
|
||||||
|
|
|
@ -164,6 +164,12 @@ Examining Symbol Tables
|
||||||
If the name is used as the target of a function or class statement, this
|
If the name is used as the target of a function or class statement, this
|
||||||
will be true.
|
will be true.
|
||||||
|
|
||||||
|
For example::
|
||||||
|
|
||||||
|
>>> table = symtable.symtable("def some_func(): pass", "string", "exec")
|
||||||
|
>>> table.lookup("some_func").is_namespace()
|
||||||
|
True
|
||||||
|
|
||||||
Note that a single name can be bound to multiple objects. If the result
|
Note that a single name can be bound to multiple objects. If the result
|
||||||
is ``True``, the name may also be bound to other objects, like an int or
|
is ``True``, the name may also be bound to other objects, like an int or
|
||||||
list, that does not introduce a new namespace.
|
list, that does not introduce a new namespace.
|
||||||
|
|
|
@ -114,6 +114,25 @@ An explanation of some terminology and conventions is in order.
|
||||||
:class:`struct_time`, or having elements of the wrong type, a :exc:`TypeError`
|
:class:`struct_time`, or having elements of the wrong type, a :exc:`TypeError`
|
||||||
is raised.
|
is raised.
|
||||||
|
|
||||||
|
* Use the following functions to convert between time representations:
|
||||||
|
|
||||||
|
+-------------------------+-------------------------+-------------------------+
|
||||||
|
| From | To | Use |
|
||||||
|
+=========================+=========================+=========================+
|
||||||
|
| seconds since the epoch | :class:`struct_time` in | :func:`gmtime` |
|
||||||
|
| | UTC | |
|
||||||
|
+-------------------------+-------------------------+-------------------------+
|
||||||
|
| seconds since the epoch | :class:`struct_time` in | :func:`localtime` |
|
||||||
|
| | local time | |
|
||||||
|
+-------------------------+-------------------------+-------------------------+
|
||||||
|
| :class:`struct_time` in | seconds since the epoch | :func:`calendar.timegm` |
|
||||||
|
| UTC | | |
|
||||||
|
+-------------------------+-------------------------+-------------------------+
|
||||||
|
| :class:`struct_time` in | seconds since the epoch | :func:`mktime` |
|
||||||
|
| local time | | |
|
||||||
|
+-------------------------+-------------------------+-------------------------+
|
||||||
|
|
||||||
|
|
||||||
The module defines the following functions and data items:
|
The module defines the following functions and data items:
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -274,7 +274,7 @@ structure is::
|
||||||
|
|
||||||
The expression is evaluated, and it should result in an object that supports the
|
The expression is evaluated, and it should result in an object that supports the
|
||||||
context management protocol (that is, has :meth:`__enter__` and :meth:`__exit__`
|
context management protocol (that is, has :meth:`__enter__` and :meth:`__exit__`
|
||||||
methods.
|
methods).
|
||||||
|
|
||||||
The object's :meth:`__enter__` is called before *with-block* is executed and
|
The object's :meth:`__enter__` is called before *with-block* is executed and
|
||||||
therefore can run set-up code. It also may return a value that is bound to the
|
therefore can run set-up code. It also may return a value that is bound to the
|
||||||
|
|
|
@ -237,7 +237,8 @@ def guess_type(url, strict=True):
|
||||||
Optional `strict' argument when false adds a bunch of commonly found, but
|
Optional `strict' argument when false adds a bunch of commonly found, but
|
||||||
non-standard types.
|
non-standard types.
|
||||||
"""
|
"""
|
||||||
init()
|
if not inited:
|
||||||
|
init()
|
||||||
return guess_type(url, strict)
|
return guess_type(url, strict)
|
||||||
|
|
||||||
|
|
||||||
|
@ -254,7 +255,8 @@ def guess_all_extensions(type, strict=True):
|
||||||
Optional `strict' argument when false adds a bunch of commonly found,
|
Optional `strict' argument when false adds a bunch of commonly found,
|
||||||
but non-standard types.
|
but non-standard types.
|
||||||
"""
|
"""
|
||||||
init()
|
if not inited:
|
||||||
|
init()
|
||||||
return guess_all_extensions(type, strict)
|
return guess_all_extensions(type, strict)
|
||||||
|
|
||||||
def guess_extension(type, strict=True):
|
def guess_extension(type, strict=True):
|
||||||
|
@ -269,7 +271,8 @@ def guess_extension(type, strict=True):
|
||||||
Optional `strict' argument when false adds a bunch of commonly found,
|
Optional `strict' argument when false adds a bunch of commonly found,
|
||||||
but non-standard types.
|
but non-standard types.
|
||||||
"""
|
"""
|
||||||
init()
|
if not inited:
|
||||||
|
init()
|
||||||
return guess_extension(type, strict)
|
return guess_extension(type, strict)
|
||||||
|
|
||||||
def add_type(type, ext, strict=True):
|
def add_type(type, ext, strict=True):
|
||||||
|
@ -284,7 +287,8 @@ def add_type(type, ext, strict=True):
|
||||||
list of standard types, else to the list of non-standard
|
list of standard types, else to the list of non-standard
|
||||||
types.
|
types.
|
||||||
"""
|
"""
|
||||||
init()
|
if not inited:
|
||||||
|
init()
|
||||||
return add_type(type, ext, strict)
|
return add_type(type, ext, strict)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -220,6 +220,9 @@ Library
|
||||||
|
|
||||||
- configparser now defaults to using an ordered dictionary.
|
- configparser now defaults to using an ordered dictionary.
|
||||||
|
|
||||||
|
- Issue #5401: Fixed a performance problem in mimetypes when ``from mimetypes
|
||||||
|
import guess_extension`` was used.
|
||||||
|
|
||||||
- Issue #1733986: Fixed mmap crash in accessing elements of second map object
|
- Issue #1733986: Fixed mmap crash in accessing elements of second map object
|
||||||
with same tagname but larger size than first map. (Windows)
|
with same tagname but larger size than first map. (Windows)
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,10 @@ the format to accommodate documentation needs as they arise.
|
||||||
Permissions History
|
Permissions History
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
- Tarek Ziadé as given SVN access on Decmeber 21 2008 by NCN,
|
- Chris Withers was given SVN access on March 8 2009 by MvL,
|
||||||
|
after recommendation by GvR.
|
||||||
|
|
||||||
|
- Tarek Ziadé was given SVN access on December 21 2008 by NCN,
|
||||||
for maintenance of distutils.
|
for maintenance of distutils.
|
||||||
|
|
||||||
- Hirokazu Yamamoto was given SVN access on August 12 2008 by MvL,
|
- Hirokazu Yamamoto was given SVN access on August 12 2008 by MvL,
|
||||||
|
|
|
@ -249,7 +249,7 @@ PyByteArray_Concat(PyObject *a, PyObject *b)
|
||||||
|
|
||||||
size = va.len + vb.len;
|
size = va.len + vb.len;
|
||||||
if (size < 0) {
|
if (size < 0) {
|
||||||
return PyErr_NoMemory();
|
PyErr_NoMemory();
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1019,11 +1019,11 @@ bytes_richcompare(PyObject *self, PyObject *other, int op)
|
||||||
static void
|
static void
|
||||||
bytes_dealloc(PyByteArrayObject *self)
|
bytes_dealloc(PyByteArrayObject *self)
|
||||||
{
|
{
|
||||||
if (self->ob_exports > 0) {
|
if (self->ob_exports > 0) {
|
||||||
PyErr_SetString(PyExc_SystemError,
|
PyErr_SetString(PyExc_SystemError,
|
||||||
"deallocated bytearray object has exported buffers");
|
"deallocated bytearray object has exported buffers");
|
||||||
PyErr_Print();
|
PyErr_Print();
|
||||||
}
|
}
|
||||||
if (self->ob_bytes != 0) {
|
if (self->ob_bytes != 0) {
|
||||||
PyMem_Free(self->ob_bytes);
|
PyMem_Free(self->ob_bytes);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue