Я пытаюсь использовать модуль typing
для документирования своего пакета Python, и у меня есть несколько ситуаций, когда несколько различных типов допустимы для параметра функции. Например, вы можете передать число, объект Envelope (один из классов в моем пакете) или список чисел, из которых составлен конверт, или список списков чисел, из которых построен конверт. Поэтому я создаю псевдоним типа следующим образом:
NumberOrEnvelope = Union[Sequence[Real], Sequence[Sequence[Real]], Real, Envelope]
Затем я пишу функцию:
def example_function(parameter: NumberOrEnvelope):
...
И это выглядит великолепно для меня. Однако, когда я создаю документацию с использованием Sphinx, я получаю эту ужасно нечитаемую сигнатуру функции:
example_function (параметр: Union [Sequence [numbers.Real], Sequence [Sequence [numbers.Real] ], numbers.Real, remavelope.envelope.Envelope])
То же самое и с подсказками, которые появляются, когда я начинаю пытаться использовать функцию в PyCharm.
Is есть какой-то способ, которым я могу оставить его как NumberOrEnvelope. В идеале это также будет ссылаться в документации на разъяснение, что такое «NumberOrEnvelope», хотя даже если бы этого не произошло, это было бы намного лучше, чем то, что появляется сейчас.
Заранее спасибо!