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

Conversation

ezio-melotti
Copy link
Member

@ezio-melotti ezio-melotti commented Oct 15, 2023

@@ -1107,7 +1107,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.

@hugovk hugovk removed the needs backport to 3.11 only security fixes label Apr 11, 2024
@serhiy-storchaka serhiy-storchaka added the needs backport to 3.13 bugs and security fixes label May 9, 2024
@willingc
Copy link
Contributor

willingc commented Nov 4, 2024

@ezio-melotti @hugovk Is this something that we can move forward? Or should it be closed?

@AA-Turner AA-Turner requested a review from willingc as a code owner November 4, 2024 21:05
@AA-Turner
Copy link
Member

The cited issues were with Sphinx 6 and earlier, which we have now dropped.

@@ -1107,7 +1107,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.

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.

@@ -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.

Comment on lines +1147 to +1148
2. Once all positional patterns have been converted to keyword patterns,
the match proceeds as if there were only keyword patterns.
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.

Copy link
Contributor

@willingc willingc left a comment

Choose a reason for hiding this comment

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

Looks good to me. Thanks @ezio-melotti and @AA-Turner for moving this forward.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting merge docs Documentation in the Doc dir needs backport to 3.12 bug and security fixes needs backport to 3.13 bugs and security fixes skip news
Projects
Status: Todo
Development

Successfully merging this pull request may close these issues.

5 participants