Я пытаюсь обработать объект dict
, и PyCharm выдает мне неожиданное предупреждение о типе.
Вот сокращенный пример, который воспроизводит предупреждение:
X = type("X", (), {})
def big_foo(data: Dict[str, Any]) -> Dict[str, Any]:
def little_foo(entries: Iterable[Tuple[str, Any]]) -> Iterable[Tuple[X, Any]]:
pass
def little_bar(entry: Tuple[X, Any]) -> Tuple[str, Any]:
pass
return dict(map(little_bar, little_foo(data.items())))
PyCharm прикрепляет это предупреждение к фразе data.items()
в последней строке:
Expected type 'Iterable[Tuple[str, Any]]', got 'ItemsView[str, Any]' instead
I с уверенностью ожидал, что dict.items () вернет какой-нибудь Iterable из Tuples. Есть ли хороший способ объяснить PyCharm, что происходит? Есть ли проблема с кодом?