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:
Benjamin Peterson 2009-03-09 21:04:33 +00:00
parent 07c0a7579b
commit e0124bd9c3
14 changed files with 77 additions and 25 deletions

View File

@ -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

View File

@ -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()

View File

@ -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

View File

@ -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]])

View File

@ -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

View File

@ -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) |
+------------+-----------------------------------------------------+-------+

View File

@ -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)``).

View File

@ -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.

View File

@ -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:

View File

@ -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

View File

@ -237,6 +237,7 @@ def guess_type(url, strict=True):
Optional `strict' argument when false adds a bunch of commonly found, but
non-standard types.
"""
if not inited:
init()
return guess_type(url, strict)
@ -254,6 +255,7 @@ def guess_all_extensions(type, strict=True):
Optional `strict' argument when false adds a bunch of commonly found,
but non-standard types.
"""
if not inited:
init()
return guess_all_extensions(type, strict)
@ -269,6 +271,7 @@ def guess_extension(type, strict=True):
Optional `strict' argument when false adds a bunch of commonly found,
but non-standard types.
"""
if not inited:
init()
return guess_extension(type, strict)
@ -284,6 +287,7 @@ def add_type(type, ext, strict=True):
list of standard types, else to the list of non-standard
types.
"""
if not inited:
init()
return add_type(type, ext, strict)

View File

@ -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)

View File

@ -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,

View File

@ -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;
}