File: fixup_whats_new_pr.py

package info (click to toggle)
ipython 7.20.0-1%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 11,100 kB
  • sloc: python: 36,813; sh: 379; makefile: 243
file content (46 lines) | stat: -rw-r--r-- 1,168 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
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.
"""

import glob


def main():
    folder = 'docs/source/whatsnew/pr/'
    assert folder.endswith('/')
    files = glob.glob(folder+'*.rst')
    print(files)

    for filename in files:
        print('Adding pseudo-title to:', filename)
        title = filename[:-4].split('/')[-1].replace('-', ' ').capitalize()

        with open(filename) as f:
            data = f.read()
        try:
            if data and data.splitlines()[1].startswith('='):
                continue
        except IndexError:
            pass

        with open(filename, 'w') as f:
            f.write(title+'\n')
            f.write('='* len(title)+'\n\n')
            f.write(data)

if __name__ == '__main__':
    main()