summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÉric Araujo <merwok@netwok.org>2011-04-20 16:54:12 (GMT)
committerÉric Araujo <merwok@netwok.org>2011-04-20 16:54:12 (GMT)
commitad0790e5730173a6c649b59ae035549e3f2ba481 (patch)
treec3255b0146a5fb87c35fe15c4460606ceecdc6f5
parent58de6ee8711a079da0b555221ae739d6a69df2f7 (diff)
parentf8e1b607994028c826401c7f6f3637d9c797ed25 (diff)
downloadcpython-ad0790e5730173a6c649b59ae035549e3f2ba481.zip
cpython-ad0790e5730173a6c649b59ae035549e3f2ba481.tar.gz
cpython-ad0790e5730173a6c649b59ae035549e3f2ba481.tar.bz2
Branch merge
-rw-r--r--Doc/c-api/intro.rst3
-rw-r--r--Doc/documenting/markup.rst25
-rw-r--r--Lib/dbm/__init__.py22
-rw-r--r--Lib/distutils/command/sdist.py25
-rw-r--r--Lib/distutils/tests/test_register.py6
-rw-r--r--Lib/heapq.py6
6 files changed, 54 insertions, 33 deletions
diff --git a/Doc/c-api/intro.rst b/Doc/c-api/intro.rst
index e8b62dc..c008b5c 100644
--- a/Doc/c-api/intro.rst
+++ b/Doc/c-api/intro.rst
@@ -511,13 +511,12 @@ interpreter can only be used after the interpreter has been initialized.
module: builtins
module: __main__
module: sys
- module: exceptions
triple: module; search; path
single: path (in module sys)
The basic initialization function is :cfunc:`Py_Initialize`. This initializes
the table of loaded modules, and creates the fundamental modules
-:mod:`builtins`, :mod:`__main__`, :mod:`sys`, and :mod:`exceptions`. It also
+:mod:`builtins`, :mod:`__main__`, and :mod:`sys`. It also
initializes the module search path (``sys.path``).
.. index:: single: PySys_SetArgv()
diff --git a/Doc/documenting/markup.rst b/Doc/documenting/markup.rst
index 34a79d4..be7718d 100644
--- a/Doc/documenting/markup.rst
+++ b/Doc/documenting/markup.rst
@@ -152,7 +152,7 @@ The directives are:
Describes global data in a module, including both variables and values used
as "defined constants." Class and object attributes are not documented
- using this environment.
+ using this directive.
.. describe:: exception
@@ -165,7 +165,7 @@ The directives are:
parameters, enclosing optional parameters in brackets. Default values can be
given if it enhances clarity. For example::
- .. function:: Timer.repeat([repeat=3[, number=1000000]])
+ .. function:: repeat([repeat=3[, number=1000000]])
Object methods are not documented using this directive. Bound object methods
placed in the module namespace as part of the public interface of the module
@@ -186,13 +186,30 @@ The directives are:
Describes an object data attribute. The description should include
information about the type of the data to be expected and whether it may be
- changed directly.
+ changed directly. This directive should be nested in a class directive,
+ like in this example::
+
+ .. class:: Spam
+
+ Description of the class.
+
+ .. data:: ham
+
+ Description of the attribute.
+
+ If is also possible to document an attribute outside of a class directive,
+ for example if the documentation for different attributes and methods is
+ split in multiple sections. The class name should then be included
+ explicitly::
+
+ .. data:: Spam.eggs
.. describe:: method
Describes an object method. The parameters should not include the ``self``
parameter. The description should include similar information to that
- described for ``function``.
+ described for ``function``. This method should be nested in a class
+ method, like in the example above.
.. describe:: opcode
diff --git a/Lib/dbm/__init__.py b/Lib/dbm/__init__.py
index 99c1637..57be17b 100644
--- a/Lib/dbm/__init__.py
+++ b/Lib/dbm/__init__.py
@@ -24,16 +24,8 @@ It has the following interface (key and data are strings):
list = d.keys() # return a list of all existing keys (slow!)
Future versions may change the order in which implementations are
-tested for existence, add interfaces to other dbm-like
+tested for existence, and add interfaces to other dbm-like
implementations.
-
-The open function has an optional second argument. This can be 'r',
-for read-only access, 'w', for read-write access of an existing
-database, 'c' for read-write access to a new or existing database, and
-'n' for read-write access to a new database. The default is 'r'.
-
-Note: 'r' and 'w' fail if the database doesn't exist; 'c' creates it
-only if it doesn't exist; and 'n' always creates a new database.
"""
__all__ = ['open', 'whichdb', 'error', 'error']
@@ -54,7 +46,17 @@ _modules = {}
error = (error, IOError)
-def open(file, flag = 'r', mode = 0o666):
+def open(file, flag='r', mode=0o666):
+ """Open or create database at path given by *file*.
+
+ Optional argument *flag* can be 'r' (default) for read-only access, 'w'
+ for read-write access of an existing database, 'c' for read-write access
+ to a new or existing database, and 'n' for read-write access to a new
+ database.
+
+ Note: 'r' and 'w' fail if the database doesn't exist; 'c' creates it
+ only if it doesn't exist; and 'n' always creates a new database.
+ """
global _defaultmod
if _defaultmod is None:
for name in _names:
diff --git a/Lib/distutils/command/sdist.py b/Lib/distutils/command/sdist.py
index 1118060..fdbebd7 100644
--- a/Lib/distutils/command/sdist.py
+++ b/Lib/distutils/command/sdist.py
@@ -294,17 +294,20 @@ class sdist(Command):
join_lines=1, lstrip_ws=1, rstrip_ws=1,
collapse_join=1)
- while True:
- line = template.readline()
- if line is None: # end of file
- break
-
- try:
- self.filelist.process_template_line(line)
- except DistutilsTemplateError as msg:
- self.warn("%s, line %d: %s" % (template.filename,
- template.current_line,
- msg))
+ try:
+ while True:
+ line = template.readline()
+ if line is None: # end of file
+ break
+
+ try:
+ self.filelist.process_template_line(line)
+ except DistutilsTemplateError as msg:
+ self.warn("%s, line %d: %s" % (template.filename,
+ template.current_line,
+ msg))
+ finally:
+ template.close()
def prune_file_list(self):
"""Prune off branches that might slip into the file list as created
diff --git a/Lib/distutils/tests/test_register.py b/Lib/distutils/tests/test_register.py
index c712f56..cb72a11 100644
--- a/Lib/distutils/tests/test_register.py
+++ b/Lib/distutils/tests/test_register.py
@@ -137,7 +137,7 @@ class RegisterTestCase(PyPIRCCommandTestCase):
# let's see what the server received : we should
# have 2 similar requests
- self.assertTrue(self.conn.reqs, 2)
+ self.assertEqual(len(self.conn.reqs), 2)
req1 = dict(self.conn.reqs[0].headers)
req2 = dict(self.conn.reqs[1].headers)
@@ -169,7 +169,7 @@ class RegisterTestCase(PyPIRCCommandTestCase):
del register_module.input
# we should have send a request
- self.assertTrue(self.conn.reqs, 1)
+ self.assertEqual(len(self.conn.reqs), 1)
req = self.conn.reqs[0]
headers = dict(req.headers)
self.assertEqual(headers['Content-length'], '608')
@@ -187,7 +187,7 @@ class RegisterTestCase(PyPIRCCommandTestCase):
del register_module.input
# we should have send a request
- self.assertTrue(self.conn.reqs, 1)
+ self.assertEqual(len(self.conn.reqs), 1)
req = self.conn.reqs[0]
headers = dict(req.headers)
self.assertEqual(headers['Content-length'], '290')
diff --git a/Lib/heapq.py b/Lib/heapq.py
index b74818e..cc61294 100644
--- a/Lib/heapq.py
+++ b/Lib/heapq.py
@@ -172,7 +172,7 @@ def heappushpop(heap, item):
return item
def heapify(x):
- """Transform list into a heap, in-place, in O(len(heap)) time."""
+ """Transform list into a heap, in-place, in O(len(x)) time."""
n = len(x)
# Transform bottom-up. The largest index there's any point to looking at
# is the largest with a child index in-range, so must have 2*i + 1 < n,
@@ -363,7 +363,7 @@ def nsmallest(n, iterable, key=None):
return [min(chain(head, it))]
return [min(chain(head, it), key=key)]
- # When n>=size, it's faster to use sort()
+ # When n>=size, it's faster to use sorted()
try:
size = len(iterable)
except (TypeError, AttributeError):
@@ -401,7 +401,7 @@ def nlargest(n, iterable, key=None):
return [max(chain(head, it))]
return [max(chain(head, it), key=key)]
- # When n>=size, it's faster to use sort()
+ # When n>=size, it's faster to use sorted()
try:
size = len(iterable)
except (TypeError, AttributeError):