Source code for astroquery.utils.docstr_chompers
# Licensed under a 3-clause BSD style license - see LICENSE.rst
import textwrap
def append_docstr(doc):
""" Decorator to append to the function's docstr """
def dec(fn):
fn.__doc__ += doc
return fn
return dec
[docs]
def prepend_docstr_nosections(doc, *, sections=['Returns', ]):
"""
Decorator to prepend to the function's docstr after stripping out the
list of sections provided (by default "Returns" only).
"""
def dec(fn):
fn.__doc__ = ("\n".join(remove_sections(doc, sections)) + textwrap.dedent(fn.__doc__))
return fn
return dec
def remove_sections(doc, sections):
"""
Given a numpy-formatted docstring, remove the section blocks provided in
``sections`` and dedent the whole thing.
Returns
-------
List of lines
"""
lines = textwrap.dedent(doc).split('\n')
outlines = []
rblock = False
for line in lines:
lstrip = line.rstrip()
if lstrip in sections:
rblock = True
continue
elif rblock:
if lstrip == '':
rblock = False
continue
else:
continue
else:
outlines.append(lstrip)
return outlines