-
-
Notifications
You must be signed in to change notification settings - Fork 18.4k
DOC: Updating capitalization of doc/source/development #33121
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
Changes from 4 commits
194d5a7
3d1960c
9da1e8a
55587f7
048fb78
d1ae9ea
83280b7
4314d3c
937b5df
589b0fe
f09689c
e71cffd
dc839c5
f354797
62d5164
f8b496c
5d01189
1685076
06dc1cd
a11dc2b
e55064d
fc1009d
eba0d13
726bd4c
0beeda1
f48b2dd
5ba464c
7c09610
940109d
35b1a37
5f0512e
7767d3c
888aa10
5fc4dcc
0ad8143
3ea43a5
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -100,8 +100,6 @@ | |
"BusinessHour", | ||
"BusinessDay", | ||
"DateOffset", | ||
"ExtensionDtype", | ||
"ExtensionArray", | ||
} | ||
|
||
CAP_EXCEPTIONS_DICT = {word.lower(): word for word in CAPITALIZATION_EXCEPTIONS} | ||
|
@@ -177,6 +175,7 @@ def find_titles(rst_file: str) -> Generator[Tuple[str, int], None, None]: | |
len(line_chars) == 1 | ||
and line_chars.pop() in symbols | ||
and len(line) == len(previous_line) | ||
and previous_line[0] != ":" | ||
): | ||
yield re.sub(r"[`\*_]", "", previous_line), i | ||
previous_line = line | ||
|
@@ -233,6 +232,8 @@ def main(source_paths: List[str], output_format: str) -> bool: | |
|
||
for filename in find_rst_files(source_paths): | ||
for title, line_number in find_titles(filename): | ||
if ":class" in title: | ||
print(title) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this should be: if ":class:" in title:
continue There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Horrible... I forgot to remove it. Correcting it right away! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm Im not so much used to git yet.. Apart from that mistake, I didn't roll back previous changes that I made, I thought it will be ok. I don't know if the changes i didn't remove will fail There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Or if it conflicts with previous PR or something |
||
if title != correct_title_capitalization(title): | ||
print( | ||
f"""{filename}:{line_number}:{err_msg} "{title}" to "{ | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry, I think I suggested this approach myself, but I see a problem now. This will skip the whole line from validation, and I see we use a mix of these
:class:
directives and regular text in some titles.Instead of skipping the line here, I think we should update the condition in line 139. So, we check that
word
is not one of the exceptions, and also, it doesn't start with:
. We could use a regex probably, but let's start simple, and see if it's enough.What do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem is that:
First of all this part of code line 180
removes "`" from the title. So when function checks if title is correct, it will already be modified. So this is the main problem.
Secondly, line 129:
correct_title: str = re.sub(r"^\W*", "", title).capitalize()
removes all non word characters at the beginning from the desired correct title that we want to keep, so ":" is not kept as being part of the correct title
Thirdly, this line, number 136
word_list = re.split(r"\W", removed_https_title)
removes all non word characters from the list to analyse. So ":" don't appear anymore.
By the way, code in line 180 causes problems because it also removes "_" which is present in documentation like > code_style.rst line 21
Using foo.__class__
So what I suggest is to modify in script "validate_rst_title_capitalization.py" from line 180 on:
NB: I replace "`" by {backtick} as it causes trouble to display it as code
yield re.sub(r"[{backtick}\*_]", "", previous_line), i
to:
if previous_line[0] != ":": yield re.sub(r"[{backtick}\*_]", "", previous_line), i else: yield re.sub(r"[\*_]", "", previous_line), i
in order to keep the "`" if title begins by a ":"
And to add in "validate_rst_title_capitalization.py" line 126:
if title[0] == ":": return title
So that if title begins by ":" it considers title to be valid no matter what.
Or to simply add in "validate_rst_title_capitalization.py" line 126:
if title[0] == ":": return title
for the same reason.
Note that there is still a problem with:
That doesn't keep "_" in the titles