Передача параметров типа в функции python, возвращающие класс, расширяющий ABC - PullRequest
0 голосов
/ 17 февраля 2020

Я пишу библиотеку python, которая использует классы, расширяющие AB C:

class Either(ABC):

    def __init__(self, left=None, right=None):
        self._left = left
        self._right = right
...

Я хочу использовать любую из моих реализаций в качестве вывода моих функций:

def data_to_tensor(self, input_dir: str, columns: List[NamedColumn]) -> Either[ErrorMessageWithCode, List[NamedTensor]]:
...

ErrorMessageWithCode - моя оболочка для ошибок, в то время как NamedColumn, NamedTensor - просто псевдонимы типов для кортежей

Я думаю, что синтаксис объявления вывода функции ... -> Either[ErrorMessageWithCode, List[NamedTensor]] не распознается, так как Either не ожидает получения параметров типа. Сбой при

TypeError: 'ABCMeta' object is not subscriptable

Не могли бы вы сказать, как разрешить Либо принять два параметра типа?

  • Я очень плохо знаком с Python, возможно, есть чем заняться с модулем набора текста -

Спасибо

...