##// END OF EJS Templates
Statically type OInfo. (#13973)...
Statically type OInfo. (#13973) In view of working with #13860, some cleanup inspect to be properly typed, and using stricter datastructure. Instead of dict we now use dataclasses, this will make sure that fields type and access can be stricter and verified not only at runtime, but by mypy

File last commit:

r27495:1a9d9554
r28166:29b451fc merge
Show More
fixup_whats_new_pr.py
39 lines | 1.1 KiB | text/x-python | PythonLexer
/ tools / fixup_whats_new_pr.py
"""
This tool is used during CI testing to make sure sphinx raise no error.
During development, we like to have whatsnew/pr/*.rst documents to track
individual new features. Unfortunately they other either:
- have no title (sphinx complains)
- are not included in any toctree (sphinx complain)
This fix-them up by "inventing" a title, before building the docs. At release
time, these title and files will anyway be rewritten into the actual release
notes.
"""
from pathlib import Path
def main():
folder = Path("docs/source/whatsnew/pr/")
files = list(folder.glob("*.rst"))
print(files)
for filepath in files:
print("Adding pseudo-title to:", filepath.name)
title = filepath.name[:-4].split("/")[-1].replace("-", " ").capitalize()
data = filepath.read_text(encoding="utf-8")
try:
if data and data.splitlines()[1].startswith('='):
continue
except IndexError:
pass
with filepath.open("w", encoding="utf-8") as f:
f.write(title + "\n")
f.write("=" * len(title) + "\n\n")
f.write(data)
if __name__ == '__main__':
main()