mypy does not warn about incorrect default value in dict.get in some case
まだ誰も着手していません。
評価
調査の方向性
issue の最小限の Python 例から始め、mypy を実行して、Dict[str, Any] への代入で互換性のない set() のデフォルト値が報告されないことを確認します。dict.get と Any の型チェックの動作を追跡し、このケースでは警告が生成される一方で、revealed type は適切なままであることを示すカバレッジを追加します。
索引モデルが issue の本文から書いたものです。
説明
It seems that mypy should actually warn about the assignment of the set in the following code:
from typing import Dict, Any
params: Dict[str, Any] = {}
a: Dict[str, Any] = params.get("abc", set())
reveal_type(a)
mypy does not warn about the incorrect assignment of Set to a but correctly reveals that the type of a is Dict[str, Any]. Sadly the use of Any in this case is common as these dicts represent complex configuration files.
Tested with the current git master version.
- 主要言語
- Python
- スター
- 20.6k
- フォーク
- 3.3k
- 平均マージ
- 1日 18時間
- マージ済み PR(30日)
- 54
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
python/mypy のほかの issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
-
bug topic-configuration topic-error-reporting
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
bancolombia/sentinel#23 ·
-
test md オープンCI
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
langchain-ai/deepagents#6450 ·
-
bug client
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100