# 制約・問題点・未完了事項 1. **既存コード未変更:** `ese774_frame` と `grpc_frame` の既存 `DeviceProxy` は別レジストリのままです。共通化のためには、各デバイスパッケージがこのパッケージへ明示登録する必要があります。Tango のサーバー・クライアント実装も変更していません。 2. **自動登録なし:** `pip install` のみでは登録されません。インポート時登録または明示初期化が必要です。これは意図した仕様です。 3. **名前の衝突:** 同一プロセスで二つのデバイスパッケージが同じクラス名を登録すると `ValueError`。エイリアス機能は実装していません。 4. **`.pyi` の型宣言:** 専用クライアント型を参照する `core.pyi` 生成器はありますが、実デバイスの対応表と静的型検証は未実施です。初期配布の `core.pyi` は具体的なデバイス型を含まず、戻り型は `Any` です。 5. **実機未検証:** HTTP/gRPC/Tango の接続、Tango の同期・非同期実装、実デバイスのライフサイクルは統合テストしていません。単体テストはダミークライアントを使用します。 6. **コンストラクタ引数:** コアは一切変換しません。`async_mode` は対応するファクトリでのみ有効です。Tango の単一クライアントに渡せば、クライアントの引数として処理されます(通常は不要)。 7. **スレッド・プロセス:** レジストリはプロセス内の辞書です。複数プロセス間では共有されません。登録・解除と生成の同時実行に対する厳密な同期は提供しません。 8. **配布名・移行:** `device-proxy-factory` は仮称。既存 `DeviceProxy` の置換・再エクスポート、既存デバイスパッケージへの組込み、正式公開は未実施です。 9. **Python 3.7:** ソースは 3.7 対応の構文・型記法で記述していますが、現環境では Python 3.7 実機によるテストは実施していません。 これらは解決済みとして扱わず、実際の移行時に個別検証してください。 ## 静的型情報 / Static typing 各デバイスの `.pyi` は自動的に共通 `DeviceProxy` の overload に合成されない。明示的な型対応 JSON と共通 `core.pyi` の再生成が必要。インストール済みのパッケージを自動探索しない。専用クライアント `.pyi` の内容(クライアント側の override を含む)はデバイスパッケージ側の責任。/ Type checkers do not merge overloads across packages; an explicit mapping and regeneration are required. Device-specific overrides belong in dedicated client stubs.