in flowtorch/docs.py [0:0]
def generate_function_markdown(symbol_name: str, entity: Any) -> str:
markdown = []
# Docstring
# TODO: Parse docstring and extract short summary
docstring = entity.__doc__ if entity.__doc__ is not None else "empty docstring"
docstring = "\n".join(line.strip() for line in docstring.splitlines())
# short_summary = "```short summary```\n"
# DEBUG
try:
if hasattr(entity, "__wrapped__"):
# decorators = get_decorators(entity)
entity = entity.__wrapped__
except Exception:
pass
# TODO: Prepend decorators to method name
# for d in decorators:
# member_strs.append(d)
# Some built-ins don't have a signature and throw exception...
try:
entity_signature = str(signature(entity))
except ValueError:
entity_signature = "()"
safe_name = symbol_name.replace("_", r"\_")
safe_signature = entity_signature.replace("<", "<").replace(">", ">")
markdown.append("<PythonFunction>\n")
markdown.append(
"""<div className="doc-function-row">
<div className="doc-function-label"><span className="doc-symbol-label">function\
</span></div>
<div className="doc-function-signature">\n"""
)
markdown.append(
f"""## <span className="doc-symbol-name">{safe_name}</span> \
{{#function}}\n"""
)
markdown.append(
f"""<span className="doc-symbol-signature">{safe_signature}</span>"""
)
# markdown.append(short_summary)
markdown.append("</div>\n</div>\n\n</PythonFunction>\n")
markdown.append(f"```\n{docstring}\n```\n")
return "\n".join(markdown)