Создание документации Sphinx для классов данных с полями Annotated[]Python

Программы на Python
Anonymous
Создание документации Sphinx для классов данных с полями Annotated[]

Сообщение Anonymous »

Я хотел бы использовать функцию autodoc_typehints Sphinx (или пакет sphinx_autodoc_typehints) для документирования полей классов данных Python, и в настоящее время у меня возникают проблемы с получением хорошего результата.
Например, у меня есть класс

Код: Выделить всё

from dataclasses import dataclass
from typing import Annotated
from typing_extensions import Doc

@dataclass
class Tester:
"""Test"""
x: Annotated[int, Doc("hi")] = 1
и я визуализирую в Sphinx с помощью

Код: Выделить всё

.. autoclass:: config.Tester
:members:
:undoc-members:
:exclude-members: __init__, __post_init__, __dataclass_fields__, __dataclass_self__, __dataclass_params__
:member-order: bysource
с использованием расширения sphinx_autodoc_typehints и включая:

Код: Выделить всё

autodoc_typehints = "description"
set_typehints_format = "short"
в моем conf.py. Это приводит к выводу:
Изображение

Мне бы хотелось, чтобы аннотации типов были правильно документированы, как обычно это делает autodoc_typehints. Также было бы здорово увидеть вывод только один раз (не дублировать его в разделах подписи и параметров). Я полностью открыт для изменения структуры этого класса данных, но я хочу избегать строк документации в стиле PEP 224, следующих за членами класса, поскольку мне нужен программный доступ к этим строкам в другом месте.

Вернуться в «Python»