Merged revisions 87807,87820,87831,87859 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/branches/py3k

........
  r87807 | georg.brandl | 2011-01-06 20:28:18 +0100 (Do, 06 Jan 2011) | 1 line

  #10846: fix typo.
........
  r87820 | georg.brandl | 2011-01-07 19:28:45 +0100 (Fr, 07 Jan 2011) | 1 line

  #10856: document (Base)Exception.args better.
........
  r87831 | georg.brandl | 2011-01-07 21:58:25 +0100 (Fr, 07 Jan 2011) | 1 line

  Fix indent.
........
  r87859 | georg.brandl | 2011-01-08 10:45:43 +0100 (Sa, 08 Jan 2011) | 1 line

  #10855: document close() semantics of wave objects.
........
This commit is contained in:
Georg Brandl 2011-01-09 07:58:45 +00:00
parent 6fef11cd6a
commit 335d4f5eb4
3 changed files with 41 additions and 18 deletions

View file

@ -46,18 +46,35 @@ defining exceptions is available in the Python Tutorial under
The following exceptions are only used as base classes for other exceptions. The following exceptions are only used as base classes for other exceptions.
.. exception:: BaseException .. exception:: BaseException
The base class for all built-in exceptions. It is not meant to be directly The base class for all built-in exceptions. It is not meant to be directly
inherited by user-defined classes (for that use :exc:`Exception`). If inherited by user-defined classes (for that, use :exc:`Exception`). If
:func:`str` or :func:`unicode` is called on an instance of this class, the :func:`str` or :func:`unicode` is called on an instance of this class, the
representation of the argument(s) to the instance are returned or the empty representation of the argument(s) to the instance are returned, or the empty
string when there were no arguments. All arguments are stored in :attr:`args` string when there were no arguments.
as a tuple.
.. versionadded:: 2.5 .. versionadded:: 2.5
.. attribute:: args
The tuple of arguments given to the exception constructor. Some built-in
exceptions (like :exc:`IOError`) expect a certain number of arguments and
assign a special meaning to the elements of this tuple, while others are
usually called only with a single string giving an error message.
.. method:: with_traceback(tb)
This method sets *tb* as the new traceback for the exception and returns
the exception object. It is usually used in exception handling code like
this::
try:
...
except SomeException:
tb = sys.exc_info()[2]
raise OtherException(...).with_traceback(tb)
.. exception:: Exception .. exception:: Exception

View file

@ -655,9 +655,9 @@ waiting until some other thread calls :meth:`release`.
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
Semaphores are often used to guard resources with limited capacity, for example, Semaphores are often used to guard resources with limited capacity, for example,
a database server. In any situation where the size of the resource size is a database server. In any situation where the size of the resource is fixed,
fixed, you should use a bounded semaphore. Before spawning any worker threads, you should use a bounded semaphore. Before spawning any worker threads, your
your main thread would initialize the semaphore:: main thread would initialize the semaphore::
maxconnections = 5 maxconnections = 5
... ...

View file

@ -14,8 +14,8 @@ The :mod:`wave` module defines the following function and exception:
.. function:: open(file[, mode]) .. function:: open(file[, mode])
If *file* is a string, open the file by that name, other treat it as a seekable If *file* is a string, open the file by that name, otherwise treat it as a
file-like object. *mode* can be any of seekable file-like object. *mode* can be any of
``'r'``, ``'rb'`` ``'r'``, ``'rb'``
Read only mode. Read only mode.
@ -26,9 +26,14 @@ The :mod:`wave` module defines the following function and exception:
Note that it does not allow read/write WAV files. Note that it does not allow read/write WAV files.
A *mode* of ``'r'`` or ``'rb'`` returns a :class:`Wave_read` object, while a A *mode* of ``'r'`` or ``'rb'`` returns a :class:`Wave_read` object, while a
*mode* of ``'w'`` or ``'wb'`` returns a :class:`Wave_write` object. If *mode* *mode* of ``'w'`` or ``'wb'`` returns a :class:`Wave_write` object. If
is omitted and a file-like object is passed as *file*, ``file.mode`` is used as *mode* is omitted and a file-like object is passed as *file*, ``file.mode``
the default value for *mode* (the ``'b'`` flag is still added if necessary). is used as the default value for *mode* (the ``'b'`` flag is still added if
necessary).
If you pass in a file-like object, the wave object will not close it when its
:meth:`close` method is called; it is the caller's responsibility to close
the file object.
.. function:: openfp(file, mode) .. function:: openfp(file, mode)
@ -52,8 +57,8 @@ Wave_read objects, as returned by :func:`.open`, have the following methods:
.. method:: Wave_read.close() .. method:: Wave_read.close()
Close the stream, and make the instance unusable. This is called automatically Close the stream if it was opened by :mod:`wave`, and make the instance
on object collection. unusable. This is called automatically on object collection.
.. method:: Wave_read.getnchannels() .. method:: Wave_read.getnchannels()
@ -139,8 +144,8 @@ Wave_write objects, as returned by :func:`.open`, have the following methods:
.. method:: Wave_write.close() .. method:: Wave_write.close()
Make sure *nframes* is correct, and close the file. This method is called upon Make sure *nframes* is correct, and close the file if it was opened by
deletion. :mod:`wave`. This method is called upon object collection.
.. method:: Wave_write.setnchannels(n) .. method:: Wave_write.setnchannels(n)
@ -192,6 +197,7 @@ Wave_write objects, as returned by :func:`.open`, have the following methods:
Write audio frames and make sure *nframes* is correct. Write audio frames and make sure *nframes* is correct.
Note that it is invalid to set any parameters after calling :meth:`writeframes` Note that it is invalid to set any parameters after calling :meth:`writeframes`
or :meth:`writeframesraw`, and any attempt to do so will raise or :meth:`writeframesraw`, and any attempt to do so will raise
:exc:`wave.Error`. :exc:`wave.Error`.