I am generating a HTML documentation of a Python 3 module automatically from its reStructuredText docstrings of its functions by using Sphinx (make HTML). The generated HTML documentation looks fine so far, but the parameter types of the function signatures, which are given in the source code as PEP484 type hints aren't shown correctly.
E.g. this is some example output from the Sphinx-generated HTML doc of one of my functions:
static parse_from_file(filename: str) → list
Parses stuff from a text file.
Parameters: filename – the filepath of a textfile to be parsed
Returns: list of parsed elements
This is what I would expect it to look like:
static parse_from_file(filename)
Parses stuff from a text file.
Parameters: filename (str) – the filepath of a textfile to be parsed
Returns: list of parsed elements
Return type: list
This is how the Python code actually looks like:
def parse_from_file(filename: str) -> list:
"""Parses stuff from a text file.
:param filename: the filepath of a textfile to be parsed
:returns: list of parsed elements
"""
return []
How can I make Sphinx show the Python 3 type hints correctly?
I tackled it on my own by using the sphinx-autodoc-typehints extension.
There is autodoc_typehints
variable. Since version 3.0 you can set it to 'description'
which shows typehints as content of function or method and removes them from signature.
So just add this line into your conf.py
:
autodoc_typehints = "description"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With