run: make -C Doc/ PYTHON=../python venv
# Use "xvfb-run" since some doctest tests open GUI windows
- name: 'Run documentation doctest'
- run: xvfb-run make -C Doc/ PYTHON=../python SPHINXOPTS="-q" SPHINXERRORHANDLING="-W --keep-going" doctest
+ run: xvfb-run make -C Doc/ PYTHON=../python SPHINXERRORHANDLING="-W --keep-going" doctest
import _tkinter
except ImportError:
_tkinter = None
+# Treat warnings as errors, done here to prevent warnings in Sphinx code from
+# causing spurious test failures.
+import warnings
+warnings.simplefilter('error')
+del warnings
'''
manpages_url = 'https://manpages.debian.org/{path}'
.. function:: fsum(iterable)
Return an accurate floating point sum of values in the iterable. Avoids
- loss of precision by tracking multiple intermediate partial sums::
+ loss of precision by tracking multiple intermediate partial sums:
>>> sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
0.9999999999999999
logarithms. For small floats *x*, the subtraction in ``exp(x) - 1``
can result in a `significant loss of precision
<https://en.wikipedia.org/wiki/Loss_of_significance>`_\; the :func:`expm1`
- function provides a way to compute this quantity to full precision::
+ function provides a way to compute this quantity to full precision:
>>> from math import exp, expm1
>>> exp(1e-5) - 1 # gives result accurate to 11 places
not considered to equal to any other numeric value, including themselves. To check
whether a number is a NaN, use the :func:`isnan` function to test
for NaNs instead of ``is`` or ``==``.
- Example::
+ Example:
>>> import math
>>> math.nan == math.nan
.. deprecated:: 3.11
The :mod:`nntplib` module is deprecated (see :pep:`594` for details).
+.. testsetup::
+
+ import warnings
+ with warnings.catch_warnings():
+ warnings.simplefilter('ignore', category=DeprecationWarning)
+ import nntplib
+
+.. testcleanup::
+
+ try:
+ s.quit()
+ except NameError:
+ pass
+ import sys
+ # Force a warning if any other file imports nntplib
+ sys.modules.pop('nntplib')
+
--------------
This module defines the class :class:`NNTP` which implements the client side of
(direction of movement).
.. doctest::
- :skipif: _tkinter is None
+ :skipif: _tkinter is None or 'always; deprecated method'
>>> turtle.reset()
>>> turtle.shape("circle")
* The tag that is unique to each interpreter is accessible from the :mod:`imp`
module:
- >>> import imp
+ >>> import imp # doctest: +SKIP
>>> imp.get_tag() # doctest: +SKIP
'cpython-32'
be smarter. It is no longer sufficient to simply strip the "c" from a ".pyc"
filename. Instead, use the new functions in the :mod:`imp` module:
- >>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc')
+ >>> imp.source_from_cache('c:/py32/lib/__pycache__/collections.cpython-32.pyc') # doctest: +SKIP
'c:/py32/lib/collections.py'
>>> imp.cache_from_source('c:/py32/lib/collections.py') # doctest: +SKIP
'c:/py32/lib/__pycache__/collections.cpython-32.pyc'