Merged revisions 69578-69580,69901,69907,69994,70022-70023,70025-70026,70166,70273,70275,70342,70386-70387,70389-70390,70392-70393,70395,70397,70400,70418 via svnmerge

........
  r69578 | georg.brandl | 2009-02-13 12:03:59 +0100 (Fr, 13 Feb 2009) | 1 line

  #3694: add test for fix committed in r66693.
........
  r69579 | georg.brandl | 2009-02-13 12:06:59 +0100 (Fr, 13 Feb 2009) | 2 lines

  Fix warnings GCC emits where the argument of PyErr_Format is a single variable.
........
  r69580 | georg.brandl | 2009-02-13 12:10:04 +0100 (Fr, 13 Feb 2009) | 2 lines

  Fix warnings GCC emits where the argument of PyErr_Format is a single variable.
........
  r69901 | georg.brandl | 2009-02-23 12:24:46 +0100 (Mo, 23 Feb 2009) | 2 lines

  #5349: C++ pure virtuals can also have an implementation.
........
  r69907 | georg.brandl | 2009-02-23 19:33:48 +0100 (Mo, 23 Feb 2009) | 1 line

  Fix grammar.
........
  r69994 | georg.brandl | 2009-02-26 18:36:26 +0100 (Do, 26 Feb 2009) | 1 line

  Document that setting sys.py3kwarning wont do anything.
........
  r70022 | georg.brandl | 2009-02-27 17:23:18 +0100 (Fr, 27 Feb 2009) | 1 line

  #5361: fix typo.
........
  r70023 | georg.brandl | 2009-02-27 17:39:26 +0100 (Fr, 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 17:52:55 +0100 (Fr, 27 Feb 2009) | 1 line

  #5344: fix punctuation.
........
  r70026 | georg.brandl | 2009-02-27 17:59:03 +0100 (Fr, 27 Feb 2009) | 1 line

  #5365: add quick look conversion table for different time representations.
........
  r70166 | georg.brandl | 2009-03-04 19:24:41 +0100 (Mi, 04 Mär 2009) | 2 lines

  Remove obsolete stuff from string module docs.
........
  r70273 | georg.brandl | 2009-03-09 15:25:07 +0100 (Mo, 09 Mär 2009) | 2 lines

  #5458: add a note when we started to raise RuntimeErrors.
........
  r70275 | georg.brandl | 2009-03-09 17:35:48 +0100 (Mo, 09 Mär 2009) | 2 lines

  Add missing space.
........
  r70342 | georg.brandl | 2009-03-13 20:03:58 +0100 (Fr, 13 Mär 2009) | 1 line

  #5486: typos.
........
  r70386 | georg.brandl | 2009-03-15 22:32:06 +0100 (So, 15 Mär 2009) | 1 line

  #5496: fix docstring of lookup().
........
  r70387 | georg.brandl | 2009-03-15 22:37:16 +0100 (So, 15 Mär 2009) | 1 line

  #5493: clarify __nonzero__ docs.
........
  r70389 | georg.brandl | 2009-03-15 22:43:38 +0100 (So, 15 Mär 2009) | 1 line

  Fix a small nit in the error message if bool() falls back on __len__ and it returns the wrong type: it would tell the user that __nonzero__ should return bool or int.
........
  r70390 | georg.brandl | 2009-03-15 22:44:43 +0100 (So, 15 Mär 2009) | 1 line

  #5491: clarify nested() semantics.
........
  r70392 | georg.brandl | 2009-03-15 22:46:00 +0100 (So, 15 Mär 2009) | 1 line

  #5488: add missing struct member.
........
  r70393 | georg.brandl | 2009-03-15 22:47:42 +0100 (So, 15 Mär 2009) | 1 line

  #5478: fix copy-paste oversight in function signature.
........
  r70395 | georg.brandl | 2009-03-15 22:51:48 +0100 (So, 15 Mär 2009) | 1 line

  #5276: document IDLESTARTUP and .Idle.py.
........
  r70397 | georg.brandl | 2009-03-15 22:53:56 +0100 (So, 15 Mär 2009) | 1 line

  #5469: add with statement to list of name-binding constructs.
........
  r70400 | georg.brandl | 2009-03-15 22:59:37 +0100 (So, 15 Mär 2009) | 3 lines

  Fix markup in re docs and give a mail address in regex howto, so that
  the recommendation to send suggestions to the author can be followed.
........
  r70418 | georg.brandl | 2009-03-16 20:42:03 +0100 (Mo, 16 Mär 2009) | 1 line

  Add token markup.
........
This commit is contained in:
Georg Brandl 2009-04-05 21:48:06 +00:00
parent 0daf2f38cb
commit 40e15edd65
25 changed files with 118 additions and 58 deletions

View File

@ -1180,6 +1180,7 @@ Number Object Structures
binaryfunc nb_inplace_add;
binaryfunc nb_inplace_subtract;
binaryfunc nb_inplace_multiply;
binaryfunc nb_inplace_divide;
binaryfunc nb_inplace_remainder;
ternaryfunc nb_inplace_power;
binaryfunc nb_inplace_lshift;

View File

@ -91,4 +91,3 @@ Or even with the section name::
python setup.py register -r other

View File

@ -4,7 +4,7 @@
Regular Expression HOWTO
****************************
:Author: A.M. Kuchling
:Author: A.M. Kuchling <amk@amk.ca>
:Release: 0.05
.. TODO:

View File

@ -36,9 +36,9 @@ It can be converted to Python 3.x code via 2to3 on the command line::
$ 2to3 example.py
A diff against the original source file is printed. 2to3 can also write the
needed modifications right back to the source file. (Of course, a backup of the
original is also be made unless :option:`-n` is also given.) Writing the
changes back is enabled with the :option:`-w` flag::
needed modifications right back to the source file. (A backup of the original
file is made unless :option:`-n` is also given.) Writing the changes back is
enabled with the :option:`-w` flag::
$ 2to3 -w example.py

View File

@ -153,7 +153,7 @@ It also provides the following decorators:
.. note::
Unlike C++'s pure virtual functions, or Java abstract methods, these abstract
Unlike Java abstract methods, these abstract
methods may have an implementation. This implementation can be
called via the :func:`super` mechanism from the class that
overrides it. This could be useful as an end-point for a

View File

@ -63,14 +63,15 @@ Functions provided:
from contextlib import nested
with nested(A, B, C) as (X, Y, Z):
with nested(A(), B(), C()) as (X, Y, Z):
do_something()
is equivalent to this::
with A as X:
with B as Y:
with C as Z:
m1, m2, m3 = A(), B(), C()
with m1 as X:
with m2 as Y:
with m3 as Z:
do_something()
Note that if the :meth:`__exit__` method of one of the nested context managers

View File

@ -52,7 +52,7 @@ The following exceptions are only used as base classes for other exceptions.
The base class for all built-in exceptions. It is not meant to be directly
inherited by user-defined classes (for that use :exc:`Exception`). If
:func:`str` or :func:`unicode` is called on an instance of this class, the
representation of the argument(s) to the instance are returned or the emptry
representation of the argument(s) to the instance are returned or the empty
string when there were no arguments. All arguments are stored in :attr:`args`
as a tuple.

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

@ -253,6 +253,24 @@ Shell colors:
black
Startup
-------
Upon startup with the ``-s`` option, IDLE will execute the file referenced by
the environment variables :envvar:`IDLESTARTUP` or :envvar:`PYTHONSTARTUP`.
Idle first checks for ``IDLESTARTUP``; if ``IDLESTARTUP`` is present the file
referenced is run. If ``IDLESTARTUP`` is not present, Idle checks for
``PYTHONSTARTUP``. Files referenced by these environment variables are
convenient places to store functions that are used frequently from the Idle
shell, or for executing import statements to import common modules.
In addition, ``Tk`` also loads a startup file if it is present. Note that the
Tk file is loaded unconditionally. This additional file is ``.Idle.py`` and is
looked for in the user's home directory. Statements in this file will be
executed in the Tk namespace, so this file is not useful for importing functions
to be used from Idle's Python shell.
Command line usage
^^^^^^^^^^^^^^^^^^

View File

@ -1093,7 +1093,7 @@ For example:
string)`` or ``re.search(pattern, string)``.
:func:`match` has an optional second parameter that gives an index in the string
where the search is to start:
where the search is to start::
>>> pattern = re.compile("o")
>>> pattern.match("dog") # No match as "o" is not at the start of "dog."

View File

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

@ -62,10 +62,9 @@ The constants defined in this module are:
.. data:: lowercase
A string containing all the characters that are considered lowercase letters.
On most systems this is the string ``'abcdefghijklmnopqrstuvwxyz'``. Do not
change its definition --- the effect on the routines :func:`upper` and
:func:`swapcase` is undefined. The specific value is locale-dependent, and will
be updated when :func:`locale.setlocale` is called.
On most systems this is the string ``'abcdefghijklmnopqrstuvwxyz'``. The
specific value is locale-dependent, and will be updated when
:func:`locale.setlocale` is called.
.. data:: octdigits
@ -89,18 +88,16 @@ The constants defined in this module are:
.. data:: uppercase
A string containing all the characters that are considered uppercase letters.
On most systems this is the string ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Do not
change its definition --- the effect on the routines :func:`lower` and
:func:`swapcase` is undefined. The specific value is locale-dependent, and will
be updated when :func:`locale.setlocale` is called.
On most systems this is the string ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. The
specific value is locale-dependent, and will be updated when
:func:`locale.setlocale` is called.
.. data:: whitespace
A string containing all characters that are considered whitespace. On most
systems this includes the characters space, tab, linefeed, return, formfeed, and
vertical tab. Do not change its definition --- the effect on the routines
:func:`strip` and :func:`split` is undefined.
vertical tab.
.. _new-string-formatting:
@ -224,7 +221,7 @@ The grammar for a replacement field is as follows:
.. productionlist:: sf
replacement_field: "{" `field_name` ["!" `conversion`] [":" `format_spec`] "}"
field_name: (`identifier` | `integer`) ("." `attribute_name` | "[" element_index "]")*
field_name: (`identifier` | `integer`) ("." `attribute_name` | "[" `element_index` "]")*
attribute_name: `identifier`
element_index: `integer`
conversion: "r" | "s"
@ -599,7 +596,7 @@ They are not available as string methods.
Don't use strings derived from :const:`lowercase` and :const:`uppercase` as
arguments; in some locales, these don't have the same length. For case
conversions, always use :func:`lower` and :func:`upper`.
conversions, always use :meth:`str.lower` and :meth:`str.upper`.
Deprecated string functions

View File

@ -661,7 +661,9 @@ always available.
.. data:: py3kwarning
Bool containing the status of the Python 3.0 warning flag. It's ``True``
when Python is started with the -3 option.
when Python is started with the -3 option. (This should be considered
read-only; setting it to a different value doesn't have an effect on
Python 3.0 warnings.)
.. versionadded:: 2.6

View File

@ -21,8 +21,13 @@ The :mod:`dummy_threading` module is provided for situations where
deprecation of the ``camelCase`` names and they remain fully supported in
both Python 2.x and 3.x.
This module defines the following functions and objects:
.. note::
Starting with Python 2.5, several Thread methods raise :exc:`RuntimeError`
instead of :exc:`AssertionError` if called erroneously.
This module defines the following functions and objects:
.. function:: active_count()
activeCount()

View File

@ -118,6 +118,24 @@ An explanation of some terminology and conventions is in order.
The time value sequence was changed from a tuple to a :class:`struct_time`, with
the addition of attribute names for the fields.
* 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

@ -61,7 +61,7 @@ The object-oriented interface uses essentially two+two classes:
The procedural interface provides functions which are derived from the methods
of the classes :class:`Screen` and :class:`Turtle`. They have the same names as
the corresponding methods. A screen object is automativally created whenever a
the corresponding methods. A screen object is automatically created whenever a
function derived from a Screen method is called. An (unnamed) turtle object is
automatically created whenever any of the functions derived from a Turtle method
is called.
@ -1608,7 +1608,7 @@ The public classes of the module :mod:`turtle`
=========== ===========
"polygon" a polygon-tuple, i.e. a tuple of pairs of coordinates
"image" an image (in this form only used internally!)
"compound" ``None`` (a compund shape has to be constructed using the
"compound" ``None`` (a compound shape has to be constructed using the
:meth:`addcomponent` method)
=========== ===========
@ -1830,7 +1830,7 @@ There is a set of demo scripts in the turtledemo directory located in the
It contains:
- a set of 15 demo scripts demonstrating differet features of the new module
- a set of 15 demo scripts demonstrating different features of the new module
:mod:`turtle`
- a demo viewer :file:`turtleDemo.py` which can be used to view the sourcecode
of the scripts and run them at the same time. 14 of the examples can be

View File

@ -611,7 +611,7 @@ of that class.
Same as equivalent method in the :class:`Document` class.
.. method:: Element.getElementsByTagNameNS(tagName)
.. method:: Element.getElementsByTagNameNS(namespaceURI, localName)
Same as equivalent method in the :class:`Document` class.

View File

@ -1414,11 +1414,12 @@ Basic customization
.. index:: single: __len__() (mapping object method)
Called to implement truth value testing, and the built-in operation ``bool()``;
Called to implement truth value testing and the built-in operation ``bool()``;
should return ``False`` or ``True``, or their integer equivalents ``0`` or
``1``. When this method is not defined, :meth:`__len__` is called, if it is
defined (see below). If a class defines neither :meth:`__len__` nor
:meth:`__nonzero__`, all its instances are considered true.
``1``. When this method is not defined, :meth:`__len__` is called, if it is
defined, and the object is considered true if its result is nonzero.
If a class defines neither :meth:`__len__` nor :meth:`__nonzero__`, all its
instances are considered true.
.. method:: object.__unicode__(self)

View File

@ -87,9 +87,10 @@ subclass of :exc:`NameError`.
The following constructs bind names: formal parameters to functions,
:keyword:`import` statements, class and function definitions (these bind the
class or function name in the defining block), and targets that are identifiers
if occurring in an assignment, :keyword:`for` loop header, or in the second
position of an :keyword:`except` clause header. The :keyword:`import` statement
of the form "``from ...import *``" binds all names defined in the imported
if occurring in an assignment, :keyword:`for` loop header, in the second
position of an :keyword:`except` clause header or after :keyword:`as` in a
:keyword:`with` statement. The :keyword:`import` statement
of the form ``from ... import *`` binds all names defined in the imported
module, except those beginning with an underscore. This form may only be used
at the module level.

View File

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

@ -512,6 +512,10 @@ class StructTest(unittest.TestCase):
self.assertRaises(struct.error, s.pack_into, small_buf, 0, test_string)
self.assertRaises(struct.error, s.pack_into, small_buf, 2, test_string)
# Test bogus offset (issue 3694)
sb = small_buf
self.assertRaises(TypeError, struct.pack_into, b'1', sb, None)
def test_pack_into_fn(self):
test_string = 'Reykjavik rocks, eow!'
writable_buf = array.array('c', ' '*100)

View File

@ -61,7 +61,7 @@ PyDoc_STRVAR(lookup__doc__,
"lookup(encoding) -> CodecInfo\n\
\n\
Looks up a codec tuple in the Python codec registry and returns\n\
a tuple of function (or a CodecInfo object).");
a CodecInfo object.");
static
PyObject *codec_lookup(PyObject *self, PyObject *args)

View File

@ -599,13 +599,14 @@ CDataType_in_dll(PyObject *type, PyObject *args)
#else
address = (void *)ctypes_dlsym(handle, name);
if (!address) {
PyErr_Format(PyExc_ValueError,
#ifdef __CYGWIN__
/* dlerror() isn't very helpful on cygwin */
PyErr_Format(PyExc_ValueError,
"symbol '%s' not found (%s) ",
name,
name);
#else
PyErr_SetString(PyExc_ValueError, ctypes_dlerror());
#endif
ctypes_dlerror());
return NULL;
}
#endif
@ -3283,13 +3284,14 @@ CFuncPtr_FromDll(PyTypeObject *type, PyObject *args, PyObject *kwds)
#else
address = (PPROC)ctypes_dlsym(handle, name);
if (!address) {
PyErr_Format(PyExc_AttributeError,
#ifdef __CYGWIN__
/* dlerror() isn't very helpful on cygwin */
PyErr_Format(PyExc_AttributeError,
"function '%s' not found (%s) ",
name,
name);
#else
PyErr_SetString(PyExc_AttributeError, ctypes_dlerror());
#endif
ctypes_dlerror());
return NULL;
}
#endif

View File

@ -5092,6 +5092,7 @@ slot_nb_nonzero(PyObject *self)
PyObject *func, *args;
static PyObject *nonzero_str, *len_str;
int result = -1;
int using_len = 0;
func = lookup_maybe(self, "__nonzero__", &nonzero_str);
if (func == NULL) {
@ -5100,6 +5101,7 @@ slot_nb_nonzero(PyObject *self)
func = lookup_maybe(self, "__len__", &len_str);
if (func == NULL)
return PyErr_Occurred() ? -1 : 1;
using_len = 1;
}
args = PyTuple_New(0);
if (args != NULL) {
@ -5110,8 +5112,10 @@ slot_nb_nonzero(PyObject *self)
result = PyObject_IsTrue(temp);
else {
PyErr_Format(PyExc_TypeError,
"__nonzero__ should return "
"%s should return "
"bool or int, returned %s",
(using_len ? "__len__"
: "__nonzero__"),
temp->ob_type->tp_name);
result = -1;
}

View File

@ -1385,7 +1385,7 @@ int unicode_decode_call_errorhandler(const char *errors, PyObject **errorHandler
if (restuple == NULL)
goto onError;
if (!PyTuple_Check(restuple)) {
PyErr_Format(PyExc_TypeError, &argparse[4]);
PyErr_SetString(PyExc_TypeError, &argparse[4]);
goto onError;
}
if (!PyArg_ParseTuple(restuple, argparse, &PyUnicode_Type, &repunicode, &newpos))
@ -3440,7 +3440,7 @@ static PyObject *unicode_encode_call_errorhandler(const char *errors,
if (restuple == NULL)
return NULL;
if (!PyTuple_Check(restuple)) {
PyErr_Format(PyExc_TypeError, &argparse[4]);
PyErr_SetString(PyExc_TypeError, &argparse[4]);
Py_DECREF(restuple);
return NULL;
}
@ -4712,7 +4712,7 @@ static PyObject *unicode_translate_call_errorhandler(const char *errors,
if (restuple == NULL)
return NULL;
if (!PyTuple_Check(restuple)) {
PyErr_Format(PyExc_TypeError, &argparse[4]);
PyErr_SetString(PyExc_TypeError, &argparse[4]);
Py_DECREF(restuple);
return NULL;
}