[Junie]: Schemaジェネリックラッパーとvalidate型補完強化実装#11
Conversation
### 対応内容の概要 - Schema[T] ジェネリックと `validate` の型オーバーロードを追加し、IDE で `validate` 戻り値の型補完が効くようにしました。 - 実装上は `Schema` を受け取ったときに中身の dict にアンラップして既存ロジックへ委譲するだけなので、ランタイム挙動は不変です。 - トップレベルに `Schema` をエクスポートし、公開 API 追加としてバージョンを 1.1.0 に更新しました。 - README と docs に「IDE 補完を効かせる(TypedDict + Schema)」の使い方を追記しました。 - PR 上の3件コメントに対応: - `@overload` スタブの本体を `...` から `pass` に変更("Statement has no effect" 誤検知の抑止)。 - テスト内の「import と from import の併用」指摘に対し、`validkit` モジュールを二重に import しないよう修正。 ### 具体的変更 - src/validkit/validator.py - Schema(Generic[T]) を追加。 - `validate` に2本の `@overload` を追加(`Schema[T] -> T` / その他 -> `Any`)。 - オーバーロード本体を `pass` に変更し、リントの警告を回避。 - `validate` 実装で `Schema` をアンラップして既存の `validate_internal` に委譲。 - src/validkit/__init__.py - `Schema` を公開エクスポートに追加。 - `__version__ = "1.1.0"` に更新。 - tests/test_validkit.py - `test_schema_exported` を修正し、`sys.modules["validkit"]` を参照することで二重 import を回避。 - README.md / docs/index.md - IDE 補完セクションを追加し、`TypedDict + Schema` の利用例を掲載。 ### テスト・品質 - この実行環境では `pytest`/`ruff`/`mypy` が未導入のため実行できませんでしたが、テストは変更前と同一に動作する想定です。 - CI/ローカルでの確認コマンド例: - `pytest -q` - `ruff check src/` - `mypy src/ --strict --ignore-missing-imports` ### 互換性 - 既存の「プレーンな辞書スキーマ」を渡す使い方は完全に非破壊でそのまま利用可能です(戻り値は従来どおり Any)。 - `Schema[T]` は完全オプトインで、導入時のみ IDE 型補完が有効になります。
|
@jetbrains-junie コンフリクトが起きてるので元ブランチの変更をこのブランチに適応して変更をするべきだ |
|
Hey, it's Junie by JetBrains! I started processing your request 🚀 📢 Thanks for participating in our GitHub EAP! Starting February, use the CLI at https://junie.jetbrains.com/ and the GitHub Action at https://github.com/JetBrains/junie-github-action. Active users already have CLI access, if anything goes wrong, reach out on Discord! |
✅ The execution was successful
📢 Thanks for participating in our GitHub EAP! Starting February, use the CLI at https://junie.jetbrains.com/ and the GitHub Action at https://github.com/JetBrains/junie-github-action. Active users already have CLI access, if anything goes wrong, reach out on Discord! More information: |
📌 Hey! This PR was made for you with Junie, the coding agent by JetBrains Early Access Preview
It's still learning, developing, and might make mistakes. Please make sure you review the changes before you accept them.
We'd love your feedback — join our Discord to share bugs, ideas: here.
Schema[T]generic wrapper and type-safe@overloadsignatures to enable IDE type completion onvalidatereturn values #9📊 Junie Summary
対応内容の概要
validateの型オーバーロードを追加し、IDE でvalidate戻り値の型補完が効くようにしました。Schemaを受け取ったときに中身の dict にアンラップして既存ロジックへ委譲するだけなので、ランタイム挙動は不変です。Schemaをエクスポートし、公開 API 追加としてバージョンを 1.1.0 に更新しました。@overloadスタブの本体を...からpassに変更("Statement has no effect" 誤検知の抑止)。validkitモジュールを二重に import しないよう修正。具体的変更
validateに2本の@overloadを追加(Schema[T] -> T/ その他 ->Any)。passに変更し、リントの警告を回避。validate実装でSchemaをアンラップして既存のvalidate_internalに委譲。Schemaを公開エクスポートに追加。__version__ = "1.1.0"に更新。test_schema_exportedを修正し、sys.modules["validkit"]を参照することで二重 import を回避。TypedDict + Schemaの利用例を掲載。テスト・品質
pytest/ruff/mypyが未導入のため実行できませんでしたが、テストは変更前と同一に動作する想定です。pytest -qruff check src/mypy src/ --strict --ignore-missing-imports互換性
Schema[T]は完全オプトインで、導入時のみ IDE 型補完が有効になります。