Очистка типов protobuf sphinx-doc

Я чувствую, что понял это раньше, но он снова не работает, я разрабатываю код на основе protobuf и grpc, и в документации все типы выглядят очень беспорядочно:

create_session(name: str, path: str, file_type: <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x10984e7d0> = 0, sample_rate: <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x109837710> = 2, bit_depth: <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x10982c6d0> = 2, io_setting: <google.protobuf.internal.enum_type_wrapper.EnumTypeWrapper object at 0x109819d10> = 1, is_interleaved: bool = True)

Это из следующей функции в моем источнике


import ptsl.PTSL_pb2 as pt # my grpc-tools generated type header

# yada yada yada

    def create_session(self,
                       name: str,
                       path: str,
                       file_type: 'SessionAudioFormat' = pt.SAF_WAVE,
                       sample_rate: 'SampleRate' = pt.SR_48000,
                       bit_depth: 'BitDepth' = pt.Bit24,
                       io_setting: 'IOSettings' = pt.IO_Last,
                       is_interleaved: bool = True) -> None:

# etc...

Аннотации моих типов в исходном коде преобразуются в экземпляры этого типа, а не просто в ссылки, которые будут связаны с остальной документацией. Есть ли способ заставить документацию разрешать имена реальных типов и ссылаться на мою документацию тех типов, где я это сделал (как и любой другой тип)?

Возможно, это поможет: stackoverflow.com/a/67483317/407651

mzjn 09.04.2023 15:19

Это было не так, я работаю на Python3.12. Я забыл импортировать типы вверху.

iluvcapra 16.04.2023 07:11
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
82
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Моя ошибка, я забыл импортировать типы вверху. Sphinx не может связать типы в аннотациях с их определением, если только они не были импортированы в файл, даже если аннотация является прямой ссылкой или строкой.

Другие вопросы по теме