Python 3.8.0b4
diff --git a/Lib/pydoc_data/topics.py b/Lib/pydoc_data/topics.py
index c3049b9..8992ea9 100644
--- a/Lib/pydoc_data/topics.py
+++ b/Lib/pydoc_data/topics.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
-# Autogenerated by Sphinx on Mon Jul 29 15:22:27 2019
+# Autogenerated by Sphinx on Thu Aug 29 23:57:58 2019
topics = {'assert': 'The "assert" statement\n'
'**********************\n'
'\n'
@@ -808,21 +808,34 @@
'whose name is\n'
'the key of the property in the owner class’ "__dict__".\n'
'\n'
- 'object.__get__(self, instance, owner)\n'
+ 'object.__get__(self, instance, owner=None)\n'
'\n'
' Called to get the attribute of the owner class (class '
'attribute\n'
' access) or of an instance of that class (instance '
'attribute\n'
- ' access). *owner* is always the owner class, while '
- '*instance* is the\n'
- ' instance that the attribute was accessed through, or '
- '"None" when\n'
- ' the attribute is accessed through the *owner*. This '
- 'method should\n'
- ' return the (computed) attribute value or raise an '
- '"AttributeError"\n'
- ' exception.\n'
+ ' access). The optional *owner* argument is the owner '
+ 'class, while\n'
+ ' *instance* is the instance that the attribute was '
+ 'accessed through,\n'
+ ' or "None" when the attribute is accessed through the '
+ '*owner*.\n'
+ '\n'
+ ' This method should return the computed attribute '
+ 'value or raise an\n'
+ ' "AttributeError" exception.\n'
+ '\n'
+ ' **PEP 252** specifies that "__get__()" is callable '
+ 'with one or two\n'
+ ' arguments. Python’s own built-in descriptors support '
+ 'this\n'
+ ' specification; however, it is likely that some '
+ 'third-party tools\n'
+ ' have descriptors that require both arguments. '
+ 'Python’s own\n'
+ ' "__getattribute__()" implementation always passes in '
+ 'both arguments\n'
+ ' whether they are required or not.\n'
'\n'
'object.__set__(self, instance, value)\n'
'\n'
@@ -830,6 +843,12 @@
'of the owner\n'
' class to a new value, *value*.\n'
'\n'
+ ' Note, adding "__set__()" or "__delete__()" changes '
+ 'the kind of\n'
+ ' descriptor to a “data descriptor”. See Invoking '
+ 'Descriptors for\n'
+ ' more details.\n'
+ '\n'
'object.__delete__(self, instance)\n'
'\n'
' Called to delete the attribute on an instance '
@@ -1829,6 +1848,12 @@
'all false.\n'
' This behavior is compliant with IEEE 754.\n'
'\n'
+ '* "None" and "NotImplemented" are singletons. **PEP 8** '
+ 'advises\n'
+ ' that comparisons for singletons should always be done with '
+ '"is" or\n'
+ ' "is not", never the equality operators.\n'
+ '\n'
'* Binary sequences (instances of "bytes" or "bytearray") can '
'be\n'
' compared within and across their types. They compare\n'
@@ -1854,38 +1879,13 @@
' these types raises "TypeError".\n'
'\n'
' Sequences compare lexicographically using comparison of\n'
- ' corresponding elements, whereby reflexivity of the elements '
- 'is\n'
- ' enforced.\n'
- '\n'
- ' In enforcing reflexivity of elements, the comparison of '
- 'collections\n'
- ' assumes that for a collection element "x", "x == x" is '
- 'always true.\n'
- ' Based on that assumption, element identity is compared '
- 'first, and\n'
- ' element comparison is performed only for distinct '
- 'elements. This\n'
- ' approach yields the same result as a strict element '
- 'comparison\n'
- ' would, if the compared elements are reflexive. For '
- 'non-reflexive\n'
- ' elements, the result is different than for strict element\n'
- ' comparison, and may be surprising: The non-reflexive '
- 'not-a-number\n'
- ' values for example result in the following comparison '
- 'behavior when\n'
- ' used in a list:\n'
- '\n'
- " >>> nan = float('NaN')\n"
- ' >>> nan is nan\n'
- ' True\n'
- ' >>> nan == nan\n'
- ' False <-- the defined non-reflexive '
- 'behavior of NaN\n'
- ' >>> [nan] == [nan]\n'
- ' True <-- list enforces reflexivity and '
- 'tests identity first\n'
+ ' corresponding elements. The built-in containers typically '
+ 'assume\n'
+ ' identical objects are equal to themselves. That lets them '
+ 'bypass\n'
+ ' equality tests for identical objects to improve performance '
+ 'and to\n'
+ ' maintain their internal invariants.\n'
'\n'
' Lexicographical comparison between built-in collections '
'works as\n'
@@ -3126,13 +3126,15 @@
'returning\n'
' it.\n'
'\n'
- ' If "__new__()" returns an instance of *cls*, then the '
- 'new\n'
- ' instance’s "__init__()" method will be invoked like\n'
- ' "__init__(self[, ...])", where *self* is the new '
- 'instance and the\n'
- ' remaining arguments are the same as were passed to '
- '"__new__()".\n'
+ ' If "__new__()" is invoked during object construction and '
+ 'it returns\n'
+ ' an instance or subclass of *cls*, then the new '
+ 'instance’s\n'
+ ' "__init__()" method will be invoked like '
+ '"__init__(self[, ...])",\n'
+ ' where *self* is the new instance and the remaining '
+ 'arguments are\n'
+ ' the same as were passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, '
'then the new\n'
@@ -3500,10 +3502,10 @@
' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n'
'\n'
- ' Note: By default, the "__hash__()" values of str, bytes '
- 'and\n'
- ' datetime objects are “salted” with an unpredictable '
- 'random value.\n'
+ ' Note: By default, the "__hash__()" values of str and '
+ 'bytes\n'
+ ' objects are “salted” with an unpredictable random '
+ 'value.\n'
' Although they remain constant within an individual '
'Python\n'
' process, they are not predictable between repeated '
@@ -7841,13 +7843,15 @@
'returning\n'
' it.\n'
'\n'
- ' If "__new__()" returns an instance of *cls*, then the '
- 'new\n'
- ' instance’s "__init__()" method will be invoked like\n'
- ' "__init__(self[, ...])", where *self* is the new instance '
- 'and the\n'
- ' remaining arguments are the same as were passed to '
- '"__new__()".\n'
+ ' If "__new__()" is invoked during object construction and '
+ 'it returns\n'
+ ' an instance or subclass of *cls*, then the new '
+ 'instance’s\n'
+ ' "__init__()" method will be invoked like "__init__(self[, '
+ '...])",\n'
+ ' where *self* is the new instance and the remaining '
+ 'arguments are\n'
+ ' the same as were passed to the object constructor.\n'
'\n'
' If "__new__()" does not return an instance of *cls*, then '
'the new\n'
@@ -8212,10 +8216,10 @@
' hashable by an "isinstance(obj, '
'collections.abc.Hashable)" call.\n'
'\n'
- ' Note: By default, the "__hash__()" values of str, bytes '
- 'and\n'
- ' datetime objects are “salted” with an unpredictable '
- 'random value.\n'
+ ' Note: By default, the "__hash__()" values of str and '
+ 'bytes\n'
+ ' objects are “salted” with an unpredictable random '
+ 'value.\n'
' Although they remain constant within an individual '
'Python\n'
' process, they are not predictable between repeated '
@@ -8440,21 +8444,34 @@
'whose name is\n'
'the key of the property in the owner class’ "__dict__".\n'
'\n'
- 'object.__get__(self, instance, owner)\n'
+ 'object.__get__(self, instance, owner=None)\n'
'\n'
' Called to get the attribute of the owner class (class '
'attribute\n'
' access) or of an instance of that class (instance '
'attribute\n'
- ' access). *owner* is always the owner class, while '
- '*instance* is the\n'
- ' instance that the attribute was accessed through, or '
- '"None" when\n'
- ' the attribute is accessed through the *owner*. This '
- 'method should\n'
- ' return the (computed) attribute value or raise an '
- '"AttributeError"\n'
- ' exception.\n'
+ ' access). The optional *owner* argument is the owner '
+ 'class, while\n'
+ ' *instance* is the instance that the attribute was '
+ 'accessed through,\n'
+ ' or "None" when the attribute is accessed through the '
+ '*owner*.\n'
+ '\n'
+ ' This method should return the computed attribute value or '
+ 'raise an\n'
+ ' "AttributeError" exception.\n'
+ '\n'
+ ' **PEP 252** specifies that "__get__()" is callable with '
+ 'one or two\n'
+ ' arguments. Python’s own built-in descriptors support '
+ 'this\n'
+ ' specification; however, it is likely that some '
+ 'third-party tools\n'
+ ' have descriptors that require both arguments. Python’s '
+ 'own\n'
+ ' "__getattribute__()" implementation always passes in both '
+ 'arguments\n'
+ ' whether they are required or not.\n'
'\n'
'object.__set__(self, instance, value)\n'
'\n'
@@ -8462,6 +8479,12 @@
'the owner\n'
' class to a new value, *value*.\n'
'\n'
+ ' Note, adding "__set__()" or "__delete__()" changes the '
+ 'kind of\n'
+ ' descriptor to a “data descriptor”. See Invoking '
+ 'Descriptors for\n'
+ ' more details.\n'
+ '\n'
'object.__delete__(self, instance)\n'
'\n'
' Called to delete the attribute on an instance *instance* '
@@ -10030,13 +10053,15 @@
'\n'
' Return true if there are only whitespace characters in '
'the string\n'
- ' and there is at least one character, false otherwise. '
- 'Whitespace\n'
- ' characters are those characters defined in the Unicode '
- 'character\n'
- ' database as “Other” or “Separator” and those with '
- 'bidirectional\n'
- ' property being one of “WS”, “B”, or “S”.\n'
+ ' and there is at least one character, false otherwise.\n'
+ '\n'
+ ' A character is *whitespace* if in the Unicode character '
+ 'database\n'
+ ' (see "unicodedata"), either its general category is '
+ '"Zs"\n'
+ ' (“Separator, space”), or its bidirectional class is one '
+ 'of "WS",\n'
+ ' "B", or "S".\n'
'\n'
'str.istitle()\n'
'\n'
@@ -10725,13 +10750,9 @@
'\n'
' Changed in version 3.6: Unrecognized escape sequences produce '
'a\n'
- ' "DeprecationWarning".\n'
- '\n'
- ' Changed in version 3.8: Unrecognized escape sequences produce '
+ ' "DeprecationWarning". In a future Python version they will be '
'a\n'
- ' "SyntaxWarning". In some future version of Python they will '
- 'be a\n'
- ' "SyntaxError".\n'
+ ' "SyntaxWarning" and eventually a "SyntaxError".\n'
'\n'
'Even in a raw literal, quotes can be escaped with a backslash, '
'but the\n'