Путаница в отношении вложенного секвенирования проверки типовPython

Программы на Python
Anonymous
 Путаница в отношении вложенного секвенирования проверки типов

Сообщение Anonymous »

У меня есть код, который в минимальном примере выглядит так.

Код: Выделить всё

from ordered_set import OrderedSet
from collections.abc import Sequence

from typing import NewType, TypeAlias

SeqOverFrag: TypeAlias = Sequence
MotifIdx = NewType("MotifIdx", int)
AOIdx = NewType("AOIdx", int)

x = []
x.append({MotifIdx(1): OrderedSet([AOIdx(1), AOIdx(2)])})

y: Sequence[dict[MotifIdx, Sequence[AOIdx]]] = x
< /code>
, которая повышает ошибку < /p>
Incompatible types in assignment (expression has type "list[dict[MotifIdx, OrderedSet[AOIdx]]]", variable has type "Sequence[dict[MotifIdx, Sequence[AOIdx]]]")
Если я явно объявляю x

Код: Выделить всё

x: list[dict[MotifIdx, Sequence[AOIdx]]] = []
< /code>
или, если я инициализации его напрямую < /p>
x = [{MotifIdx(1): OrderedSet([AOIdx(1), AOIdx(2)])}]
< /code>
Затем ошибка уходит. что тип сработал (?). Это ошибка в mypy 
?


Подробнее здесь: https://stackoverflow.com/questions/793 ... -sequenced

Вернуться в «Python»