Skip to main content

Generate API documentation with quarto.

Project description

quartodoc

Generate python API documentation for quarto.

Install

pip install quartodoc

Or for the latest changes:

python3 -m pip install -e git+https://github.com/machow/quartodoc.git#egg=quartodoc

Basic use

from quartodoc import get_function, MdRenderer

# get function object ---
f_obj = get_function("quartodoc", "get_function")

# render ---
renderer = MdRenderer(header_level = 1)
print(
    renderer.to_md(f_obj)
)
# get_function

`get_function(module: str, func_name: str, parser: str = 'numpy')`

Fetch a function.

## Parameters

| Name        | Type   | Description                | Default   |
|-------------|--------|----------------------------|-----------|
| `module`    | str    | A module name.             | required  |
| `func_name` | str    | A function name.           | required  |
| `parser`    | str    | A docstring parser to use. | `'numpy'` |

## Examples

```python
>>> get_function("quartodoc", "get_function")
<Function('get_function', ...
```

How it works

quartodoc consists of two pieces:

  • collection: using the library griffe to statically collect information about functions and classes in a program.
  • docstring parsing: also handled by griffe, which breaks it into a tree structure.
  • docstring rendering: use plum-dispatch on methods like MdRenderer.to_md to decide how to visit and render each piece of the tree (e.g. the examples section, a parameter, etc..).

Here is a quick example of how you can grab a function from griffe and walk through it.

from griffe.loader import GriffeLoader
from griffe.docstrings.parsers import Parser

griffe = GriffeLoader(docstring_parser = Parser("numpy"))
mod = griffe.load_module("quartodoc")

f_obj = mod._modules_collection["quartodoc.get_function"]
f_obj.name
'get_function'
docstring = f_obj.docstring.parsed
docstring
[<griffe.docstrings.dataclasses.DocstringSectionText at 0x105a2c310>,
 <griffe.docstrings.dataclasses.DocstringSectionParameters at 0x10f7961f0>,
 <griffe.docstrings.dataclasses.DocstringSectionExamples at 0x10f7965b0>]

Note that quartodoc’s MdRenderer can be called on any part of the parsed docstring.

from quartodoc import MdRenderer

renderer = MdRenderer()

print(
    renderer.to_md(docstring[1])
)
| Name        | Type   | Description                | Default   |
|-------------|--------|----------------------------|-----------|
| `module`    | str    | A module name.             | required  |
| `func_name` | str    | A function name.           | required  |
| `parser`    | str    | A docstring parser to use. | `'numpy'` |

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quartodoc-0.3.0.tar.gz (133.5 kB view details)

Uploaded Source

Built Distribution

quartodoc-0.3.0-py2.py3-none-any.whl (37.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file quartodoc-0.3.0.tar.gz.

File metadata

  • Download URL: quartodoc-0.3.0.tar.gz
  • Upload date:
  • Size: 133.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for quartodoc-0.3.0.tar.gz
Algorithm Hash digest
SHA256 fa2bd988a938055a6e32d2e68a89b57993eeecb9134c7c011b9618bcc65f5ef9
MD5 80f16c28b2944ce72a3c5c44872f5ed1
BLAKE2b-256 a7cdb7fdcfc6cbfb218af6498af8bb2cd76dd81d0b3bf5e8aeedba2b3f747fea

See more details on using hashes here.

File details

Details for the file quartodoc-0.3.0-py2.py3-none-any.whl.

File metadata

  • Download URL: quartodoc-0.3.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 37.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for quartodoc-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 6f82e34d812cfd70ddf0b0e06d3d7790bd0ccb88618f082124cf8f5546d8cf25
MD5 9496e104f2c0d3d7e8f08ce0ecd1cd45
BLAKE2b-256 8ec63ecfdfc0262b8373ab7a131d43a4406b8fd8d3979de21721ea0ded7521e6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page