Как правильно набрать beam.Map с помощью pyright

У меня есть код луча, например:

      
def foo(i: int) -> Foo:
  ...
class IntToFoo(beam.PTransform):
  def expand(self, pcoll: PCollection[int]) -> PCollection[Foo]:
    return pcoll | beam.Map(foo)

При запуске pyright он жалуется на возвращающуюся строку:

      Expression of type "PValue" cannot be assigned to return type "PCollection[Foo]"
  "PValue" is incompatible with "PCollection[Foo]

Теперь AFAIU кажется, что луч не обеспечивает достаточного хинтинга типов. Есть ли способ обойти это как пользователь луча, чтобы mypy принимал код (без игнорирования ошибки типа).

РЕДАКТИРОВАТЬ :

Я сейчас попробовал:

          temp = pcoll | beam.Map(foo)
    assert isinstance(temp, PCollection[Foo])
    return temp

Хорошие новости тоже temp = ни returnв строке есть ошибки. Плохая новость в том, что теперь он жалуется на строку isinstance:

TypeVar или универсальный тип с недопустимыми аргументами типа

0 ответов

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