def merge_section(key, prnt_sec, child_sec, merge_within_sections=False):
    """ Synthesize a output numpy docstring section.

    Parameters
    ----------
    key: str
        The numpy-section being merged.
    prnt_sec: Optional[str]
        The docstring section from the parent's attribute.
    child_sec: Optional[str]
        The docstring section from the child's attribute.
    Returns
    -------
    Optional[str]
        The output docstring section."""

    doc_sections_that_cant_merge = [
        "Short Summary",
        "Deprecation Warning",
        "Extended Summary",
        "Examples"
    ]

    if prnt_sec is None and child_sec is None:
        return None

    if key == "Short Summary":
        header = ""
    else:
        header = "\n".join((key, "".join("-" for i in range(len(key))), ""))

    if merge_within_sections and key not in doc_sections_that_cant_merge:
        if child_sec is None:
            body = prnt_sec
        elif prnt_sec is None:
            body = child_sec
        else:
            body = '\n'.join((prnt_sec, child_sec))
    else:
        body = prnt_sec if child_sec is None else child_sec

    return header + body