Autodata: документируйте вызываемый объект без подписи с помощью autodoc-typehints

Я хотел бы задокументировать атрибут модуля, который содержит вызываемый объект, а точнее тип. Этот атрибут предназначен для хранения некоторого типа, а не псевдонима типа.

Когда я документирую атрибут, Sphinx по умолчанию отображает сигнатуру вызова связанного с ним типа.

Пример 1

Я бы хотел, чтобы он просто показывал тип.

Пример 2

Поэтому я немного покопался и создал этот MWE. Кажется, все сводится к двум факторам: использование autodoc-typehints и наличие параметра с подсказкой типа в конструкторе класса. Удаление любого из них дает правильную форму выше.

# package.py
class Foo:
    def __init__(self, baz: int):
        pass

bar_type = Foo

# documentation
.. currentmodule:: package
.. autoclass:: Foo
.. autodata:: bar_type

# Sphinx conf.py
extensions = [
    'sphinx.ext.autodoc',
    'sphinx_autodoc_typehints',
]

Я использую autodoc-typehints по другим причинам, поэтому мне будет трудно от него избавиться. Как я мог не показывать подпись в bar_type?


person Felix    schedule 07.05.2020    source источник
comment
Возможно, это может помочь: stackoverflow.com/q/30542590/407651   -  person mzjn    schedule 09.05.2020
comment
@mzjn По крайней мере, добавление пустых скобок в автоданные не помогло.   -  person Felix    schedule 09.05.2020
comment
Но переключение на автокласс делает свое дело, только у него есть псевдоним документации, что мне не нравится.   -  person Felix    schedule 09.05.2020