bpo-42843: Keep Sphinx 1.8 and Sphinx 2 compatibility (GH-24282) · python/cpython@5c1f15b

GitHub

@@ -719,51 +719,36 @@ above.

719719An example's doctest directives modify doctest's behavior for that single

720720example. Use ``+`` to enable the named behavior, or ``-`` to disable it.

721721722-For example, this test passes:

722+For example, this test passes::

723723724-.. doctest::

725-:no-trim-doctest-flags:

726-727- >>> print(list(range(20))) # doctest: +NORMALIZE_WHITESPACE

724+ >>> print(list(range(20))) # doctest: +NORMALIZE_WHITESPACE

728725 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9,

729726 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

730727731728Without the directive it would fail, both because the actual output doesn't have

732729two blanks before the single-digit list elements, and because the actual output

733730is on a single line. This test also passes, and also requires a directive to do

734-so:

735-736-.. doctest::

737-:no-trim-doctest-flags:

731+so::

738732739- >>> print(list(range(20))) # doctest: +ELLIPSIS

733+ >>> print(list(range(20))) # doctest: +ELLIPSIS

740734 [0, 1, ..., 18, 19]

741735742736Multiple directives can be used on a single physical line, separated by

743-commas:

737+commas::

744738745-.. doctest::

746-:no-trim-doctest-flags:

747-748- >>> print(list(range(20))) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE

739+ >>> print(list(range(20))) # doctest: +ELLIPSIS, +NORMALIZE_WHITESPACE

749740 [0, 1, ..., 18, 19]

750741751742If multiple directive comments are used for a single example, then they are

752-combined:

753-754-.. doctest::

755-:no-trim-doctest-flags:

743+combined::

756744757- >>> print(list(range(20))) # doctest: +ELLIPSIS

758- ... # doctest: +NORMALIZE_WHITESPACE

745+ >>> print(list(range(20))) # doctest: +ELLIPSIS

746+ ... # doctest: +NORMALIZE_WHITESPACE

759747 [0, 1, ..., 18, 19]

760748761749As the previous example shows, you can add ``...`` lines to your example

762750containing only directives. This can be useful when an example is too long for

763-a directive to comfortably fit on the same line:

764-765-.. doctest::

766-:no-trim-doctest-flags:

751+a directive to comfortably fit on the same line::

767752768753 >>> print(list(range(5)) + list(range(10, 20)) + list(range(30, 40)))

769754 ... # doctest: +ELLIPSIS

@@ -808,23 +793,18 @@ instead. Another is to do ::

808793809794There are others, but you get the idea.

810795811-Another bad idea is to print things that embed an object address, like

812-813-.. doctest::

796+Another bad idea is to print things that embed an object address, like ::

814797815- >>> id(1.0) # certain to fail some of the time # doctest: +SKIP

798+ >>> id(1.0) # certain to fail some of the time

816799 7948648

817800 >>> class C: pass

818- >>> C() # the default repr() for instances embeds an address # doctest: +SKIP

819-<C object at 0x00AC18F0>

820-821-The :const:`ELLIPSIS` directive gives a nice approach for the last example:

801+ >>> C() # the default repr() for instances embeds an address

802+ <__main__.C instance at 0x00AC18F0>

822803823-.. doctest::

824-:no-trim-doctest-flags:

804+The :const:`ELLIPSIS` directive gives a nice approach for the last example::

825805826- >>> C() #doctest: +ELLIPSIS

827-<C object at 0x...>

806+ >>> C() #doctest: +ELLIPSIS

807+ <__main__.C instance at 0x...>

828808829809Floating-point numbers are also subject to small output variations across

830810platforms, because Python defers to the platform C library for float formatting,