LXMLライブラリをmypy
使用してXMLを解析するコードで型チェックを行うために使用しようとしています。
を使用する各行でetree.XPath
、 から偽のエラーが発生しmypy
ます。たとえば、次の簡単なスクリプト
from lxml import etree
NameXPath = etree.XPath("Name/text()")
エラーを生成します
test.py:3: error: "module" has no attribute "XPath"
しかし、スクリプトは正常に実行され、 myXPath
は実行時に正しく動作します。
また、そのライブラリをタイプチェックしないように#type:ignore
指示するかもしれないと思ったインポートも試しましたが、エラーは抑制されませんでした。mypy
from lxml import etree # type:ignore
NameXPath = etree.XPath("Name/text()")
etree.XPath
への呼び出しを型注釈を持たない別の関数に 移動することで、いくつかのエラーを抑制することに成功しましたが、それはハックのように見え、コードを厄介な方法で配置することを余儀なくされました。
etree.XPath
これらの偽のエラーを完全に抑制する方法があるかどうか、または関数が存在することを示唆する方法があるかどうかを知りたいです。
明確にするために、ライブラリmypy
から出てくる構造の正しい型を知っているかどうかは実際には気にしません。lxml
私は、解析された情報を押し込んでいる自分のクラスに型情報を入れることにもっと関心があるので、etree.XPath
クエリを実行し、データを見つけて、型に押し込むために使用する型チェックされた関数が必要です-私のスクリプト内で定義されている注釈付きクラス。
mypy
の他の関数に問題があるようには見えませんetree
。たとえば、への呼び出しには問題ありませんetree.parse
現在mypy
0.4.4を使用しています