Создание документации 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, следующих за членами класса, поскольку мне нужен программный доступ к этим строкам в другом месте.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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