ese774_frame package
Subpackages
- ese774_frame.clients package
- Submodules
- ese774_frame.clients.async_device_client module
- ese774_frame.clients.device_proxy module
- ese774_frame.clients.make_pyi_device_client module
- ese774_frame.clients.make_pyi_device_proxy module
- ese774_frame.clients.sync_device_client module
- ese774_frame.models package
- ese774_frame.routers package
Submodules
ese774_frame.adapter module
Kengo NAKADA: https://github.com/shimane-dev, https://github.com/kengo-nakada kengo.nakada@mat.shimane-u.ac.jp, kengo.nakada@gmail.com
FastAPI frame adapter.
責務: - 通信境界(JSON)で Python 値を安全に往復させる - tuple を JSON で失わないようにマーカー化して復元する - bytes/bytearray を base64 へ変換して復元する - dispatch 経路の args/kwargs/result を pack/unpack する
注意: - 現行フローは JSON ベース。 - pickle 系ヘルパーは互換のため残っているが、通常経路では使わない。
- ese774_frame.adapter.pack_args(args: Tuple[Any, ...]) Dict[str, Any][ソース]
args を pack する(list 化して pack_result に委譲)。
- ese774_frame.adapter.pack_kwargs(kwargs: Dict[str, Any]) Dict[str, Any][ソース]
kwargs を pack する(dict のまま pack_result に委譲)。
ese774_frame.api_server module
FastAPI 用の汎用サーバーラッパー。
device_cls でデバイス実体を生成
router_cls で API ルータを生成
FastAPI の lifespan で初期化/解放を管理
Kengo NAKADA: https://github.com/shimane-dev, https://github.com/kengo-nakada kengo.nakada@mat.shimane-u.ac.jp, kengo.nakada@gmail.com
- class ese774_frame.api_server.FastApiServer(device_cls, router_cls, config, api_spec=None, device_kwargs=None, logger: Any | None = None, logger_name: str = 'FastApiServer', log_level: str | None = None, lifespan_msg_prefix: str = 'DEVICE', object_name: str | None = None, dispatch_exclude=None)[ソース]
ベースクラス:
objectdevice/router/api_spec を束ねて FastAPI アプリを構築・実行する。
lifecycle: - 起動: device 生成 -> router 生成 -> route 登録 - 停止: device.disconnect があれば呼び出し