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
|
||||
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
|
||||
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.
|
||||
|
||||
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`
|
||||
instances.
|
||||
|
||||
:class:`BZ2File` supports the :keyword:`with` statement.
|
||||
|
||||
.. versionchanged:: 2.7
|
||||
Support for the :keyword:`with` statement was added.
|
||||
|
||||
|
||||
.. method:: close()
|
||||
|
||||
|
|
|
@ -31,17 +31,24 @@ The :mod:`filecmp` module defines the following functions:
|
|||
|
||||
.. function:: cmpfiles(dir1, dir2, common[, shallow])
|
||||
|
||||
Returns three lists of file names: *match*, *mismatch*, *errors*. *match*
|
||||
contains the list of files match in both directories, *mismatch* includes the
|
||||
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.
|
||||
Compare the files in the two directories *dir1* and *dir2* whose names are
|
||||
given by *common*.
|
||||
|
||||
The *common* parameter is a list of file names found in both directories. The
|
||||
*shallow* parameter has the same meaning and default value as for
|
||||
Returns three lists of file names: *match*, *mismatch*,
|
||||
*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`.
|
||||
|
||||
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::
|
||||
|
||||
>>> import filecmp
|
||||
|
|
|
@ -53,7 +53,7 @@ The module defines the following items:
|
|||
``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 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
|
||||
time is used. This module ignores the timestamp when decompressing;
|
||||
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
|
||||
: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]])
|
||||
|
||||
|
|
|
@ -93,10 +93,10 @@ To map anonymous memory, -1 should be passed as the fileno along with the length
|
|||
import mmap
|
||||
|
||||
# write a simple example file
|
||||
with open("hello.txt", "w") as f:
|
||||
with open("hello.txt", "wb") as f:
|
||||
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
|
||||
map = mmap.mmap(f.fileno(), 0)
|
||||
# read content via standard file methods
|
||||
|
|
|
@ -1247,7 +1247,7 @@ The conversion types are:
|
|||
+------------+-----------------------------------------------------+-------+
|
||||
| ``'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) |
|
||||
+------------+-----------------------------------------------------+-------+
|
||||
|
|
|
@ -48,7 +48,7 @@ The module defines the following exception and functions:
|
|||
|
||||
.. 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
|
||||
of data required by the format (``len(buffer[offset:])`` must be at least
|
||||
``calcsize(fmt)``).
|
||||
|
|
|
@ -164,6 +164,12 @@ Examining Symbol Tables
|
|||
If the name is used as the target of a function or class statement, this
|
||||
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
|
||||
is ``True``, the name may also be bound to other objects, like an int or
|
||||
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`
|
||||
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:
|
||||
|
||||
|
||||
|
|
|
@ -274,7 +274,7 @@ structure is::
|
|||
|
||||
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__`
|
||||
methods.
|
||||
methods).
|
||||
|
||||
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
|
||||
|
|
|
@ -237,7 +237,8 @@ def guess_type(url, strict=True):
|
|||
Optional `strict' argument when false adds a bunch of commonly found, but
|
||||
non-standard types.
|
||||
"""
|
||||
init()
|
||||
if not inited:
|
||||
init()
|
||||
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,
|
||||
but non-standard types.
|
||||
"""
|
||||
init()
|
||||
if not inited:
|
||||
init()
|
||||
return guess_all_extensions(type, strict)
|
||||
|
||||
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,
|
||||
but non-standard types.
|
||||
"""
|
||||
init()
|
||||
if not inited:
|
||||
init()
|
||||
return guess_extension(type, strict)
|
||||
|
||||
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
|
||||
types.
|
||||
"""
|
||||
init()
|
||||
if not inited:
|
||||
init()
|
||||
return add_type(type, ext, strict)
|
||||
|
||||
|
||||
|
|
|
@ -220,6 +220,9 @@ Library
|
|||
|
||||
- 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
|
||||
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
|
||||
-------------------
|
||||
|
||||
- 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.
|
||||
|
||||
- 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;
|
||||
if (size < 0) {
|
||||
return PyErr_NoMemory();
|
||||
PyErr_NoMemory();
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -1019,11 +1019,11 @@ bytes_richcompare(PyObject *self, PyObject *other, int op)
|
|||
static void
|
||||
bytes_dealloc(PyByteArrayObject *self)
|
||||
{
|
||||
if (self->ob_exports > 0) {
|
||||
PyErr_SetString(PyExc_SystemError,
|
||||
if (self->ob_exports > 0) {
|
||||
PyErr_SetString(PyExc_SystemError,
|
||||
"deallocated bytearray object has exported buffers");
|
||||
PyErr_Print();
|
||||
}
|
||||
PyErr_Print();
|
||||
}
|
||||
if (self->ob_bytes != 0) {
|
||||
PyMem_Free(self->ob_bytes);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue