Skip to main content

Use Python 3 annotations in sphinx-enabled docstrings

If you’re on Python 3 and writing sphinx-enabled docstrings, you might feel like doing needless work when typing :type arg: or :rtype: directives. After all, why not use annotations for this?

Sure, :param str arg: description is not a lot of work, but when you want to document your argument as a specific class for which you have a :class: link, then you need to use :type: and it’s cumbersome. By using this sphinx extension, you can turn this:

def f(a):
    """Do something.

    :param a: description for a
    :type a: :class:`ClassForA`
    :rtype: str
    """

into:

def f(a: ClassForA) -> str:
    """Do something.

    :param a: description for a
    """

Installation

First, you need Python 3.3+ and a Sphinx documentation (with autodoc enabled).

You can install sphinx-autodoc-annotation with:

$ pip install sphinx-autodoc-annotation

Then, you need to enable it in your conf.py file:

extensions = [
    'sphinx.ext.autodoc',
    'sphinx_autodoc_annotation',
]

You’re done!

Usage

All you need to do to use this extension is to properly annotate your functions and methods with expected types for your arguments and return value. :type: and :rtype: directives will automatically be added to your docstring.

These directives behave like if you added them manually, that is, your argument is not going to show up only with :type arg: you need :param arg: to be there (with a description of what it does) for your type to show up.

When there are no annotations, argument types are deduced from default values. If your default value is a bool, str, int or float, the argument is going to be considered of that type. That feature is there mainly because f(flag: bool = False) feels a bit redundant.

In all cases, :type: and :rtype: directives in the docstring will always have precedence over annotations and defaults.

Release files for sphinx-autodoc-annotation 1.0-1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sphinx-autodoc-annotation 1.0-1
File Size Uploaded
sphinx-autodoc-annotation-1.0-1.tar.gz 4.0 kB Details

Release files / sphinx-autodoc-annotation-1.0-1.tar.gz

Download URL sphinx-autodoc-annotation-1.0-1.tar.gz
Size 4.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4a3d03081efe1e5f2bc9b9d00746550f45b9f543b0c79519c523168ca7f7d89a
BLAKE2b-256 checksum
How to use checksums
c92b81f620d831cd0632ba7583723ab42e840ba766b86868307ee0877c40a2e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0-1 This release

1 release file

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page