Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-110631: Fix wrong reST markup and list numbers. #110885

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Doc/library/difflib.rst
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ Finally, we compare the two:

>>> result = list(d.compare(text1, text2))

``result`` is a list of strings, so let's pretty-print it:
``result`` is a list of strings, so let's pretty-print it::

>>> from pprint import pprint
>>> pprint(result)
Expand All @@ -735,7 +735,7 @@ Finally, we compare the two:
'? ++++ ^ ^\n',
'+ 5. Flat is better than nested.\n']

As a single multi-line string it looks like this:
As a single multi-line string it looks like this::

>>> import sys
>>> sys.stdout.writelines(result)
Expand Down
10 changes: 5 additions & 5 deletions Doc/reference/compound_stmts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1108,7 +1108,7 @@ subject value:
If only keyword patterns are present, they are processed as follows,
one by one:

I. The keyword is looked up as an attribute on the subject.
1. The keyword is looked up as an attribute on the subject.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I expect the different numbering style (Roman numerals) was used here to differentiate this inner numbered list from the outer one.

Before

image

After

image

Can we keep it them as Roman numerals, but fix the formatting?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sphinx <7 doesn't seem to support them, so they are actually just regular paragraphs starting with I. .... Letters like a. b. c. ... are also not supported, so we only have numbers left and have to rely on the indentation to distinguish the levels.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see.

Well, we need to keep support for older Sphinx for the benefit of Linux distros (and are testing it on CI), but can we use Sphinx 7 for our actual main build and deploy?

The Roman numerals won't cause any errors for for Sphinx <7, and they'll be better rendered for for Sphinx 7.

Re: #99380 and cc @AA-Turner.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should be able to fix the indentation/rendering of the nested lists while keeping the roman numerals, the only issue is that since they are rendered as <p>s rather than <li>s, it's technically incorrect (at least on Sphinx <7). Not sure if that matters though (maybe for screen readers or similar cases?).

Copy link
Member Author

@ezio-melotti ezio-melotti Oct 16, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually if I fix it for <7, once we upgrade to 7 it will break again.

On <7 I could do:

I. The keyword is looked up as an attribute on the subject.

* ...
* ...

which will be seen as a paragraph followed by a list, but on 7 it would have to be:

I. The keyword is looked up as an attribute on the subject.

   * ...
   * ...

since it will be seen as a list item followed by a sublist that needs to be indented.

If I leave the indentation on <7, it will render an additional blockquote around the sublist, and it will cause sphinx-lint to complain, so switching to numbers might still be the best compromise.

Copy link
Member

@hugovk hugovk Oct 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't mind too much if the display isn't perfect for <7, as long as it still builds and looks reasonable.

Then we can use 7 for our deploys, and sphinx-lint will be happy too.

Would that work?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sphinx-lint will be sad on 7 too, since the checker currently ignores alphabetic lists (like Sphinx 6 does) and sees this as an incorrectly indented list under a paragraph, regardless of the Sphinx version used.

I tried adding support for alphabetic lists, but it's a can of worms with many false positives.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, maybe we should ignore the Sphinx Lint warning here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. The keyword is looked up as an attribute on the subject.
I. The keyword is looked up as an attribute on the subject.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't looked into this in a while, but if possible we should find a solution that is both rendered correctly and that is not reported by sphinx-lint as error.
Fixing sphinx-lint is also an option if the error is reported mistakenly, but avoiding alphabetic lists and roman numerals might still be a simpler solution.


* If this raises an exception other than :exc:`AttributeError`, the
exception bubbles up.
Expand All @@ -1120,13 +1120,13 @@ subject value:
pattern fails; if this succeeds, the match proceeds to the next keyword.


II. If all keyword patterns succeed, the class pattern succeeds.
2. If all keyword patterns succeed, the class pattern succeeds.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. If all keyword patterns succeed, the class pattern succeeds.
II. If all keyword patterns succeed, the class pattern succeeds.


If any positional patterns are present, they are converted to keyword
patterns using the :data:`~object.__match_args__` attribute on the class
``name_or_attr`` before matching:

I. The equivalent of ``getattr(cls, "__match_args__", ())`` is called.
1. The equivalent of ``getattr(cls, "__match_args__", ())`` is called.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
1. The equivalent of ``getattr(cls, "__match_args__", ())`` is called.
I. The equivalent of ``getattr(cls, "__match_args__", ())`` is called.


* If this raises an exception, the exception bubbles up.

Expand All @@ -1144,8 +1144,8 @@ subject value:

.. seealso:: :ref:`class-pattern-matching`

II. Once all positional patterns have been converted to keyword patterns,
the match proceeds as if there were only keyword patterns.
2. Once all positional patterns have been converted to keyword patterns,
the match proceeds as if there were only keyword patterns.
Comment on lines +1147 to +1148
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
2. Once all positional patterns have been converted to keyword patterns,
the match proceeds as if there were only keyword patterns.
II. Once all positional patterns have been converted to keyword patterns,
the match proceeds as if there were only keyword patterns.


For the following built-in types the handling of positional subpatterns is
different:
Expand Down
Loading