FastAPI source audit (2026-10-27)
This audit is based on the five newly supplied server_fastapi Python files, rather than assumptions about ese774_frame internals. The reviewed source snapshots are in source_reference/server_fastapi/ in this archive; they are not installed or deployed by the documentation build.
Verified structure
server.pyconstructs aFastApiServerat import time, usingdevice_cls=DobotCtrl,router_cls=None,api_spec=None,object_name="dobot", anddevice_kwargsderived fromConfig. Callingserver.run()is guarded byif __name__ == "__main__".SyncDobotClientandAsyncDobotClientinheritSyncDeviceClientandAsyncDeviceClient, respectively. Their constructors passobject_name="dobot"andapi_spec=Noneto the base class.server_fastapi/__init__.pyregistersDeviceProxywith the namesDobotCtrlanddobot, defaulting to asynchronous mode. Registration is performed on import.make_pyi.pygeneratesclient_async.pyi,client_sync.pyi, and__init__.pyifromDobotCtrl, using helpers fromese774_frame.
Practical limitations and configuration
Both client constructors accept
config,server_ip, andserver_port. Ifconfigis supplied, itsSERVER_IPandSERVER_PORToverride explicit arguments. Without either, the code constructshttp://None:None; no working connection defaults are supplied by these constructors.SERVER_IPconfigures the HTTP listener, whereasDOBOT_IPis passed to the robot controller. The sample default listener127.0.0.1is loopback-only.The server module does not call
Config.load_yaml(). Configuration must be loaded before server construction in the same process, or the server module must be adapted deliberately.The supplied sources do not establish transport authentication, authorization, TLS, retries, response schemas, or exception mapping: these require inspection of the installed
ese774_frameversion and runtime testing. No such behavior is claimed here.DeviceProxyasynchronous mode is about the client call, not confirmation that a physical robot move has completed.
Validation status
AST syntax, class inheritance declarations, constructor arguments, and registration parameters are source-verified. The current archive does not contain a runnable full src/dobot tree or the installed framework; Sphinx import-based autodoc, end-to-end HTTP behavior, and hardware motion are not verified.