mirror of https://github.com/python/cpython
Merged revisions 70866-70868,70870-70871,70893,70896,70902,70905,70907,70912,70915,70927,70933,70940,70944,70954,70963,70998,71056 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r70866 | georg.brandl | 2009-03-31 21:06:57 +0200 (Di, 31 Mär 2009) | 1 line #4882: document named group behavior a bit better. ........ r70867 | georg.brandl | 2009-03-31 21:10:35 +0200 (Di, 31 Mär 2009) | 1 line #1096310: document usage of sys.__std*__ a bit better. ........ r70868 | georg.brandl | 2009-03-31 21:12:17 +0200 (Di, 31 Mär 2009) | 1 line #5190: export make_option in __all__. ........ r70870 | georg.brandl | 2009-03-31 21:26:24 +0200 (Di, 31 Mär 2009) | 1 line #4411: document mro() and __mro__. (I hope I got it right.) ........ r70871 | georg.brandl | 2009-03-31 21:30:56 +0200 (Di, 31 Mär 2009) | 1 line #5618: fix typo. ........ r70893 | georg.brandl | 2009-03-31 22:56:32 +0200 (Di, 31 Mär 2009) | 1 line #1530012: move TQS section before raw strings. ........ r70896 | georg.brandl | 2009-03-31 23:15:33 +0200 (Di, 31 Mär 2009) | 1 line #5598: document DocFileSuite *args argument. ........ r70902 | georg.brandl | 2009-03-31 23:43:03 +0200 (Di, 31 Mär 2009) | 1 line #1675026: add a note about a strange Windows problem, and remove notes about AtheOS. ........ r70905 | georg.brandl | 2009-04-01 00:03:40 +0200 (Mi, 01 Apr 2009) | 1 line #5563: more documentation for bdist_msi. ........ r70907 | georg.brandl | 2009-04-01 00:18:19 +0200 (Mi, 01 Apr 2009) | 1 line #3427: document correct return type for urlopen().info(). ........ r70912 | georg.brandl | 2009-04-01 00:35:46 +0200 (Mi, 01 Apr 2009) | 1 line #5617: add a handy function to print a unicode string to gdbinit. ........ r70915 | georg.brandl | 2009-04-01 00:40:16 +0200 (Mi, 01 Apr 2009) | 1 line #5018: remove confusing paragraph. ........ r70927 | georg.brandl | 2009-04-01 01:01:27 +0200 (Mi, 01 Apr 2009) | 1 line Dont shout to users. ........ r70933 | georg.brandl | 2009-04-01 02:04:33 +0200 (Mi, 01 Apr 2009) | 2 lines Issue #5635: Fix running test_sys with tracing enabled. ........ r70940 | georg.brandl | 2009-04-01 06:21:14 +0200 (Mi, 01 Apr 2009) | 2 lines The SimpleXMLRPCServer's CGI handler now runs like a pony. ........ r70944 | georg.brandl | 2009-04-01 06:32:39 +0200 (Mi, 01 Apr 2009) | 1 line #5631: add upload to list of possible commands, which is presented in --help-commands. ........ r70954 | georg.brandl | 2009-04-01 17:23:43 +0200 (Mi, 01 Apr 2009) | 1 line Fix test_xmlrpc and make the CGI handler work with no CONTENT_LENGTH. ........ r70963 | georg.brandl | 2009-04-01 19:46:01 +0200 (Mi, 01 Apr 2009) | 1 line #5655: fix docstring oversight. ........ r70998 | georg.brandl | 2009-04-01 23:54:21 +0200 (Mi, 01 Apr 2009) | 1 line In Pdb, stop assigning values to __builtin__._ which interferes with the one commonly installed by gettext. ........ r71056 | georg.brandl | 2009-04-02 19:43:07 +0200 (Do, 02 Apr 2009) | 2 lines Actually the displayhook should print the repr. ........
This commit is contained in:
parent
8943caf716
commit
9b08e05e1e
|
@ -247,7 +247,7 @@ definition with the same method name.
|
||||||
T_OBJECT_EX PyObject \*
|
T_OBJECT_EX PyObject \*
|
||||||
T_CHAR char
|
T_CHAR char
|
||||||
T_BYTE char
|
T_BYTE char
|
||||||
T_UNBYTE unsigned char
|
T_UBYTE unsigned char
|
||||||
T_UINT unsigned int
|
T_UINT unsigned int
|
||||||
T_USHORT unsigned short
|
T_USHORT unsigned short
|
||||||
T_ULONG unsigned long
|
T_ULONG unsigned long
|
||||||
|
|
|
@ -1775,8 +1775,16 @@ This module supplies the abstract base class :class:`Command`.
|
||||||
.. module:: distutils.command.bdist_msi
|
.. module:: distutils.command.bdist_msi
|
||||||
:synopsis: Build a binary distribution as a Windows MSI file
|
:synopsis: Build a binary distribution as a Windows MSI file
|
||||||
|
|
||||||
|
.. class:: bdist_msi(Command)
|
||||||
|
|
||||||
.. % todo
|
Builds a `Windows Installer`_ (.msi) binary package.
|
||||||
|
|
||||||
|
.. _Windows Installer: http://msdn.microsoft.com/en-us/library/cc185688(VS.85).aspx
|
||||||
|
|
||||||
|
In most cases, the ``bdist_msi`` installer is a better choice than the
|
||||||
|
``bdist_wininst`` installer, because it provides better support for
|
||||||
|
Win64 platforms, allows administrators to perform non-interactive
|
||||||
|
installations, and allows installation through group policies.
|
||||||
|
|
||||||
|
|
||||||
:mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a Redhat RPM and SRPM
|
:mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a Redhat RPM and SRPM
|
||||||
|
|
|
@ -965,7 +965,7 @@ There are two main functions for creating :class:`unittest.TestSuite` instances
|
||||||
from text files and modules with doctests:
|
from text files and modules with doctests:
|
||||||
|
|
||||||
|
|
||||||
.. function:: DocFileSuite([module_relative][, package][, setUp][, tearDown][, globs][, optionflags][, parser][, encoding])
|
.. function:: DocFileSuite(*paths, [module_relative][, package][, setUp][, tearDown][, globs][, optionflags][, parser][, encoding])
|
||||||
|
|
||||||
Convert doctest tests from one or more text files to a
|
Convert doctest tests from one or more text files to a
|
||||||
:class:`unittest.TestSuite`.
|
:class:`unittest.TestSuite`.
|
||||||
|
@ -983,45 +983,47 @@ from text files and modules with doctests:
|
||||||
Optional argument *module_relative* specifies how the filenames in *paths*
|
Optional argument *module_relative* specifies how the filenames in *paths*
|
||||||
should be interpreted:
|
should be interpreted:
|
||||||
|
|
||||||
* If *module_relative* is ``True`` (the default), then each filename specifies
|
* If *module_relative* is ``True`` (the default), then each filename in
|
||||||
an OS-independent module-relative path. By default, this path is relative to
|
*paths* specifies an OS-independent module-relative path. By default, this
|
||||||
the calling module's directory; but if the *package* argument is specified, then
|
path is relative to the calling module's directory; but if the *package*
|
||||||
it is relative to that package. To ensure OS-independence, each filename should
|
argument is specified, then it is relative to that package. To ensure
|
||||||
use ``/`` characters to separate path segments, and may not be an absolute path
|
OS-independence, each filename should use ``/`` characters to separate path
|
||||||
(i.e., it may not begin with ``/``).
|
segments, and may not be an absolute path (i.e., it may not begin with
|
||||||
|
``/``).
|
||||||
|
|
||||||
* If *module_relative* is ``False``, then each filename specifies an OS-specific
|
* If *module_relative* is ``False``, then each filename in *paths* specifies
|
||||||
path. The path may be absolute or relative; relative paths are resolved with
|
an OS-specific path. The path may be absolute or relative; relative paths
|
||||||
respect to the current working directory.
|
are resolved with respect to the current working directory.
|
||||||
|
|
||||||
Optional argument *package* is a Python package or the name of a Python package
|
Optional argument *package* is a Python package or the name of a Python
|
||||||
whose directory should be used as the base directory for module-relative
|
package whose directory should be used as the base directory for
|
||||||
filenames. If no package is specified, then the calling module's directory is
|
module-relative filenames in *paths*. If no package is specified, then the
|
||||||
used as the base directory for module-relative filenames. It is an error to
|
calling module's directory is used as the base directory for module-relative
|
||||||
specify *package* if *module_relative* is ``False``.
|
filenames. It is an error to specify *package* if *module_relative* is
|
||||||
|
``False``.
|
||||||
|
|
||||||
Optional argument *setUp* specifies a set-up function for the test suite. This
|
Optional argument *setUp* specifies a set-up function for the test suite.
|
||||||
is called before running the tests in each file. The *setUp* function will be
|
This is called before running the tests in each file. The *setUp* function
|
||||||
passed a :class:`DocTest` object. The setUp function can access the test
|
|
||||||
globals as the *globs* attribute of the test passed.
|
|
||||||
|
|
||||||
Optional argument *tearDown* specifies a tear-down function for the test suite.
|
|
||||||
This is called after running the tests in each file. The *tearDown* function
|
|
||||||
will be passed a :class:`DocTest` object. The setUp function can access the
|
will be passed a :class:`DocTest` object. The setUp function can access the
|
||||||
test globals as the *globs* attribute of the test passed.
|
test globals as the *globs* attribute of the test passed.
|
||||||
|
|
||||||
|
Optional argument *tearDown* specifies a tear-down function for the test
|
||||||
|
suite. This is called after running the tests in each file. The *tearDown*
|
||||||
|
function will be passed a :class:`DocTest` object. The setUp function can
|
||||||
|
access the test globals as the *globs* attribute of the test passed.
|
||||||
|
|
||||||
Optional argument *globs* is a dictionary containing the initial global
|
Optional argument *globs* is a dictionary containing the initial global
|
||||||
variables for the tests. A new copy of this dictionary is created for each
|
variables for the tests. A new copy of this dictionary is created for each
|
||||||
test. By default, *globs* is a new empty dictionary.
|
test. By default, *globs* is a new empty dictionary.
|
||||||
|
|
||||||
Optional argument *optionflags* specifies the default doctest options for the
|
Optional argument *optionflags* specifies the default doctest options for the
|
||||||
tests, created by or-ing together individual option flags. See section
|
tests, created by or-ing together individual option flags. See section
|
||||||
:ref:`doctest-options`. See function :func:`set_unittest_reportflags` below for
|
:ref:`doctest-options`. See function :func:`set_unittest_reportflags` below
|
||||||
a better way to set reporting options.
|
for a better way to set reporting options.
|
||||||
|
|
||||||
Optional argument *parser* specifies a :class:`DocTestParser` (or subclass) that
|
Optional argument *parser* specifies a :class:`DocTestParser` (or subclass)
|
||||||
should be used to extract tests from the files. It defaults to a normal parser
|
that should be used to extract tests from the files. It defaults to a normal
|
||||||
(i.e., ``DocTestParser()``).
|
parser (i.e., ``DocTestParser()``).
|
||||||
|
|
||||||
Optional argument *encoding* specifies an encoding that should be used to
|
Optional argument *encoding* specifies an encoding that should be used to
|
||||||
convert the file to unicode.
|
convert the file to unicode.
|
||||||
|
@ -1029,8 +1031,8 @@ from text files and modules with doctests:
|
||||||
.. versionadded:: 2.4
|
.. versionadded:: 2.4
|
||||||
|
|
||||||
.. versionchanged:: 2.5
|
.. versionchanged:: 2.5
|
||||||
The global ``__file__`` was added to the globals provided to doctests loaded
|
The global ``__file__`` was added to the globals provided to doctests
|
||||||
from a text file using :func:`DocFileSuite`.
|
loaded from a text file using :func:`DocFileSuite`.
|
||||||
|
|
||||||
.. versionchanged:: 2.5
|
.. versionchanged:: 2.5
|
||||||
The parameter *encoding* was added.
|
The parameter *encoding* was added.
|
||||||
|
|
|
@ -231,16 +231,18 @@ The special characters are:
|
||||||
|
|
||||||
``(?P<name>...)``
|
``(?P<name>...)``
|
||||||
Similar to regular parentheses, but the substring matched by the group is
|
Similar to regular parentheses, but the substring matched by the group is
|
||||||
accessible via the symbolic group name *name*. Group names must be valid Python
|
accessible within the rest of the regular expression via the symbolic group
|
||||||
identifiers, and each group name must be defined only once within a regular
|
name *name*. Group names must be valid Python identifiers, and each group
|
||||||
expression. A symbolic group is also a numbered group, just as if the group
|
name must be defined only once within a regular expression. A symbolic group
|
||||||
were not named. So the group named 'id' in the example below can also be
|
is also a numbered group, just as if the group were not named. So the group
|
||||||
referenced as the numbered group 1.
|
named ``id`` in the example below can also be referenced as the numbered group
|
||||||
|
``1``.
|
||||||
|
|
||||||
For example, if the pattern is ``(?P<id>[a-zA-Z_]\w*)``, the group can be
|
For example, if the pattern is ``(?P<id>[a-zA-Z_]\w*)``, the group can be
|
||||||
referenced by its name in arguments to methods of match objects, such as
|
referenced by its name in arguments to methods of match objects, such as
|
||||||
``m.group('id')`` or ``m.end('id')``, and also by name in pattern text (for
|
``m.group('id')`` or ``m.end('id')``, and also by name in the regular
|
||||||
example, ``(?P=id)``) and replacement text (such as ``\g<id>``).
|
expression itself (using ``(?P=id)``) and replacement text given to
|
||||||
|
``.sub()`` (using ``\g<id>``).
|
||||||
|
|
||||||
``(?P=name)``
|
``(?P=name)``
|
||||||
Matches whatever text was matched by the earlier group named *name*.
|
Matches whatever text was matched by the earlier group named *name*.
|
||||||
|
|
|
@ -2653,9 +2653,24 @@ types, where they are relevant. Some of these are not reported by the
|
||||||
The name of the class or type.
|
The name of the class or type.
|
||||||
|
|
||||||
|
|
||||||
|
The following attributes are only supported by :term:`new-style class`\ es.
|
||||||
|
|
||||||
|
.. attribute:: class.__mro__
|
||||||
|
|
||||||
|
This attribute is a tuple of classes that are considered when looking for
|
||||||
|
base classes during method resolution.
|
||||||
|
|
||||||
|
|
||||||
|
.. method:: class.mro()
|
||||||
|
|
||||||
|
This method can be overridden by a metaclass to customize the method
|
||||||
|
resolution order for its instances. It is called at class instantiation, and
|
||||||
|
its result is stored in :attr:`__mro__`.
|
||||||
|
|
||||||
|
|
||||||
.. method:: class.__subclasses__
|
.. method:: class.__subclasses__
|
||||||
|
|
||||||
:term:`New-style class`\ es keep a list of weak references to their immediate
|
Each new-style class keeps a list of weak references to its immediate
|
||||||
subclasses. This method returns a list of all those references still alive.
|
subclasses. This method returns a list of all those references still alive.
|
||||||
Example::
|
Example::
|
||||||
|
|
||||||
|
|
|
@ -850,9 +850,14 @@ always available.
|
||||||
__stderr__
|
__stderr__
|
||||||
|
|
||||||
These objects contain the original values of ``stdin``, ``stderr`` and
|
These objects contain the original values of ``stdin``, ``stderr`` and
|
||||||
``stdout`` at the start of the program. They are used during finalization, and
|
``stdout`` at the start of the program. They are used during finalization,
|
||||||
could be useful to restore the actual files to known working file objects in
|
and could be useful to print to the actual standard stream no matter if the
|
||||||
case they have been overwritten with a broken object.
|
``sys.std*`` object has been redirected.
|
||||||
|
|
||||||
|
It can also be used to restore the actual files to known working file objects
|
||||||
|
in case they have been overwritten with a broken object. However, the
|
||||||
|
preferred way to do this is to explicitly save the previous stream before
|
||||||
|
replacing it, and restore the saved object.
|
||||||
|
|
||||||
|
|
||||||
.. data:: tracebacklimit
|
.. data:: tracebacklimit
|
||||||
|
|
|
@ -49,7 +49,7 @@ High-level interface
|
||||||
.. index:: module: mimetools
|
.. index:: module: mimetools
|
||||||
|
|
||||||
The :meth:`info` method returns an instance of the class
|
The :meth:`info` method returns an instance of the class
|
||||||
:class:`mimetools.Message` containing meta-information associated with the
|
:class:`httplib.HTTPMessage` containing meta-information associated with the
|
||||||
URL. When the method is HTTP, these headers are those returned by the server
|
URL. When the method is HTTP, these headers are those returned by the server
|
||||||
at the head of the retrieved HTML page (including Content-Length and
|
at the head of the retrieved HTML page (including Content-Length and
|
||||||
Content-Type). When the method is FTP, a Content-Length header will be
|
Content-Type). When the method is FTP, a Content-Length header will be
|
||||||
|
|
|
@ -401,13 +401,11 @@ The reverse operation is also possible::
|
||||||
|
|
||||||
>>> x, y, z = t
|
>>> x, y, z = t
|
||||||
|
|
||||||
This is called, appropriately enough, *sequence unpacking*. Sequence unpacking
|
This is called, appropriately enough, *sequence unpacking* and works for any
|
||||||
requires the list of variables on the left to have the same number of elements
|
sequence on the right-hand side. Sequence unpacking requires the list of
|
||||||
as the length of the sequence. Note that multiple assignment is really just a
|
variables on the left to have the same number of elements as the length of the
|
||||||
combination of tuple packing and sequence unpacking!
|
sequence. Note that multiple assignment is really just a combination of tuple
|
||||||
|
packing and sequence unpacking.
|
||||||
There is a small bit of asymmetry here: packing multiple values always creates
|
|
||||||
a tuple, and unpacking works for any sequence.
|
|
||||||
|
|
||||||
.. XXX Add a bit on the difference between tuples and lists.
|
.. XXX Add a bit on the difference between tuples and lists.
|
||||||
|
|
||||||
|
|
|
@ -199,21 +199,6 @@ the following::
|
||||||
several lines of text just as you would do in C.
|
several lines of text just as you would do in C.
|
||||||
Note that whitespace at the beginning of the line is significant.
|
Note that whitespace at the beginning of the line is significant.
|
||||||
|
|
||||||
If we make the string literal a "raw" string, however, the ``\n`` sequences are
|
|
||||||
not converted to newlines, but the backslash at the end of the line, and the
|
|
||||||
newline character in the source, are both included in the string as data. Thus,
|
|
||||||
the example::
|
|
||||||
|
|
||||||
hello = r"This is a rather long string containing\n\
|
|
||||||
several lines of text much as you would do in C."
|
|
||||||
|
|
||||||
print hello
|
|
||||||
|
|
||||||
would print::
|
|
||||||
|
|
||||||
This is a rather long string containing\n\
|
|
||||||
several lines of text much as you would do in C.
|
|
||||||
|
|
||||||
Or, strings can be surrounded in a pair of matching triple-quotes: ``"""`` or
|
Or, strings can be surrounded in a pair of matching triple-quotes: ``"""`` or
|
||||||
``'''``. End of lines do not need to be escaped when using triple-quotes, but
|
``'''``. End of lines do not need to be escaped when using triple-quotes, but
|
||||||
they will be included in the string. ::
|
they will be included in the string. ::
|
||||||
|
@ -230,6 +215,20 @@ produces the following output::
|
||||||
-h Display this usage message
|
-h Display this usage message
|
||||||
-H hostname Hostname to connect to
|
-H hostname Hostname to connect to
|
||||||
|
|
||||||
|
If we make the string literal a "raw" string, ``\n`` sequences are not converted
|
||||||
|
to newlines, but the backslash at the end of the line, and the newline character
|
||||||
|
in the source, are both included in the string as data. Thus, the example::
|
||||||
|
|
||||||
|
hello = r"This is a rather long string containing\n\
|
||||||
|
several lines of text much as you would do in C."
|
||||||
|
|
||||||
|
print hello
|
||||||
|
|
||||||
|
would print::
|
||||||
|
|
||||||
|
This is a rather long string containing\n\
|
||||||
|
several lines of text much as you would do in C.
|
||||||
|
|
||||||
The interpreter prints the result of string operations in the same way as they
|
The interpreter prints the result of string operations in the same way as they
|
||||||
are typed for input: inside quotes, and with quotes and other funny characters
|
are typed for input: inside quotes, and with quotes and other funny characters
|
||||||
escaped by backslashes, to show the precise value. The string is enclosed in
|
escaped by backslashes, to show the precise value. The string is enclosed in
|
||||||
|
|
|
@ -598,8 +598,12 @@ class CGIXMLRPCRequestHandler(SimpleXMLRPCDispatcher):
|
||||||
self.handle_get()
|
self.handle_get()
|
||||||
else:
|
else:
|
||||||
# POST data is normally available through stdin
|
# POST data is normally available through stdin
|
||||||
|
try:
|
||||||
|
length = int(os.environ.get('CONTENT_LENGTH', None))
|
||||||
|
except (TypeError, ValueError):
|
||||||
|
length = -1
|
||||||
if request_text is None:
|
if request_text is None:
|
||||||
request_text = sys.stdin.read()
|
request_text = sys.stdin.read(length)
|
||||||
|
|
||||||
self.handle_xmlrpc(request_text)
|
self.handle_xmlrpc(request_text)
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,8 @@ __all__ = ['build',
|
||||||
'bdist_dumb',
|
'bdist_dumb',
|
||||||
'bdist_rpm',
|
'bdist_rpm',
|
||||||
'bdist_wininst',
|
'bdist_wininst',
|
||||||
|
'upload',
|
||||||
|
|
||||||
# These two are reserved for future use:
|
# These two are reserved for future use:
|
||||||
#'bdist_sdux',
|
#'bdist_sdux',
|
||||||
#'bdist_pkgtool',
|
#'bdist_pkgtool',
|
||||||
|
|
|
@ -16,7 +16,7 @@ def glob(pathname):
|
||||||
return list(iglob(pathname))
|
return list(iglob(pathname))
|
||||||
|
|
||||||
def iglob(pathname):
|
def iglob(pathname):
|
||||||
"""Return a list of paths matching a pathname pattern.
|
"""Return an iterator which yields the paths matching a pathname pattern.
|
||||||
|
|
||||||
The pattern may contain simple shell-style wildcards a la fnmatch.
|
The pattern may contain simple shell-style wildcards a la fnmatch.
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ For support, use the optik-users@lists.sourceforge.net mailing list
|
||||||
__version__ = "1.5.3"
|
__version__ = "1.5.3"
|
||||||
|
|
||||||
__all__ = ['Option',
|
__all__ = ['Option',
|
||||||
|
'make_option',
|
||||||
'SUPPRESS_HELP',
|
'SUPPRESS_HELP',
|
||||||
'SUPPRESS_USAGE',
|
'SUPPRESS_USAGE',
|
||||||
'Values',
|
'Values',
|
||||||
|
|
|
@ -194,6 +194,12 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
||||||
self.cmdloop()
|
self.cmdloop()
|
||||||
self.forget()
|
self.forget()
|
||||||
|
|
||||||
|
def displayhook(self, obj):
|
||||||
|
"""Custom displayhook for the exec in default(), which prevents
|
||||||
|
assignment of the _ variable in the builtins.
|
||||||
|
"""
|
||||||
|
print repr(obj)
|
||||||
|
|
||||||
def default(self, line):
|
def default(self, line):
|
||||||
if line[:1] == '!': line = line[1:]
|
if line[:1] == '!': line = line[1:]
|
||||||
locals = self.curframe.f_locals
|
locals = self.curframe.f_locals
|
||||||
|
@ -202,13 +208,16 @@ class Pdb(bdb.Bdb, cmd.Cmd):
|
||||||
code = compile(line + '\n', '<stdin>', 'single')
|
code = compile(line + '\n', '<stdin>', 'single')
|
||||||
save_stdout = sys.stdout
|
save_stdout = sys.stdout
|
||||||
save_stdin = sys.stdin
|
save_stdin = sys.stdin
|
||||||
|
save_displayhook = sys.displayhook
|
||||||
try:
|
try:
|
||||||
sys.stdin = self.stdin
|
sys.stdin = self.stdin
|
||||||
sys.stdout = self.stdout
|
sys.stdout = self.stdout
|
||||||
|
sys.displayhook = self.displayhook
|
||||||
exec code in globals, locals
|
exec code in globals, locals
|
||||||
finally:
|
finally:
|
||||||
sys.stdout = save_stdout
|
sys.stdout = save_stdout
|
||||||
sys.stdin = save_stdin
|
sys.stdin = save_stdin
|
||||||
|
sys.displayhook = save_displayhook
|
||||||
except:
|
except:
|
||||||
t, v = sys.exc_info()[:2]
|
t, v = sys.exc_info()[:2]
|
||||||
if type(t) == type(''):
|
if type(t) == type(''):
|
||||||
|
|
|
@ -221,6 +221,11 @@ class SysModuleTest(unittest.TestCase):
|
||||||
sys.setdlopenflags(oldflags)
|
sys.setdlopenflags(oldflags)
|
||||||
|
|
||||||
def test_refcount(self):
|
def test_refcount(self):
|
||||||
|
# n here must be a global in order for this test to pass while
|
||||||
|
# tracing with a python function. Tracing calls PyFrame_FastToLocals
|
||||||
|
# which will add a copy of any locals to the frame object, causing
|
||||||
|
# the reference count to increase by 2 instead of 1.
|
||||||
|
global n
|
||||||
self.assertRaises(TypeError, sys.getrefcount)
|
self.assertRaises(TypeError, sys.getrefcount)
|
||||||
c = sys.getrefcount(None)
|
c = sys.getrefcount(None)
|
||||||
n = None
|
n = None
|
||||||
|
|
|
@ -624,7 +624,11 @@ class CGIHandlerTestCase(unittest.TestCase):
|
||||||
sys.stdin = open("xmldata.txt", "r")
|
sys.stdin = open("xmldata.txt", "r")
|
||||||
sys.stdout = open(test_support.TESTFN, "w")
|
sys.stdout = open(test_support.TESTFN, "w")
|
||||||
|
|
||||||
|
os.environ['CONTENT_LENGTH'] = str(len(data))
|
||||||
|
try:
|
||||||
self.cgi.handle_request()
|
self.cgi.handle_request()
|
||||||
|
finally:
|
||||||
|
del os.environ['CONTENT_LENGTH']
|
||||||
|
|
||||||
sys.stdin.close()
|
sys.stdin.close()
|
||||||
sys.stdout.close()
|
sys.stdout.close()
|
||||||
|
|
29
Misc/NEWS
29
Misc/NEWS
|
@ -97,6 +97,23 @@ Library
|
||||||
|
|
||||||
- Issue 1726172: fix IndexError in the case of and empty response in ftplib.
|
- Issue 1726172: fix IndexError in the case of and empty response in ftplib.
|
||||||
|
|
||||||
|
- In Pdb, prevent the reassignment of __builtin__._ by sys.displayhook on
|
||||||
|
printing out values.
|
||||||
|
|
||||||
|
- Issue #4572: added SEEK_* symbolic constants to io module.
|
||||||
|
|
||||||
|
- Issue #1665206 (partially): Move imports in cgitb to the top of the module
|
||||||
|
instead of performing them in functions. Helps prevent import deadlocking in
|
||||||
|
threads.
|
||||||
|
|
||||||
|
- Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.
|
||||||
|
|
||||||
|
- Actually make the SimpleXMLRPCServer CGI handler work.
|
||||||
|
|
||||||
|
- Issue #2522: locale.format now checks its first argument to ensure it has
|
||||||
|
been passed only one pattern, avoiding mysterious errors where it appeared
|
||||||
|
that it was failing to do localization.
|
||||||
|
|
||||||
- Issue 2625: added missing iteritems() call to the for loop in
|
- Issue 2625: added missing iteritems() call to the for loop in
|
||||||
mailbox.MH.get_message().
|
mailbox.MH.get_message().
|
||||||
|
|
||||||
|
@ -508,6 +525,18 @@ Extension Modules
|
||||||
- Issue #4396: The parser module now correctly validates the with statement.
|
- Issue #4396: The parser module now correctly validates the with statement.
|
||||||
|
|
||||||
|
|
||||||
|
Tests
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Issue #5635: Fix running test_sys with tracing enabled.
|
||||||
|
|
||||||
|
- regrtest no longer treats ImportError as equivalent to SkipTest. Imports
|
||||||
|
that should cause a test to be skipped are now done using import_module
|
||||||
|
from test support, which does the conversion.
|
||||||
|
|
||||||
|
- Issue #5083: New 'gui' resource for regrtest.
|
||||||
|
|
||||||
|
|
||||||
What's New in Python 2.6 final
|
What's New in Python 2.6 final
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
|
|
13
Misc/gdbinit
13
Misc/gdbinit
|
@ -138,3 +138,16 @@ define pystackv
|
||||||
end
|
end
|
||||||
select-frame 0
|
select-frame 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# generally useful macro to print a Unicode string
|
||||||
|
def pu
|
||||||
|
set $uni = $arg0
|
||||||
|
set $i = 0
|
||||||
|
while (*$uni && $i++<100)
|
||||||
|
if (*$uni < 0x80)
|
||||||
|
print *(char*)$uni++
|
||||||
|
else
|
||||||
|
print /x *(short*)$uni++
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
73
README
73
README
|
@ -665,75 +665,10 @@ Cygwin: With recent (relative to the time of writing, 2001-12-19)
|
||||||
News regarding these platforms with more recent Cygwin
|
News regarding these platforms with more recent Cygwin
|
||||||
versions would be appreciated!
|
versions would be appreciated!
|
||||||
|
|
||||||
AtheOS: Official support has been stopped as of Python 2.6. All code will be
|
Windows: When executing Python scripts on the command line using file type
|
||||||
removed in Python 2.7 unless a maintainer steps forward for this
|
associations (i.e. starting "script.py" instead of "python script.py"),
|
||||||
platform.
|
redirects may not work unless you set a specific registry key. See
|
||||||
|
the Knowledge Base article <http://support.microsoft.com/kb/321788>.
|
||||||
From Octavian Cerna <tavy at ylabs.com>:
|
|
||||||
|
|
||||||
Before building:
|
|
||||||
|
|
||||||
Make sure you have shared versions of the libraries you
|
|
||||||
want to use with Python. You will have to compile them
|
|
||||||
yourself, or download precompiled packages.
|
|
||||||
|
|
||||||
Recommended libraries:
|
|
||||||
|
|
||||||
ncurses-4.2
|
|
||||||
readline-4.2a
|
|
||||||
zlib-1.1.4
|
|
||||||
|
|
||||||
Build:
|
|
||||||
|
|
||||||
$ ./configure --prefix=/usr/python
|
|
||||||
$ make
|
|
||||||
|
|
||||||
Python is always built as a shared library, otherwise
|
|
||||||
dynamic loading would not work.
|
|
||||||
|
|
||||||
Testing:
|
|
||||||
|
|
||||||
$ make test
|
|
||||||
|
|
||||||
Install:
|
|
||||||
|
|
||||||
# make install
|
|
||||||
# pkgmanager -a /usr/python
|
|
||||||
|
|
||||||
|
|
||||||
AtheOS issues:
|
|
||||||
|
|
||||||
- large file support: due to a stdio bug in glibc/libio,
|
|
||||||
access to large files may not work correctly. fseeko()
|
|
||||||
tries to seek to a negative offset. ftello() returns a
|
|
||||||
negative offset, it looks like a 32->64bit
|
|
||||||
sign-extension issue. The lowlevel functions (open,
|
|
||||||
lseek, etc) are OK.
|
|
||||||
- sockets: AF_UNIX is defined in the C library and in
|
|
||||||
Python, but not implemented in the system.
|
|
||||||
- select: poll is available in the C library, but does not
|
|
||||||
work (It does not return POLLNVAL for bad fds and
|
|
||||||
hangs).
|
|
||||||
- posix: statvfs and fstatvfs always return ENOSYS.
|
|
||||||
- disabled modules:
|
|
||||||
- mmap: not yet implemented in AtheOS
|
|
||||||
- nis: broken (on an unconfigured system
|
|
||||||
yp_get_default_domain() returns junk instead of
|
|
||||||
error)
|
|
||||||
- dl: dynamic loading doesn't work via dlopen()
|
|
||||||
- resource: getrimit and setrlimit are not yet
|
|
||||||
implemented
|
|
||||||
|
|
||||||
- if you are getting segmentation faults, you probably are
|
|
||||||
low on memory. AtheOS doesn't handle very well an
|
|
||||||
out-of-memory condition and simply SEGVs the process.
|
|
||||||
|
|
||||||
Tested on:
|
|
||||||
|
|
||||||
AtheOS-0.3.7
|
|
||||||
gcc-2.95
|
|
||||||
binutils-2.10
|
|
||||||
make-3.78
|
|
||||||
|
|
||||||
|
|
||||||
Configuring the bsddb and dbm modules
|
Configuring the bsddb and dbm modules
|
||||||
|
|
Loading…
Reference in New Issue