From: Georg Brandl Date: Fri, 25 Feb 2011 10:39:23 +0000 (+0000) Subject: Merged revisions 86881,86887,86913-86915,86933,86943,86960,86964,86974,86980,86996... X-Git-Tag: v2.7.2rc1~312 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=52f839540c27027bff4c65efe704e8691a16b4e0;p=python Merged revisions 86881,86887,86913-86915,86933,86943,86960,86964,86974,86980,86996,87008 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r86881 | georg.brandl | 2010-11-30 08:43:28 +0100 (Di, 30 Nov 2010) | 1 line #10584: fix bad links. ........ r86887 | georg.brandl | 2010-11-30 15:57:54 +0100 (Di, 30 Nov 2010) | 1 line Fix typo. ........ r86913 | georg.brandl | 2010-12-01 16:32:43 +0100 (Mi, 01 Dez 2010) | 1 line Add missing word, and add a better reference to the actual function. ........ r86914 | georg.brandl | 2010-12-01 16:36:33 +0100 (Mi, 01 Dez 2010) | 1 line #10594: fix parameter names in PyList API docs. ........ r86915 | georg.brandl | 2010-12-01 16:44:25 +0100 (Mi, 01 Dez 2010) | 1 line Fix some markup and style in the unittest docs. ........ r86933 | georg.brandl | 2010-12-02 19:02:01 +0100 (Do, 02 Dez 2010) | 1 line #10597: fix Py_SetPythonHome docs by pointing to where the meaning of PYTHONHOME is already documented. ........ r86943 | georg.brandl | 2010-12-02 23:35:25 +0100 (Do, 02 Dez 2010) | 1 line Re-add accidentally removed line. ........ r86960 | georg.brandl | 2010-12-03 08:55:44 +0100 (Fr, 03 Dez 2010) | 1 line #10360: catch TypeError in WeakSet.__contains__, just like WeakKeyDictionary does. ........ r86964 | georg.brandl | 2010-12-03 10:58:38 +0100 (Fr, 03 Dez 2010) | 1 line #10549: fix interface of docclass() for text documenter. ........ r86974 | georg.brandl | 2010-12-03 16:30:09 +0100 (Fr, 03 Dez 2010) | 1 line Markup consistency fixes. ........ r86980 | georg.brandl | 2010-12-03 18:19:27 +0100 (Fr, 03 Dez 2010) | 1 line Fix punctuation. ........ r86996 | georg.brandl | 2010-12-03 20:56:42 +0100 (Fr, 03 Dez 2010) | 1 line Fix indentation. ........ r87008 | georg.brandl | 2010-12-04 10:04:04 +0100 (Sa, 04 Dez 2010) | 1 line Fix typo. ........ --- diff --git a/Doc/c-api/init.rst b/Doc/c-api/init.rst index 5add7fea6e..fd6a9a238d 100644 --- a/Doc/c-api/init.rst +++ b/Doc/c-api/init.rst @@ -319,8 +319,9 @@ Process-wide parameters .. cfunction:: void Py_SetPythonHome(char *home) Set the default "home" directory, that is, the location of the standard - Python libraries. The libraries are searched in - :file:`{home}/lib/python{version}` and :file:`{home}/lib/python{version}`. + Python libraries. See :envvar:`PYTHONHOME` for the meaning of the + argument string. + The argument should point to a zero-terminated character string in static storage whose contents will not change for the duration of the program's execution. No code in the Python interpreter will change the contents of diff --git a/Doc/c-api/list.rst b/Doc/c-api/list.rst index 242b4e6e6c..d24aa723f7 100644 --- a/Doc/c-api/list.rst +++ b/Doc/c-api/list.rst @@ -42,7 +42,7 @@ List Objects .. note:: - If *length* is greater than zero, the returned list object's items are + If *len* is greater than zero, the returned list object's items are set to ``NULL``. Thus you cannot use abstract API functions such as :cfunc:`PySequence_SetItem` or expose the object to Python code before setting all items to a real object with :cfunc:`PyList_SetItem`. @@ -75,9 +75,9 @@ List Objects .. cfunction:: PyObject* PyList_GetItem(PyObject *list, Py_ssize_t index) - Return the object at position *pos* in the list pointed to by *p*. The + Return the object at position *index* in the list pointed to by *list*. The position must be positive, indexing from the end of the list is not - supported. If *pos* is out of bounds, return *NULL* and set an + supported. If *index* is out of bounds, return *NULL* and set an :exc:`IndexError` exception. .. versionchanged:: 2.5 diff --git a/Doc/library/difflib.rst b/Doc/library/difflib.rst index d51e230f69..225b486d6f 100644 --- a/Doc/library/difflib.rst +++ b/Doc/library/difflib.rst @@ -368,7 +368,6 @@ The :class:`SequenceMatcher` class has this constructor: :class:`SequenceMatcher` objects have the following methods: - .. method:: set_seqs(a, b) Set the two sequences to be compared. diff --git a/Doc/library/logging.rst b/Doc/library/logging.rst index aa3a6aa9fb..9898d08597 100644 --- a/Doc/library/logging.rst +++ b/Doc/library/logging.rst @@ -539,10 +539,7 @@ what handlers are most appropriate for their application: if you add handlers unit tests and deliver logs which suit their requirements. .. versionadded:: 2.7 - -The :class:`NullHandler` class was not present in previous versions, but is now -included, so that it need not be defined in library code. - + The :class:`NullHandler` class. Logging Levels @@ -672,8 +669,7 @@ provided: more information. .. versionadded:: 2.7 - -The :class:`NullHandler` class was not present in previous versions. + The :class:`NullHandler` class. The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler` classes are defined in the core logging package. The other handlers are @@ -932,6 +928,7 @@ functions. which need to use custom logger behavior. + .. seealso:: :pep:`282` - A Logging System @@ -1944,6 +1941,7 @@ sends logging output to a disk file. It inherits the output functionality from Outputs the record to the file. + .. _null-handler: NullHandler @@ -1955,12 +1953,10 @@ The :class:`NullHandler` class, located in the core :mod:`logging` package, does not do any formatting or output. It is essentially a "no-op" handler for use by library developers. - .. class:: NullHandler() Returns a new instance of the :class:`NullHandler` class. - .. method:: emit(record) This method does nothing. @@ -2794,6 +2790,7 @@ wire). .. versionchanged:: 2.5 *func* was added. + .. _logger-adapter: LoggerAdapter Objects @@ -2803,22 +2800,21 @@ LoggerAdapter Objects :class:`LoggerAdapter` instances are used to conveniently pass contextual information into logging calls. For a usage example , see the section on -`adding contextual information to your logging output`__. +:ref:`adding contextual information to your logging output `. -__ context-info_ .. class:: LoggerAdapter(logger, extra) - Returns an instance of :class:`LoggerAdapter` initialized with an - underlying :class:`Logger` instance and a dict-like object. + Returns an instance of :class:`LoggerAdapter` initialized with an + underlying :class:`Logger` instance and a dict-like object. - .. method:: process(msg, kwargs) + .. method:: process(msg, kwargs) - Modifies the message and/or keyword arguments passed to a logging call in - order to insert contextual information. This implementation takes the object - passed as *extra* to the constructor and adds it to *kwargs* using key - 'extra'. The return value is a (*msg*, *kwargs*) tuple which has the - (possibly modified) versions of the arguments passed in. + Modifies the message and/or keyword arguments passed to a logging call in + order to insert contextual information. This implementation takes the object + passed as *extra* to the constructor and adds it to *kwargs* using key + 'extra'. The return value is a (*msg*, *kwargs*) tuple which has the + (possibly modified) versions of the arguments passed in. In addition to the above, :class:`LoggerAdapter` supports all the logging methods of :class:`Logger`, i.e. :meth:`debug`, :meth:`info`, :meth:`warning`, diff --git a/Doc/library/pickle.rst b/Doc/library/pickle.rst index 963468dffb..22165f9d24 100644 --- a/Doc/library/pickle.rst +++ b/Doc/library/pickle.rst @@ -53,7 +53,7 @@ general :mod:`pickle` should always be the preferred way to serialize Python objects. :mod:`marshal` exists primarily to support Python's :file:`.pyc` files. -The :mod:`pickle` module differs from :mod:`marshal` several significant ways: +The :mod:`pickle` module differs from :mod:`marshal` in several significant ways: * The :mod:`pickle` module keeps track of the objects it has already serialized, so that later references to the same object won't be serialized again. diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst index 657cab28b0..333b399f3b 100644 --- a/Doc/library/unittest.rst +++ b/Doc/library/unittest.rst @@ -1752,10 +1752,8 @@ Loading and running tests load_tests Protocol ################### - .. versionadded:: 2.7 - Modules or packages can customize how tests are loaded from them during normal test runs or test discovery by implementing a function called ``load_tests``. diff --git a/Doc/library/zipfile.rst b/Doc/library/zipfile.rst index 48f590007b..51240ba50a 100644 --- a/Doc/library/zipfile.rst +++ b/Doc/library/zipfile.rst @@ -176,8 +176,8 @@ ZipFile Objects .. note:: The file-like object is read-only and provides the following methods: - :meth:`read`, :meth:`readline`, :meth:`readlines`, :meth:`__iter__`, - :meth:`next`. + :meth:`!read`, :meth:`!readline`, :meth:`!readlines`, :meth:`!__iter__`, + :meth:`!next`. .. note:: diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index da67dd335e..067a3d68e2 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -1392,8 +1392,8 @@ groups from right to left). true numerically due to roundoff. For example, and assuming a platform on which a Python float is an IEEE 754 double-precision number, in order that ``-1e-100 % 1e100`` have the same sign as ``1e100``, the computed result is ``-1e-100 + - 1e100``, which is numerically exactly equal to ``1e100``. Function :func:`fmod` - in the :mod:`math` module returns a result whose sign matches the sign of the + 1e100``, which is numerically exactly equal to ``1e100``. The function + :func:`math.fmod` returns a result whose sign matches the sign of the first argument instead, and so returns ``-1e-100`` in this case. Which approach is more appropriate depends on the application. @@ -1423,7 +1423,8 @@ groups from right to left). the :keyword:`is` operator, like those involving comparisons between instance methods, or constants. Check their documentation for more info. -.. [#] The ``%`` is also used for string formatting; the same precedence applies. +.. [#] The ``%`` operator is also used for string formatting; the same + precedence applies. .. [#] The power operator ``**`` binds less tightly than an arithmetic or bitwise unary operator on its right, that is, ``2**-1`` is ``0.5``. diff --git a/Lib/_weakrefset.py b/Lib/_weakrefset.py index 90e07d4768..ffa5e31578 100644 --- a/Lib/_weakrefset.py +++ b/Lib/_weakrefset.py @@ -66,7 +66,11 @@ class WeakSet(object): return sum(x() is not None for x in self.data) def __contains__(self, item): - return ref(item) in self.data + try: + wr = ref(item) + except TypeError: + return False + return wr in self.data def __reduce__(self): return (self.__class__, (list(self),), diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 90fa1b364b..ff9a5f4ec8 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1113,7 +1113,7 @@ class TextDoc(Doc): result = result + self.section('CREDITS', str(object.__credits__)) return result - def docclass(self, object, name=None, mod=None): + def docclass(self, object, name=None, mod=None, *ignored): """Produce text documentation for a given class object.""" realname = object.__name__ name = name or realname diff --git a/Lib/test/test_weakset.py b/Lib/test/test_weakset.py index b4774ceaec..89c2822b6e 100644 --- a/Lib/test/test_weakset.py +++ b/Lib/test/test_weakset.py @@ -62,7 +62,8 @@ class TestWeakSet(unittest.TestCase): def test_contains(self): for c in self.letters: self.assertEqual(c in self.s, c in self.d) - self.assertRaises(TypeError, self.s.__contains__, [[]]) + # 1 is not weakref'able, but that TypeError is caught by __contains__ + self.assertNotIn(1, self.s) self.assertIn(self.obj, self.fs) del self.obj self.assertNotIn(SomeClass('F'), self.fs) diff --git a/Misc/NEWS b/Misc/NEWS index f1536c2877..7e796eff59 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -41,6 +41,13 @@ Library 4GB, even on 32-bit builds. Initial patch by Ross Lagerwall, adapted for 32-bit Windows. +- Issue #10360: In WeakSet, do not raise TypeErrors when testing for + membership of non-weakrefable objects. + +- Issue #10549: Fix pydoc traceback when text-documenting certain classes. + +- Issue #940286: pydoc.Helper.help() ignores input/output init parameters. + - Issue #11171: Fix detection of config/Makefile when --prefix != --exec-prefix, which caused Python to not start.