Merged revisions 69803-69805,69840,69901,69905,69907,69924,69927,69987 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r69803 | georg.brandl | 2009-02-20 01:48:21 -0600 (Fri, 20 Feb 2009) | 1 line

  #5327: fix a broken link by joining it.
........
  r69804 | georg.brandl | 2009-02-20 02:22:21 -0600 (Fri, 20 Feb 2009) | 1 line

  At least separate imports from other statements.
........
  r69805 | georg.brandl | 2009-02-20 02:45:47 -0600 (Fri, 20 Feb 2009) | 2 lines

  Fix punctuation.
........
  r69840 | georg.brandl | 2009-02-21 13:09:40 -0600 (Sat, 21 Feb 2009) | 1 line

  #5338, #5339: two types in the API manual.
........
  r69901 | georg.brandl | 2009-02-23 05:24:46 -0600 (Mon, 23 Feb 2009) | 2 lines

  #5349: C++ pure virtuals can also have an implementation.
........
  r69905 | georg.brandl | 2009-02-23 09:51:27 -0600 (Mon, 23 Feb 2009) | 2 lines

  #5352: str.count() counts non-overlapping instances.
........
  r69907 | georg.brandl | 2009-02-23 12:33:48 -0600 (Mon, 23 Feb 2009) | 1 line

  Fix grammar.
........
  r69924 | benjamin.peterson | 2009-02-23 20:45:35 -0600 (Mon, 23 Feb 2009) | 1 line

  update README on running tests
........
  r69927 | neil.schemenauer | 2009-02-23 22:23:25 -0600 (Mon, 23 Feb 2009) | 1 line

  Fix call to os.waitpid, it does not take keyword args.
........
  r69987 | benjamin.peterson | 2009-02-25 18:30:11 -0600 (Wed, 25 Feb 2009) | 1 line

  fix str.format()'s first arg #5371
........
This commit is contained in:
Benjamin Peterson 2009-02-26 03:38:59 +00:00
parent 40ce6cc066
commit ad3d5c2235
12 changed files with 55 additions and 23 deletions

View File

@ -187,7 +187,7 @@ caller is said to receive a *new* reference. When no ownership is transferred,
the caller is said to *borrow* the reference. Nothing needs to be done for a
borrowed reference.
Conversely, when a calling function passes it a reference to an object, there
Conversely, when a calling function passes in a reference to an object, there
are two possibilities: the function *steals* a reference to the object, or it
does not. *Stealing a reference* means that when you pass a reference to a
function, that function assumes that it now owns that reference, and you are not

View File

@ -16,7 +16,7 @@ parameter. The available start symbols are :const:`Py_eval_input`,
:const:`Py_file_input`, and :const:`Py_single_input`. These are described
following the functions which accept them as parameters.
Note also that several of these functions take :ctype:`FILE\*` parameters. On
Note also that several of these functions take :ctype:`FILE\*` parameters. One
particular issue which needs to be handled carefully is that the :ctype:`FILE`
structure for different C libraries can be different and incompatible. Under
Windows (at least), it is possible for dynamically linked extensions to actually

View File

@ -99,7 +99,8 @@ simple CGI program::
# -*- coding: UTF-8 -*-
# enable debugging
import cgitb; cgitb.enable()
import cgitb
cgitb.enable()
print("Content-Type: text/plain;charset=utf-8")
print()

View File

@ -38,9 +38,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

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

@ -65,16 +65,18 @@ Using the cgi module
Begin by writing ``import cgi``.
When you write a new script, consider adding the line::
When you write a new script, consider adding these lines::
import cgitb; cgitb.enable()
import cgitb
cgitb.enable()
This activates a special exception handler that will display detailed reports in
the Web browser if any errors occur. If you'd rather not show the guts of your
program to users of your script, you can have the reports saved to files
instead, with a line like this::
instead, with code like this::
import cgitb; cgitb.enable(display=0, logdir="/tmp")
import cgitb
cgitb.enable(display=0, logdir="/tmp")
It's very helpful to use this feature during script development. The reports
produced by :mod:`cgitb` provide information that can save you a lot of time in
@ -445,9 +447,10 @@ discarded altogether.
Fortunately, once you have managed to get your script to execute *some* code,
you can easily send tracebacks to the Web browser using the :mod:`cgitb` module.
If you haven't done so already, just add the line::
If you haven't done so already, just add the lines::
import cgitb; cgitb.enable()
import cgitb
cgitb.enable()
to the top of your script. Then try running it again; when a problem occurs,
you should see a detailed report that will likely make apparent the cause of the

View File

@ -24,9 +24,10 @@ as well as the values of the arguments and local variables to currently running
functions, to help you debug the problem. Optionally, you can save this
information to a file instead of sending it to the browser.
To enable this feature, simply add one line to the top of your CGI script::
To enable this feature, simply add this to the top of your CGI script::
import cgitb; cgitb.enable()
import cgitb
cgitb.enable()
The options to the :func:`enable` function control whether the report is
displayed in the browser and whether the report is logged to a file for later

View File

@ -793,9 +793,9 @@ functions based on regular expressions.
.. method:: str.count(sub[, start[, end]])
Return the number of occurrences of substring *sub* in the range [*start*,
*end*]. Optional arguments *start* and *end* are interpreted as in slice
notation.
Return the number of non-overlapping occurrences of substring *sub* in the
range [*start*, *end*]. Optional arguments *start* and *end* are
interpreted as in slice notation.
.. method:: str.encode([encoding[, errors]])
@ -835,7 +835,7 @@ functions based on regular expressions.
found.
.. method:: str.format(format_string, *args, **kwargs)
.. method:: str.format(*args, **kwargs)
Perform a string formatting operation. The *format_string* argument can
contain literal text or replacement fields delimited by braces ``{}``. Each

View File

@ -529,5 +529,5 @@ This is an example of counting the maximum depth of an XML file::
.. [#] The encoding string included in XML output should conform to the
appropriate standards. For example, "UTF-8" is valid, but "UTF8" is
not. See http://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl
and http://www.iana.org/assignments/character-sets .
and http://www.iana.org/assignments/character-sets.

View File

@ -1761,8 +1761,8 @@ ElementTree 1.2.6. The :mod:`cElementTree` accelerator module is also
included.
The rest of this section will provide a brief overview of using ElementTree.
Full documentation for ElementTree is available at http://effbot.org/zone
/element-index.htm.
Full documentation for ElementTree is available at
http://effbot.org/zone/element-index.htm.
ElementTree represents an XML document as a tree of element nodes. The text
content of the document is stored as the :attr:`.text` and :attr:`.tail`

View File

@ -487,7 +487,7 @@ class ForkingMixIn:
# libraries that expect to be able to wait for their own
# children.
try:
pid, status = os.waitpid(0, options=0)
pid, status = os.waitpid(0, 0)
except os.error:
pid = None
if pid not in self.active_children: continue

27
README
View File

@ -88,6 +88,33 @@ needs to be changed, such as optional warnings when deprecated features are
used, and backported versions of certain key Python 3.x features.
Testing
-------
To test the interpreter, type "make test" in the top-level directory.
This runs the test set twice (once with no compiled files, once with
the compiled files left by the previous test run). The test set
produces some output. You can generally ignore the messages about
skipped tests due to optional features which can't be imported.
If a message is printed about a failed test or a traceback or core
dump is produced, something is wrong. On some Linux systems (those
that are not yet using glibc 6), test_strftime fails due to a
non-standard implementation of strftime() in the C library. Please
ignore this, or upgrade to glibc version 6.
By default, tests are prevented from overusing resources like disk space and
memory. To enable these tests, run "make testall".
IMPORTANT: If the tests fail and you decide to mail a bug report,
*don't* include the output of "make test". It is useless. Run the
failing test manually, as follows:
./python Lib/test/regrtest.py -v test_whatever
(substituting the top of the source tree for '.' if you built in a
different directory). This runs the test in verbose mode.
Installing multiple versions
----------------------------