mirror of
https://github.com/python/cpython.git
synced 2025-08-12 12:58:50 +00:00
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:
parent
0daf2f38cb
commit
40e15edd65
25 changed files with 118 additions and 58 deletions
|
@ -1180,6 +1180,7 @@ Number Object Structures
|
||||||
binaryfunc nb_inplace_add;
|
binaryfunc nb_inplace_add;
|
||||||
binaryfunc nb_inplace_subtract;
|
binaryfunc nb_inplace_subtract;
|
||||||
binaryfunc nb_inplace_multiply;
|
binaryfunc nb_inplace_multiply;
|
||||||
|
binaryfunc nb_inplace_divide;
|
||||||
binaryfunc nb_inplace_remainder;
|
binaryfunc nb_inplace_remainder;
|
||||||
ternaryfunc nb_inplace_power;
|
ternaryfunc nb_inplace_power;
|
||||||
binaryfunc nb_inplace_lshift;
|
binaryfunc nb_inplace_lshift;
|
||||||
|
|
|
@ -91,4 +91,3 @@ Or even with the section name::
|
||||||
|
|
||||||
python setup.py register -r other
|
python setup.py register -r other
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
Regular Expression HOWTO
|
Regular Expression HOWTO
|
||||||
****************************
|
****************************
|
||||||
|
|
||||||
:Author: A.M. Kuchling
|
:Author: A.M. Kuchling <amk@amk.ca>
|
||||||
:Release: 0.05
|
:Release: 0.05
|
||||||
|
|
||||||
.. TODO:
|
.. TODO:
|
||||||
|
|
|
@ -36,9 +36,9 @@ It can be converted to Python 3.x code via 2to3 on the command line::
|
||||||
$ 2to3 example.py
|
$ 2to3 example.py
|
||||||
|
|
||||||
A diff against the original source file is printed. 2to3 can also write the
|
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
|
needed modifications right back to the source file. (A backup of the original
|
||||||
original is also be made unless :option:`-n` is also given.) Writing the
|
file is made unless :option:`-n` is also given.) Writing the changes back is
|
||||||
changes back is enabled with the :option:`-w` flag::
|
enabled with the :option:`-w` flag::
|
||||||
|
|
||||||
$ 2to3 -w example.py
|
$ 2to3 -w example.py
|
||||||
|
|
||||||
|
|
|
@ -153,7 +153,7 @@ It also provides the following decorators:
|
||||||
|
|
||||||
.. note::
|
.. 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
|
methods may have an implementation. This implementation can be
|
||||||
called via the :func:`super` mechanism from the class that
|
called via the :func:`super` mechanism from the class that
|
||||||
overrides it. This could be useful as an end-point for a
|
overrides it. This could be useful as an end-point for a
|
||||||
|
|
|
@ -63,14 +63,15 @@ Functions provided:
|
||||||
|
|
||||||
from contextlib import nested
|
from contextlib import nested
|
||||||
|
|
||||||
with nested(A, B, C) as (X, Y, Z):
|
with nested(A(), B(), C()) as (X, Y, Z):
|
||||||
do_something()
|
do_something()
|
||||||
|
|
||||||
is equivalent to this::
|
is equivalent to this::
|
||||||
|
|
||||||
with A as X:
|
m1, m2, m3 = A(), B(), C()
|
||||||
with B as Y:
|
with m1 as X:
|
||||||
with C as Z:
|
with m2 as Y:
|
||||||
|
with m3 as Z:
|
||||||
do_something()
|
do_something()
|
||||||
|
|
||||||
Note that if the :meth:`__exit__` method of one of the nested context managers
|
Note that if the :meth:`__exit__` method of one of the nested context managers
|
||||||
|
|
|
@ -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
|
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
|
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
|
: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`
|
string when there were no arguments. All arguments are stored in :attr:`args`
|
||||||
as a tuple.
|
as a tuple.
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -253,6 +253,24 @@ Shell colors:
|
||||||
black
|
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
|
Command line usage
|
||||||
^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -1093,7 +1093,7 @@ For example:
|
||||||
string)`` or ``re.search(pattern, string)``.
|
string)`` or ``re.search(pattern, string)``.
|
||||||
|
|
||||||
:func:`match` has an optional second parameter that gives an index in the 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 = re.compile("o")
|
||||||
>>> pattern.match("dog") # No match as "o" is not at the start of "dog."
|
>>> pattern.match("dog") # No match as "o" is not at the start of "dog."
|
||||||
|
|
|
@ -1296,7 +1296,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) |
|
||||||
+------------+-----------------------------------------------------+-------+
|
+------------+-----------------------------------------------------+-------+
|
||||||
|
|
|
@ -62,10 +62,9 @@ The constants defined in this module are:
|
||||||
.. data:: lowercase
|
.. data:: lowercase
|
||||||
|
|
||||||
A string containing all the characters that are considered lowercase letters.
|
A string containing all the characters that are considered lowercase letters.
|
||||||
On most systems this is the string ``'abcdefghijklmnopqrstuvwxyz'``. Do not
|
On most systems this is the string ``'abcdefghijklmnopqrstuvwxyz'``. The
|
||||||
change its definition --- the effect on the routines :func:`upper` and
|
specific value is locale-dependent, and will be updated when
|
||||||
:func:`swapcase` is undefined. The specific value is locale-dependent, and will
|
:func:`locale.setlocale` is called.
|
||||||
be updated when :func:`locale.setlocale` is called.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: octdigits
|
.. data:: octdigits
|
||||||
|
@ -89,18 +88,16 @@ The constants defined in this module are:
|
||||||
.. data:: uppercase
|
.. data:: uppercase
|
||||||
|
|
||||||
A string containing all the characters that are considered uppercase letters.
|
A string containing all the characters that are considered uppercase letters.
|
||||||
On most systems this is the string ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Do not
|
On most systems this is the string ``'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. The
|
||||||
change its definition --- the effect on the routines :func:`lower` and
|
specific value is locale-dependent, and will be updated when
|
||||||
:func:`swapcase` is undefined. The specific value is locale-dependent, and will
|
:func:`locale.setlocale` is called.
|
||||||
be updated when :func:`locale.setlocale` is called.
|
|
||||||
|
|
||||||
|
|
||||||
.. data:: whitespace
|
.. data:: whitespace
|
||||||
|
|
||||||
A string containing all characters that are considered whitespace. On most
|
A string containing all characters that are considered whitespace. On most
|
||||||
systems this includes the characters space, tab, linefeed, return, formfeed, and
|
systems this includes the characters space, tab, linefeed, return, formfeed, and
|
||||||
vertical tab. Do not change its definition --- the effect on the routines
|
vertical tab.
|
||||||
:func:`strip` and :func:`split` is undefined.
|
|
||||||
|
|
||||||
|
|
||||||
.. _new-string-formatting:
|
.. _new-string-formatting:
|
||||||
|
@ -224,7 +221,7 @@ The grammar for a replacement field is as follows:
|
||||||
|
|
||||||
.. productionlist:: sf
|
.. productionlist:: sf
|
||||||
replacement_field: "{" `field_name` ["!" `conversion`] [":" `format_spec`] "}"
|
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`
|
attribute_name: `identifier`
|
||||||
element_index: `integer`
|
element_index: `integer`
|
||||||
conversion: "r" | "s"
|
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
|
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
|
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
|
Deprecated string functions
|
||||||
|
|
|
@ -661,7 +661,9 @@ always available.
|
||||||
.. data:: py3kwarning
|
.. data:: py3kwarning
|
||||||
|
|
||||||
Bool containing the status of the Python 3.0 warning flag. It's ``True``
|
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
|
.. versionadded:: 2.6
|
||||||
|
|
||||||
|
|
|
@ -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
|
deprecation of the ``camelCase`` names and they remain fully supported in
|
||||||
both Python 2.x and 3.x.
|
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()
|
.. function:: active_count()
|
||||||
activeCount()
|
activeCount()
|
||||||
|
|
|
@ -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 time value sequence was changed from a tuple to a :class:`struct_time`, with
|
||||||
the addition of attribute names for the fields.
|
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:
|
The module defines the following functions and data items:
|
||||||
|
|
||||||
|
|
|
@ -61,7 +61,7 @@ The object-oriented interface uses essentially two+two classes:
|
||||||
|
|
||||||
The procedural interface provides functions which are derived from the methods
|
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
|
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
|
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
|
automatically created whenever any of the functions derived from a Turtle method
|
||||||
is called.
|
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
|
"polygon" a polygon-tuple, i.e. a tuple of pairs of coordinates
|
||||||
"image" an image (in this form only used internally!)
|
"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)
|
:meth:`addcomponent` method)
|
||||||
=========== ===========
|
=========== ===========
|
||||||
|
|
||||||
|
@ -1830,7 +1830,7 @@ There is a set of demo scripts in the turtledemo directory located in the
|
||||||
|
|
||||||
It contains:
|
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`
|
:mod:`turtle`
|
||||||
- a demo viewer :file:`turtleDemo.py` which can be used to view the sourcecode
|
- 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
|
of the scripts and run them at the same time. 14 of the examples can be
|
||||||
|
|
|
@ -611,7 +611,7 @@ of that class.
|
||||||
Same as equivalent method in the :class:`Document` 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.
|
Same as equivalent method in the :class:`Document` class.
|
||||||
|
|
||||||
|
|
|
@ -1414,11 +1414,12 @@ Basic customization
|
||||||
|
|
||||||
.. index:: single: __len__() (mapping object method)
|
.. 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
|
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
|
``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
|
defined, and the object is considered true if its result is nonzero.
|
||||||
:meth:`__nonzero__`, all its instances are considered true.
|
If a class defines neither :meth:`__len__` nor :meth:`__nonzero__`, all its
|
||||||
|
instances are considered true.
|
||||||
|
|
||||||
|
|
||||||
.. method:: object.__unicode__(self)
|
.. method:: object.__unicode__(self)
|
||||||
|
|
|
@ -87,9 +87,10 @@ subclass of :exc:`NameError`.
|
||||||
The following constructs bind names: formal parameters to functions,
|
The following constructs bind names: formal parameters to functions,
|
||||||
:keyword:`import` statements, class and function definitions (these bind the
|
:keyword:`import` statements, class and function definitions (these bind the
|
||||||
class or function name in the defining block), and targets that are identifiers
|
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
|
if occurring in an assignment, :keyword:`for` loop header, in the second
|
||||||
position of an :keyword:`except` clause header. The :keyword:`import` statement
|
position of an :keyword:`except` clause header or after :keyword:`as` in a
|
||||||
of the form "``from ...import *``" binds all names defined in the imported
|
: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
|
module, except those beginning with an underscore. This form may only be used
|
||||||
at the module level.
|
at the module level.
|
||||||
|
|
||||||
|
|
|
@ -270,7 +270,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
|
||||||
|
|
|
@ -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, 0, test_string)
|
||||||
self.assertRaises(struct.error, s.pack_into, small_buf, 2, 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):
|
def test_pack_into_fn(self):
|
||||||
test_string = 'Reykjavik rocks, eow!'
|
test_string = 'Reykjavik rocks, eow!'
|
||||||
writable_buf = array.array('c', ' '*100)
|
writable_buf = array.array('c', ' '*100)
|
||||||
|
|
|
@ -61,7 +61,7 @@ PyDoc_STRVAR(lookup__doc__,
|
||||||
"lookup(encoding) -> CodecInfo\n\
|
"lookup(encoding) -> CodecInfo\n\
|
||||||
\n\
|
\n\
|
||||||
Looks up a codec tuple in the Python codec registry and returns\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
|
static
|
||||||
PyObject *codec_lookup(PyObject *self, PyObject *args)
|
PyObject *codec_lookup(PyObject *self, PyObject *args)
|
||||||
|
|
|
@ -599,13 +599,14 @@ CDataType_in_dll(PyObject *type, PyObject *args)
|
||||||
#else
|
#else
|
||||||
address = (void *)ctypes_dlsym(handle, name);
|
address = (void *)ctypes_dlsym(handle, name);
|
||||||
if (!address) {
|
if (!address) {
|
||||||
PyErr_Format(PyExc_ValueError,
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
/* dlerror() isn't very helpful on cygwin */
|
/* dlerror() isn't very helpful on cygwin */
|
||||||
|
PyErr_Format(PyExc_ValueError,
|
||||||
"symbol '%s' not found (%s) ",
|
"symbol '%s' not found (%s) ",
|
||||||
name,
|
name);
|
||||||
|
#else
|
||||||
|
PyErr_SetString(PyExc_ValueError, ctypes_dlerror());
|
||||||
#endif
|
#endif
|
||||||
ctypes_dlerror());
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -3283,13 +3284,14 @@ CFuncPtr_FromDll(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||||
#else
|
#else
|
||||||
address = (PPROC)ctypes_dlsym(handle, name);
|
address = (PPROC)ctypes_dlsym(handle, name);
|
||||||
if (!address) {
|
if (!address) {
|
||||||
PyErr_Format(PyExc_AttributeError,
|
|
||||||
#ifdef __CYGWIN__
|
#ifdef __CYGWIN__
|
||||||
/* dlerror() isn't very helpful on cygwin */
|
/* dlerror() isn't very helpful on cygwin */
|
||||||
|
PyErr_Format(PyExc_AttributeError,
|
||||||
"function '%s' not found (%s) ",
|
"function '%s' not found (%s) ",
|
||||||
name,
|
name);
|
||||||
|
#else
|
||||||
|
PyErr_SetString(PyExc_AttributeError, ctypes_dlerror());
|
||||||
#endif
|
#endif
|
||||||
ctypes_dlerror());
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -5092,6 +5092,7 @@ slot_nb_nonzero(PyObject *self)
|
||||||
PyObject *func, *args;
|
PyObject *func, *args;
|
||||||
static PyObject *nonzero_str, *len_str;
|
static PyObject *nonzero_str, *len_str;
|
||||||
int result = -1;
|
int result = -1;
|
||||||
|
int using_len = 0;
|
||||||
|
|
||||||
func = lookup_maybe(self, "__nonzero__", &nonzero_str);
|
func = lookup_maybe(self, "__nonzero__", &nonzero_str);
|
||||||
if (func == NULL) {
|
if (func == NULL) {
|
||||||
|
@ -5100,6 +5101,7 @@ slot_nb_nonzero(PyObject *self)
|
||||||
func = lookup_maybe(self, "__len__", &len_str);
|
func = lookup_maybe(self, "__len__", &len_str);
|
||||||
if (func == NULL)
|
if (func == NULL)
|
||||||
return PyErr_Occurred() ? -1 : 1;
|
return PyErr_Occurred() ? -1 : 1;
|
||||||
|
using_len = 1;
|
||||||
}
|
}
|
||||||
args = PyTuple_New(0);
|
args = PyTuple_New(0);
|
||||||
if (args != NULL) {
|
if (args != NULL) {
|
||||||
|
@ -5110,8 +5112,10 @@ slot_nb_nonzero(PyObject *self)
|
||||||
result = PyObject_IsTrue(temp);
|
result = PyObject_IsTrue(temp);
|
||||||
else {
|
else {
|
||||||
PyErr_Format(PyExc_TypeError,
|
PyErr_Format(PyExc_TypeError,
|
||||||
"__nonzero__ should return "
|
"%s should return "
|
||||||
"bool or int, returned %s",
|
"bool or int, returned %s",
|
||||||
|
(using_len ? "__len__"
|
||||||
|
: "__nonzero__"),
|
||||||
temp->ob_type->tp_name);
|
temp->ob_type->tp_name);
|
||||||
result = -1;
|
result = -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1385,7 +1385,7 @@ int unicode_decode_call_errorhandler(const char *errors, PyObject **errorHandler
|
||||||
if (restuple == NULL)
|
if (restuple == NULL)
|
||||||
goto onError;
|
goto onError;
|
||||||
if (!PyTuple_Check(restuple)) {
|
if (!PyTuple_Check(restuple)) {
|
||||||
PyErr_Format(PyExc_TypeError, &argparse[4]);
|
PyErr_SetString(PyExc_TypeError, &argparse[4]);
|
||||||
goto onError;
|
goto onError;
|
||||||
}
|
}
|
||||||
if (!PyArg_ParseTuple(restuple, argparse, &PyUnicode_Type, &repunicode, &newpos))
|
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)
|
if (restuple == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (!PyTuple_Check(restuple)) {
|
if (!PyTuple_Check(restuple)) {
|
||||||
PyErr_Format(PyExc_TypeError, &argparse[4]);
|
PyErr_SetString(PyExc_TypeError, &argparse[4]);
|
||||||
Py_DECREF(restuple);
|
Py_DECREF(restuple);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -4712,7 +4712,7 @@ static PyObject *unicode_translate_call_errorhandler(const char *errors,
|
||||||
if (restuple == NULL)
|
if (restuple == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (!PyTuple_Check(restuple)) {
|
if (!PyTuple_Check(restuple)) {
|
||||||
PyErr_Format(PyExc_TypeError, &argparse[4]);
|
PyErr_SetString(PyExc_TypeError, &argparse[4]);
|
||||||
Py_DECREF(restuple);
|
Py_DECREF(restuple);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue