Changeset - a188803df37e
[Not reviewed]
default
0 1 0
Thomas De Schampheleire - 7 years ago 2018-12-30 11:45:28
thomas.de_schampheleire@nokia.com
scripts: docs-headings: improve performance by grouping 'hg diff' invocations

With SSD, this change reduces the execution time of this script from 8 to
0.5 seconds
1 file changed with 5 insertions and 4 deletions:
0 comments (0 inline, 0 general)
scripts/docs-headings.py
Show inline comments
 
@@ -27,14 +27,15 @@ pystyles = ['#', '*', '=', '-', '^', '"'
 

	
 
# match on a header line underlined with one of the valid characters
 
headermatch = re.compile(r'''\n*(.+)\n([][!"#$%&'()*+,./:;<=>?@\\^_`{|}~-])\2{2,}\n+''', flags=re.MULTILINE)
 

	
 

	
 
def main():
 
    for fn in subprocess.check_output(['hg', 'loc', 'set:**.rst+kallithea/i18n/how_to']).splitlines():
 
        print 'processing %s:' % fn
 
    filenames = subprocess.check_output(['hg', 'loc', 'set:**.rst+kallithea/i18n/how_to']).splitlines()
 
    for fn in filenames:
 
        print 'processing %s' % fn
 
        s = open(fn).read()
 

	
 
        # find levels and their styles
 
        lastpos = 0
 
        styles = []
 
        for markup in headermatch.findall(s):
 
@@ -69,11 +70,11 @@ def main():
 
        s = re.sub(r'''(\n.+\n([][!"#$%&'()*+,./:;<=>?@\\^_`{|}~-])\2{2,}\n\n\n)\n*''', r'\1', s, flags=re.MULTILINE)
 
        # fix trailing space and spacing before link sections
 
        s = s.strip() + '\n'
 
        s = re.sub(r'''\n+((?:\.\. _[^\n]*\n)+)$''', r'\n\n\n\1', s)
 

	
 
        open(fn, 'w').write(s)
 
        print subprocess.check_output(['hg', 'diff', fn])
 
        print
 

	
 
    print subprocess.check_output(['hg', 'diff'] + filenames)
 

	
 
if __name__ == '__main__':
 
    main()
0 comments (0 inline, 0 general)