Merged revisions 67531-67532,67538,67553-67554,67556-67557,67571,67574-67575,67579-67580,67591,67597,67608,67631 via svnmerge from

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

........
  r67531 | georg.brandl | 2008-12-04 19:54:05 +0100 (Thu, 04 Dec 2008) | 2 lines

  Add reference to enumerate() to indices example.
........
  r67532 | georg.brandl | 2008-12-04 19:59:16 +0100 (Thu, 04 Dec 2008) | 2 lines

  Add another heapq example.
........
  r67538 | georg.brandl | 2008-12-04 22:28:16 +0100 (Thu, 04 Dec 2008) | 2 lines

  Clarification to avoid confusing output with file descriptors.
........
  r67553 | georg.brandl | 2008-12-05 08:49:49 +0100 (Fri, 05 Dec 2008) | 2 lines

  #4408: document regex.groups.
........
  r67554 | georg.brandl | 2008-12-05 08:52:26 +0100 (Fri, 05 Dec 2008) | 2 lines

  #4409: fix asterisks looking like footnotes.
........
  r67556 | georg.brandl | 2008-12-05 09:02:17 +0100 (Fri, 05 Dec 2008) | 2 lines

  #4441: improve doc for os.open() flags.
........
  r67557 | georg.brandl | 2008-12-05 09:06:57 +0100 (Fri, 05 Dec 2008) | 2 lines

  Add an index entry for "subclassing immutable types".
........
  r67571 | georg.brandl | 2008-12-05 10:13:45 +0100 (Fri, 05 Dec 2008) | 2 lines

  Use markup.
........
  r67574 | georg.brandl | 2008-12-05 10:25:32 +0100 (Fri, 05 Dec 2008) | 2 lines

  #4441 followup: Add link to open() docs for Windows.
........
  r67575 | georg.brandl | 2008-12-05 12:34:51 +0100 (Fri, 05 Dec 2008) | 2 lines

  #4544: add `dedent` to textwrap.__all__.
........
  r67579 | georg.brandl | 2008-12-05 16:29:39 +0100 (Fri, 05 Dec 2008) | 2 lines

  #4517: add "special method" glossary entry and clarify when __getattribute__ is bypassed.
........
  r67580 | georg.brandl | 2008-12-05 16:32:29 +0100 (Fri, 05 Dec 2008) | 2 lines

  #4478: document that copyfile() can raise Error.
........
  r67591 | georg.brandl | 2008-12-05 19:00:06 +0100 (Fri, 05 Dec 2008) | 2 lines

  Followup to #4511: add link from decorator glossary entry to definition.
........
  r67597 | georg.brandl | 2008-12-05 20:03:19 +0100 (Fri, 05 Dec 2008) | 2 lines

  Remove confusing sentence part.
........
  r67608 | georg.brandl | 2008-12-06 12:57:12 +0100 (Sat, 06 Dec 2008) | 2 lines

  Follow-up to #4488: document PIPE and STDOUT properly.
........
  r67631 | georg.brandl | 2008-12-07 12:54:07 +0100 (Sun, 07 Dec 2008) | 2 lines

  Add link to the favicon to the docs.
........
This commit is contained in:
Georg Brandl 2008-12-07 15:06:20 +00:00
parent eb9fc524a8
commit af265f4977
12 changed files with 94 additions and 42 deletions

View File

@ -98,7 +98,7 @@ Source Code
----------- -----------
Literal code blocks are introduced by ending a paragraph with the special marker Literal code blocks are introduced by ending a paragraph with the special marker
``::``. The literal block must be indented, to be able to include blank lines:: ``::``. The literal block must be indented::
This is a normal text paragraph. The next paragraph is a code sample:: This is a normal text paragraph. The next paragraph is a code sample::

View File

@ -116,7 +116,9 @@ Glossary
def f(...): def f(...):
... ...
The same concept exists for classes, but is less commonly used there. The same concept exists for classes, but is less commonly used there. See
the documentation for :ref:`function definitions <function>` and
:ref:`class definitions <class>` for more about decorators.
descriptor descriptor
Any object which defines the methods :meth:`__get__`, :meth:`__set__`, or Any object which defines the methods :meth:`__get__`, :meth:`__set__`, or
@ -479,6 +481,12 @@ Glossary
when several are given, such as in ``variable_name[1:3:5]``. The bracket when several are given, such as in ``variable_name[1:3:5]``. The bracket
(subscript) notation uses :class:`slice` objects internally. (subscript) notation uses :class:`slice` objects internally.
special method
A method that is called implicitly by Python to execute a certain
operation on a type, such as addition. Such methods have names starting
and ending with double underscores. Special methods are documented in
:ref:`specialnames`.
statement statement
A statement is part of a suite (a "block" of code). A statement is either A statement is part of a suite (a "block" of code). A statement is either
an :term:`expression` or a one of several constructs with a keyword, such an :term:`expression` or a one of several constructs with a keyword, such

View File

@ -63,8 +63,8 @@ exception:
non-option argument is encountered. non-option argument is encountered.
If the first character of the option string is '+', or if the environment If the first character of the option string is '+', or if the environment
variable POSIXLY_CORRECT is set, then option processing stops as soon as a variable :envvar:`POSIXLY_CORRECT` is set, then option processing stops as
non-option argument is encountered. soon as a non-option argument is encountered.
.. exception:: GetoptError .. exception:: GetoptError

View File

@ -86,6 +86,21 @@ Example of use:
>>> data == ordered >>> data == ordered
True True
Using a heap to insert items at the correct place in a priority queue:
>>> heap = []
>>> data = [(1, 'J'), (4, 'N'), (3, 'H'), (2, 'O')]
>>> for item in data:
... heappush(heap, item)
...
>>> while heap:
... print(heappop(heap)[1])
J
O
H
N
The module also offers three general purpose functions based on heaps. The module also offers three general purpose functions based on heaps.

View File

@ -567,10 +567,11 @@ by file descriptors.
:func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use its :meth:`write` :func:`fdopen`, or :data:`sys.stdout` or :data:`sys.stderr`, use its :meth:`write`
method. method.
The following data items are available for use in constructing the *flags* The following constants are options for the *flags* parameter to the
parameter to the :func:`open` function. Some items will not be available on all :func:`open` function. They can be combined using the bitwise OR operator
platforms. For descriptions of their availability and use, consult ``|``. Some of them are not available on all platforms. For descriptions of
:manpage:`open(2)`. their availability and use, consult the :manpage:`open(2)` manual page on Unix
or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>` on Windows.
.. data:: O_RDONLY .. data:: O_RDONLY
@ -581,8 +582,7 @@ platforms. For descriptions of their availability and use, consult
O_EXCL O_EXCL
O_TRUNC O_TRUNC
Options for the *flag* argument to the :func:`open` function. These can be These constants are available on Unix and Windows.
combined using the bitwise OR operator ``|``. Availability: Unix, Windows.
.. data:: O_DSYNC .. data:: O_DSYNC
@ -594,8 +594,7 @@ platforms. For descriptions of their availability and use, consult
O_SHLOCK O_SHLOCK
O_EXLOCK O_EXLOCK
More options for the *flag* argument to the :func:`open` function. Availability: These constants are only available on Unix.
Unix.
.. data:: O_BINARY .. data:: O_BINARY
@ -606,8 +605,7 @@ platforms. For descriptions of their availability and use, consult
O_SEQUENTIAL O_SEQUENTIAL
O_TEXT O_TEXT
Options for the *flag* argument to the :func:`open` function. These can be These constants are only available on Windows.
combined using the bitwise OR operator ``|``. Availability: Windows.
.. data:: O_ASYNC .. data:: O_ASYNC
@ -616,8 +614,8 @@ platforms. For descriptions of their availability and use, consult
O_NOFOLLOW O_NOFOLLOW
O_NOATIME O_NOATIME
Options for the *flag* argument to the :func:`open` function. These are These constants are GNU extensions and not present if they are not defined by
GNU extensions and not present if they are not defined by the C library. the C library.
.. data:: SEEK_SET .. data:: SEEK_SET

View File

@ -770,6 +770,11 @@ attributes:
were provided. were provided.
.. attribute:: RegexObject.groups
The number of capturing groups in the pattern.
.. attribute:: RegexObject.groupindex .. attribute:: RegexObject.groupindex
A dictionary mapping any symbolic group names defined by ``(?P<id>)`` to group A dictionary mapping any symbolic group names defined by ``(?P<id>)`` to group

View File

@ -43,7 +43,8 @@ copying and removal. For operations on individual files, see also the
Copy the contents (no metadata) of the file named *src* to a file named *dst*. Copy the contents (no metadata) of the file named *src* to a file named *dst*.
*dst* must be the complete target file name; look at :func:`copy` for a copy that *dst* must be the complete target file name; look at :func:`copy` for a copy that
accepts a target directory path. accepts a target directory path. If *src* and *dst* are the same files,
:exc:`Error` is raised.
The destination location must be writable; otherwise, an :exc:`IOError` exception The destination location must be writable; otherwise, an :exc:`IOError` exception
will be raised. If *dst* already exists, it will be replaced. Special files will be raised. If *dst* already exists, it will be replaced. Special files
such as character or block devices and pipes cannot be copied with this such as character or block devices and pipes cannot be copied with this

View File

@ -68,13 +68,13 @@ This module defines one class called :class:`Popen`:
specified by the :envvar:`COMSPEC` environment variable. specified by the :envvar:`COMSPEC` environment variable.
*stdin*, *stdout* and *stderr* specify the executed programs' standard input, *stdin*, *stdout* and *stderr* specify the executed programs' standard input,
standard output and standard error file handles, respectively. Valid values are standard output and standard error file handles, respectively. Valid values
``PIPE``, an existing file descriptor (a positive integer), an existing file are :data:`PIPE`, an existing file descriptor (a positive integer), an
object, and ``None``. ``PIPE`` indicates that a new pipe to the child should be existing file object, and ``None``. :data:`PIPE` indicates that a new pipe
created. With ``None``, no redirection will occur; the child's file handles to the child should be created. With ``None``, no redirection will occur;
will be inherited from the parent. Additionally, *stderr* can be ``STDOUT``, the child's file handles will be inherited from the parent. Additionally,
which indicates that the stderr data from the applications should be captured *stderr* can be :data:`STDOUT`, which indicates that the stderr data from the
into the same file handle as for stdout. applications should be captured into the same file handle as for stdout.
If *preexec_fn* is set to a callable object, this object will be called in the If *preexec_fn* is set to a callable object, this object will be called in the
child process just before the child is executed. (Unix only) child process just before the child is executed. (Unix only)
@ -114,6 +114,20 @@ This module defines one class called :class:`Popen`:
of the main window and priority for the new process. (Windows only) of the main window and priority for the new process. (Windows only)
.. data:: PIPE
Special value that can be used as the *stdin*, *stdout* or *stderr* argument
to :class:`Popen` and indicates that a pipe to the standard stream should be
opened.
.. data:: STDOUT
Special value that can be used as the *stderr* argument to :class:`Popen` and
indicates that standard error should go into the same handle as standard
output.
Convenience Functions Convenience Functions
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
@ -229,7 +243,7 @@ Instances of the :class:`Popen` class have the following methods:
*input* argument should be a byte string to be sent to the child process, or *input* argument should be a byte string to be sent to the child process, or
``None``, if no data should be sent to the child. ``None``, if no data should be sent to the child.
:meth:`communicate` returns a tuple ``(stdout, stderr)``. :meth:`communicate` returns a tuple ``(stdoutdata, stderrdata)``.
Note that if you want to send data to the process's stdin, you need to create Note that if you want to send data to the process's stdin, you need to create
the Popen object with ``stdin=PIPE``. Similarly, to get anything other than the Popen object with ``stdin=PIPE``. Similarly, to get anything other than
@ -277,20 +291,21 @@ The following attributes are also available:
.. attribute:: Popen.stdin .. attribute:: Popen.stdin
If the *stdin* argument is ``PIPE``, this attribute is a file object that If the *stdin* argument was :data:`PIPE`, this attribute is a file object
provides input to the child process. Otherwise, it is ``None``. that provides input to the child process. Otherwise, it is ``None``.
.. attribute:: Popen.stdout .. attribute:: Popen.stdout
If the *stdout* argument is ``PIPE``, this attribute is a file object that If the *stdout* argument was :data:`PIPE`, this attribute is a file object
provides output from the child process. Otherwise, it is ``None``. that provides output from the child process. Otherwise, it is ``None``.
.. attribute:: Popen.stderr .. attribute:: Popen.stderr
If the *stderr* argument is ``PIPE``, this attribute is file object that If the *stderr* argument was :data:`PIPE`, this attribute is a file object
provides error output from the child process. Otherwise, it is ``None``. that provides error output from the child process. Otherwise, it is
``None``.
.. attribute:: Popen.pid .. attribute:: Popen.pid
@ -374,8 +389,8 @@ A more realistic example would look like this::
print("Execution failed:", e, file=sys.stderr) print("Execution failed:", e, file=sys.stderr)
Replacing os.spawn\* Replacing the os.spawn family
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
P_NOWAIT example:: P_NOWAIT example::
@ -402,8 +417,8 @@ Environment example::
Popen(["/bin/mycmd", "myarg"], env={"PATH": "/usr/bin"}) Popen(["/bin/mycmd", "myarg"], env={"PATH": "/usr/bin"})
Replacing os.popen\* Replacing os.popen
^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^
:: ::
@ -416,4 +431,3 @@ Replacing os.popen\*
pipe = os.popen(cmd, 'w', bufsize) pipe = os.popen(cmd, 'w', bufsize)
==> ==>
pipe = Popen(cmd, shell=True, bufsize=bufsize, stdin=PIPE).stdin pipe = Popen(cmd, shell=True, bufsize=bufsize, stdin=PIPE).stdin

View File

@ -1009,9 +1009,10 @@ of this is the :class:`NodeList` interface in the W3C's Document Object Model.)
Basic customization Basic customization
------------------- -------------------
.. method:: object.__new__(cls[, ...]) .. method:: object.__new__(cls[, ...])
.. index:: pair: subclassing; immutable types
Called to create a new instance of class *cls*. :meth:`__new__` is a static Called to create a new instance of class *cls*. :meth:`__new__` is a static
method (special-cased so you need not declare it as such) that takes the class method (special-cased so you need not declare it as such) that takes the class
of which an instance was requested as its first argument. The remaining of which an instance was requested as its first argument. The remaining
@ -1915,7 +1916,7 @@ the instance when looking up special methods::
True True
In addition to bypassing any instance attributes in the interest of In addition to bypassing any instance attributes in the interest of
correctness, implicit special method lookup may also bypass the correctness, implicit special method lookup generally also bypasses the
:meth:`__getattribute__` method even of the object's metaclass:: :meth:`__getattribute__` method even of the object's metaclass::
>>> class Meta(type): >>> class Meta(type):

View File

@ -1,4 +1,10 @@
{% extends "!layout.html" %} {% extends "!layout.html" %}
{% block rootrellink %} {% block rootrellink %}
<li><img src="{{ pathto('_static/py.png', 1) }}" alt="" style="vertical-align: middle; margin-top: -1px"/></li><li><a href="{{ pathto('index') }}">{{ shorttitle }}</a>{{ reldelim1 }}</li> <li><img src="{{ pathto('_static/py.png', 1) }}" alt=""
style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="{{ pathto('index') }}">{{ shorttitle }}</a>{{ reldelim1 }}</li>
{% endblock %}
{% block extrahead %}
<link rel="shortcut icon" type="image/png" href="{{ pathto('_static/py.png', 1) }}" />
{{ super() }}
{% endblock %} {% endblock %}

View File

@ -113,8 +113,8 @@ increment (even negative; sometimes this is called the 'step')::
range(-10, -100, -30) range(-10, -100, -30)
-10, -40, -70 -10, -40, -70
To iterate over the indices of a sequence, combine :func:`range` and :func:`len` To iterate over the indices of a sequence, you can combine :func:`range` and
as follows:: :func:`len` as follows::
>>> a = ['Mary', 'had', 'a', 'little', 'lamb'] >>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)): >>> for i in range(len(a)):
@ -126,6 +126,9 @@ as follows::
3 little 3 little
4 lamb 4 lamb
In most such cases, however, it is convenient to use the :func:`enumerate`
function, see :ref:`tut-loopidioms`.
A strange thing happens if you just print a range:: A strange thing happens if you just print a range::
>>> print(range(10)) >>> print(range(10))
@ -148,6 +151,7 @@ is another; it creates lists from iterables::
Later we will see more functions that return iterables and take iterables as argument. Later we will see more functions that return iterables and take iterables as argument.
.. _tut-break: .. _tut-break:
:keyword:`break` and :keyword:`continue` Statements, and :keyword:`else` Clauses on Loops :keyword:`break` and :keyword:`continue` Statements, and :keyword:`else` Clauses on Loops

View File

@ -9,7 +9,7 @@ __revision__ = "$Id$"
import string, re import string, re
__all__ = ['TextWrapper', 'wrap', 'fill'] __all__ = ['TextWrapper', 'wrap', 'fill', 'dedent']
# Hardcode the recognized whitespace characters to the US-ASCII # Hardcode the recognized whitespace characters to the US-ASCII
# whitespace characters. The main reason for doing this is that in # whitespace characters. The main reason for doing this is that in