##// END OF EJS Templates
scripts/make-release: fix check of dist file content after commit 7c7d6b5c07c7...
scripts/make-release: fix check of dist file content after commit 7c7d6b5c07c7 The kallithea repo recently gained a .mo file for English, but all .mo files are filtered out when comparing the list of files in the tarball. Fix by filtering out the new .mo file when getting the repo manifest.

File last commit:

r7750:a8e6bb9e default
r8014:8f51a05b stable
Show More
docs-headings.py
83 lines | 2.6 KiB | text/x-python | PythonLexer
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537 #!/usr/bin/env python2
"""
Consistent formatting of rst section titles
"""
Mads Kiilerich
future: use Python print function
r7750 from __future__ import print_function
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537 import re
import subprocess
Mads Kiilerich
scripts: initial run of import cleanup using isort
r7718
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537 spaces = [
(0, 1), # we assume this is a over-and-underlined header
(2, 1),
(1, 1),
(1, 0),
(1, 0),
]
Mads Kiilerich
docs: use consistent style for section titles
r5568 # http://sphinx-doc.org/rest.html :
# for the Python documentation, this convention is used which you may follow:
# # with overline, for parts
# * with overline, for chapters
# =, for sections
# -, for subsections
# ^, for subsubsections
# ", for paragraphs
pystyles = ['#', '*', '=', '-', '^', '"']
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537 # 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():
Thomas De Schampheleire
scripts: docs-headings: improve performance by grouping 'hg diff' invocations...
r7419 filenames = subprocess.check_output(['hg', 'loc', 'set:**.rst+kallithea/i18n/how_to']).splitlines()
for fn in filenames:
Mads Kiilerich
future: use Python print function
r7750 print('processing %s' % fn)
Lars Kruse
py3: replace "file" with "open"
r6785 s = open(fn).read()
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537
# find levels and their styles
lastpos = 0
styles = []
for markup in headermatch.findall(s):
style = markup[1]
if style in styles:
stylepos = styles.index(style)
if stylepos > lastpos + 1:
Mads Kiilerich
future: use Python print function
r7750 print('bad style %r with level %s - was at %s' % (style, stylepos, lastpos))
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537 else:
stylepos = len(styles)
if stylepos > lastpos + 1:
Mads Kiilerich
future: use Python print function
r7750 print('bad new style %r - expected %r' % (style, styles[lastpos + 1]))
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537 else:
styles.append(style)
lastpos = stylepos
# remove superfluous spacing (may however be restored by header spacing)
s = re.sub(r'''(\n\n)\n*''', r'\1', s, flags=re.MULTILINE)
Mads Kiilerich
docs: use consistent style for section titles
r5568 if styles:
newstyles = pystyles[pystyles.index(styles[0]):]
def subf(m):
title, style = m.groups()
level = styles.index(style)
before, after = spaces[level]
newstyle = newstyles[level]
return '\n' * (before + 1) + title + '\n' + newstyle * len(title) + '\n' * (after + 1)
s = headermatch.sub(subf, s)
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537
# remove superfluous spacing when headers are adjacent
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)
Lars Kruse
py3: replace "file" with "open"
r6785 open(fn, 'w').write(s)
Thomas De Schampheleire
scripts: docs-headings: improve performance by grouping 'hg diff' invocations...
r7419
Mads Kiilerich
future: use Python print function
r7750 print(subprocess.check_output(['hg', 'diff'] + filenames))
Mads Kiilerich
scripts: introduce scripts/docs-headings.py for reformatting rst section titles in docs...
r5537
if __name__ == '__main__':
main()