Pydantic
Pydantic は、標準的な Python 型アノテーションを利用してデータモデルを定義するデータバリデーションライブラリです。 PyCharm は、Pydantic モデル向けに、他の 型ヒント機能 を提供しているのと同じ型エンジン上に構築された専用のサポートを提供します。
このサポートは、 pydantic.BaseModel とそのサブクラス、 pydantic.dataclasses.dataclass 、ジェネリックモデル、および フィールド 、モデルやフィールドバリデーター、 ConfigDict オプションなどの関連構造をカバーします。 Pydantic v1 と v2 の両方が認識されます。
モデルフィールドのコードインサイト
Pydantic モデルをインスタンス化すると、PyCharm は宣言されたフィールドを __init__ のキーワード引数として扱い、次のコードインサイトを提供します:
宣言された型とデフォルト値を考慮して、フィールド名をキーワード引数として補完します。
各フィールドに渡された値が対応するアノテーションと合致しているかの型チェック。
必須フィールドの未入力をハイライトするインスペクション。
__init__呼び出しにおけるキーワード引数からフィールド宣言へのナビゲーションや戻る操作が可能で、サブクラスや基底クラス間も対応します。
フィールドのエイリアスとバリデーション設定
エイリアス付きで Field(alias=...) として宣言されたフィールドは、コンストラクター呼び出し時にキーワード引数として受け付けられ、「予期しない引数」という誤警告は表示されません。
PyCharm はモデルの ConfigDict を考慮するため、エディターのコードインサイトが実行時のバリデーション挙動と一致します:
populate_by_name=Trueまたはvalidate_by_name=True— エイリアスに加えてフィールド名も受け付けます。validate_by_alias=True— バリデーション用にエイリアスが受け付けられます。
両方のオプションが有効な場合、フィールド名とそのエイリアスは有効なキーワード引数として扱われます:
リファクタリングとバリデーター
モデルフィールドの名前を変更すると、 __init__ 呼び出し内のすべてのキーワード引数が更新され、その変更がサブクラスや基底クラスにも反映されます。 __init__ 呼び出しでキーワード引数の名前を変更すると、対応するフィールド宣言も同様に更新されます。
@field_validator、 @model_validator 、あるいはレガシーな @validator および @root_validator デコレーターで宣言されたフィールドやモデルバリデーターは、適切に認識されます。最初のパラメーターには正しい型が割り当てられ、デコレートされた関数に対する標準インスペクションも誤検出を避けて調整されます。