Skip to content

Support documentation of cli api #421

Description

@Pierre9344

I'm currently writting a python package with a cli.py file directly inside my package. I tried to indicate it in my _quarto.yml file:

  sections:
    - title: cli API
      desc: A API to launch the pipelines contained in genomake.
      contents:
        - genomake.cli.main

But it result in the error next:

PS C:\Users\E142543N\Documents\WORK\MY_PACKAGES\quartodoc_genomake> quartodoc build
Traceback (most recent call last):
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 174, in get_object_fixed
    return self.get_object(path, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\autosummary.py", line 152, in get_object
    f_parent = loader.modules_collection[griffe_path.rsplit(".", 1)[0]]
               ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\griffe\_internal\mixins.py", line 57, in __getitem__
    return self.all_members[parts[0]][parts[1:]]  # type: ignore[attr-defined]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\griffe\_internal\mixins.py", line 56, in __getitem__
    return self.all_members[parts[0]]  # type: ignore[attr-defined]
           ~~~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'genomake'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Scripts\quartodoc.exe\__main__.py", line 6, in <module>
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1462, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1383, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1850, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1246, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 814, in invoke
    return callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\__main__.py", line 219, in build
    doc_build()
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\autosummary.py", line 601, in build
    blueprint = blueprint(self.layout, dynamic=self.dynamic, parser=self.parser)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 474, in blueprint
    return trans.visit(el)
           ^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 210, in visit
    return super().visit(el)
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 45, in visit
    result = self.enter(el)
             ^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 247, in enter
    return super().enter(el)
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 67, in enter
    result = self.visit(value)
             ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 210, in visit
    return super().visit(el)
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 45, in visit
    result = self.enter(el)
             ^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 86, in enter
    result = self.visit(child)
             ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 210, in visit
    return super().visit(el)
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 45, in visit
    result = self.enter(el)
             ^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 67, in enter
    result = self.visit(value)
             ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 210, in visit
    return super().visit(el)
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 45, in visit
    result = self.enter(el)
             ^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 86, in enter
    result = self.visit(child)
             ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 210, in visit
    return super().visit(el)
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\utils.py", line 45, in visit
    result = self.enter(el)
             ^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 506, in __call__
    return self._f(self._instance, *args, **kw_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\plum\function.py", line 380, in __call__
    return _convert(method(*args, **kw_args), return_type)
                    ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 296, in enter
    obj = self.get_object_fixed(path, dynamic=dynamic)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\E142543N\AppData\Local\Programs\Python\Python312\Lib\site-packages\quartodoc\builder\blueprint.py", line 177, in get_object_fixed
    raise WorkaroundKeyError(
quartodoc.builder.utils.WorkaroundKeyError: Cannot find an object named: genomake. Does an object with the path genomake:genomake.cli exist?

Is there a way to use quartodoc to document the cli API? my package is accessible on github (https://github.com/Pierre9344/genomake). This is still a work in progress.

I thank you in advance for your help.

Pierre

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    • Status
      No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions