Skip to content

Support documentation of cli api #421

@Pierre9344

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