
mypy オプション メモ
とりあえず多すぎてわけわからないけど、見つけたやつ
毎回手動で指定するのは困難を極めるので設定ファイルを使うのが良い。
以下記事参照
基本的なオプション
-h, --help
ヘルプメッセージを表示して終了します。-v, --verbose
詳細なメッセージを表示します。-V, --version
mypy のバージョン番号を表示して終了します。-O FORMAT, --output FORMAT
カスタム出力形式を設定します。
設定ファイル関連
--config-file CONFIG_FILE
設定ファイル(mypy.ini、.mypy.ini、pyproject.toml、setup.cfg、~/.config/mypy/config、~/.mypy.ini など)を指定します。
複数のオプションを毎回コマンドラインで指定する代わりに、設定ファイルで一括管理できます。--warn-unused-configs
未使用の [mypy-<pattern>] や [[tool.mypy.overrides]] セクションがあれば警告を表示します。
(逆に、--no-warn-unused-configs で警告を抑制できます)
インポート関連のオプション
--no-namespace-packages
namespace パッケージ(PEP 420、__init__.py がないパッケージ)のサポートを無効にします。
(逆は --namespace-packages)--ignore-missing-imports
存在しないモジュールのインポートをエラーにせず、静かに無視します。--follow-imports {normal,silent,skip,error}
インポートの扱い方を指定します。normal: 通常通りインポートを追跡
silent: エラー表示を控えめに
skip: インポートをスキップ
error: インポートエラーとして扱う
--python-executable EXECUTABLE
PEP 561 準拠のインストール済みパッケージやスタブを探す際に使用する Python 実行ファイルを指定します。--no-site-packages
インストール済みの PEP 561 準拠パッケージの検索を行いません。--no-silence-site-packages
PEP 561 パッケージ内のエラーをサイレンスせずに表示します。--junit-format {global,per_file}
--junit-xml オプションと併用した場合の出力形式を指定します。global: 全エラーをまとめた1つのテスト結果として出力
per_file: 各ファイルごとにテストエントリを出力
プラットフォーム・構成関連
--python-version x.y
指定した Python バージョン(例: 3.9)でコードを型チェックします。--platform PLATFORM
特定の OS プラットフォーム用の型チェックを行います。
(デフォルトは sys.platform)--always-true NAME
指定した変数名を常に True とみなします。
(同じオプションを複数回指定可能)--always-false NAME
指定した変数名を常に False とみなします。
動的型付けの禁止関連
--enable-incomplete-feature {NewGenericSyntax,PreciseTupleTypes}
新しい/実験的な機能(例: 新しいジェネリック構文や厳密なタプル型)のサポートを有効にします。--disallow-any-unimported
インポートを追跡できなかったために Any 型となるケースを禁止します。--disallow-any-expr
式に Any 型が発生することをすべて禁止します。--disallow-any-decorated
デコレーター変換後の関数で、署名に Any 型が含まれる場合を禁止します。--disallow-any-explicit
型指定の際に明示的に Any を使うことを禁止します。--disallow-any-generics
明示的な型パラメータが指定されていないジェネリック型の使用を禁止します。
(逆は --allow-any-generics)--disallow-subclassing-any
Any 型の値を継承してクラス定義することを禁止します。
(逆は --allow-subclassing-any)
未定義型の関数定義と呼び出し
--disallow-untyped-calls
型注釈のない関数を、型注釈のある関数から呼び出すことを禁止します。
(逆は --allow-untyped-calls)--untyped-calls-exclude MODULE
特定のパッケージ、モジュール、またはクラスについては、未注釈関数の呼び出しのチェックを無効にします。--disallow-untyped-defs
型注釈のない関数定義や、型情報が不完全な定義を禁止します。
(逆は --allow-untyped-defs)--disallow-incomplete-defs
型情報が不完全な関数定義を禁止します。(完全に未注釈の場合は対象外)
(逆は --allow-incomplete-defs)--check-untyped-defs
型注釈がない関数の内部も型チェックします。
(逆は --no-check-untyped-defs)--disallow-untyped-decorators
型付き関数に対して、型注釈のないデコレーターを使用することを禁止します。
(逆は --allow-untyped-decorators)
None と Optional の扱い
--implicit-optional
デフォルト値が None の引数は自動的に Optional 型とみなします。
(逆は --no-implicit-optional)--no-strict-optional
厳密な Optional チェックを無効にします。
(逆は --strict-optional)
警告の設定
--warn-redundant-casts
推論された型へのキャストが冗長な場合に警告します。
(逆は --no-warn-redundant-casts)--warn-unused-ignores
不要な # type: ignore コメントについて警告を表示します。
(逆は --no-warn-unused-ignores)--no-warn-no-return
戻り値を返さない関数に対する警告を抑制します。
(逆は --warn-no-return)--warn-return-any
型注釈のある関数から Any 型の値を返す場合に警告します。
(逆は --no-warn-return-any)--warn-unreachable
到達不可能なコードに対して警告を表示します。
(逆は --no-warn-unreachable)
厳格モードその他のオプション
--allow-untyped-globals
トップレベルの変数で型注釈がない場合のエラーを抑制します。
(逆は --disallow-untyped-globals)--allow-redefinition
変数の再定義(型が変更される場合も含む)を許可します。
(逆は --disallow-redefinition)--no-implicit-reexport
インポートを暗黙的に再エクスポートしないようにします。
(逆は --implicit-reexport)--strict-equality
型が異なる値同士の比較(等価性、同一性、コンテナのチェック)を禁止します。
(逆は --no-strict-equality)--extra-checks
追加のチェックを有効にします(たとえば、TypedDict の部分的な上書きの禁止など)。
(逆は --no-extra-checks)--strict
以下の厳格なチェックを一括で有効にするショートカットです:--warn-unused-configs
--disallow-any-generics
--disallow-subclassing-any
--disallow-untyped-calls
--disallow-untyped-defs
--disallow-incomplete-defs
--check-untyped-defs
--disallow-untyped-decorators
--warn-redundant-casts
--warn-unused-ignores
--warn-return-any
--no-implicit-reexport
--strict-equality
--extra-checks
--disable-error-code NAME
特定のエラーコードを無効化します。--enable-error-code NAME
特定のエラーコードを有効化します。
エラーメッセージの表示設定
--show-error-context
エラーの前に、コンテキスト説明("note:" メッセージ)を表示します。
(逆は --hide-error-context)--show-column-numbers
エラー出力に列番号を表示します。
(逆は --hide-column-numbers)--show-error-end
エラー出力に終了行・列番号も表示します(--show-column-numbers も暗黙に有効にします)。
(逆は --hide-error-end)--hide-error-codes
エラー出力からエラーコードを非表示にします。
(逆は --show-error-codes)--show-error-code-links
エラーコードに関連するドキュメントへのリンクを表示します。
(逆は --hide-error-code-links)--pretty
視覚的に整形されたエラー出力(ソフトなワードラップ、ソースコードスニペット、エラー位置のマーキングなど)を使用します。
(逆は --no-pretty)--no-color-output
エラー出力に色付けを行いません。
(逆は --color-output)--no-error-summary
エラーの統計サマリーを表示しません。
(逆は --error-summary)--show-absolute-path
エラー出力にファイルの絶対パスを表示します。
(逆は --hide-absolute-path)
インクリメンタルモード
--no-incremental
モジュールキャッシュを使わず、毎回全体を再チェックします。
(逆は --incremental)--cache-dir DIR
インクリメンタルモード用のキャッシュを保存するディレクトリを指定します(デフォルトは .mypy_cache)。--sqlite-cache
キャッシュを SQLite データベースに保存します。
(逆は --no-sqlite-cache)--cache-fine-grained
mypy daemon 用に、詳細な依存関係情報をキャッシュに含めます。--skip-version-check
古いバージョンの mypy で作成されたキャッシュを使用する際のバージョンチェックをスキップします。--skip-cache-mtime-checks
キャッシュの内部整合性チェック(mtime に基づく)をスキップします。
高度なオプション
--pdb
致命的なエラーが発生した場合に、pdb(Python デバッガ)を起動します。--show-traceback, --tb
致命的エラー時にトレースバックを表示します。--raise-exceptions
致命的エラー時に例外を発生させます。--custom-typing-module MODULE
カスタムの typing モジュールを使用します。--old-type-inference
新しい実験的な型推論アルゴリズムを無効化し、従来の型推論を使用します。--custom-typeshed-dir DIR
カスタム typeshed のディレクトリを指定します。--warn-incomplete-stub
typeshed 内の型注釈が不足している場合に警告します。
(逆は --no-warn-incomplete-stub)--shadow-file SOURCE_FILE SHADOW_FILE
指定した SOURCE_FILE に遭遇した際、代わりに SHADOW_FILE の内容を読み込んで型チェックを行います。
レポート生成
--any-exprs-report DIR
--cobertura-xml-report DIR
--html-report DIR
--linecount-report DIR
--linecoverage-report DIR
--lineprecision-report DIR
--txt-report DIR
--xml-report DIR
--xslt-html-report DIR
--xslt-txt-report DIR
これらのオプションは、指定したディレクトリに各種形式のレポートを出力します。
その他のオプション
--junit-xml JUNIT_XML
指定したファイルに junit.xml 形式のレポートを出力します。--find-occurrences CLASS.MEMBER
指定したクラスメンバーの使用箇所を表示します(実験的機能)。--scripts-are-modules
スクリプト(例: x.py)を、__main__ ではなくモジュールとして扱います。--install-types
欠落しているライブラリのスタブを pip を使って自動的にインストールします。
(逆は --no-install-types)--non-interactive
ユーザー確認なしでスタブのインストールを行い、エラー出力を隠します。
(逆は --interactive)
実行対象のコード指定
--explicit-package-bases
カレントディレクトリおよび MYPYPATH を使用して、ファイルのモジュール名を決定します。
(逆は --no-explicit-package-bases)--exclude PATTERN
正規表現を用いて、型チェックの対象から除外するファイル、ディレクトリ、またはパスを指定します。(複数指定可能)-m MODULE, --module MODULE
型チェックするモジュールを指定します。(複数指定可能)-p PACKAGE, --package PACKAGE
型チェックするパッケージを、再帰的に指定します。(複数指定可能)-c PROGRAM_TEXT, --command PROGRAM_TEXT
文字列として渡されたプログラムを型チェックします。files
型チェック対象のファイルまたはディレクトリを指定します。
サンプル:mypy の使用例
。
#!/bin/bash
# sample_mypy.sh: mypy を用いて Python ファイルを型チェックするサンプル
# --verbose:
# 詳細なメッセージを表示します。
#
# --python-version 3.9:
# Python 3.9 用として型チェックを実施します。
#
# --exclude 'tests/':
# テストディレクトリを型チェック対象から除外します。
mypy --verbose --python-version 3.9 --exclude 'tests/' my_program.py
このスクリプトを実行すると、my_program.py の型チェックが行われ、詳細なログが出力されます。