diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst index 33e6060d657..65dbcd700a8 100644 --- a/Doc/c-api/intro.rst +++ b/Doc/c-api/intro.rst @@ -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 diff --git a/Doc/c-api/veryhigh.rst b/Doc/c-api/veryhigh.rst index 2378c766334..62281aabd14 100644 --- a/Doc/c-api/veryhigh.rst +++ b/Doc/c-api/veryhigh.rst @@ -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 diff --git a/Doc/howto/webservers.rst b/Doc/howto/webservers.rst index 2132390e4be..2440b306546 100644 --- a/Doc/howto/webservers.rst +++ b/Doc/howto/webservers.rst @@ -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() diff --git a/Doc/library/2to3.rst b/Doc/library/2to3.rst index 7ab34dac1cf..03cfbbee712 100644 --- a/Doc/library/2to3.rst +++ b/Doc/library/2to3.rst @@ -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 diff --git a/Doc/library/abc.rst b/Doc/library/abc.rst index 8ab90cc91c9..42f508dd634 100644 --- a/Doc/library/abc.rst +++ b/Doc/library/abc.rst @@ -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 diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst index c8d9903bc56..e9b2c77c1eb 100644 --- a/Doc/library/cgi.rst +++ b/Doc/library/cgi.rst @@ -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 diff --git a/Doc/library/cgitb.rst b/Doc/library/cgitb.rst index c106d9e3ffb..854ea95c00e 100644 --- a/Doc/library/cgitb.rst +++ b/Doc/library/cgitb.rst @@ -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 diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index 3e5f2ac59ad..eea7364bf55 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -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 diff --git a/Doc/library/xml.etree.elementtree.rst b/Doc/library/xml.etree.elementtree.rst index 623df5a75f3..a04b04a39d5 100644 --- a/Doc/library/xml.etree.elementtree.rst +++ b/Doc/library/xml.etree.elementtree.rst @@ -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. diff --git a/Doc/whatsnew/2.5.rst b/Doc/whatsnew/2.5.rst index e1e2887614a..ca87dbb1ee8 100644 --- a/Doc/whatsnew/2.5.rst +++ b/Doc/whatsnew/2.5.rst @@ -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` diff --git a/Lib/socketserver.py b/Lib/socketserver.py index d19146f28fe..92adbcfaf58 100644 --- a/Lib/socketserver.py +++ b/Lib/socketserver.py @@ -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 diff --git a/README b/README index e661f272cfa..ea630d52d6a 100644 --- a/README +++ b/README @@ -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 ----------------------------