問題タブ [mypy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1687 参照

python - ラウンド () の戻り型

次のコードがあります。

round() の戻り値が int とみなされていることがわかります。2 番目のステートメントで mypy が不平を言うので、これがそうであると結論付けます。

Python 3.5 を使用しているので、float にする必要があります。何が欠けていますか。Python のバージョンについて何らかの形で mypy にヒントを与える必要がありますか? どのように正確に?

0 投票する
0 に答える
211 参照

python - mypy がこの拡張代入をエラーと見なすのはなぜですか?

ファイルtest.pyに次のコードがあります。

コンソール出力:

使用した Mypy バージョン: 0.4.4

3行目が正しくて7行目が間違っているのはなぜですか?

後で編集:

この動作は現在、mypy のバグとして分類されています。

https://github.com/python/mypy/issues/2098

そのため、将来的には両方のステートメント シーケンスが mypy に受け入れられることが期待されます。

0 投票する
1 に答える
5333 参照

python - mypy スプリアス エラー:「モジュール」には etree の属性「XPath」がありません

LXMLライブラリをmypy使用してXMLを解析するコードで型チェックを行うために使用しようとしています。

を使用する各行でetree.XPath、 から偽のエラーが発生しmypyます。たとえば、次の簡単なスクリプト

エラーを生成します

しかし、スクリプトは正常に実行され、 myXPathは実行時に正しく動作します。

また、そのライブラリをタイプチェックしないように#type:ignore指示するかもしれないと思ったインポートも試しましたが、エラーは抑制されませんでした。mypy

etree.XPathへの呼び出しを型注釈を持たない別の関数に 移動することで、いくつかのエラーを抑制することに成功しましたが、それはハックのように見え、コードを厄介な方法で配置することを余儀なくされました。

etree.XPathこれらの偽のエラーを完全に抑制する方法があるかどうか、または関数が存在することを示唆する方法があるかどうかを知りたいです。

明確にするために、ライブラリmypyから出てくる構造の正しい型を知っているかどうかは実際には気にしません。lxml私は、解析された情報を押し込んでいる自分のクラスに型情報を入れることにもっと関心があるので、etree.XPathクエリを実行し、データを見つけて、型に押し込むために使用する型チェックされた関数が必要です-私のスクリプト内で定義されている注釈付きクラス。

mypyの他の関数に問題があるようには見えませんetree。たとえば、への呼び出しには問題ありませんetree.parse

現在mypy0.4.4を使用しています

0 投票する
3 に答える
4365 参照

python - MyPy の正規表現パターン タイプを取得するにはどうすればよいですか

正規表現をコンパイルすると

そして、その正規表現を関数に渡し、Mypy を使用して型チェックを行いたい

私はこの問題に遭遇しています

インポートできるようです_sreが、何らかの理由SRE_Patternでインポートできません。

0 投票する
1 に答える
842 参照

python - Mypy「クラスモジュール」注釈

load_configPython モジュールをロードして返す関数があります。

このスニペットは<class 'module'>.

load_configMypy で戻り値に注釈を付けるにはどうすればよいですか?

0 投票する
1 に答える
1217 参照

python - タイプを明示的にリストせずに、引数が同じタイプであることを確認するにはどうすればよいですか?

両方の引数が同じ型である限り、任意の型の 2 つの引数を受け入れる関数が必要であると仮定しましょう。mypyで静的にチェックするにはどうすればよいですか?

関数が既知の型の有限量を受け入れるだけでよい場合は、次のように簡単です。

このコードでは、 mypy は への引数fが 2 つintの 、2 つstrの 、または の 2 つのリスト、intまたは を返す引数ゼロの 2 つの関数であることを確認できintます。

しかし、事前に型がわからない場合はどうなるでしょうか。let f (a:'t) (b:'t) = ()F# や OCamlに似たものが必要な場合はどうすればよいでしょうか? 単純に書くと有効なT = TypeVar('T')ようになりますが、これは私たちが望んでいることではありません。f(1, "2")

0 投票する
1 に答える
380 参照

python - Python 3で引数の説明と型ヒントを組み合わせることは可能ですか?

Python 3 では、関数パラメーターに説明を追加できます。

また、後で確認できる予想されるタイプを指定することもできますmypy

どちらも私の目には非常に便利です-両方を組み合わせてmypy一貫性をチェックできる方法はありますか?

0 投票する
0 に答える
48 参照

python - Python ランタイム型チェック

ある関数の出力と別の関数の入力の間の型の互換性を確認したいと思います。mypy が静的な型チェックを行うことは知っていますが、python から実行しても何も見つかりませんでした。これが私がやろうとしていることの例です:

typegaurdと呼ばれる小さな github プロジェクトを見つけましたが、これは似たようなことをしているように見えますが、作業中のコードに小さなサードパーティ ライブラリを使用するのは本当に気が進まないのです。これを行う最もクリーンな方法は何ですか? 標準ライブラリまたは MyPy に組み込まれていて、直接使用できるものはありますか?