diff options
author | Christian Heimes <christian@cheimes.de> | 2008-01-11 16:17:00 (GMT) |
---|---|---|
committer | Christian Heimes <christian@cheimes.de> | 2008-01-11 16:17:00 (GMT) |
commit | 25bb783c030cd1c4f13297f3e2e1b6246d3f0a0c (patch) | |
tree | 82773afa7d71ea9b6c971f4402128c6a3967bf75 /Doc | |
parent | 222e1279f8d4d271a74486081f77d7346ea93105 (diff) | |
download | cpython-25bb783c030cd1c4f13297f3e2e1b6246d3f0a0c.zip cpython-25bb783c030cd1c4f13297f3e2e1b6246d3f0a0c.tar.gz cpython-25bb783c030cd1c4f13297f3e2e1b6246d3f0a0c.tar.bz2 |
Merged revisions 59883-59920 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59887 | neal.norwitz | 2008-01-10 06:42:58 +0100 (Thu, 10 Jan 2008) | 1 line
Reword entry, not sure I made it much better though.
........
r59888 | andrew.kuchling | 2008-01-10 14:37:12 +0100 (Thu, 10 Jan 2008) | 1 line
Check for fd of -1 to save fsync() and fstat() call
........
r59891 | thomas.heller | 2008-01-10 19:45:40 +0100 (Thu, 10 Jan 2008) | 1 line
Reflow a paragraph, and fix a typo.
........
r59892 | raymond.hettinger | 2008-01-10 20:15:10 +0100 (Thu, 10 Jan 2008) | 1 line
Examples for named tuple subclassing should include __slots__
........
r59895 | raymond.hettinger | 2008-01-10 21:37:12 +0100 (Thu, 10 Jan 2008) | 1 line
Clarify how to add a field to a named tuple.
........
r59896 | amaury.forgeotdarc | 2008-01-10 22:59:42 +0100 (Thu, 10 Jan 2008) | 12 lines
Closing issue1761.
Surprising behaviour of the "$" regexp: it matches the
end of the string, AND just before the newline at the end
of the string::
re.sub('$', '#', 'foo\n') == 'foo#\n#'
Python is consistent with Perl and the pcre library, so
we just document it.
Guido prefers "\Z" to match only the end of the string.
........
r59898 | raymond.hettinger | 2008-01-11 00:00:01 +0100 (Fri, 11 Jan 2008) | 1 line
Neaten-up the named tuple docs
........
r59900 | raymond.hettinger | 2008-01-11 01:23:13 +0100 (Fri, 11 Jan 2008) | 1 line
Run doctests on the collections module
........
r59903 | raymond.hettinger | 2008-01-11 02:25:54 +0100 (Fri, 11 Jan 2008) | 1 line
Doctest results return a named tuple for readability
........
r59904 | raymond.hettinger | 2008-01-11 03:12:33 +0100 (Fri, 11 Jan 2008) | 1 line
Comment-out missing constant (from rev 59819)
........
r59905 | raymond.hettinger | 2008-01-11 03:24:13 +0100 (Fri, 11 Jan 2008) | 1 line
Have Decimal.as_tuple return a named tuple.
........
r59906 | raymond.hettinger | 2008-01-11 04:04:50 +0100 (Fri, 11 Jan 2008) | 1 line
Let most inspect functions return named tuples
........
r59907 | raymond.hettinger | 2008-01-11 04:20:54 +0100 (Fri, 11 Jan 2008) | 1 line
Improve usability of the SequenceMatcher by returning named tuples describing match ranges.
........
r59909 | thomas.heller | 2008-01-11 09:04:03 +0100 (Fri, 11 Jan 2008) | 1 line
Add an important missing blank.
........
r59910 | georg.brandl | 2008-01-11 10:19:11 +0100 (Fri, 11 Jan 2008) | 2 lines
Guard definition of TIPC_SUB_CANCEL with an #ifdef.
........
r59911 | georg.brandl | 2008-01-11 10:20:58 +0100 (Fri, 11 Jan 2008) | 2 lines
News entries for rev. 5990[567].
........
r59912 | georg.brandl | 2008-01-11 10:55:53 +0100 (Fri, 11 Jan 2008) | 2 lines
Documentation for r5990[3567].
........
r59913 | thomas.heller | 2008-01-11 13:41:39 +0100 (Fri, 11 Jan 2008) | 4 lines
The sqlite3 dll, when compiled in debug mode, must be linked with /MDd
to use the debug runtime library. Further, the dll will be named
sqlite3_d.dll.
........
r59919 | thomas.heller | 2008-01-11 16:38:46 +0100 (Fri, 11 Jan 2008) | 6 lines
Revert revision 59913, because it was wrong:
The sqlite3 dll, when compiled in debug mode, must be linked with
/MDd to use the debug runtime library. Further, the dll will be
named sqlite3_d.dll.
........
r59920 | christian.heimes | 2008-01-11 16:42:29 +0100 (Fri, 11 Jan 2008) | 1 line
Removed unused variable
........
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/glossary.rst | 7 | ||||
-rw-r--r-- | Doc/library/collections.rst | 23 | ||||
-rw-r--r-- | Doc/library/decimal.rst | 6 | ||||
-rw-r--r-- | Doc/library/difflib.rst | 5 | ||||
-rw-r--r-- | Doc/library/doctest.rst | 5 | ||||
-rw-r--r-- | Doc/library/inspect.rst | 22 | ||||
-rw-r--r-- | Doc/library/re.rst | 4 |
7 files changed, 47 insertions, 25 deletions
diff --git a/Doc/glossary.rst b/Doc/glossary.rst index 6d12d0f..194fbd9 100644 --- a/Doc/glossary.rst +++ b/Doc/glossary.rst @@ -327,6 +327,13 @@ Glossary mutable Mutable objects can change their value but keep their :func:`id`. See also :term:`immutable`. + + named tuple + A tuple subclass whose elements also are accessible as attributes via + fixed names (the class name and field names are indicated in the + individual documentation of a named tuple type, like ``TestResults(failed, + attempted)``). Named tuple classes are created by + :func:`collections.namedtuple`. namespace The place where a variable is stored. Namespaces are implemented as diff --git a/Doc/library/collections.rst b/Doc/library/collections.rst index fdfdefe..f1a8fff 100644 --- a/Doc/library/collections.rst +++ b/Doc/library/collections.rst @@ -397,8 +397,8 @@ they add the ability to access fields by name instead of position index. method which lists the tuple contents in a ``name=value`` format. The *fieldnames* are a single string with each fieldname separated by whitespace - and/or commas (for example 'x y' or 'x, y'). Alternatively, *fieldnames* - can be a sequence of strings (such as ['x', 'y']). + and/or commas, for example ``'x y'`` or ``'x, y'``. Alternatively, *fieldnames* + can be a sequence of strings such as ``['x', 'y']``. Any valid Python identifier may be used for a fieldname except for names starting with an underscore. Valid identifiers consist of letters, digits, @@ -406,7 +406,7 @@ they add the ability to access fields by name instead of position index. a :mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, *print*, or *raise*. - If *verbose* is true, will print the class definition. + If *verbose* is true, the class definition is printed just before being built. Named tuple instances do not have per-instance dictionaries, so they are lightweight and require no more memory than regular tuples. @@ -533,7 +533,7 @@ function:: >>> getattr(p, 'x') 11 -To cast a dictionary to a named tuple, use the double-star-operator [#]_:: +To convert a dictionary to a named tuple, use the double-star-operator [#]_:: >>> d = {'x': 11, 'y': 22} >>> Point(**d) @@ -544,23 +544,24 @@ functionality with a subclass. Here is how to add a calculated field and a fixed-width print format:: >>> class Point(namedtuple('Point', 'x y')): + ... __slots__ = () ... @property ... def hypot(self): ... return (self.x ** 2 + self.y ** 2) ** 0.5 ... def __str__(self): - ... return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot) + ... return 'Point: x=%6.3f y=%6.3f hypot=%6.3f' % (self.x, self.y, self.hypot) - >>> for p in Point(3,4), Point(14,5), Point(9./7,6): + >>> for p in Point(3, 4), Point(14, 5/7.): ... print(p) - Point: x= 3.000 y= 4.000 hypot= 5.000 - Point: x=14.000 y= 5.000 hypot=14.866 - Point: x= 1.286 y= 6.000 hypot= 6.136 + Point: x= 3.000 y= 4.000 hypot= 5.000 + Point: x=14.000 y= 0.714 hypot=14.018 Another use for subclassing is to replace performance critcal methods with -faster versions that bypass error-checking and that localize variable access:: +faster versions that bypass error-checking:: class Point(namedtuple('Point', 'x y')): + __slots__ = () _make = classmethod(tuple.__new__) def _replace(self, _map=map, **kwds): return self._make(_map(kwds.get, ('x', 'y'), self)) @@ -569,7 +570,7 @@ faster versions that bypass error-checking and that localize variable access:: Subclassing is not useful for adding new, stored fields. Instead, simply create a new named tuple type from the :attr:`_fields` attribute:: - >>> Pixel = namedtuple('Pixel', Point._fields + Color._fields) + >>> Point3D = namedtuple('Point3D', Point._fields + ('z',)) Default values can be implemented by using :meth:`_replace` to customize a prototype instance:: diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst index e29e4ea..fbd6f43 100644 --- a/Doc/library/decimal.rst +++ b/Doc/library/decimal.rst @@ -328,7 +328,11 @@ also have a number of specialized methods: .. method:: Decimal.as_tuple() - Return a tuple representation of the number: ``(sign, digit_tuple, exponent)``. + Return a :term:`named tuple` representation of the number: + ``DecimalTuple(sign, digits, exponent)``. + + .. versionchanged:: 2.6 + Use a named tuple. .. method:: Decimal.canonical() diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst index 34dbcfd..7e61aa9 100644 --- a/Doc/library/difflib.rst +++ b/Doc/library/difflib.rst @@ -336,7 +336,7 @@ use :meth:`set_seq2` to set the commonly used sequence once and call Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``. - If *isjunk* was omitted or ``None``, :meth:`get_longest_match` returns ``(i, j, + If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns ``(i, j, k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo <= i <= i+k <= ahi`` and ``blo <= j <= j+k <= bhi``. For all ``(i', j', k')`` meeting those conditions, the additional conditions ``k >= k'``, ``i <= i'``, and if ``i == @@ -365,6 +365,9 @@ use :meth:`set_seq2` to set the commonly used sequence once and call If no blocks match, this returns ``(alo, blo, 0)``. + .. versionchanged:: 2.6 + This method returns a :term:`named tuple` ``Match(a, b, size)``. + .. method:: SequenceMatcher.get_matching_blocks() diff --git a/Doc/library/doctest.rst b/Doc/library/doctest.rst index 04bc219..ce8b9f0 100644 --- a/Doc/library/doctest.rst +++ b/Doc/library/doctest.rst @@ -1436,11 +1436,14 @@ DocTestRunner objects .. method:: DocTestRunner.summarize([verbose]) Print a summary of all the test cases that have been run by this DocTestRunner, - and return a tuple ``(failure_count, test_count)``. + and return a :term:`named tuple` ``TestResults(failed, attempted)``. The optional *verbose* argument controls how detailed the summary is. If the verbosity is not specified, then the :class:`DocTestRunner`'s verbosity is used. + .. versionchanged:: 2.6 + Use a named tuple. + .. _doctest-outputchecker: diff --git a/Doc/library/inspect.rst b/Doc/library/inspect.rst index e5008f6..5daa496 100644 --- a/Doc/library/inspect.rst +++ b/Doc/library/inspect.rst @@ -188,7 +188,8 @@ attributes: .. function:: getmoduleinfo(path) - Return a tuple of values that describe how Python will interpret the file + Returns a :term:`named tuple` ``ModuleInfo(name, suffix, mode, + module_type)`` of values that describe how Python will interpret the file identified by *path* if it is a module, or ``None`` if it would not be identified as a module. The return tuple is ``(name, suffix, mode, mtype)``, where *name* is the name of the module without the name of any enclosing @@ -377,8 +378,9 @@ Classes and functions .. function:: getargspec(func) - Get the names and default values of a function's arguments. A tuple of four - things is returned: ``(args, varargs, varkw, defaults)``. *args* is a list of + Get the names and default values of a function's arguments. A + :term:`named tuple` ``ArgSpec(args, varargs, keywords, + defaults)`` is returned. *args* is a list of the argument names. *varargs* and *varkw* are the names of the ``*`` and ``**`` arguments or ``None``. *defaults* is a tuple of default argument values or None if there are no default arguments; if this tuple has *n* @@ -391,10 +393,10 @@ Classes and functions .. function:: getfullargspec(func) - Get the names and default values of a function's arguments. A tuple of seven - things is returned: + Get the names and default values of a function's arguments. A :term:`named tuple` + is returned: - ``(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotations)`` + ``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, annotations)`` *args* is a list of the argument names. *varargs* and *varkw* are the names of the ``*`` and ``**`` arguments or ``None``. *defaults* is an n-tuple of @@ -408,8 +410,8 @@ Classes and functions .. function:: getargvalues(frame) - Get information about arguments passed into a particular frame. A tuple of four - things is returned: ``(args, varargs, varkw, locals)``. *args* is a list of the + Get information about arguments passed into a particular frame. A :term:`named tuple` + ``ArgInfo(args, varargs, keywords, locals)`` is returned. *args* is a list of the argument names (it may contain nested lists). *varargs* and *varkw* are the names of the ``*`` and ``**`` arguments or ``None``. *locals* is the locals dictionary of the given frame. @@ -476,8 +478,8 @@ line. .. function:: getframeinfo(frame[, context]) - Get information about a frame or traceback object. A 5-tuple is returned, the - last five elements of the frame's frame record. + Get information about a frame or traceback object. A :term:`named tuple` + ``Traceback(filename, lineno, function, code_context, index)`` is returned. .. function:: getouterframes(frame[, context]) diff --git a/Doc/library/re.rst b/Doc/library/re.rst index 49c5215..7de088a 100644 --- a/Doc/library/re.rst +++ b/Doc/library/re.rst @@ -98,7 +98,9 @@ The special characters are: string, and in :const:`MULTILINE` mode also matches before a newline. ``foo`` matches both 'foo' and 'foobar', while the regular expression ``foo$`` matches only 'foo'. More interestingly, searching for ``foo.$`` in ``'foo1\nfoo2\n'`` - matches 'foo2' normally, but 'foo1' in :const:`MULTILINE` mode. + matches 'foo2' normally, but 'foo1' in :const:`MULTILINE` mode; searching for + a single ``$`` in ``'foo\n'`` will find two (empty) matches: one just before + the newline, and one at the end of the string. ``'*'`` Causes the resulting RE to match 0 or more repetitions of the preceding RE, as |