Source code for betty.docstring

"""
Providing docstring utilities.
"""

from __future__ import annotations

from textwrap import wrap


[docs] def append(docstring: str, *paragraphs: str) -> str: """ Append paragraphs to a docstring. """ indentation = "" docstring = docstring.rstrip() if docstring: if "\n" in docstring: indentations = [] for line in docstring.split("\n")[1:]: if line.strip(): indentations.append(len(line) - len(line.lstrip())) if indentations: indentation = " " * min(indentations) docstring += "\n\n" else: docstring = "" docstring += "\n\n".join( [ "\n".join( wrap( paragraph, initial_indent=indentation, subsequent_indent=indentation ) ) for paragraph in paragraphs ] ) return docstring.rstrip()