-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Closed
Labels
docsDocumentation in the Doc dirDocumentation in the Doc dir
Description
Documentation
Problematic numbered list from Programming FAQ breaking translated Python documentation, showing in English and emits Sphinx warning even without any translation:
faq/programming.rst:1912:<translated>:3: WARNING: Literal block expected; none found. [docutils]
This happens in these lines (permalink for latest commit from 3.13 so far):
cpython/Doc/faq/programming.rst
Lines 1908 to 1930 in b7ddcc3
1) As recommended by :pep:`8`, an identity test is the preferred way to check | |
for ``None``. This reads like plain English in code and avoids confusion with | |
other objects that may have boolean values that evaluate to false. | |
2) Detecting optional arguments can be tricky when ``None`` is a valid input | |
value. In those situations, you can create a singleton sentinel object | |
guaranteed to be distinct from other objects. For example, here is how | |
to implement a method that behaves like :meth:`dict.pop`:: | |
_sentinel = object() | |
def pop(self, key, default=_sentinel): | |
if key in self: | |
value = self[key] | |
del self[key] | |
return value | |
if default is _sentinel: | |
raise KeyError(key) | |
return default | |
3) Container implementations sometimes need to augment equality tests with | |
identity tests. This prevents the code from being confused by objects such as | |
``float('NaN')`` that are not equal to themselves. |
Linked PRs
Metadata
Metadata
Assignees
Labels
docsDocumentation in the Doc dirDocumentation in the Doc dir
Projects
Status
Done