Tweaks for `mkdocstrings[python]`
Project description
Hippogriffe
This is a set of tweaks on top of the MkDocs + mkdocstrings[python] + griffe documentation stack. In particular, we:
- Add
[source]links to GitHub to each top-level class or function. - Pretty-format type annotations:
- Fixes unions/generics/etc. to display as e.g.
int | strrather than justUnion, ortuple[int, str]rather than justtuple. - Respects your public API: if a type is declared in your documentation as
::: yourlib.Foothen its usage in type annotations will match:some_fn(foo: yourlib.Foo).
- Fixes unions/generics/etc. to display as e.g.
- Show base classes inline after the class.
- Drops the
-> Nonereturn annotation from__init__methods. - Attributes display as
[attr] somelib.someattrinstead of[attr] somelib.someattr = some_value [module]. (I don't find usually-long default values to be useful documentation, nor the 'module' tag to be informative.)
| Before | After |
|---|---|
Installation
pip install hippogriffe
Requires MkDocs 1.6.1+ and mkdocstrings[python] 0.28.3+
Usage
In mkdocs.yml:
...
plugins:
- hippogriffe
- mkdocstrings:
...
Configuration
Hippogriffe supports the following configuration options:
plugins:
- hippogriffe:
show_bases: true/false
show_source_links: all/toplevel/none
extra_public_objects:
- foo.SomeClass
- bar.subpackage.some_function
show_bases:
If false then base classes will not be displayed alongside a class. Defaults to true.
show_source_links:
Sets which objects will have links to their location in the repository (as configured via the usual MkDocs repo_url). If all then all objects will have links. If toplevel then just ::: somelib.value will have links, but their members will not. If none then no links will be added. Defaults to toplevel.
extra_public_objects:
Pretty-formatting of type annotations is done strictly: every annotation must be part of the known public API, else an error will be raised. The public API is defined as the combination of:
- Everything you document using
::: yourlib.Foo, and all of their members. - Anything from the standard library.
- All objects belonging to any of
extra_public_objects.
For example,
plugins:
- hippogriffe:
extra_public_objects:
- jax.Array
- torch.Tensor
List each object under whatever public path somelib.Foo that you would like it to be displayed under (and from which it must be accessible), not whichever private path somelib._internal.foo.Foo it is defined at.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hippogriffe-0.2.2.tar.gz.
File metadata
- Download URL: hippogriffe-0.2.2.tar.gz
- Upload date:
- Size: 14.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bb59c1277959bedc94baadc8a2933121c4e838dc3237b81f95864f2b509068d
|
|
| MD5 |
f45894a95c2d5d0bba735977d7d5777c
|
|
| BLAKE2b-256 |
fde912cf378552b8ec916901bd3e04910bc4fceb1a8f94cfddc61ad1f9afc51e
|
File details
Details for the file hippogriffe-0.2.2-py3-none-any.whl.
File metadata
- Download URL: hippogriffe-0.2.2-py3-none-any.whl
- Upload date:
- Size: 19.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
61f38bad68eeefcf175fb5436070519b1dcda7bef52e49c0d69f0723b4de07d9
|
|
| MD5 |
eb053a952b74354951b2eb44f1b9493a
|
|
| BLAKE2b-256 |
f7d6c087b990a3299d5d4c46a26f7b927bff000f7ec11a0dd607b8334b0ee2d1
|