mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 07:31:38 +00:00 
			
		
		
		
	Merged revisions 75365,75394,75402-75403,75418,75459,75484,75592-75596,75600,75602-75607,75610-75613,75616-75617,75623,75627,75640,75647,75696,75795 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r75365 | georg.brandl | 2009-10-11 22:16:16 +0200 (So, 11 Okt 2009) | 1 line Fix broken links found by "make linkcheck". scipy.org seems to be done right now, so I could not verify links going there. ........ r75394 | georg.brandl | 2009-10-13 20:10:59 +0200 (Di, 13 Okt 2009) | 1 line Fix markup. ........ r75402 | georg.brandl | 2009-10-14 17:51:48 +0200 (Mi, 14 Okt 2009) | 1 line #7125: fix typo. ........ r75403 | georg.brandl | 2009-10-14 17:57:46 +0200 (Mi, 14 Okt 2009) | 1 line #7126: os.environ changes *do* take effect in subprocesses started with os.system(). ........ r75418 | georg.brandl | 2009-10-14 20:48:32 +0200 (Mi, 14 Okt 2009) | 1 line #7116: str.join() takes an iterable. ........ r75459 | georg.brandl | 2009-10-17 10:57:43 +0200 (Sa, 17 Okt 2009) | 1 line Fix refleaks in _ctypes PyCSimpleType_New, which fixes the refleak seen in test___all__. ........ r75484 | georg.brandl | 2009-10-18 09:58:12 +0200 (So, 18 Okt 2009) | 1 line Fix missing word. ........ r75592 | georg.brandl | 2009-10-22 09:05:48 +0200 (Do, 22 Okt 2009) | 1 line Fix punctuation. ........ r75593 | georg.brandl | 2009-10-22 09:06:49 +0200 (Do, 22 Okt 2009) | 1 line Revert unintended change. ........ r75594 | georg.brandl | 2009-10-22 09:56:02 +0200 (Do, 22 Okt 2009) | 1 line Fix markup. ........ r75595 | georg.brandl | 2009-10-22 09:56:56 +0200 (Do, 22 Okt 2009) | 1 line Fix duplicate target. ........ r75596 | georg.brandl | 2009-10-22 10:05:04 +0200 (Do, 22 Okt 2009) | 1 line Add a new directive marking up implementation details and start using it. ........ r75600 | georg.brandl | 2009-10-22 13:01:46 +0200 (Do, 22 Okt 2009) | 1 line Make it more robust. ........ r75602 | georg.brandl | 2009-10-22 13:28:06 +0200 (Do, 22 Okt 2009) | 1 line Document new directive. ........ r75603 | georg.brandl | 2009-10-22 13:28:23 +0200 (Do, 22 Okt 2009) | 1 line Allow short form with text as argument. ........ r75604 | georg.brandl | 2009-10-22 13:36:50 +0200 (Do, 22 Okt 2009) | 1 line Fix stylesheet for multi-paragraph impl-details. ........ r75605 | georg.brandl | 2009-10-22 13:48:10 +0200 (Do, 22 Okt 2009) | 1 line Use "impl-detail" directive where applicable. ........ r75606 | georg.brandl | 2009-10-22 17:00:06 +0200 (Do, 22 Okt 2009) | 1 line #6324: membership test tries iteration via __iter__. ........ r75607 | georg.brandl | 2009-10-22 17:04:09 +0200 (Do, 22 Okt 2009) | 1 line #7088: document new functions in signal as Unix-only. ........ r75610 | georg.brandl | 2009-10-22 17:27:24 +0200 (Do, 22 Okt 2009) | 1 line Reorder __slots__ fine print and add a clarification. ........ r75611 | georg.brandl | 2009-10-22 17:42:32 +0200 (Do, 22 Okt 2009) | 1 line #7035: improve docs of the various <method>_errors() functions, and give them docstrings. ........ r75612 | georg.brandl | 2009-10-22 17:52:15 +0200 (Do, 22 Okt 2009) | 1 line #7156: document curses as Unix-only. ........ r75613 | georg.brandl | 2009-10-22 17:54:35 +0200 (Do, 22 Okt 2009) | 1 line #6977: getopt does not support optional option arguments. ........ r75616 | georg.brandl | 2009-10-22 18:17:05 +0200 (Do, 22 Okt 2009) | 1 line Add proper references. ........ r75617 | georg.brandl | 2009-10-22 18:20:55 +0200 (Do, 22 Okt 2009) | 1 line Make printout margin important. ........ r75623 | georg.brandl | 2009-10-23 10:14:44 +0200 (Fr, 23 Okt 2009) | 1 line #7188: fix optionxform() docs. ........ r75627 | fred.drake | 2009-10-23 15:04:51 +0200 (Fr, 23 Okt 2009) | 2 lines add further note about what's passed to optionxform ........ r75640 | neil.schemenauer | 2009-10-23 21:58:17 +0200 (Fr, 23 Okt 2009) | 2 lines Improve some docstrings in the 'warnings' module. ........ r75647 | georg.brandl | 2009-10-24 12:04:19 +0200 (Sa, 24 Okt 2009) | 1 line Fix markup. ........ r75696 | georg.brandl | 2009-10-25 21:25:43 +0100 (So, 25 Okt 2009) | 1 line Fix a demo. ........ r75795 | georg.brandl | 2009-10-27 16:10:22 +0100 (Di, 27 Okt 2009) | 1 line Fix a strange mis-edit. ........
This commit is contained in:
		
							parent
							
								
									facabe2462
								
							
						
					
					
						commit
						495f7b5adb
					
				
					 50 changed files with 370 additions and 233 deletions
				
			
		| 
						 | 
					@ -24,7 +24,6 @@
 | 
				
			||||||
# - Handles blank input lines correctly
 | 
					# - Handles blank input lines correctly
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
import string
 | 
					 | 
				
			||||||
import sys
 | 
					import sys
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def main():
 | 
					def main():
 | 
				
			||||||
| 
						 | 
					@ -32,18 +31,13 @@ def main():
 | 
				
			||||||
    def makekey(item, prog=prog):
 | 
					    def makekey(item, prog=prog):
 | 
				
			||||||
        match = prog.match(item)
 | 
					        match = prog.match(item)
 | 
				
			||||||
        if match:
 | 
					        if match:
 | 
				
			||||||
            var, num = match.group(1, 2)
 | 
					            var, num = match.groups()
 | 
				
			||||||
            return string.atoi(num), var
 | 
					            return int(num), var
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            # Bad input -- pretend it's a var with value 0
 | 
					            # Bad input -- pretend it's a var with value 0
 | 
				
			||||||
            return 0, item
 | 
					            return 0, item
 | 
				
			||||||
    while 1:
 | 
					    for line in sys.stdin:
 | 
				
			||||||
        line = sys.stdin.readline()
 | 
					        items = sorted(makekey(item) for item in line.split())
 | 
				
			||||||
        if not line:
 | 
					 | 
				
			||||||
            break
 | 
					 | 
				
			||||||
        items = line.split()
 | 
					 | 
				
			||||||
        items = list(map(makekey, items))
 | 
					 | 
				
			||||||
        items.sort()
 | 
					 | 
				
			||||||
        for num, var in items:
 | 
					        for num, var in items:
 | 
				
			||||||
            print("%s=%s" % (var, num), end=' ')
 | 
					            print("%s=%s" % (var, num), end=' ')
 | 
				
			||||||
        print()
 | 
					        print()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1976,9 +1976,9 @@ it so that it's implementing the class :class:`peel_banana`, a subclass of
 | 
				
			||||||
Subclasses of :class:`Command` must define the following methods.
 | 
					Subclasses of :class:`Command` must define the following methods.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. method:: Command.initialize_options()(S)
 | 
					.. method:: Command.initialize_options()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   et default values for all the options that this command supports.  Note that
 | 
					   Set default values for all the options that this command supports.  Note that
 | 
				
			||||||
   these defaults may be overridden by other commands, by the setup script, by
 | 
					   these defaults may be overridden by other commands, by the setup script, by
 | 
				
			||||||
   config files, or by the command-line.  Thus, this is not the place to code
 | 
					   config files, or by the command-line.  Thus, this is not the place to code
 | 
				
			||||||
   dependencies between options; generally, :meth:`initialize_options`
 | 
					   dependencies between options; generally, :meth:`initialize_options`
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -626,6 +626,24 @@ units as well as normal text:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
--------------
 | 
					--------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. describe:: impl-detail
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   This directive is used to mark CPython-specific information.  Use either with
 | 
				
			||||||
 | 
					   a block content or a single sentence as an argument, i.e. either ::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         This describes some implementation detail.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					         More explanation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   or ::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      .. impl-detail:: This shortly mentions an implementation detail.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   "\ **CPython implementation detail:**\ " is automatically prepended to the
 | 
				
			||||||
 | 
					   content.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. describe:: seealso
 | 
					.. describe:: seealso
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Many sections include a list of references to module documentation or
 | 
					   Many sections include a list of references to module documentation or
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -396,12 +396,13 @@ calls into the Python run-time system, even for seemingly simple operations like
 | 
				
			||||||
``x+1``.
 | 
					``x+1``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Several projects described in the Python newsgroup or at past `Python
 | 
					Several projects described in the Python newsgroup or at past `Python
 | 
				
			||||||
conferences <http://python.org/community/workshops/>`_ have shown that this approach is feasible,
 | 
					conferences <http://python.org/community/workshops/>`_ have shown that this
 | 
				
			||||||
although the speedups reached so far are only modest (e.g. 2x).  Jython uses the
 | 
					approach is feasible, although the speedups reached so far are only modest
 | 
				
			||||||
same strategy for compiling to Java bytecode.  (Jim Hugunin has demonstrated
 | 
					(e.g. 2x).  Jython uses the same strategy for compiling to Java bytecode.  (Jim
 | 
				
			||||||
that in combination with whole-program analysis, speedups of 1000x are feasible
 | 
					Hugunin has demonstrated that in combination with whole-program analysis,
 | 
				
			||||||
for small demo programs.  See the proceedings from the `1997 Python conference
 | 
					speedups of 1000x are feasible for small demo programs.  See the proceedings
 | 
				
			||||||
<http://python.org/community/workshops/1997-10/proceedings/>`_ for more information.)
 | 
					from the `1997 Python conference
 | 
				
			||||||
 | 
					<http://python.org/workshops/1997-10/proceedings/>`_ for more information.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Internally, Python source code is always translated into a bytecode
 | 
					Internally, Python source code is always translated into a bytecode
 | 
				
			||||||
representation, and this bytecode is then executed by the Python virtual
 | 
					representation, and this bytecode is then executed by the Python virtual
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -48,7 +48,7 @@ Python's C API.
 | 
				
			||||||
If you need to interface to some C or C++ library for which no Python extension
 | 
					If you need to interface to some C or C++ library for which no Python extension
 | 
				
			||||||
currently exists, you can try wrapping the library's data types and functions
 | 
					currently exists, you can try wrapping the library's data types and functions
 | 
				
			||||||
with a tool such as `SWIG <http://www.swig.org>`_.  `SIP
 | 
					with a tool such as `SWIG <http://www.swig.org>`_.  `SIP
 | 
				
			||||||
<http://www.riverbankcomputing.co.uk/sip/>`_, `CXX
 | 
					<http://www.riverbankcomputing.co.uk/software/sip/>`__, `CXX
 | 
				
			||||||
<http://cxx.sourceforge.net/>`_ `Boost
 | 
					<http://cxx.sourceforge.net/>`_ `Boost
 | 
				
			||||||
<http://www.boost.org/libs/python/doc/index.html>`_, or `Weave
 | 
					<http://www.boost.org/libs/python/doc/index.html>`_, or `Weave
 | 
				
			||||||
<http://www.scipy.org/site_content/weave>`_ are also alternatives for wrapping
 | 
					<http://www.scipy.org/site_content/weave>`_ are also alternatives for wrapping
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -164,9 +164,10 @@ Sphinx-formatted documentation, Python library modules, example programs, and
 | 
				
			||||||
several useful pieces of freely distributable software.  The source will compile
 | 
					several useful pieces of freely distributable software.  The source will compile
 | 
				
			||||||
and run out of the box on most UNIX platforms.
 | 
					and run out of the box on most UNIX platforms.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Consult the `Developer FAQ
 | 
					.. XXX update link once the dev faq is relocated
 | 
				
			||||||
<http://www.python.org/dev/devfaq.html#subversion-svn>`__ for more information
 | 
					
 | 
				
			||||||
on getting the source code and compiling it.
 | 
					Consult the `Developer FAQ <http://www.python.org/dev/faq/>`__ for more
 | 
				
			||||||
 | 
					information on getting the source code and compiling it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How do I get documentation on Python?
 | 
					How do I get documentation on Python?
 | 
				
			||||||
| 
						 | 
					@ -176,7 +177,7 @@ How do I get documentation on Python?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The standard documentation for the current stable version of Python is available
 | 
					The standard documentation for the current stable version of Python is available
 | 
				
			||||||
at http://docs.python.org/.  PDF, plain text, and downloadable HTML versions are
 | 
					at http://docs.python.org/.  PDF, plain text, and downloadable HTML versions are
 | 
				
			||||||
also available at http://docs.python.org/download/.
 | 
					also available at http://docs.python.org/download.html.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The documentation is written in reStructuredText and processed by `the Sphinx
 | 
					The documentation is written in reStructuredText and processed by `the Sphinx
 | 
				
			||||||
documentation tool <http://sphinx.pocoo.org/>`__.  The reStructuredText source
 | 
					documentation tool <http://sphinx.pocoo.org/>`__.  The reStructuredText source
 | 
				
			||||||
| 
						 | 
					@ -220,8 +221,10 @@ releases are announced on the comp.lang.python and comp.lang.python.announce
 | 
				
			||||||
newsgroups and on the Python home page at http://www.python.org/; an RSS feed of
 | 
					newsgroups and on the Python home page at http://www.python.org/; an RSS feed of
 | 
				
			||||||
news is available.
 | 
					news is available.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. XXX update link once the dev faq is relocated
 | 
				
			||||||
 | 
					
 | 
				
			||||||
You can also access the development version of Python through Subversion.  See
 | 
					You can also access the development version of Python through Subversion.  See
 | 
				
			||||||
http://www.python.org/dev/devfaq.html#subversion-svn for details.
 | 
					http://www.python.org/dev/faq/ for details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How do I submit bug reports and patches for Python?
 | 
					How do I submit bug reports and patches for Python?
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,11 +45,12 @@ Qt
 | 
				
			||||||
'''
 | 
					'''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
There are bindings available for the Qt toolkit (`PyQt
 | 
					There are bindings available for the Qt toolkit (`PyQt
 | 
				
			||||||
<http://www.riverbankcomputing.co.uk/pyqt/>`_) and for KDE (PyKDE).  If you're
 | 
					<http://www.riverbankcomputing.co.uk/software/pyqt/>`_) and for KDE (PyKDE).  If
 | 
				
			||||||
writing open source software, you don't need to pay for PyQt, but if you want to
 | 
					you're writing open source software, you don't need to pay for PyQt, but if you
 | 
				
			||||||
write proprietary applications, you must buy a PyQt license from `Riverbank
 | 
					want to write proprietary applications, you must buy a PyQt license from
 | 
				
			||||||
Computing <http://www.riverbankcomputing.co.uk>`_ and a Qt license from
 | 
					`Riverbank Computing <http://www.riverbankcomputing.co.uk>`_ and (up to Qt 4.4;
 | 
				
			||||||
`Trolltech <http://www.trolltech.com>`_.
 | 
					Qt 4.5 upwards is licensed under the LGPL license) a Qt license from `Trolltech
 | 
				
			||||||
 | 
					<http://www.trolltech.com>`_.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Gtk+
 | 
					Gtk+
 | 
				
			||||||
''''
 | 
					''''
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,14 +16,10 @@ Check :ref:`the Library Reference <library-index>` to see if there's a relevant
 | 
				
			||||||
standard library module.  (Eventually you'll learn what's in the standard
 | 
					standard library module.  (Eventually you'll learn what's in the standard
 | 
				
			||||||
library and will able to skip this step.)
 | 
					library and will able to skip this step.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Search the `Python Package Index <http://pypi.python.org/pypi>`_.
 | 
					For third-party packages, search the `Python Package Index
 | 
				
			||||||
 | 
					<http://pypi.python.org/pypi>`_ or try `Google <http://www.google.com>`_ or
 | 
				
			||||||
Next, check the `Vaults of Parnassus <http://www.vex.net/parnassus/>`_, an older
 | 
					another Web search engine.  Searching for "Python" plus a keyword or two for
 | 
				
			||||||
index of packages.
 | 
					your topic of interest will usually find something helpful.
 | 
				
			||||||
 | 
					 | 
				
			||||||
Finally, try `Google <http://www.google.com>`_ or other Web search engine.
 | 
					 | 
				
			||||||
Searching for "Python" plus a keyword or two for your topic of interest will
 | 
					 | 
				
			||||||
usually find something helpful.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Where is the math.py (socket.py, regex.py, etc.) source file?
 | 
					Where is the math.py (socket.py, regex.py, etc.) source file?
 | 
				
			||||||
| 
						 | 
					@ -181,11 +177,10 @@ in Python.
 | 
				
			||||||
How do I create documentation from doc strings?
 | 
					How do I create documentation from doc strings?
 | 
				
			||||||
-----------------------------------------------
 | 
					-----------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. XXX mention Sphinx/epydoc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The :mod:`pydoc` module can create HTML from the doc strings in your Python
 | 
					The :mod:`pydoc` module can create HTML from the doc strings in your Python
 | 
				
			||||||
source code.  An alternative is `pythondoc
 | 
					source code.  An alternative for creating API documentation purely from
 | 
				
			||||||
<http://starship.python.net/crew/danilo/pythondoc/>`_.
 | 
					docstrings is `epydoc <http://epydoc.sf.net/>`_.  `Sphinx
 | 
				
			||||||
 | 
					<http://sphinx.pocoo.org>`_ can also include docstring content.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How do I get a single keypress at a time?
 | 
					How do I get a single keypress at a time?
 | 
				
			||||||
| 
						 | 
					@ -237,7 +232,7 @@ The :mod:`threading` module builds convenient abstractions on top of the
 | 
				
			||||||
low-level primitives provided by the :mod:`_thread` module.
 | 
					low-level primitives provided by the :mod:`_thread` module.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Aahz has a set of slides from his threading tutorial that are helpful; see
 | 
					Aahz has a set of slides from his threading tutorial that are helpful; see
 | 
				
			||||||
http://starship.python.net/crew/aahz/OSCON2001/.
 | 
					http://www.pythoncraft.com/OSCON2001/.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
None of my threads seem to run: why?
 | 
					None of my threads seem to run: why?
 | 
				
			||||||
| 
						 | 
					@ -397,6 +392,7 @@ Can't we get rid of the Global Interpreter Lock?
 | 
				
			||||||
------------------------------------------------
 | 
					------------------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. XXX mention multiprocessing
 | 
					.. XXX mention multiprocessing
 | 
				
			||||||
 | 
					.. XXX link to dbeazley's talk about GIL?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The Global Interpreter Lock (GIL) is often seen as a hindrance to Python's
 | 
					The Global Interpreter Lock (GIL) is often seen as a hindrance to Python's
 | 
				
			||||||
deployment on high-end multiprocessor server machines, because a multi-threaded
 | 
					deployment on high-end multiprocessor server machines, because a multi-threaded
 | 
				
			||||||
| 
						 | 
					@ -583,7 +579,7 @@ substituted for standard input and output.  You will have to use pseudo ttys
 | 
				
			||||||
("ptys") instead of pipes. Or you can use a Python interface to Don Libes'
 | 
					("ptys") instead of pipes. Or you can use a Python interface to Don Libes'
 | 
				
			||||||
"expect" library.  A Python extension that interfaces to expect is called "expy"
 | 
					"expect" library.  A Python extension that interfaces to expect is called "expy"
 | 
				
			||||||
and available from http://expectpy.sourceforge.net.  A pure Python solution that
 | 
					and available from http://expectpy.sourceforge.net.  A pure Python solution that
 | 
				
			||||||
works like expect is ` pexpect <http://pexpect.sourceforge.net>`_.
 | 
					works like expect is `pexpect <http://pypi.python.org/pypi/pexpect/>`_.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How do I access the serial (RS232) port?
 | 
					How do I access the serial (RS232) port?
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,8 +67,8 @@ plug-ins to add a custom feature.  In addition to the bug checking that
 | 
				
			||||||
PyChecker performs, Pylint offers some additional features such as checking line
 | 
					PyChecker performs, Pylint offers some additional features such as checking line
 | 
				
			||||||
length, whether variable names are well-formed according to your coding
 | 
					length, whether variable names are well-formed according to your coding
 | 
				
			||||||
standard, whether declared interfaces are fully implemented, and more.
 | 
					standard, whether declared interfaces are fully implemented, and more.
 | 
				
			||||||
http://www.logilab.org/projects/pylint/documentation provides a full list of
 | 
					http://www.logilab.org/card/pylint_manual provides a full list of Pylint's
 | 
				
			||||||
Pylint's features.
 | 
					features.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How can I create a stand-alone binary from a Python script?
 | 
					How can I create a stand-alone binary from a Python script?
 | 
				
			||||||
| 
						 | 
					@ -1141,7 +1141,7 @@ use a list comprehension::
 | 
				
			||||||
   A = [[None] * w for i in range(h)]
 | 
					   A = [[None] * w for i in range(h)]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Or, you can use an extension that provides a matrix datatype; `Numeric Python
 | 
					Or, you can use an extension that provides a matrix datatype; `Numeric Python
 | 
				
			||||||
<http://www.pfdubois.com/numpy/>`_ is the best known.
 | 
					<http://numpy.scipy.org/>`_ is the best known.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How do I apply a method to a sequence of objects?
 | 
					How do I apply a method to a sequence of objects?
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -389,10 +389,10 @@ need)::
 | 
				
			||||||
    .py :REG_SZ: c:\<path to python>\python.exe -u %s %s
 | 
					    .py :REG_SZ: c:\<path to python>\python.exe -u %s %s
 | 
				
			||||||
 | 
					
 | 
				
			||||||
This line will allow you to call your script with a simple reference like:
 | 
					This line will allow you to call your script with a simple reference like:
 | 
				
			||||||
http://yourserver/scripts/yourscript.py provided "scripts" is an "executable"
 | 
					``http://yourserver/scripts/yourscript.py`` provided "scripts" is an
 | 
				
			||||||
directory for your server (which it usually is by default).  The "-u" flag
 | 
					"executable" directory for your server (which it usually is by default).  The
 | 
				
			||||||
specifies unbuffered and binary mode for stdin - needed when working with binary
 | 
					:option:`-u` flag specifies unbuffered and binary mode for stdin - needed when
 | 
				
			||||||
data.
 | 
					working with binary data.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
In addition, it is recommended that using ".py" may not be a good idea for the
 | 
					In addition, it is recommended that using ".py" may not be a good idea for the
 | 
				
			||||||
file extensions when used in this context (you might want to reserve ``*.py``
 | 
					file extensions when used in this context (you might want to reserve ``*.py``
 | 
				
			||||||
| 
						 | 
					@ -517,7 +517,7 @@ Why doesn't os.popen()/win32pipe.popen() work on Win9x?
 | 
				
			||||||
There is a bug in Win9x that prevents os.popen/win32pipe.popen* from
 | 
					There is a bug in Win9x that prevents os.popen/win32pipe.popen* from
 | 
				
			||||||
working. The good news is there is a way to work around this problem.  The
 | 
					working. The good news is there is a way to work around this problem.  The
 | 
				
			||||||
Microsoft Knowledge Base article that you need to lookup is: Q150956. You will
 | 
					Microsoft Knowledge Base article that you need to lookup is: Q150956. You will
 | 
				
			||||||
find links to the knowledge base at: http://www.microsoft.com/kb.
 | 
					find links to the knowledge base at: http://support.microsoft.com/.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyRun_SimpleFile() crashes on Windows but not on Unix; why?
 | 
					PyRun_SimpleFile() crashes on Windows but not on Unix; why?
 | 
				
			||||||
| 
						 | 
					@ -604,4 +604,4 @@ Tim Peters:
 | 
				
			||||||
   we can't fix it).
 | 
					   we can't fix it).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
David A Burton has written a little program to fix this.  Go to
 | 
					David A Burton has written a little program to fix this.  Go to
 | 
				
			||||||
http://www.burtonsys.com/download.html and click on "ctl3dfix.zip".
 | 
					http://www.burtonsys.com/downloads.html and click on "ctl3dfix.zip".
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -403,7 +403,7 @@ These are grouped into categories such as "Letter", "Number", "Punctuation", or
 | 
				
			||||||
from the above output, ``'Ll'`` means 'Letter, lowercase', ``'No'`` means
 | 
					from the above output, ``'Ll'`` means 'Letter, lowercase', ``'No'`` means
 | 
				
			||||||
"Number, other", ``'Mn'`` is "Mark, nonspacing", and ``'So'`` is "Symbol,
 | 
					"Number, other", ``'Mn'`` is "Mark, nonspacing", and ``'So'`` is "Symbol,
 | 
				
			||||||
other".  See
 | 
					other".  See
 | 
				
			||||||
<http://www.unicode.org/Public/UNIDATA/UCD.html#General_Category_Values> for a
 | 
					<http://unicode.org/Public/5.1.0/ucd/UCD.html#General_Category_Values> for a
 | 
				
			||||||
list of category codes.
 | 
					list of category codes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
References
 | 
					References
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -270,8 +270,7 @@ Depending on the web server you need to have a special module.
 | 
				
			||||||
* lighttpd ships its own `FastCGI module
 | 
					* lighttpd ships its own `FastCGI module
 | 
				
			||||||
  <http://trac.lighttpd.net/trac/wiki/Docs%3AModFastCGI>`_ as well as an `SCGI
 | 
					  <http://trac.lighttpd.net/trac/wiki/Docs%3AModFastCGI>`_ as well as an `SCGI
 | 
				
			||||||
  module <http://trac.lighttpd.net/trac/wiki/Docs%3AModSCGI>`_.
 | 
					  module <http://trac.lighttpd.net/trac/wiki/Docs%3AModSCGI>`_.
 | 
				
			||||||
* nginx also supports `FastCGI
 | 
					* nginx also supports `FastCGI <http://wiki.nginx.org/NginxSimplePythonFCGI>`_.
 | 
				
			||||||
  <http://wiki.codemongers.com/NginxSimplePythonFCGI>`_.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Once you have installed and configured the module, you can test it with the
 | 
					Once you have installed and configured the module, you can test it with the
 | 
				
			||||||
following WSGI-application::
 | 
					following WSGI-application::
 | 
				
			||||||
| 
						 | 
					@ -525,7 +524,7 @@ the text of a wiki page.  As always, there are different ways to store
 | 
				
			||||||
informations on a web server.
 | 
					informations on a web server.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Often relational database engines like `MySQL <http://www.mysql.com/>`_ or
 | 
					Often relational database engines like `MySQL <http://www.mysql.com/>`_ or
 | 
				
			||||||
`PostgreSQL <http://http://www.postgresql.org/>`_ are used due to their good
 | 
					`PostgreSQL <http://www.postgresql.org/>`_ are used due to their good
 | 
				
			||||||
performance handling very large databases consisting of up to millions of
 | 
					performance handling very large databases consisting of up to millions of
 | 
				
			||||||
entries.  These are *queried* using a language called `SQL
 | 
					entries.  These are *queried* using a language called `SQL
 | 
				
			||||||
<http://en.wikipedia.org/wiki/SQL>`_.  Python programmers in general do not like
 | 
					<http://en.wikipedia.org/wiki/SQL>`_.  Python programmers in general do not like
 | 
				
			||||||
| 
						 | 
					@ -629,7 +628,7 @@ which make it possible to write web sites nearly without any Python code.
 | 
				
			||||||
It has a big, international community which has created many sites using Django.
 | 
					It has a big, international community which has created many sites using Django.
 | 
				
			||||||
There are also quite a lot of add-on projects which extend Django's normal
 | 
					There are also quite a lot of add-on projects which extend Django's normal
 | 
				
			||||||
functionality.  This is partly due to Django's well written `online
 | 
					functionality.  This is partly due to Django's well written `online
 | 
				
			||||||
documentation <http://doc.djangoproject.com/>`_ and the `Django book
 | 
					documentation <http://docs.djangoproject.com/>`_ and the `Django book
 | 
				
			||||||
<http://www.djangobook.com/>`_.
 | 
					<http://www.djangobook.com/>`_.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -937,7 +937,8 @@ following steps.
 | 
				
			||||||
These compilers require some special libraries. This task is more complex than
 | 
					These compilers require some special libraries. This task is more complex than
 | 
				
			||||||
for Borland's C++, because there is no program to convert the library.  First
 | 
					for Borland's C++, because there is no program to convert the library.  First
 | 
				
			||||||
you have to create a list of symbols which the Python DLL exports. (You can find
 | 
					you have to create a list of symbols which the Python DLL exports. (You can find
 | 
				
			||||||
a good program for this task at http://www.emmestech.com/software/cygwin/pexports-0.43/download_pexports.html)
 | 
					a good program for this task at
 | 
				
			||||||
 | 
					http://www.emmestech.com/software/pexports-0.43/download_pexports.html).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. I don't understand what the next line means. --amk
 | 
					.. I don't understand what the next line means. --amk
 | 
				
			||||||
.. (inclusive the references on data structures.)
 | 
					.. (inclusive the references on data structures.)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -68,15 +68,19 @@ It defines the following functions:
 | 
				
			||||||
   the base classes :class:`StreamWriter` and :class:`StreamReader`, respectively.
 | 
					   the base classes :class:`StreamWriter` and :class:`StreamReader`, respectively.
 | 
				
			||||||
   Stream codecs can maintain state.
 | 
					   Stream codecs can maintain state.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Possible values for errors are ``'strict'`` (raise an exception in case of an
 | 
					   Possible values for errors are
 | 
				
			||||||
   encoding error), ``'replace'`` (replace malformed data with a suitable
 | 
					
 | 
				
			||||||
   replacement marker, such as ``'?'``), ``'ignore'`` (ignore malformed data and
 | 
					   * ``'strict'``: raise an exception in case of an encoding error
 | 
				
			||||||
   continue without further notice), ``'xmlcharrefreplace'`` (replace with the
 | 
					   * ``'replace'``: replace malformed data with a suitable replacement marker,
 | 
				
			||||||
   appropriate XML character reference (for encoding only)),
 | 
					     such as ``'?'`` or ``'\ufffd'``
 | 
				
			||||||
   ``'backslashreplace'`` (replace with backslashed escape sequences (for
 | 
					   * ``'ignore'``: ignore malformed data and continue without further notice
 | 
				
			||||||
   encoding only)), ``'surrogateescape'`` (replace with surrogate U+DCxx, see
 | 
					   * ``'xmlcharrefreplace'``: replace with the appropriate XML character
 | 
				
			||||||
   :pep:`383`) as well as any other error handling name defined via
 | 
					     reference (for encoding only)
 | 
				
			||||||
   :func:`register_error`.
 | 
					   * ``'backslashreplace'``: replace with backslashed escape sequences (for
 | 
				
			||||||
 | 
					     encoding only
 | 
				
			||||||
 | 
					   * ``'surrogateescape'``: replace with surrogate U+DCxx, see :pep:`383`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   as well as any other error handling name defined via :func:`register_error`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   In case a search function cannot find a given encoding, it should return
 | 
					   In case a search function cannot find a given encoding, it should return
 | 
				
			||||||
   ``None``.
 | 
					   ``None``.
 | 
				
			||||||
| 
						 | 
					@ -173,27 +177,33 @@ functions which use :func:`lookup` for the codec lookup:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: strict_errors(exception)
 | 
					.. function:: strict_errors(exception)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Implements the ``strict`` error handling.
 | 
					   Implements the ``strict`` error handling: each encoding or decoding error
 | 
				
			||||||
 | 
					   raises a :exc:`UnicodeError`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: replace_errors(exception)
 | 
					.. function:: replace_errors(exception)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Implements the ``replace`` error handling.
 | 
					   Implements the ``replace`` error handling: malformed data is replaced with a
 | 
				
			||||||
 | 
					   suitable replacement character such as ``'?'`` in bytestrings and
 | 
				
			||||||
 | 
					   ``'\ufffd'`` in Unicode strings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: ignore_errors(exception)
 | 
					.. function:: ignore_errors(exception)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Implements the ``ignore`` error handling.
 | 
					   Implements the ``ignore`` error handling: malformed data is ignored and
 | 
				
			||||||
 | 
					   encoding or decoding is continued without further notice.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: xmlcharrefreplace_errors(exception)
 | 
					.. function:: xmlcharrefreplace_errors(exception)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Implements the ``xmlcharrefreplace`` error handling.
 | 
					   Implements the ``xmlcharrefreplace`` error handling (for encoding only): the
 | 
				
			||||||
 | 
					   unencodable character is replaced by an appropriate XML character reference.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: backslashreplace_errors(exception)
 | 
					.. function:: backslashreplace_errors(exception)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Implements the ``backslashreplace`` error handling.
 | 
					   Implements the ``backslashreplace`` error handling (for encoding only): the
 | 
				
			||||||
 | 
					   unencodable character is replaced by a backslashed escape sequence.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
To simplify working with encoded files or stream, the module also defines these
 | 
					To simplify working with encoded files or stream, the module also defines these
 | 
				
			||||||
utility functions:
 | 
					utility functions:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -301,12 +301,23 @@ RawConfigParser Objects
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. method:: RawConfigParser.optionxform(option)
 | 
					.. method:: RawConfigParser.optionxform(option)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Transforms the option name *option* as found in an input file or as passed in by
 | 
					   Transforms the option name *option* as found in an input file or as passed in
 | 
				
			||||||
   client code to the form that should be used in the internal structures.  The
 | 
					   by client code to the form that should be used in the internal structures.
 | 
				
			||||||
   default implementation returns a lower-case version of *option*; subclasses may
 | 
					   The default implementation returns a lower-case version of *option*;
 | 
				
			||||||
   override this or client code can set an attribute of this name on instances to
 | 
					   subclasses may override this or client code can set an attribute of this name
 | 
				
			||||||
   affect this behavior.  Setting this to :func:`str`, for example, would make
 | 
					   on instances to affect this behavior.
 | 
				
			||||||
   option names case sensitive.
 | 
					
 | 
				
			||||||
 | 
					   You don't necessarily need to subclass a ConfigParser to use this method, you
 | 
				
			||||||
 | 
					   can also re-set it on an instance, to a function that takes a string
 | 
				
			||||||
 | 
					   argument.  Setting it to ``str``, for example, would make option names case
 | 
				
			||||||
 | 
					   sensitive::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      cfgparser = ConfigParser()
 | 
				
			||||||
 | 
					      ...
 | 
				
			||||||
 | 
					      cfgparser.optionxform = str
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Note that when reading configuration files, whitespace around the
 | 
				
			||||||
 | 
					   option names are stripped before :meth:`optionxform` is called.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _configparser-objects:
 | 
					.. _configparser-objects:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,10 +4,10 @@
 | 
				
			||||||
.. module:: curses
 | 
					.. module:: curses
 | 
				
			||||||
   :synopsis: An interface to the curses library, providing portable
 | 
					   :synopsis: An interface to the curses library, providing portable
 | 
				
			||||||
              terminal handling.
 | 
					              terminal handling.
 | 
				
			||||||
 | 
					   :platform: Unix
 | 
				
			||||||
.. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
 | 
					.. sectionauthor:: Moshe Zadka <moshez@zadka.site.co.il>
 | 
				
			||||||
.. sectionauthor:: Eric Raymond <esr@thyrsus.com>
 | 
					.. sectionauthor:: Eric Raymond <esr@thyrsus.com>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
The :mod:`curses` module provides an interface to the curses library, the
 | 
					The :mod:`curses` module provides an interface to the curses library, the
 | 
				
			||||||
de-facto standard for portable advanced terminal handling.
 | 
					de-facto standard for portable advanced terminal handling.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -233,7 +233,7 @@ Supported operations:
 | 
				
			||||||
|                                | (-*t1.days*, -*t1.seconds*,                   |
 | 
					|                                | (-*t1.days*, -*t1.seconds*,                   |
 | 
				
			||||||
|                                | -*t1.microseconds*), and to *t1*\* -1. (1)(4) |
 | 
					|                                | -*t1.microseconds*), and to *t1*\* -1. (1)(4) |
 | 
				
			||||||
+--------------------------------+-----------------------------------------------+
 | 
					+--------------------------------+-----------------------------------------------+
 | 
				
			||||||
| ``abs(t)``                     | equivalent to +*t* when ``t.days >= 0``, and  |
 | 
					| ``abs(t)``                     | equivalent to +\ *t* when ``t.days >= 0``, and|
 | 
				
			||||||
|                                | to -*t* when ``t.days < 0``. (2)              |
 | 
					|                                | to -*t* when ``t.days < 0``. (2)              |
 | 
				
			||||||
+--------------------------------+-----------------------------------------------+
 | 
					+--------------------------------+-----------------------------------------------+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -499,8 +499,10 @@ are always available.  They are listed here in alphabetical order.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Return the "identity" of an object.  This is an integer which
 | 
					   Return the "identity" of an object.  This is an integer which
 | 
				
			||||||
   is guaranteed to be unique and constant for this object during its lifetime.
 | 
					   is guaranteed to be unique and constant for this object during its lifetime.
 | 
				
			||||||
   Two objects with non-overlapping lifetimes may have the same :func:`id` value.
 | 
					   Two objects with non-overlapping lifetimes may have the same :func:`id`
 | 
				
			||||||
   (Implementation note: this is the address of the object.)
 | 
					   value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   .. impl-detail:: This is the address of the object.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: input([prompt])
 | 
					.. function:: input([prompt])
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,12 +36,13 @@ exception:
 | 
				
			||||||
   *longopts*, if specified, must be a list of strings with the names of the
 | 
					   *longopts*, if specified, must be a list of strings with the names of the
 | 
				
			||||||
   long options which should be supported.  The leading ``'--'`` characters
 | 
					   long options which should be supported.  The leading ``'--'`` characters
 | 
				
			||||||
   should not be included in the option name.  Long options which require an
 | 
					   should not be included in the option name.  Long options which require an
 | 
				
			||||||
   argument should be followed by an equal sign (``'='``).  To accept only long
 | 
					   argument should be followed by an equal sign (``'='``).  Optional arguments
 | 
				
			||||||
   options, *shortopts* should be an empty string.  Long options on the command line
 | 
					   are not supported.  To accept only long options, *shortopts* should be an
 | 
				
			||||||
   can be recognized so long as they provide a prefix of the option name that
 | 
					   empty string.  Long options on the command line can be recognized so long as
 | 
				
			||||||
   matches exactly one of the accepted options.  For example, if *longopts* is
 | 
					   they provide a prefix of the option name that matches exactly one of the
 | 
				
			||||||
   ``['foo', 'frob']``, the option :option:`--fo` will match as :option:`--foo`,
 | 
					   accepted options.  For example, if *longopts* is ``['foo', 'frob']``, the
 | 
				
			||||||
   but :option:`--f` will not match uniquely, so :exc:`GetoptError` will be raised.
 | 
					   option :option:`--fo` will match as :option:`--foo`, but :option:`--f` will
 | 
				
			||||||
 | 
					   not match uniquely, so :exc:`GetoptError` will be raised.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   The return value consists of two elements: the first is a list of ``(option,
 | 
					   The return value consists of two elements: the first is a list of ``(option,
 | 
				
			||||||
   value)`` pairs; the second is the list of program arguments left after the
 | 
					   value)`` pairs; the second is the list of program arguments left after the
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -290,18 +290,22 @@ attributes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Return true if the object is a getset descriptor.
 | 
					   Return true if the object is a getset descriptor.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   getsets are attributes defined in extension modules via ``PyGetSetDef``
 | 
					   .. impl-detail::
 | 
				
			||||||
   structures.  For Python implementations without such types, this method will
 | 
					
 | 
				
			||||||
   always return ``False``.
 | 
					      getsets are attributes defined in extension modules via
 | 
				
			||||||
 | 
					      :ctype:`PyGetSetDef` structures.  For Python implementations without such
 | 
				
			||||||
 | 
					      types, this method will always return ``False``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: ismemberdescriptor(object)
 | 
					.. function:: ismemberdescriptor(object)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Return true if the object is a member descriptor.
 | 
					   Return true if the object is a member descriptor.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   .. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      Member descriptors are attributes defined in extension modules via
 | 
					      Member descriptors are attributes defined in extension modules via
 | 
				
			||||||
   ``PyMemberDef`` structures.  For Python implementations without such types,
 | 
					      :ctype:`PyMemberDef` structures.  For Python implementations without such
 | 
				
			||||||
   this method will always return ``False``.
 | 
					      types, this method will always return ``False``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _inspect-source:
 | 
					.. _inspect-source:
 | 
				
			||||||
| 
						 | 
					@ -508,10 +512,12 @@ line.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Return the frame object for the caller's stack frame.
 | 
					   Return the frame object for the caller's stack frame.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   This function relies on Python stack frame support in the interpreter, which
 | 
					   .. impl-detail::
 | 
				
			||||||
   isn't guaranteed to exist in all implementations of Python. If running in
 | 
					
 | 
				
			||||||
   an implementation without Python stack frame support this function returns
 | 
					      This function relies on Python stack frame support in the interpreter,
 | 
				
			||||||
   ``None``.
 | 
					      which isn't guaranteed to exist in all implementations of Python.  If
 | 
				
			||||||
 | 
					      running in an implementation without Python stack frame support this
 | 
				
			||||||
 | 
					      function returns ``None``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: stack(context=1)
 | 
					.. function:: stack(context=1)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -595,7 +595,7 @@ Maildir, mbox, MH, Babyl, and MMDF.
 | 
				
			||||||
   `nmh - Message Handling System <http://www.nongnu.org/nmh/>`_
 | 
					   `nmh - Message Handling System <http://www.nongnu.org/nmh/>`_
 | 
				
			||||||
      Home page of :program:`nmh`, an updated version of the original :program:`mh`.
 | 
					      Home page of :program:`nmh`, an updated version of the original :program:`mh`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   `MH & nmh: Email for Users & Programmers <http://www.ics.uci.edu/~mh/book/>`_
 | 
					   `MH & nmh: Email for Users & Programmers <http://rand-mh.sourceforge.net/book/>`_
 | 
				
			||||||
      A GPL-licensed book on :program:`mh` and :program:`nmh`, with some information
 | 
					      A GPL-licensed book on :program:`mh` and :program:`nmh`, with some information
 | 
				
			||||||
      on the mailbox format.
 | 
					      on the mailbox format.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -301,7 +301,7 @@ Constants
 | 
				
			||||||
   The mathematical constant *e*.
 | 
					   The mathematical constant *e*.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. note::
 | 
					.. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   The :mod:`math` module consists mostly of thin wrappers around the platform C
 | 
					   The :mod:`math` module consists mostly of thin wrappers around the platform C
 | 
				
			||||||
   math library functions.  Behavior in exceptional cases is loosely specified
 | 
					   math library functions.  Behavior in exceptional cases is loosely specified
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -394,10 +394,10 @@ Directory Objects
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. seealso::
 | 
					.. seealso::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   `Directory Table <http://msdn.microsoft.com/library/en-us/msi/setup/directory_table.asp>`_
 | 
					   `Directory Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/directory_table.asp>`_
 | 
				
			||||||
   `File Table <http://msdn.microsoft.com/library/en-us/msi/setup/file_table.asp>`_
 | 
					   `File Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/file_table.asp>`_
 | 
				
			||||||
   `Component Table <http://msdn.microsoft.com/library/en-us/msi/setup/component_table.asp>`_
 | 
					   `Component Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/component_table.asp>`_
 | 
				
			||||||
   `FeatureComponents Table <http://msdn.microsoft.com/library/en-us/msi/setup/featurecomponents_table.asp>`_
 | 
					   `FeatureComponents Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/featurecomponents_table.asp>`_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _features:
 | 
					.. _features:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -422,7 +422,7 @@ Features
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. seealso::
 | 
					.. seealso::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   `Feature Table <http://msdn.microsoft.com/library/en-us/msi/setup/feature_table.asp>`_
 | 
					   `Feature Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/feature_table.asp>`_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _msi-gui:
 | 
					.. _msi-gui:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -516,13 +516,13 @@ to create MSI files with a user-interface for installing Python packages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. seealso::
 | 
					.. seealso::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   `Dialog Table <http://msdn.microsoft.com/library/en-us/msi/setup/dialog_table.asp>`_
 | 
					   `Dialog Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/dialog_table.asp>`_
 | 
				
			||||||
   `Control Table <http://msdn.microsoft.com/library/en-us/msi/setup/control_table.asp>`_
 | 
					   `Control Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/control_table.asp>`_
 | 
				
			||||||
   `Control Types <http://msdn.microsoft.com/library/en-us/msi/setup/controls.asp>`_
 | 
					   `Control Types <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/controls.asp>`_
 | 
				
			||||||
   `ControlCondition Table <http://msdn.microsoft.com/library/en-us/msi/setup/controlcondition_table.asp>`_
 | 
					   `ControlCondition Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/controlcondition_table.asp>`_
 | 
				
			||||||
   `ControlEvent Table <http://msdn.microsoft.com/library/en-us/msi/setup/controlevent_table.asp>`_
 | 
					   `ControlEvent Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/controlevent_table.asp>`_
 | 
				
			||||||
   `EventMapping Table <http://msdn.microsoft.com/library/en-us/msi/setup/eventmapping_table.asp>`_
 | 
					   `EventMapping Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/eventmapping_table.asp>`_
 | 
				
			||||||
   `RadioButton Table <http://msdn.microsoft.com/library/en-us/msi/setup/radiobutton_table.asp>`_
 | 
					   `RadioButton Table <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/radiobutton_table.asp>`_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _msi-tables:
 | 
					.. _msi-tables:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -551,5 +551,3 @@ definitions. Currently, these definitions are based on MSI version 2.0.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   This module contains definitions for the UIText and ActionText tables, for the
 | 
					   This module contains definitions for the UIText and ActionText tables, for the
 | 
				
			||||||
   standard installer actions.
 | 
					   standard installer actions.
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1576,9 +1576,9 @@ written in Python, such as a mail server's external command delivery program.
 | 
				
			||||||
.. function:: system(command)
 | 
					.. function:: system(command)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Execute the command (a string) in a subshell.  This is implemented by calling
 | 
					   Execute the command (a string) in a subshell.  This is implemented by calling
 | 
				
			||||||
   the Standard C function :cfunc:`system`, and has the same limitations.  Changes
 | 
					   the Standard C function :cfunc:`system`, and has the same limitations.
 | 
				
			||||||
   to :data:`os.environ`, :data:`sys.stdin`, etc. are not reflected in the
 | 
					   Changes to :data:`sys.stdin`, etc. are not reflected in the environment of the
 | 
				
			||||||
   environment of the executed command.
 | 
					   executed command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   On Unix, the return value is the exit status of the process encoded in the
 | 
					   On Unix, the return value is the exit status of the process encoded in the
 | 
				
			||||||
   format specified for :func:`wait`.  Note that POSIX does not specify the meaning
 | 
					   format specified for :func:`wait`.  Note that POSIX does not specify the meaning
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,7 +43,7 @@ also available for Python:
 | 
				
			||||||
      `PythonCAD <http://www.pythoncad.org/>`_. An online `tutorial
 | 
					      `PythonCAD <http://www.pythoncad.org/>`_. An online `tutorial
 | 
				
			||||||
      <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
 | 
					      <http://www.pygtk.org/pygtk2tutorial/index.html>`_ is available.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   `PyQt <http://www.riverbankcomputing.co.uk/pyqt/index.php>`_
 | 
					   `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/>`_
 | 
				
			||||||
      PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit.  Qt is an
 | 
					      PyQt is a :program:`sip`\ -wrapped binding to the Qt toolkit.  Qt is an
 | 
				
			||||||
      extensive C++ GUI application development framework that is
 | 
					      extensive C++ GUI application development framework that is
 | 
				
			||||||
      available for Unix, Windows and Mac OS X. :program:`sip` is a tool
 | 
					      available for Unix, Windows and Mac OS X. :program:`sip` is a tool
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -94,7 +94,7 @@ Cross Platform
 | 
				
			||||||
.. function:: python_implementation()
 | 
					.. function:: python_implementation()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Returns a string identifying the Python implementation. Possible return values
 | 
					   Returns a string identifying the Python implementation. Possible return values
 | 
				
			||||||
   are: 'CPython', 'IronPython', 'Jython'
 | 
					   are: 'CPython', 'IronPython', 'Jython'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: python_revision()
 | 
					.. function:: python_revision()
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -157,13 +157,14 @@ The :mod:`signal` module defines the following functions:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   The old values are returned as a tuple: (delay, interval).
 | 
					   The old values are returned as a tuple: (delay, interval).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Attempting to pass an invalid interval timer will cause a
 | 
					   Attempting to pass an invalid interval timer will cause an
 | 
				
			||||||
   :exc:`ItimerError`.
 | 
					   :exc:`ItimerError`.  Availability: Unix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: getitimer(which)
 | 
					.. function:: getitimer(which)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Returns current value of a given interval timer specified by *which*.
 | 
					   Returns current value of a given interval timer specified by *which*.
 | 
				
			||||||
 | 
					   Availability: Unix.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: set_wakeup_fd(fd)
 | 
					.. function:: set_wakeup_fd(fd)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -772,13 +772,15 @@ Notes:
 | 
				
			||||||
   If *k* is ``None``, it is treated like ``1``.
 | 
					   If *k* is ``None``, it is treated like ``1``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(6)
 | 
					(6)
 | 
				
			||||||
   If *s* and *t* are both strings, some Python implementations such as CPython can
 | 
					   .. impl-detail::
 | 
				
			||||||
   usually perform an in-place optimization for assignments of the form ``s=s+t``
 | 
					
 | 
				
			||||||
   or ``s+=t``.  When applicable, this optimization makes quadratic run-time much
 | 
					      If *s* and *t* are both strings, some Python implementations such as
 | 
				
			||||||
   less likely.  This optimization is both version and implementation dependent.
 | 
					      CPython can usually perform an in-place optimization for assignments of
 | 
				
			||||||
   For performance sensitive code, it is preferable to use the :meth:`str.join`
 | 
					      the form ``s = s + t`` or ``s += t``.  When applicable, this optimization
 | 
				
			||||||
   method which assures consistent linear concatenation performance across versions
 | 
					      makes quadratic run-time much less likely.  This optimization is both
 | 
				
			||||||
   and implementations.
 | 
					      version and implementation dependent.  For performance sensitive code, it
 | 
				
			||||||
 | 
					      is preferable to use the :meth:`str.join` method which assures consistent
 | 
				
			||||||
 | 
					      linear concatenation performance across versions and implementations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _string-methods:
 | 
					.. _string-methods:
 | 
				
			||||||
| 
						 | 
					@ -951,12 +953,12 @@ functions based on regular expressions.
 | 
				
			||||||
   least one cased character, false otherwise.
 | 
					   least one cased character, false otherwise.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. method:: str.join(seq)
 | 
					.. method:: str.join(iterable)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Return a string which is the concatenation of the strings in the sequence
 | 
					   Return a string which is the concatenation of the strings in the
 | 
				
			||||||
   *seq*.  A :exc:`TypeError` will be raised if there are any non-string values
 | 
					   :term:`iterable` *iterable*.  A :exc:`TypeError` will be raised if there are
 | 
				
			||||||
   in *seq*, including :class:`bytes` objects.  The separator between elements
 | 
					   any non-string values in *seq*, including :class:`bytes` objects.  The
 | 
				
			||||||
   is the string providing this method.
 | 
					   separator between elements is the string providing this method.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. method:: str.ljust(width[, fillchar])
 | 
					.. method:: str.ljust(width[, fillchar])
 | 
				
			||||||
| 
						 | 
					@ -1510,14 +1512,17 @@ Notes:
 | 
				
			||||||
   that compare equal --- this is helpful for sorting in multiple passes (for
 | 
					   that compare equal --- this is helpful for sorting in multiple passes (for
 | 
				
			||||||
   example, sort by department, then by salary grade).
 | 
					   example, sort by department, then by salary grade).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   .. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      While a list is being sorted, the effect of attempting to mutate, or even
 | 
					      While a list is being sorted, the effect of attempting to mutate, or even
 | 
				
			||||||
   inspect, the list is undefined.  The C implementation
 | 
					      inspect, the list is undefined.  The C implementation of Python makes the
 | 
				
			||||||
   makes the list appear empty for the duration, and raises :exc:`ValueError` if it
 | 
					      list appear empty for the duration, and raises :exc:`ValueError` if it can
 | 
				
			||||||
   can detect that the list has been mutated during a sort.
 | 
					      detect that the list has been mutated during a sort.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(8)
 | 
					(8)
 | 
				
			||||||
   :meth:`sort` is not supported by :class:`bytearray` objects.
 | 
					   :meth:`sort` is not supported by :class:`bytearray` objects.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _bytes-methods:
 | 
					.. _bytes-methods:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Bytes and Byte Array Methods
 | 
					Bytes and Byte Array Methods
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -352,8 +352,10 @@ always available.
 | 
				
			||||||
   that is deeper than the call stack, :exc:`ValueError` is raised.  The default
 | 
					   that is deeper than the call stack, :exc:`ValueError` is raised.  The default
 | 
				
			||||||
   for *depth* is zero, returning the frame at the top of the call stack.
 | 
					   for *depth* is zero, returning the frame at the top of the call stack.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   This function should be used for internal and specialized purposes only. It
 | 
					   .. impl-detail::
 | 
				
			||||||
   is not guaranteed to exist in all implementations of Python.
 | 
					
 | 
				
			||||||
 | 
					      This function should be used for internal and specialized purposes only.
 | 
				
			||||||
 | 
					      It is not guaranteed to exist in all implementations of Python.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: getprofile()
 | 
					.. function:: getprofile()
 | 
				
			||||||
| 
						 | 
					@ -373,12 +375,12 @@ always available.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Get the trace function as set by :func:`settrace`.
 | 
					   Get the trace function as set by :func:`settrace`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   .. note::
 | 
					   .. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      The :func:`gettrace` function is intended only for implementing debuggers,
 | 
					      The :func:`gettrace` function is intended only for implementing debuggers,
 | 
				
			||||||
      profilers, coverage tools and the like.  Its behavior is part of the
 | 
					      profilers, coverage tools and the like.  Its behavior is part of the
 | 
				
			||||||
      implementation platform, rather than part of the language definition,
 | 
					      implementation platform, rather than part of the language definition, and
 | 
				
			||||||
      and thus may not be available in all Python implementations.
 | 
					      thus may not be available in all Python implementations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: getwindowsversion()
 | 
					.. function:: getwindowsversion()
 | 
				
			||||||
| 
						 | 
					@ -750,12 +752,12 @@ always available.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   For more information on code and frame objects, refer to :ref:`types`.
 | 
					   For more information on code and frame objects, refer to :ref:`types`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   .. note::
 | 
					   .. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      The :func:`settrace` function is intended only for implementing debuggers,
 | 
					      The :func:`settrace` function is intended only for implementing debuggers,
 | 
				
			||||||
      profilers, coverage tools and the like.  Its behavior is part of the
 | 
					      profilers, coverage tools and the like.  Its behavior is part of the
 | 
				
			||||||
      implementation platform, rather than part of the language definition, and thus
 | 
					      implementation platform, rather than part of the language definition, and
 | 
				
			||||||
      may not be available in all Python implementations.
 | 
					      thus may not be available in all Python implementations.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. function:: settscdump(on_flag)
 | 
					.. function:: settscdump(on_flag)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -77,5 +77,8 @@ The module defines the following names:
 | 
				
			||||||
   as ``datetime.timedelta.days``.  This type is used as descriptor for simple C
 | 
					   as ``datetime.timedelta.days``.  This type is used as descriptor for simple C
 | 
				
			||||||
   data members which use standard conversion functions; it has the same purpose
 | 
					   data members which use standard conversion functions; it has the same purpose
 | 
				
			||||||
   as the :class:`property` type, but for classes defined in extension modules.
 | 
					   as the :class:`property` type, but for classes defined in extension modules.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   .. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      In other implementations of Python, this type may be identical to
 | 
					      In other implementations of Python, this type may be identical to
 | 
				
			||||||
      ``GetSetDescriptorType``.
 | 
					      ``GetSetDescriptorType``.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -72,9 +72,10 @@ support weak references but can add support through subclassing::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   obj = Dict(red=1, green=2, blue=3)   # this object is weak referenceable
 | 
					   obj = Dict(red=1, green=2, blue=3)   # this object is weak referenceable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Other built-in types such as :class:`tuple` and :class:`int` do not support
 | 
					.. impl-detail::
 | 
				
			||||||
weak references even when subclassed (those types implemented as a
 | 
					
 | 
				
			||||||
:ctype:`PyVarObject`).
 | 
					   Other built-in types such as :class:`tuple` and :class:`long` do not support
 | 
				
			||||||
 | 
					   weak references even when subclassed.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Extension types can easily be made to support weak references; see
 | 
					Extension types can easily be made to support weak references; see
 | 
				
			||||||
:ref:`weakref-support`.
 | 
					:ref:`weakref-support`.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,13 +59,16 @@ Objects are never explicitly destroyed; however, when they become unreachable
 | 
				
			||||||
they may be garbage-collected.  An implementation is allowed to postpone garbage
 | 
					they may be garbage-collected.  An implementation is allowed to postpone garbage
 | 
				
			||||||
collection or omit it altogether --- it is a matter of implementation quality
 | 
					collection or omit it altogether --- it is a matter of implementation quality
 | 
				
			||||||
how garbage collection is implemented, as long as no objects are collected that
 | 
					how garbage collection is implemented, as long as no objects are collected that
 | 
				
			||||||
are still reachable.  (Implementation note: CPython currently uses a
 | 
					are still reachable.
 | 
				
			||||||
reference-counting scheme with (optional) delayed detection of cyclically linked
 | 
					
 | 
				
			||||||
garbage, which collects most objects as soon as they become unreachable, but is
 | 
					.. impl-detail::
 | 
				
			||||||
not guaranteed to collect garbage containing circular references.  See the
 | 
					
 | 
				
			||||||
documentation of the :mod:`gc` module for information on controlling the
 | 
					   CPython currently uses a reference-counting scheme with (optional) delayed
 | 
				
			||||||
collection of cyclic garbage.  Other implementations act differently and CPython
 | 
					   detection of cyclically linked garbage, which collects most objects as soon
 | 
				
			||||||
may change.)
 | 
					   as they become unreachable, but is not guaranteed to collect garbage
 | 
				
			||||||
 | 
					   containing circular references.  See the documentation of the :mod:`gc`
 | 
				
			||||||
 | 
					   module for information on controlling the collection of cyclic garbage.
 | 
				
			||||||
 | 
					   Other implementations act differently and CPython may change.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Note that the use of the implementation's tracing or debugging facilities may
 | 
					Note that the use of the implementation's tracing or debugging facilities may
 | 
				
			||||||
keep objects alive that would normally be collectable. Also note that catching
 | 
					keep objects alive that would normally be collectable. Also note that catching
 | 
				
			||||||
| 
						 | 
					@ -1469,15 +1472,15 @@ Notes on using *__slots__*
 | 
				
			||||||
  *__slots__*; otherwise, the class attribute would overwrite the descriptor
 | 
					  *__slots__*; otherwise, the class attribute would overwrite the descriptor
 | 
				
			||||||
  assignment.
 | 
					  assignment.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* The action of a *__slots__* declaration is limited to the class where it is
 | 
				
			||||||
 | 
					  defined.  As a result, subclasses will have a *__dict__* unless they also define
 | 
				
			||||||
 | 
					  *__slots__* (which must only contain names of any *additional* slots).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* If a class defines a slot also defined in a base class, the instance variable
 | 
					* If a class defines a slot also defined in a base class, the instance variable
 | 
				
			||||||
  defined by the base class slot is inaccessible (except by retrieving its
 | 
					  defined by the base class slot is inaccessible (except by retrieving its
 | 
				
			||||||
  descriptor directly from the base class). This renders the meaning of the
 | 
					  descriptor directly from the base class). This renders the meaning of the
 | 
				
			||||||
  program undefined.  In the future, a check may be added to prevent this.
 | 
					  program undefined.  In the future, a check may be added to prevent this.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* The action of a *__slots__* declaration is limited to the class where it is
 | 
					 | 
				
			||||||
  defined.  As a result, subclasses will have a *__dict__* unless they also define
 | 
					 | 
				
			||||||
  *__slots__*.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Nonempty *__slots__* does not work for classes derived from "variable-length"
 | 
					* Nonempty *__slots__* does not work for classes derived from "variable-length"
 | 
				
			||||||
  built-in types such as :class:`int`, :class:`str` and :class:`tuple`.
 | 
					  built-in types such as :class:`int`, :class:`str` and :class:`tuple`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1714,12 +1717,16 @@ implemented as an iteration through a sequence.  However, container objects can
 | 
				
			||||||
supply the following special method with a more efficient implementation, which
 | 
					supply the following special method with a more efficient implementation, which
 | 
				
			||||||
also does not require the object be a sequence.
 | 
					also does not require the object be a sequence.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
.. method:: object.__contains__(self, item)
 | 
					.. method:: object.__contains__(self, item)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Called to implement membership test operators.  Should return true if *item* is
 | 
					   Called to implement membership test operators.  Should return true if *item*
 | 
				
			||||||
   in *self*, false otherwise.  For mapping objects, this should consider the keys
 | 
					   is in *self*, false otherwise.  For mapping objects, this should consider the
 | 
				
			||||||
   of the mapping rather than the values or the key-item pairs.
 | 
					   keys of the mapping rather than the values or the key-item pairs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   For objects that don't define :meth:`__contains__`, the membership test first
 | 
				
			||||||
 | 
					   tries iteration via :meth:`__iter__`, then the old sequence iteration
 | 
				
			||||||
 | 
					   protocol via :meth:`__getitem__`, see :ref:`this section in the language
 | 
				
			||||||
 | 
					   reference <membership-test-details>`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. _numeric-types:
 | 
					.. _numeric-types:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -129,7 +129,7 @@ the built-in module :mod:`builtins`; when in any other module,
 | 
				
			||||||
itself.  ``__builtins__`` can be set to a user-created dictionary to create a
 | 
					itself.  ``__builtins__`` can be set to a user-created dictionary to create a
 | 
				
			||||||
weak form of restricted execution.
 | 
					weak form of restricted execution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. note::
 | 
					.. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Users should not touch ``__builtins__``; it is strictly an implementation
 | 
					   Users should not touch ``__builtins__``; it is strictly an implementation
 | 
				
			||||||
   detail.  Users wanting to override values in the built-in namespace should
 | 
					   detail.  Users wanting to override values in the built-in namespace should
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -639,13 +639,13 @@ slots for which no default value is specified, a :exc:`TypeError` exception is
 | 
				
			||||||
raised.  Otherwise, the list of filled slots is used as the argument list for
 | 
					raised.  Otherwise, the list of filled slots is used as the argument list for
 | 
				
			||||||
the call.
 | 
					the call.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. note::
 | 
					.. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   An implementation may provide built-in functions whose positional parameters do
 | 
					   An implementation may provide built-in functions whose positional parameters
 | 
				
			||||||
   not have names, even if they are 'named' for the purpose of documentation, and
 | 
					   do not have names, even if they are 'named' for the purpose of documentation,
 | 
				
			||||||
   which therefore cannot be supplied by keyword.  In CPython, this is the case for
 | 
					   and which therefore cannot be supplied by keyword.  In CPython, this is the
 | 
				
			||||||
   functions implemented in C that use :cfunc:`PyArg_ParseTuple` to parse their
 | 
					   case for functions implemented in C that use :cfunc:`PyArg_ParseTuple` to
 | 
				
			||||||
   arguments.
 | 
					   parse their arguments.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
If there are more positional arguments than there are formal parameter slots, a
 | 
					If there are more positional arguments than there are formal parameter slots, a
 | 
				
			||||||
:exc:`TypeError` exception is raised, unless a formal parameter using the syntax
 | 
					:exc:`TypeError` exception is raised, unless a formal parameter using the syntax
 | 
				
			||||||
| 
						 | 
					@ -1053,6 +1053,8 @@ cross-type comparison is not supported, the comparison method returns
 | 
				
			||||||
supported cross-type comparisons and unsupported comparisons.  For example,
 | 
					supported cross-type comparisons and unsupported comparisons.  For example,
 | 
				
			||||||
``Decimal(2) == 2`` and `2 == float(2)`` but ``Decimal(2) != float(2)``.
 | 
					``Decimal(2) == 2`` and `2 == float(2)`` but ``Decimal(2) != float(2)``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. _membership-test-details:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The operators :keyword:`in` and :keyword:`not in` test for membership.  ``x in
 | 
					The operators :keyword:`in` and :keyword:`not in` test for membership.  ``x in
 | 
				
			||||||
s`` evaluates to true if *x* is a member of *s*, and false otherwise.  ``x not
 | 
					s`` evaluates to true if *x* is a member of *s*, and false otherwise.  ``x not
 | 
				
			||||||
in s`` returns the negation of ``x in s``.  All built-in sequences and set types
 | 
					in s`` returns the negation of ``x in s``.  All built-in sequences and set types
 | 
				
			||||||
| 
						 | 
					@ -1069,7 +1071,12 @@ return ``True``.
 | 
				
			||||||
For user-defined classes which define the :meth:`__contains__` method, ``x in
 | 
					For user-defined classes which define the :meth:`__contains__` method, ``x in
 | 
				
			||||||
y`` is true if and only if ``y.__contains__(x)`` is true.
 | 
					y`` is true if and only if ``y.__contains__(x)`` is true.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For user-defined classes which do not define :meth:`__contains__` and do define
 | 
					For user-defined classes which do not define :meth:`__contains__` but do define
 | 
				
			||||||
 | 
					:meth:`__iter__`, ``x in y`` is true if some value ``z`` with ``x == z`` is
 | 
				
			||||||
 | 
					produced while iterating over ``y``.  If an exception is raised during the
 | 
				
			||||||
 | 
					iteration, it is as if :keyword:`in` raised that exception.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Lastly, the old-style iteration protocol is tried: if a class defines
 | 
				
			||||||
:meth:`__getitem__`, ``x in y`` is true if and only if there is a non-negative
 | 
					:meth:`__getitem__`, ``x in y`` is true if and only if there is a non-negative
 | 
				
			||||||
integer index *i* such that ``x == y[i]``, and all lower integer indices do not
 | 
					integer index *i* such that ``x == y[i]``, and all lower integer indices do not
 | 
				
			||||||
raise :exc:`IndexError` exception.  (If any other exception is raised, it is as
 | 
					raise :exc:`IndexError` exception.  (If any other exception is raised, it is as
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -236,9 +236,11 @@ Assignment of an object to a single target is recursively defined as follows.
 | 
				
			||||||
  from the length of the assigned sequence, thus changing the length of the
 | 
					  from the length of the assigned sequence, thus changing the length of the
 | 
				
			||||||
  target sequence, if the object allows it.
 | 
					  target sequence, if the object allows it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(In the current implementation, the syntax for targets is taken to be the same
 | 
					.. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   In the current implementation, the syntax for targets is taken to be the same
 | 
				
			||||||
   as for expressions, and invalid syntax is rejected during the code generation
 | 
					   as for expressions, and invalid syntax is rejected during the code generation
 | 
				
			||||||
phase, causing less detailed error messages.)
 | 
					   phase, causing less detailed error messages.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WARNING: Although the definition of assignment implies that overlaps between the
 | 
					WARNING: Although the definition of assignment implies that overlaps between the
 | 
				
			||||||
left-hand side and the right-hand side are 'safe' (for example ``a, b = b, a``
 | 
					left-hand side and the right-hand side are 'safe' (for example ``a, b = b, a``
 | 
				
			||||||
| 
						 | 
					@ -937,9 +939,11 @@ Names listed in a :keyword:`global` statement must not be defined as formal
 | 
				
			||||||
parameters or in a :keyword:`for` loop control target, :keyword:`class`
 | 
					parameters or in a :keyword:`for` loop control target, :keyword:`class`
 | 
				
			||||||
definition, function definition, or :keyword:`import` statement.
 | 
					definition, function definition, or :keyword:`import` statement.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(The current implementation does not enforce the latter two restrictions, but
 | 
					.. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The current implementation does not enforce the latter two restrictions, but
 | 
				
			||||||
   programs should not abuse this freedom, as future implementations may enforce
 | 
					   programs should not abuse this freedom, as future implementations may enforce
 | 
				
			||||||
them or silently change the meaning of the program.)
 | 
					   them or silently change the meaning of the program.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. index::
 | 
					.. index::
 | 
				
			||||||
   builtin: exec
 | 
					   builtin: exec
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,6 +35,8 @@ def new_visit_versionmodified(self, node):
 | 
				
			||||||
HTMLTranslator.visit_versionmodified = new_visit_versionmodified
 | 
					HTMLTranslator.visit_versionmodified = new_visit_versionmodified
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Support for marking up and linking to bugs.python.org issues
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def issue_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
 | 
					def issue_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
 | 
				
			||||||
    issue = utils.unescape(text)
 | 
					    issue = utils.unescape(text)
 | 
				
			||||||
    text = 'issue ' + issue
 | 
					    text = 'issue ' + issue
 | 
				
			||||||
| 
						 | 
					@ -42,6 +44,34 @@ def issue_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
 | 
				
			||||||
    return [refnode], []
 | 
					    return [refnode], []
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Support for marking up implementation details
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from sphinx.util.compat import Directive
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class ImplementationDetail(Directive):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    has_content = True
 | 
				
			||||||
 | 
					    required_arguments = 0
 | 
				
			||||||
 | 
					    optional_arguments = 1
 | 
				
			||||||
 | 
					    final_argument_whitespace = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def run(self):
 | 
				
			||||||
 | 
					        pnode = nodes.compound(classes=['impl-detail'])
 | 
				
			||||||
 | 
					        content = self.content
 | 
				
			||||||
 | 
					        add_text = nodes.strong('CPython implementation detail:',
 | 
				
			||||||
 | 
					                                'CPython implementation detail:')
 | 
				
			||||||
 | 
					        if self.arguments:
 | 
				
			||||||
 | 
					            n, m = self.state.inline_text(self.arguments[0], self.lineno)
 | 
				
			||||||
 | 
					            pnode.append(nodes.paragraph('', '', *(n + m)))
 | 
				
			||||||
 | 
					        self.state.nested_parse(content, self.content_offset, pnode)
 | 
				
			||||||
 | 
					        if pnode.children and isinstance(pnode[0], nodes.paragraph):
 | 
				
			||||||
 | 
					            pnode[0].insert(0, add_text)
 | 
				
			||||||
 | 
					            pnode[0].insert(1, nodes.Text(' '))
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            pnode.insert(0, nodes.paragraph('', '', add_text))
 | 
				
			||||||
 | 
					        return [pnode]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Support for building "topic help" for pydoc
 | 
					# Support for building "topic help" for pydoc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pydoc_topic_labels = [
 | 
					pydoc_topic_labels = [
 | 
				
			||||||
| 
						 | 
					@ -108,10 +138,12 @@ def finish(self):
 | 
				
			||||||
        finally:
 | 
					        finally:
 | 
				
			||||||
            f.close()
 | 
					            f.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Support for checking for suspicious markup
 | 
					# Support for checking for suspicious markup
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import suspicious
 | 
					import suspicious
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Support for documenting Opcodes
 | 
					# Support for documenting Opcodes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import re
 | 
					import re
 | 
				
			||||||
| 
						 | 
					@ -134,6 +166,7 @@ def parse_opcode_signature(env, sig, signode):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def setup(app):
 | 
					def setup(app):
 | 
				
			||||||
    app.add_role('issue', issue_role)
 | 
					    app.add_role('issue', issue_role)
 | 
				
			||||||
 | 
					    app.add_directive('impl-detail', ImplementationDetail)
 | 
				
			||||||
    app.add_builder(PydocTopicsBuilder)
 | 
					    app.add_builder(PydocTopicsBuilder)
 | 
				
			||||||
    app.add_builder(suspicious.CheckSuspiciousMarkupBuilder)
 | 
					    app.add_builder(suspicious.CheckSuspiciousMarkupBuilder)
 | 
				
			||||||
    app.add_description_unit('opcode', 'opcode', '%s (opcode)',
 | 
					    app.add_description_unit('opcode', 'opcode', '%s (opcode)',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -345,6 +345,21 @@ .footnote:target  {
 | 
				
			||||||
    background-color: #ffa
 | 
					    background-color: #ffa
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.impl-detail {
 | 
				
			||||||
 | 
					    margin-top: 10px;
 | 
				
			||||||
 | 
					    margin-bottom: 10px;
 | 
				
			||||||
 | 
					    padding: 7px;
 | 
				
			||||||
 | 
					    border: 1px solid #ccc;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.impl-detail .compound-first {
 | 
				
			||||||
 | 
					    margin-top: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.impl-detail .compound-last {
 | 
				
			||||||
 | 
					    margin-bottom: 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* -- code displays --------------------------------------------------------- */
 | 
					/* -- code displays --------------------------------------------------------- */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pre {
 | 
					pre {
 | 
				
			||||||
| 
						 | 
					@ -405,7 +420,7 @@ @media print {
 | 
				
			||||||
    div.document,
 | 
					    div.document,
 | 
				
			||||||
    div.documentwrapper,
 | 
					    div.documentwrapper,
 | 
				
			||||||
    div.bodywrapper {
 | 
					    div.bodywrapper {
 | 
				
			||||||
        margin: 0;
 | 
					        margin: 0 !important;
 | 
				
			||||||
        width: 100%;
 | 
					        width: 100%;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -28,18 +28,17 @@ features of the Python language and system. It helps to have a Python
 | 
				
			||||||
interpreter handy for hands-on experience, but all examples are self-contained,
 | 
					interpreter handy for hands-on experience, but all examples are self-contained,
 | 
				
			||||||
so the tutorial can be read off-line as well.
 | 
					so the tutorial can be read off-line as well.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
For a description of standard objects and modules, see the Python Library
 | 
					For a description of standard objects and modules, see :ref:`library-index`.
 | 
				
			||||||
Reference document. The Python Reference Manual gives a more formal definition
 | 
					:ref:`reference-index` gives a more formal definition of the language.  To write
 | 
				
			||||||
of the language. To write extensions in C or C++, read Extending and Embedding
 | 
					extensions in C or C++, read :ref:`extending-index` and
 | 
				
			||||||
the Python Interpreter and Python/C API Reference. There are also several books
 | 
					:ref:`c-api-index`. There are also several books covering Python in depth.
 | 
				
			||||||
covering Python in depth.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
This tutorial does not attempt to be comprehensive and cover every single
 | 
					This tutorial does not attempt to be comprehensive and cover every single
 | 
				
			||||||
feature, or even every commonly used feature. Instead, it introduces many of
 | 
					feature, or even every commonly used feature. Instead, it introduces many of
 | 
				
			||||||
Python's most noteworthy features, and will give you a good idea of the
 | 
					Python's most noteworthy features, and will give you a good idea of the
 | 
				
			||||||
language's flavor and style. After reading it, you will be able to read and
 | 
					language's flavor and style. After reading it, you will be able to read and
 | 
				
			||||||
write Python modules and programs, and you will be ready to learn more about the
 | 
					write Python modules and programs, and you will be ready to learn more about the
 | 
				
			||||||
various Python library modules described in the Python Library Reference.
 | 
					various Python library modules described in :ref:`library-index`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The :ref:`glossary` is also worth going through.
 | 
					The :ref:`glossary` is also worth going through.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -8,7 +8,7 @@ Command line and environment
 | 
				
			||||||
The CPython interpreter scans the command line and the environment for various
 | 
					The CPython interpreter scans the command line and the environment for various
 | 
				
			||||||
settings.
 | 
					settings.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. note::
 | 
					.. impl-detail::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   Other implementations' command line schemes may differ.  See
 | 
					   Other implementations' command line schemes may differ.  See
 | 
				
			||||||
   :ref:`implementations` for further resources.
 | 
					   :ref:`implementations` for further resources.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -67,7 +67,7 @@ key features:
 | 
				
			||||||
`ActivePython <http://www.activestate.com/Products/activepython/>`_
 | 
					`ActivePython <http://www.activestate.com/Products/activepython/>`_
 | 
				
			||||||
    Installer with multi-platform compatibility, documentation, PyWin32
 | 
					    Installer with multi-platform compatibility, documentation, PyWin32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`Python Enthought Edition <http://code.enthought.com/enthon/>`_
 | 
					`Enthought Python Distribution <http://www.enthought.com/products/epd.php>`_
 | 
				
			||||||
    Popular modules (such as PyWin32) with their respective documentation, tool
 | 
					    Popular modules (such as PyWin32) with their respective documentation, tool
 | 
				
			||||||
    suite for building extensible python applications
 | 
					    suite for building extensible python applications
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -221,8 +221,7 @@ utilities for:
 | 
				
			||||||
* Win32 API calls
 | 
					* Win32 API calls
 | 
				
			||||||
* Registry
 | 
					* Registry
 | 
				
			||||||
* Event log
 | 
					* Event log
 | 
				
			||||||
* `Microsoft Foundation Classes <http://msdn.microsoft.com/library/
 | 
					* `Microsoft Foundation Classes <http://msdn.microsoft.com/en-us/library/fe1cf721%28VS.80%29.aspx>`_ (MFC)
 | 
				
			||||||
  en-us/vclib/html/_mfc_Class_Library_Reference_Introduction.asp>`_ (MFC)
 | 
					 | 
				
			||||||
  user interfaces
 | 
					  user interfaces
 | 
				
			||||||
 | 
					
 | 
				
			||||||
`PythonWin <http://web.archive.org/web/20060524042422/
 | 
					`PythonWin <http://web.archive.org/web/20060524042422/
 | 
				
			||||||
| 
						 | 
					@ -299,7 +298,7 @@ For extension modules, consult :ref:`building-on-windows`.
 | 
				
			||||||
      MinGW gcc under Windows" or "Installing Python extension with distutils
 | 
					      MinGW gcc under Windows" or "Installing Python extension with distutils
 | 
				
			||||||
      and without Microsoft Visual C++" by Sébastien Sauvage, 2003
 | 
					      and without Microsoft Visual C++" by Sébastien Sauvage, 2003
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   `MingW -- Python extensions <http://www.mingw.org/MinGWiki/index.php/Python%20extensions>`_
 | 
					   `MingW -- Python extensions <http://oldwiki.mingw.org/index.php/Python%20extensions>`_
 | 
				
			||||||
      by Trent Apted et al, 2007
 | 
					      by Trent Apted et al, 2007
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -572,8 +572,7 @@ Work has been done on porting Python to 64-bit Windows on the Itanium processor,
 | 
				
			||||||
mostly by Trent Mick of ActiveState.  (Confusingly, ``sys.platform`` is still
 | 
					mostly by Trent Mick of ActiveState.  (Confusingly, ``sys.platform`` is still
 | 
				
			||||||
``'win32'`` on Win64 because it seems that for ease of porting, MS Visual C++
 | 
					``'win32'`` on Win64 because it seems that for ease of porting, MS Visual C++
 | 
				
			||||||
treats code as 32 bit on Itanium.) PythonWin also supports Windows CE; see the
 | 
					treats code as 32 bit on Itanium.) PythonWin also supports Windows CE; see the
 | 
				
			||||||
Python CE page at http://starship.python.net/crew/mhammond/ce/ for more
 | 
					Python CE page at http://pythonce.sourceforge.net/ for more information.
 | 
				
			||||||
information.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
Another new platform is Darwin/MacOS X; initial support for it is in Python 2.0.
 | 
					Another new platform is Darwin/MacOS X; initial support for it is in Python 2.0.
 | 
				
			||||||
Dynamic loading works, if you specify "configure --with-dyld --with-suffix=.x".
 | 
					Dynamic loading works, if you specify "configure --with-dyld --with-suffix=.x".
 | 
				
			||||||
| 
						 | 
					@ -1041,8 +1040,8 @@ sent over a socket.  When compiling Python, you can edit :file:`Modules/Setup`
 | 
				
			||||||
to include SSL support, which adds an additional function to the :mod:`socket`
 | 
					to include SSL support, which adds an additional function to the :mod:`socket`
 | 
				
			||||||
module: :func:`socket.ssl(socket, keyfile, certfile)`, which takes a socket
 | 
					module: :func:`socket.ssl(socket, keyfile, certfile)`, which takes a socket
 | 
				
			||||||
object and returns an SSL socket.  The :mod:`httplib` and :mod:`urllib` modules
 | 
					object and returns an SSL socket.  The :mod:`httplib` and :mod:`urllib` modules
 | 
				
			||||||
were also changed to support "https://" URLs, though no one has implemented FTP
 | 
					were also changed to support ``https://`` URLs, though no one has implemented
 | 
				
			||||||
or SMTP over SSL.
 | 
					FTP or SMTP over SSL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The :mod:`httplib` module has been rewritten by Greg Stein to support HTTP/1.1.
 | 
					The :mod:`httplib` module has been rewritten by Greg Stein to support HTTP/1.1.
 | 
				
			||||||
Backward compatibility with the 1.5 version of :mod:`httplib` is provided,
 | 
					Backward compatibility with the 1.5 version of :mod:`httplib` is provided,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,7 +30,7 @@ understand the complete implementation and design rationale for a change, refer
 | 
				
			||||||
to the PEP for a particular new feature.
 | 
					to the PEP for a particular new feature.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. seealso::
 | 
					.. seealso (now defunct)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   http://www.unixreview.com/documents/s=1356/urm0109h/0109h.htm
 | 
					   http://www.unixreview.com/documents/s=1356/urm0109h/0109h.htm
 | 
				
			||||||
      "What's So Special About Python 2.2?" is also about the new 2.2 features, and
 | 
					      "What's So Special About Python 2.2?" is also about the new 2.2 features, and
 | 
				
			||||||
| 
						 | 
					@ -49,14 +49,14 @@ amazing new capabilities. Before beginning this, the longest and most
 | 
				
			||||||
complicated section of this article, I'll provide an overview of the changes and
 | 
					complicated section of this article, I'll provide an overview of the changes and
 | 
				
			||||||
offer some comments.
 | 
					offer some comments.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
A long time ago I wrote a Web page (http://www.amk.ca/python/writing/warts.html)
 | 
					A long time ago I wrote a Web page listing flaws in Python's design.  One of the
 | 
				
			||||||
listing flaws in Python's design.  One of the most significant flaws was that
 | 
					most significant flaws was that it's impossible to subclass Python types
 | 
				
			||||||
it's impossible to subclass Python types implemented in C.  In particular, it's
 | 
					implemented in C.  In particular, it's not possible to subclass built-in types,
 | 
				
			||||||
not possible to subclass built-in types, so you can't just subclass, say, lists
 | 
					so you can't just subclass, say, lists in order to add a single useful method to
 | 
				
			||||||
in order to add a single useful method to them. The :mod:`UserList` module
 | 
					them. The :mod:`UserList` module provides a class that supports all of the
 | 
				
			||||||
provides a class that supports all of the methods of lists and that can be
 | 
					methods of lists and that can be subclassed further, but there's lots of C code
 | 
				
			||||||
subclassed further, but there's lots of C code that expects a regular Python
 | 
					that expects a regular Python list and won't accept a :class:`UserList`
 | 
				
			||||||
list and won't accept a :class:`UserList` instance.
 | 
					instance.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Python 2.2 fixes this, and in the process adds some exciting new capabilities.
 | 
					Python 2.2 fixes this, and in the process adds some exciting new capabilities.
 | 
				
			||||||
A brief summary:
 | 
					A brief summary:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1855,10 +1855,10 @@ and bundle it with the source of your extension.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. seealso::
 | 
					.. seealso::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/python/dist/src/Objects/obmalloc.c
 | 
					   http://svn.python.org/view/python/trunk/Objects/obmalloc.c
 | 
				
			||||||
      For the full details of the pymalloc implementation, see the comments at the top
 | 
					      For the full details of the pymalloc implementation, see the comments at
 | 
				
			||||||
      of the file :file:`Objects/obmalloc.c` in the Python source code.  The above
 | 
					      the top of the file :file:`Objects/obmalloc.c` in the Python source code.
 | 
				
			||||||
      link points to the file within the SourceForge CVS browser.
 | 
					      The above link points to the file within the python.org SVN browser.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.. ======================================================================
 | 
					.. ======================================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -680,9 +680,6 @@ includes a quick-start tutorial and a reference.
 | 
				
			||||||
      Written by Facundo Batista and implemented by Facundo Batista, Eric Price,
 | 
					      Written by Facundo Batista and implemented by Facundo Batista, Eric Price,
 | 
				
			||||||
      Raymond Hettinger, Aahz, and Tim Peters.
 | 
					      Raymond Hettinger, Aahz, and Tim Peters.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   http://research.microsoft.com/~hollasch/cgindex/coding/ieeefloat.html
 | 
					 | 
				
			||||||
      A more detailed overview of the IEEE-754 representation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   http://www.lahey.com/float.htm
 | 
					   http://www.lahey.com/float.htm
 | 
				
			||||||
      The article uses Fortran code to illustrate many of the problems that floating-
 | 
					      The article uses Fortran code to illustrate many of the problems that floating-
 | 
				
			||||||
      point inaccuracy can cause.
 | 
					      point inaccuracy can cause.
 | 
				
			||||||
| 
						 | 
					@ -756,7 +753,7 @@ API that perform ASCII-only conversions, ignoring the locale setting:
 | 
				
			||||||
  :ctype:`double` to an ASCII string.
 | 
					  :ctype:`double` to an ASCII string.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The code for these functions came from the GLib library
 | 
					The code for these functions came from the GLib library
 | 
				
			||||||
(http://developer.gnome.org/arch/gtk/glib.html), whose developers kindly
 | 
					(http://library.gnome.org/devel/glib/stable/), whose developers kindly
 | 
				
			||||||
relicensed the relevant functions and donated them to the Python Software
 | 
					relicensed the relevant functions and donated them to the Python Software
 | 
				
			||||||
Foundation.  The :mod:`locale` module  can now change the numeric locale,
 | 
					Foundation.  The :mod:`locale` module  can now change the numeric locale,
 | 
				
			||||||
letting extensions such as GTK+  produce the correct results.
 | 
					letting extensions such as GTK+  produce the correct results.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1828,7 +1828,7 @@ changes, or look through the Subversion logs for all the details.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol
 | 
					  The :mod:`bsddb.dbshelve` module now uses the highest pickling protocol
 | 
				
			||||||
  available, instead of restricting itself to protocol 1.
 | 
					  available, instead of restricting itself to protocol 1.
 | 
				
			||||||
  (Contributed by W. Barnes; :issue:`1551443`.)
 | 
					  (Contributed by W. Barnes.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* The :mod:`cgi` module will now read variables from the query string
 | 
					* The :mod:`cgi` module will now read variables from the query string
 | 
				
			||||||
  of an HTTP POST request.  This makes it possible to use form actions
 | 
					  of an HTTP POST request.  This makes it possible to use form actions
 | 
				
			||||||
| 
						 | 
					@ -2977,7 +2977,7 @@ Changes to Python's build process and to the C API include:
 | 
				
			||||||
* The BerkeleyDB module now has a C API object, available as
 | 
					* The BerkeleyDB module now has a C API object, available as
 | 
				
			||||||
  ``bsddb.db.api``.   This object can be used by other C extensions
 | 
					  ``bsddb.db.api``.   This object can be used by other C extensions
 | 
				
			||||||
  that wish to use the :mod:`bsddb` module for their own purposes.
 | 
					  that wish to use the :mod:`bsddb` module for their own purposes.
 | 
				
			||||||
  (Contributed by Duncan Grisby; :issue:`1551895`.)
 | 
					  (Contributed by Duncan Grisby.)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* The new buffer interface, previously described in
 | 
					* The new buffer interface, previously described in
 | 
				
			||||||
  `the PEP 3118 section <#pep-3118-revised-buffer-protocol>`__,
 | 
					  `the PEP 3118 section <#pep-3118-revised-buffer-protocol>`__,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -119,7 +119,7 @@ def acquire(self, blocking=True):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def release(self):
 | 
					    def release(self):
 | 
				
			||||||
        if self._owner is not current_thread():
 | 
					        if self._owner is not current_thread():
 | 
				
			||||||
            raise RuntimeError("cannot release un-aquired lock")
 | 
					            raise RuntimeError("cannot release un-acquired lock")
 | 
				
			||||||
        self._count = count = self._count - 1
 | 
					        self._count = count = self._count - 1
 | 
				
			||||||
        if not count:
 | 
					        if not count:
 | 
				
			||||||
            self._owner = None
 | 
					            self._owner = None
 | 
				
			||||||
| 
						 | 
					@ -211,7 +211,7 @@ def _is_owned(self):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def wait(self, timeout=None):
 | 
					    def wait(self, timeout=None):
 | 
				
			||||||
        if not self._is_owned():
 | 
					        if not self._is_owned():
 | 
				
			||||||
            raise RuntimeError("cannot wait on un-aquired lock")
 | 
					            raise RuntimeError("cannot wait on un-acquired lock")
 | 
				
			||||||
        waiter = _allocate_lock()
 | 
					        waiter = _allocate_lock()
 | 
				
			||||||
        waiter.acquire()
 | 
					        waiter.acquire()
 | 
				
			||||||
        self._waiters.append(waiter)
 | 
					        self._waiters.append(waiter)
 | 
				
			||||||
| 
						 | 
					@ -253,7 +253,7 @@ def wait(self, timeout=None):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def notify(self, n=1):
 | 
					    def notify(self, n=1):
 | 
				
			||||||
        if not self._is_owned():
 | 
					        if not self._is_owned():
 | 
				
			||||||
            raise RuntimeError("cannot notify on un-aquired lock")
 | 
					            raise RuntimeError("cannot notify on un-acquired lock")
 | 
				
			||||||
        __waiters = self._waiters
 | 
					        __waiters = self._waiters
 | 
				
			||||||
        waiters = __waiters[:n]
 | 
					        waiters = __waiters[:n]
 | 
				
			||||||
        if not waiters:
 | 
					        if not waiters:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,7 +32,14 @@ def filterwarnings(action, message="", category=Warning, module="", lineno=0,
 | 
				
			||||||
                   append=False):
 | 
					                   append=False):
 | 
				
			||||||
    """Insert an entry into the list of warnings filters (at the front).
 | 
					    """Insert an entry into the list of warnings filters (at the front).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Use assertions to check that all arguments have the right type."""
 | 
					    'action' -- one of "error", "ignore", "always", "default", "module",
 | 
				
			||||||
 | 
					                or "once"
 | 
				
			||||||
 | 
					    'message' -- a regex that the warning message must match
 | 
				
			||||||
 | 
					    'category' -- a class that the warning must be a subclass of
 | 
				
			||||||
 | 
					    'module' -- a regex that the module name must match
 | 
				
			||||||
 | 
					    'lineno' -- an integer line number, 0 matches all warnings
 | 
				
			||||||
 | 
					    'append' -- if true, append to the list of filters
 | 
				
			||||||
 | 
					    """
 | 
				
			||||||
    import re
 | 
					    import re
 | 
				
			||||||
    assert action in ("error", "ignore", "always", "default", "module",
 | 
					    assert action in ("error", "ignore", "always", "default", "module",
 | 
				
			||||||
                      "once"), "invalid action: %r" % (action,)
 | 
					                      "once"), "invalid action: %r" % (action,)
 | 
				
			||||||
| 
						 | 
					@ -53,6 +60,11 @@ def simplefilter(action, category=Warning, lineno=0, append=False):
 | 
				
			||||||
    """Insert a simple entry into the list of warnings filters (at the front).
 | 
					    """Insert a simple entry into the list of warnings filters (at the front).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    A simple filter matches all modules and messages.
 | 
					    A simple filter matches all modules and messages.
 | 
				
			||||||
 | 
					    'action' -- one of "error", "ignore", "always", "default", "module",
 | 
				
			||||||
 | 
					                or "once"
 | 
				
			||||||
 | 
					    'category' -- a class that the warning must be a subclass of
 | 
				
			||||||
 | 
					    'lineno' -- an integer line number, 0 matches all warnings
 | 
				
			||||||
 | 
					    'append' -- if true, append to the list of filters
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    assert action in ("error", "ignore", "always", "default", "module",
 | 
					    assert action in ("error", "ignore", "always", "default", "module",
 | 
				
			||||||
                      "once"), "invalid action: %r" % (action,)
 | 
					                      "once"), "invalid action: %r" % (action,)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1865,16 +1865,15 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	fmt = _ctypes_get_fielddesc(proto_str);
 | 
						fmt = _ctypes_get_fielddesc(proto_str);
 | 
				
			||||||
	if (fmt == NULL) {
 | 
						if (fmt == NULL) {
 | 
				
			||||||
		Py_DECREF((PyObject *)result);
 | 
					 | 
				
			||||||
		PyErr_Format(PyExc_ValueError,
 | 
							PyErr_Format(PyExc_ValueError,
 | 
				
			||||||
			     "_type_ '%s' not supported", proto_str);
 | 
								     "_type_ '%s' not supported", proto_str);
 | 
				
			||||||
		return NULL;
 | 
							goto error;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stgdict = (StgDictObject *)PyObject_CallObject(
 | 
						stgdict = (StgDictObject *)PyObject_CallObject(
 | 
				
			||||||
		(PyObject *)&PyCStgDict_Type, NULL);
 | 
							(PyObject *)&PyCStgDict_Type, NULL);
 | 
				
			||||||
	if (!stgdict)
 | 
						if (!stgdict)
 | 
				
			||||||
		return NULL;
 | 
							goto error;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stgdict->ffi_type_pointer = *fmt->pffi_type;
 | 
						stgdict->ffi_type_pointer = *fmt->pffi_type;
 | 
				
			||||||
	stgdict->align = fmt->pffi_type->alignment;
 | 
						stgdict->align = fmt->pffi_type->alignment;
 | 
				
			||||||
| 
						 | 
					@ -1889,6 +1888,7 @@ PyCSimpleType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	if (stgdict->format == NULL) {
 | 
						if (stgdict->format == NULL) {
 | 
				
			||||||
		Py_DECREF(result);
 | 
							Py_DECREF(result);
 | 
				
			||||||
 | 
							Py_DECREF(proto);
 | 
				
			||||||
		Py_DECREF((PyObject *)stgdict);
 | 
							Py_DECREF((PyObject *)stgdict);
 | 
				
			||||||
		return NULL;
 | 
							return NULL;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -7710,10 +7710,10 @@ unicode_isprintable(PyObject *self)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyDoc_STRVAR(join__doc__,
 | 
					PyDoc_STRVAR(join__doc__,
 | 
				
			||||||
             "S.join(sequence) -> str\n\
 | 
					             "S.join(iterable) -> str\n\
 | 
				
			||||||
\n\
 | 
					\n\
 | 
				
			||||||
Return a string which is the concatenation of the strings in the\n\
 | 
					Return a string which is the concatenation of the strings in the\n\
 | 
				
			||||||
sequence.  The separator between elements is S.");
 | 
					iterable.  The separator between elements is S.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static PyObject*
 | 
					static PyObject*
 | 
				
			||||||
unicode_join(PyObject *self, PyObject *data)
 | 
					unicode_join(PyObject *self, PyObject *data)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -957,7 +957,9 @@ static int _PyCodecRegistry_Init(void)
 | 
				
			||||||
	    {
 | 
						    {
 | 
				
			||||||
		"strict_errors",
 | 
							"strict_errors",
 | 
				
			||||||
		strict_errors,
 | 
							strict_errors,
 | 
				
			||||||
		METH_O
 | 
							METH_O,
 | 
				
			||||||
 | 
							PyDoc_STR("Implements the 'strict' error handling, which "
 | 
				
			||||||
 | 
								  "raises a UnicodeError on coding errors.")
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					@ -965,7 +967,9 @@ static int _PyCodecRegistry_Init(void)
 | 
				
			||||||
	    {
 | 
						    {
 | 
				
			||||||
		"ignore_errors",
 | 
							"ignore_errors",
 | 
				
			||||||
		ignore_errors,
 | 
							ignore_errors,
 | 
				
			||||||
		METH_O
 | 
							METH_O,
 | 
				
			||||||
 | 
							PyDoc_STR("Implements the 'ignore' error handling, which "
 | 
				
			||||||
 | 
								  "ignores malformed data and continues.")
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					@ -973,7 +977,9 @@ static int _PyCodecRegistry_Init(void)
 | 
				
			||||||
	    {
 | 
						    {
 | 
				
			||||||
		"replace_errors",
 | 
							"replace_errors",
 | 
				
			||||||
		replace_errors,
 | 
							replace_errors,
 | 
				
			||||||
		METH_O
 | 
							METH_O,
 | 
				
			||||||
 | 
							PyDoc_STR("Implements the 'replace' error handling, which "
 | 
				
			||||||
 | 
								  "replaces malformed data with a replacement marker.")
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					@ -981,7 +987,10 @@ static int _PyCodecRegistry_Init(void)
 | 
				
			||||||
	    {
 | 
						    {
 | 
				
			||||||
		"xmlcharrefreplace_errors",
 | 
							"xmlcharrefreplace_errors",
 | 
				
			||||||
		xmlcharrefreplace_errors,
 | 
							xmlcharrefreplace_errors,
 | 
				
			||||||
		METH_O
 | 
							METH_O,
 | 
				
			||||||
 | 
							PyDoc_STR("Implements the 'xmlcharrefreplace' error handling, "
 | 
				
			||||||
 | 
								  "which replaces an unencodable character with the "
 | 
				
			||||||
 | 
								  "appropriate XML character reference.")
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					@ -989,7 +998,10 @@ static int _PyCodecRegistry_Init(void)
 | 
				
			||||||
	    {
 | 
						    {
 | 
				
			||||||
		"backslashreplace_errors",
 | 
							"backslashreplace_errors",
 | 
				
			||||||
		backslashreplace_errors,
 | 
							backslashreplace_errors,
 | 
				
			||||||
		METH_O
 | 
							METH_O,
 | 
				
			||||||
 | 
							PyDoc_STR("Implements the 'backslashreplace' error handling, "
 | 
				
			||||||
 | 
								  "which replaces an unencodable character with a "
 | 
				
			||||||
 | 
								  "backslashed escape sequence.")
 | 
				
			||||||
	    }
 | 
						    }
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue