OPTIONS_END = 'CONFIGURATION'
EPILOG_START = 'See full documentation'
+DISABLE_PATCH = object()
+
def take_section(text, start=None, end=None, *, shift=0):
return text[
def apply_patch(text, patch):
- return re.sub(*patch, text)
+ return text if patch[0] is DISABLE_PATCH else re.sub(*patch, text)
options = take_section(sys.stdin.read(), f'\n {OPTIONS_START}', f'\n{EPILOG_START}', shift=1)
rf'({delim[:-1]})? (?P<label>\[\S+\] )?(?P<url>https?({delim})?:({delim})?/({delim})?/(({delim})?\S+)+)\s',
lambda mobj: ''.join((delim, mobj.group('label') or '', re.sub(r'\s+', '', mobj.group('url')), '\n'))
),
- # This creates issues with prepare_manpage
- # ( # Avoid newline when a space is available b/w switch and description
- # r'(?m)^(\s{4}-.{%d})(%s)' % (switch_col_width - 6, delim),
- # r'\1 '
- # ),
+ ( # Do not split "words"
+ rf'(?m)({delim}\S+)+$',
+ lambda mobj: ''.join((delim, mobj.group(0).replace(delim, '')))
+ ),
+ ( # Avoid newline when a space is available b/w switch and description
+ DISABLE_PATCH, # This creates issues with prepare_manpage
+ r'(?m)^(\s{4}-.{%d})(%s)' % (switch_col_width - 6, delim),
+ r'\1 '
+ ),
)
with open(README_FILE, encoding='utf-8') as f: