An extension to Sphinx `autodoc` to augment sphinx documentation with type annotations, when using Python 2 style type annotations.
Project description
An extension to Sphinx autodoc to augment sphinx documentation with type annotations, when using Python 2 style type annotations.
The Problem
Python 2 doesn’t support type annotations. Thus writing Python 2 / Python 3 agnostic code with type annotations requires putting the type annotations in comments:
def add(x, y):
# type: (int, int) -> int
"""Adds two numbers."""
return x + y
But now when documentation is generated with sphinx, the documentation doesn’t include type annotations:
Example from the Signatory project.
The Solution
This extension remedies things so that the Sphinx documentation now looks like:
(which is the same as what you’d get using Python 3 style type annotations e.g. def add(x: int, y: int) -> int
)
Installation
Via pip:
pip install py2annotate
It’s also just a single file, so copy-paste the code if you want.
Usage
Just add py2annotate to the list of extensions in conf.py:
# conf.py
...
extensions = ['sphinx.ext.autodoc', 'py2annotate']
...
(It shouldn’t matter whether it comes before or after autodoc.)
Note that Sphinx itself must be run using Python 3, not Python 2. This is because py2annotate uses the Python 3 style type annotations internally in order to determine the correct annotations.
Known Issues
None so far! File a report if you run into anything. mypy and stubgen are used internally though, so your code’s formatting must be in a manner that they understand.
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
File details
Details for the file py2annotate-1.0.1.tar.gz
.
File metadata
- Download URL: py2annotate-1.0.1.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.5.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97da72770b4ace6adb4cb550f7d97992ac9a72572bf2971e44a75017aa7da204 |
|
MD5 | cdff481acb75c325677045b68583b7f2 |
|
BLAKE2b-256 | c7007af263aec2e52111174f184db6c046fa003904acfbf4cc06caf1ec807022 |
File details
Details for the file py2annotate-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: py2annotate-1.0.1-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.5.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2d522847070229ed11ce53ac2568cdaf3b1fb440eb677ca5dcbefdeb7c622a0 |
|
MD5 | 37a228e5f34272bde6b5b940b8a2bad5 |
|
BLAKE2b-256 | 4f077b0a89f1ec72b6f2711ce571cfe3869a2239e6079909afa97ae4654d473e |