diff --git a/examples/vetiver/quartodoc.qmd b/examples/vetiver/quartodoc.qmd new file mode 100644 index 00000000..ec24ce6f --- /dev/null +++ b/examples/vetiver/quartodoc.qmd @@ -0,0 +1,45 @@ +--- +jupyter: python3 +--- + +```{python} +from griffe.loader import GriffeLoader +from griffe.docstrings.parsers import Parser + +griffe = GriffeLoader(docstring_parser = Parser("numpy")) +mod = griffe.load_module("vetiver") # no editable install + +#f_obj = mod._modules_collection["vetiver.load_pkgs"] +``` + +```{python} +mod._modules_collection["vetiver.attach_pkgs.load_pkgs"] # full path +``` + +```{python} +from quartodoc import get_function, MdRenderer + +# get function object --- +f_obj = get_function("vetiver.attach_pkgs", "load_pkgs") # not attach.laod + + +# render --- +renderer = MdRenderer(header_level = 1) +print( + renderer.to_md(f_obj) +) +``` + +```{python} +c_obj = mod._modules_collection["vetiver.server.VetiverAPI"] + +print( + renderer.to_md(c_obj) +) +``` + +```{python} +renderer.to_md(c_obj.members["vetiver_post"]) # no -> none +``` + + diff --git a/quartodoc.py b/quartodoc.py index 14167b4a..b9500c80 100644 --- a/quartodoc.py +++ b/quartodoc.py @@ -180,7 +180,10 @@ def to_md(self, el: ds.DocstringSectionParameters): def to_md(self, el: ds.DocstringParameter) -> Tuple[str]: # TODO: if default is not, should return the word "required" (unescaped) default = "required" if el.default is None else escape(el.default) - annotation = el.annotation.full if el.annotation else None + if isinstance(el.annotation, str): + annotation = el.annotation + else: + annotation = el.annotation.full if el.annotation else None return (escape(el.name), annotation, el.description, default) # examples ----