Общий тип, который параметризован с помощью модуля? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть два модуля, которые реализуют классы для разных версий одного и того же API, то есть my_api_v2.py и my_api_v3.py.Теперь я хотел бы написать клиентский класс, который работает с некоторыми из этих классов и параметризован с помощью модуля, так что классы должны поступать из одного и того же модуля (то есть с одной и той же версией API).В основном это typing.Generic для модуля вместо класса ...

from typing import Generic, TypeVar
from my_package import my_api_v2, my_api_v3

T = TypeVar('T', my_api_v2, my_api_v3)  # ??

class Foo(Generic[T]):
    def bar(self, x: T) -> T:
        ...

..., который затем можно использовать так:

def process_foo(foo: Foo[my_api_v2]) -> Foo[my_api_v2]:
    ...  # Arg and return val must come from the same module

Возможно ли что-то подобное смодуль набора текста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...