viam-sdk 0.3.0__py3-none-linux_armv6l.whl → 0.66.0__py3-none-linux_armv6l.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of viam-sdk might be problematic. Click here for more details.

Files changed (452) hide show
  1. viam/__init__.py +29 -2
  2. viam/app/_logs.py +34 -0
  3. viam/app/app_client.py +2696 -0
  4. viam/app/billing_client.py +185 -0
  5. viam/app/data_client.py +2231 -0
  6. viam/app/ml_training_client.py +249 -0
  7. viam/app/provisioning_client.py +93 -0
  8. viam/app/viam_client.py +275 -0
  9. viam/components/arm/__init__.py +3 -26
  10. viam/components/arm/arm.py +123 -8
  11. viam/components/arm/client.py +37 -24
  12. viam/components/arm/service.py +35 -32
  13. viam/components/audio_in/__init__.py +24 -0
  14. viam/components/audio_in/audio_in.py +74 -0
  15. viam/components/audio_in/client.py +76 -0
  16. viam/components/audio_in/service.py +83 -0
  17. viam/components/audio_out/__init__.py +21 -0
  18. viam/components/audio_out/audio_out.py +72 -0
  19. viam/components/audio_out/client.py +67 -0
  20. viam/components/audio_out/service.py +63 -0
  21. viam/components/base/__init__.py +6 -11
  22. viam/components/base/base.py +134 -8
  23. viam/components/base/client.py +51 -23
  24. viam/components/base/service.py +33 -30
  25. viam/components/board/__init__.py +3 -12
  26. viam/components/board/board.py +247 -91
  27. viam/components/board/client.py +149 -83
  28. viam/components/board/service.py +63 -33
  29. viam/components/button/__init__.py +10 -0
  30. viam/components/button/button.py +41 -0
  31. viam/components/button/client.py +52 -0
  32. viam/components/button/service.py +46 -0
  33. viam/components/camera/__init__.py +3 -3
  34. viam/components/camera/camera.py +62 -27
  35. viam/components/camera/client.py +59 -27
  36. viam/components/camera/service.py +42 -65
  37. viam/components/component_base.py +28 -5
  38. viam/components/encoder/__init__.py +1 -1
  39. viam/components/encoder/client.py +25 -14
  40. viam/components/encoder/encoder.py +48 -10
  41. viam/components/encoder/service.py +14 -18
  42. viam/components/gantry/__init__.py +1 -13
  43. viam/components/gantry/client.py +80 -25
  44. viam/components/gantry/gantry.py +123 -9
  45. viam/components/gantry/service.py +51 -29
  46. viam/components/generic/__init__.py +1 -1
  47. viam/components/generic/client.py +21 -8
  48. viam/components/generic/generic.py +10 -2
  49. viam/components/generic/service.py +12 -7
  50. viam/components/gripper/__init__.py +3 -13
  51. viam/components/gripper/client.py +69 -21
  52. viam/components/gripper/gripper.py +123 -3
  53. viam/components/gripper/service.py +44 -22
  54. viam/components/input/__init__.py +1 -14
  55. viam/components/input/client.py +55 -23
  56. viam/components/input/input.py +106 -3
  57. viam/components/input/service.py +16 -21
  58. viam/components/motor/__init__.py +1 -21
  59. viam/components/motor/client.py +56 -33
  60. viam/components/motor/motor.py +127 -4
  61. viam/components/motor/service.py +33 -44
  62. viam/components/movement_sensor/__init__.py +1 -1
  63. viam/components/movement_sensor/client.py +102 -45
  64. viam/components/movement_sensor/movement_sensor.py +130 -61
  65. viam/components/movement_sensor/service.py +38 -41
  66. viam/components/pose_tracker/__init__.py +1 -1
  67. viam/components/pose_tracker/client.py +18 -7
  68. viam/components/pose_tracker/pose_tracker.py +4 -2
  69. viam/components/pose_tracker/service.py +12 -10
  70. viam/components/power_sensor/__init__.py +17 -0
  71. viam/components/power_sensor/client.py +86 -0
  72. viam/components/power_sensor/power_sensor.py +104 -0
  73. viam/components/power_sensor/service.py +72 -0
  74. viam/components/sensor/__init__.py +2 -1
  75. viam/components/sensor/client.py +26 -10
  76. viam/components/sensor/sensor.py +22 -4
  77. viam/components/sensor/service.py +20 -11
  78. viam/components/servo/__init__.py +1 -13
  79. viam/components/servo/client.py +47 -21
  80. viam/components/servo/service.py +15 -22
  81. viam/components/servo/servo.py +61 -2
  82. viam/components/switch/__init__.py +10 -0
  83. viam/components/switch/client.py +83 -0
  84. viam/components/switch/service.py +72 -0
  85. viam/components/switch/switch.py +98 -0
  86. viam/errors.py +10 -0
  87. viam/gen/app/agent/v1/agent_grpc.py +29 -0
  88. viam/gen/app/agent/v1/agent_pb2.py +47 -0
  89. viam/gen/app/agent/v1/agent_pb2.pyi +280 -0
  90. viam/gen/app/cloudslam/v1/__init__.py +0 -0
  91. viam/gen/app/cloudslam/v1/cloud_slam_grpc.py +70 -0
  92. viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +54 -0
  93. viam/gen/app/cloudslam/v1/cloud_slam_pb2.pyi +384 -0
  94. viam/gen/app/data/v1/data_grpc.py +197 -8
  95. viam/gen/app/data/v1/data_pb2.py +238 -99
  96. viam/gen/app/data/v1/data_pb2.pyi +1222 -259
  97. viam/gen/app/datapipelines/__init__.py +0 -0
  98. viam/gen/app/datapipelines/v1/__init__.py +0 -0
  99. viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
  100. viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +57 -0
  101. viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +387 -0
  102. viam/gen/app/dataset/__init__.py +0 -0
  103. viam/gen/app/dataset/v1/__init__.py +0 -0
  104. viam/gen/app/dataset/v1/dataset_grpc.py +68 -0
  105. viam/gen/app/dataset/v1/dataset_pb2.py +44 -0
  106. viam/gen/app/dataset/v1/dataset_pb2.pyi +214 -0
  107. viam/gen/app/datasync/v1/data_sync_grpc.py +21 -4
  108. viam/gen/app/datasync/v1/data_sync_pb2.py +62 -128
  109. viam/gen/app/datasync/v1/data_sync_pb2.pyi +156 -199
  110. viam/gen/app/mlinference/__init__.py +0 -0
  111. viam/gen/app/mlinference/v1/__init__.py +0 -0
  112. viam/gen/app/mlinference/v1/ml_inference_grpc.py +28 -0
  113. viam/gen/app/mlinference/v1/ml_inference_pb2.py +23 -0
  114. viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +63 -0
  115. viam/gen/app/mltraining/v1/ml_training_grpc.py +51 -3
  116. viam/gen/app/mltraining/v1/ml_training_pb2.py +135 -58
  117. viam/gen/app/mltraining/v1/ml_training_pb2.pyi +328 -39
  118. viam/gen/app/packages/v1/packages_grpc.py +15 -1
  119. viam/gen/app/packages/v1/packages_pb2.py +44 -64
  120. viam/gen/app/packages/v1/packages_pb2.pyi +75 -85
  121. viam/gen/app/v1/app_grpc.py +644 -3
  122. viam/gen/app/v1/app_pb2.py +695 -295
  123. viam/gen/app/v1/app_pb2.pyi +4488 -635
  124. viam/gen/app/v1/billing_grpc.py +53 -11
  125. viam/gen/app/v1/billing_pb2.py +94 -39
  126. viam/gen/app/v1/billing_pb2.pyi +391 -191
  127. viam/gen/app/v1/end_user_grpc.py +59 -0
  128. viam/gen/app/v1/end_user_pb2.py +55 -0
  129. viam/gen/app/v1/end_user_pb2.pyi +181 -0
  130. viam/gen/app/v1/robot_grpc.py +16 -1
  131. viam/gen/app/v1/robot_pb2.py +122 -94
  132. viam/gen/app/v1/robot_pb2.pyi +463 -123
  133. viam/gen/common/v1/common_pb2.py +87 -58
  134. viam/gen/common/v1/common_pb2.pyi +456 -149
  135. viam/gen/component/arm/v1/arm_grpc.py +58 -2
  136. viam/gen/component/arm/v1/arm_pb2.py +68 -51
  137. viam/gen/component/arm/v1/arm_pb2.pyi +108 -42
  138. viam/gen/component/audioin/__init__.py +0 -0
  139. viam/gen/component/audioin/v1/__init__.py +0 -0
  140. viam/gen/component/audioin/v1/audioin_grpc.py +54 -0
  141. viam/gen/component/audioin/v1/audioin_pb2.py +34 -0
  142. viam/gen/component/audioin/v1/audioin_pb2.pyi +94 -0
  143. viam/gen/component/audioinput/v1/audioinput_grpc.py +25 -2
  144. viam/gen/component/audioinput/v1/audioinput_pb2.py +36 -31
  145. viam/gen/component/audioinput/v1/audioinput_pb2.pyi +22 -22
  146. viam/gen/component/audioout/__init__.py +0 -0
  147. viam/gen/component/audioout/v1/__init__.py +0 -0
  148. viam/gen/component/audioout/v1/audioout_grpc.py +54 -0
  149. viam/gen/component/audioout/v1/audioout_pb2.py +32 -0
  150. viam/gen/component/audioout/v1/audioout_pb2.pyi +47 -0
  151. viam/gen/component/base/v1/base_grpc.py +42 -2
  152. viam/gen/component/base/v1/base_pb2.py +58 -47
  153. viam/gen/component/base/v1/base_pb2.pyi +65 -30
  154. viam/gen/component/board/v1/board_grpc.py +59 -7
  155. viam/gen/component/board/v1/board_pb2.py +94 -73
  156. viam/gen/component/board/v1/board_pb2.pyi +165 -68
  157. viam/gen/component/button/__init__.py +0 -0
  158. viam/gen/component/button/v1/__init__.py +0 -0
  159. viam/gen/component/button/v1/button_grpc.py +38 -0
  160. viam/gen/component/button/v1/button_pb2.py +28 -0
  161. viam/gen/component/button/v1/button_pb2.pyi +39 -0
  162. viam/gen/component/camera/v1/camera_grpc.py +38 -2
  163. viam/gen/component/camera/v1/camera_pb2.py +60 -43
  164. viam/gen/component/camera/v1/camera_pb2.pyi +191 -37
  165. viam/gen/component/encoder/v1/encoder_grpc.py +25 -2
  166. viam/gen/component/encoder/v1/encoder_pb2.py +36 -31
  167. viam/gen/component/encoder/v1/encoder_pb2.pyi +15 -15
  168. viam/gen/component/gantry/v1/gantry_grpc.py +47 -2
  169. viam/gen/component/gantry/v1/gantry_pb2.py +56 -43
  170. viam/gen/component/gantry/v1/gantry_pb2.pyi +67 -31
  171. viam/gen/component/generic/v1/generic_grpc.py +16 -2
  172. viam/gen/component/generic/v1/generic_pb2.py +16 -11
  173. viam/gen/component/gripper/v1/gripper_grpc.py +44 -2
  174. viam/gen/component/gripper/v1/gripper_pb2.py +48 -35
  175. viam/gen/component/gripper/v1/gripper_pb2.pyi +62 -24
  176. viam/gen/component/inputcontroller/v1/input_controller_grpc.py +28 -2
  177. viam/gen/component/inputcontroller/v1/input_controller_pb2.py +46 -41
  178. viam/gen/component/inputcontroller/v1/input_controller_pb2.pyi +32 -36
  179. viam/gen/component/motor/v1/motor_grpc.py +51 -2
  180. viam/gen/component/motor/v1/motor_pb2.py +78 -67
  181. viam/gen/component/motor/v1/motor_pb2.pyi +75 -46
  182. viam/gen/component/movementsensor/v1/movementsensor_grpc.py +48 -2
  183. viam/gen/component/movementsensor/v1/movementsensor_pb2.py +70 -63
  184. viam/gen/component/movementsensor/v1/movementsensor_pb2.pyi +84 -57
  185. viam/gen/component/posetracker/v1/pose_tracker_grpc.py +19 -2
  186. viam/gen/component/posetracker/v1/pose_tracker_pb2.py +26 -21
  187. viam/gen/component/posetracker/v1/pose_tracker_pb2.pyi +9 -13
  188. viam/gen/component/powersensor/__init__.py +0 -0
  189. viam/gen/component/powersensor/v1/__init__.py +0 -0
  190. viam/gen/component/powersensor/v1/powersensor_grpc.py +62 -0
  191. viam/gen/component/powersensor/v1/powersensor_pb2.py +42 -0
  192. viam/gen/component/powersensor/v1/powersensor_pb2.pyi +124 -0
  193. viam/gen/component/sensor/v1/sensor_grpc.py +21 -5
  194. viam/gen/component/sensor/v1/sensor_pb2.py +18 -22
  195. viam/gen/component/sensor/v1/sensor_pb2.pyi +1 -69
  196. viam/gen/component/servo/v1/servo_grpc.py +28 -2
  197. viam/gen/component/servo/v1/servo_pb2.py +42 -37
  198. viam/gen/component/servo/v1/servo_pb2.pyi +22 -26
  199. viam/gen/component/switch/__init__.py +0 -0
  200. viam/gen/component/switch/v1/__init__.py +0 -0
  201. viam/gen/component/switch/v1/switch_grpc.py +54 -0
  202. viam/gen/component/switch/v1/switch_pb2.py +40 -0
  203. viam/gen/component/switch/v1/switch_pb2.pyi +116 -0
  204. viam/gen/component/testecho/v1/testecho_grpc.py +15 -0
  205. viam/gen/component/testecho/v1/testecho_pb2.py +29 -26
  206. viam/gen/component/testecho/v1/testecho_pb2.pyi +16 -20
  207. viam/gen/module/v1/module_grpc.py +18 -0
  208. viam/gen/module/v1/module_pb2.py +36 -33
  209. viam/gen/module/v1/module_pb2.pyi +39 -34
  210. viam/gen/opentelemetry/__init__.py +0 -0
  211. viam/gen/opentelemetry/proto/__init__.py +0 -0
  212. viam/gen/opentelemetry/proto/common/__init__.py +0 -0
  213. viam/gen/opentelemetry/proto/common/v1/__init__.py +0 -0
  214. viam/gen/opentelemetry/proto/common/v1/common_grpc.py +0 -0
  215. viam/gen/opentelemetry/proto/common/v1/common_pb2.py +27 -0
  216. viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi +208 -0
  217. viam/gen/opentelemetry/proto/resource/__init__.py +0 -0
  218. viam/gen/opentelemetry/proto/resource/v1/__init__.py +0 -0
  219. viam/gen/opentelemetry/proto/resource/v1/resource_grpc.py +0 -0
  220. viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py +18 -0
  221. viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi +59 -0
  222. viam/gen/opentelemetry/proto/trace/__init__.py +0 -0
  223. viam/gen/opentelemetry/proto/trace/v1/__init__.py +0 -0
  224. viam/gen/opentelemetry/proto/trace/v1/trace_grpc.py +0 -0
  225. viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py +37 -0
  226. viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi +402 -0
  227. viam/gen/proto/rpc/examples/echo/v1/echo_grpc.py +12 -0
  228. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +25 -22
  229. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.pyi +13 -17
  230. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_grpc.py +12 -0
  231. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +23 -20
  232. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.pyi +13 -17
  233. viam/gen/proto/rpc/v1/auth_grpc.py +11 -0
  234. viam/gen/proto/rpc/v1/auth_pb2.py +27 -24
  235. viam/gen/proto/rpc/v1/auth_pb2.pyi +12 -16
  236. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +35 -32
  237. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.pyi +37 -41
  238. viam/gen/proto/rpc/webrtc/v1/signaling_grpc.py +15 -0
  239. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +62 -57
  240. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi +78 -69
  241. viam/gen/provisioning/__init__.py +0 -0
  242. viam/gen/provisioning/v1/__init__.py +0 -0
  243. viam/gen/provisioning/v1/provisioning_grpc.py +59 -0
  244. viam/gen/provisioning/v1/provisioning_pb2.py +45 -0
  245. viam/gen/provisioning/v1/provisioning_pb2.pyi +229 -0
  246. viam/gen/robot/v1/robot_grpc.py +144 -15
  247. viam/gen/robot/v1/robot_pb2.py +193 -119
  248. viam/gen/robot/v1/robot_pb2.pyi +565 -137
  249. viam/gen/service/datamanager/v1/data_manager_grpc.py +20 -2
  250. viam/gen/service/datamanager/v1/data_manager_pb2.py +27 -17
  251. viam/gen/service/datamanager/v1/data_manager_pb2.pyi +52 -10
  252. viam/gen/service/discovery/__init__.py +0 -0
  253. viam/gen/service/discovery/v1/__init__.py +0 -0
  254. viam/gen/service/discovery/v1/discovery_grpc.py +39 -0
  255. viam/gen/service/discovery/v1/discovery_pb2.py +29 -0
  256. viam/gen/service/discovery/v1/discovery_pb2.pyi +51 -0
  257. viam/gen/service/generic/__init__.py +0 -0
  258. viam/gen/service/generic/v1/__init__.py +0 -0
  259. viam/gen/service/generic/v1/generic_grpc.py +29 -0
  260. viam/gen/service/generic/v1/generic_pb2.py +21 -0
  261. viam/gen/service/generic/v1/generic_pb2.pyi +6 -0
  262. viam/gen/service/mlmodel/v1/mlmodel_grpc.py +9 -0
  263. viam/gen/service/mlmodel/v1/mlmodel_pb2.py +76 -29
  264. viam/gen/service/mlmodel/v1/mlmodel_pb2.pyi +307 -28
  265. viam/gen/service/motion/v1/motion_grpc.py +42 -4
  266. viam/gen/service/motion/v1/motion_pb2.py +119 -51
  267. viam/gen/service/motion/v1/motion_pb2.pyi +595 -120
  268. viam/gen/service/navigation/v1/navigation_grpc.py +49 -1
  269. viam/gen/service/navigation/v1/navigation_pb2.py +76 -51
  270. viam/gen/service/navigation/v1/navigation_pb2.pyi +188 -33
  271. viam/gen/service/sensors/v1/sensors_grpc.py +12 -0
  272. viam/gen/service/sensors/v1/sensors_pb2.py +60 -29
  273. viam/gen/service/sensors/v1/sensors_pb2.pyi +18 -21
  274. viam/gen/service/shell/v1/shell_grpc.py +27 -1
  275. viam/gen/service/shell/v1/shell_pb2.py +37 -15
  276. viam/gen/service/shell/v1/shell_pb2.pyi +260 -7
  277. viam/gen/service/slam/v1/slam_grpc.py +24 -2
  278. viam/gen/service/slam/v1/slam_pb2.py +44 -30
  279. viam/gen/service/slam/v1/slam_pb2.pyi +128 -27
  280. viam/gen/service/video/__init__.py +0 -0
  281. viam/gen/service/video/v1/__init__.py +0 -0
  282. viam/gen/service/video/v1/video_grpc.py +39 -0
  283. viam/gen/service/video/v1/video_pb2.py +29 -0
  284. viam/gen/service/video/v1/video_pb2.pyi +72 -0
  285. viam/gen/service/vision/v1/vision_grpc.py +39 -1
  286. viam/gen/service/vision/v1/vision_pb2.py +61 -45
  287. viam/gen/service/vision/v1/vision_pb2.pyi +180 -41
  288. viam/gen/service/worldstatestore/__init__.py +0 -0
  289. viam/gen/service/worldstatestore/v1/__init__.py +0 -0
  290. viam/gen/service/worldstatestore/v1/world_state_store_grpc.py +55 -0
  291. viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +39 -0
  292. viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +171 -0
  293. viam/gen/stream/__init__.py +0 -0
  294. viam/gen/stream/v1/__init__.py +0 -0
  295. viam/gen/stream/v1/stream_grpc.py +59 -0
  296. viam/gen/stream/v1/stream_pb2.py +39 -0
  297. viam/gen/stream/v1/stream_pb2.pyi +161 -0
  298. viam/gen/tagger/v1/tagger_pb2.py +9 -8
  299. viam/logging.py +160 -17
  300. viam/media/__init__.py +0 -9
  301. viam/media/audio.py +22 -10
  302. viam/media/utils/__init__.py +0 -0
  303. viam/media/utils/pil/__init__.py +55 -0
  304. viam/media/{viam_rgba_plugin.py → utils/pil/viam_rgba_plugin.py} +10 -16
  305. viam/media/viam_rgba.py +10 -0
  306. viam/media/video.py +197 -73
  307. viam/module/module.py +191 -44
  308. viam/module/resource_data_consumer.py +41 -0
  309. viam/module/service.py +9 -1
  310. viam/module/types.py +4 -5
  311. viam/operations.py +4 -3
  312. viam/proto/app/__init__.py +361 -5
  313. viam/proto/app/agent/__init__.py +28 -0
  314. viam/proto/app/billing.py +51 -27
  315. viam/proto/app/cloudslam/__init__.py +48 -0
  316. viam/proto/app/data/__init__.py +103 -17
  317. viam/proto/app/datapipelines/__init__.py +56 -0
  318. viam/proto/app/dataset/__init__.py +40 -0
  319. viam/proto/app/datasync/__init__.py +11 -5
  320. viam/proto/app/end_user.py +34 -0
  321. viam/proto/app/mlinference/__init__.py +15 -0
  322. viam/proto/app/mltraining/__init__.py +25 -1
  323. viam/proto/app/packages/__init__.py +3 -3
  324. viam/proto/app/robot.py +19 -1
  325. viam/proto/common/__init__.py +35 -8
  326. viam/proto/component/arm/__init__.py +9 -1
  327. viam/proto/component/audioin/__init__.py +16 -0
  328. viam/proto/component/audioinput/__init__.py +3 -1
  329. viam/proto/component/audioout/__init__.py +15 -0
  330. viam/proto/component/base/__init__.py +7 -1
  331. viam/proto/component/board/__init__.py +13 -5
  332. viam/proto/component/button/__init__.py +15 -0
  333. viam/proto/component/camera/__init__.py +9 -1
  334. viam/proto/component/encoder/__init__.py +3 -1
  335. viam/proto/component/gantry/__init__.py +7 -1
  336. viam/proto/component/generic/__init__.py +3 -1
  337. viam/proto/component/gripper/__init__.py +7 -1
  338. viam/proto/component/inputcontroller/__init__.py +7 -1
  339. viam/proto/component/motor/__init__.py +7 -1
  340. viam/proto/component/movementsensor/__init__.py +7 -1
  341. viam/proto/component/posetracker/__init__.py +7 -1
  342. viam/proto/component/powersensor/__init__.py +30 -0
  343. viam/proto/component/sensor/__init__.py +3 -4
  344. viam/proto/component/servo/__init__.py +3 -1
  345. viam/proto/component/switch/__init__.py +26 -0
  346. viam/proto/component/testecho/__init__.py +3 -1
  347. viam/proto/module/__init__.py +3 -1
  348. viam/proto/opentelemetry/__init__.py +0 -0
  349. viam/proto/opentelemetry/proto/__init__.py +0 -0
  350. viam/proto/opentelemetry/proto/common/__init__.py +15 -0
  351. viam/proto/opentelemetry/proto/resource/__init__.py +10 -0
  352. viam/proto/opentelemetry/proto/trace/__init__.py +15 -0
  353. viam/proto/provisioning/__init__.py +42 -0
  354. viam/proto/robot/__init__.py +57 -9
  355. viam/proto/rpc/auth.py +11 -1
  356. viam/proto/rpc/examples/echo/__init__.py +3 -1
  357. viam/proto/rpc/examples/echoresource/__init__.py +7 -1
  358. viam/proto/rpc/webrtc/grpc.py +3 -1
  359. viam/proto/rpc/webrtc/signaling.py +5 -1
  360. viam/proto/service/datamanager/__init__.py +15 -2
  361. viam/proto/service/discovery/__init__.py +15 -0
  362. viam/proto/service/generic/__init__.py +12 -0
  363. viam/proto/service/mlmodel/__init__.py +27 -1
  364. viam/proto/service/motion/__init__.py +35 -5
  365. viam/proto/service/navigation/__init__.py +19 -1
  366. viam/proto/service/sensors/__init__.py +3 -1
  367. viam/proto/service/shell/__init__.py +25 -2
  368. viam/proto/service/slam/__init__.py +13 -1
  369. viam/proto/service/video/__init__.py +15 -0
  370. viam/proto/service/vision/__init__.py +11 -1
  371. viam/proto/service/worldstatestore/__init__.py +32 -0
  372. viam/proto/stream/__init__.py +36 -0
  373. viam/py.typed +0 -0
  374. viam/resource/base.py +45 -8
  375. viam/resource/easy_resource.py +149 -0
  376. viam/resource/manager.py +35 -14
  377. viam/resource/registry.py +40 -52
  378. viam/resource/rpc_client_base.py +33 -1
  379. viam/resource/rpc_service_base.py +15 -8
  380. viam/resource/types.py +39 -26
  381. viam/robot/client.py +458 -91
  382. viam/robot/service.py +13 -107
  383. viam/rpc/dial.py +133 -15
  384. viam/rpc/libviam_rust_utils.so +0 -0
  385. viam/rpc/server.py +59 -15
  386. viam/rpc/types.py +2 -4
  387. viam/services/discovery/__init__.py +12 -0
  388. viam/services/discovery/client.py +55 -0
  389. viam/services/discovery/discovery.py +52 -0
  390. viam/services/discovery/service.py +43 -0
  391. viam/services/generic/__init__.py +18 -0
  392. viam/services/generic/client.py +58 -0
  393. viam/services/generic/generic.py +58 -0
  394. viam/services/generic/service.py +29 -0
  395. viam/services/mlmodel/__init__.py +15 -1
  396. viam/services/mlmodel/client.py +20 -15
  397. viam/services/mlmodel/mlmodel.py +44 -7
  398. viam/services/mlmodel/service.py +9 -13
  399. viam/services/mlmodel/utils.py +101 -0
  400. viam/services/motion/__init__.py +15 -3
  401. viam/services/motion/client.py +109 -150
  402. viam/services/motion/motion.py +380 -0
  403. viam/services/motion/service.py +132 -0
  404. viam/services/navigation/__init__.py +11 -0
  405. viam/services/navigation/client.py +99 -0
  406. viam/services/navigation/navigation.py +250 -0
  407. viam/services/navigation/service.py +137 -0
  408. viam/services/service_base.py +43 -4
  409. viam/services/service_client_base.py +4 -4
  410. viam/services/slam/__init__.py +4 -1
  411. viam/services/slam/client.py +21 -11
  412. viam/services/slam/service.py +16 -19
  413. viam/services/slam/slam.py +66 -5
  414. viam/services/vision/__init__.py +8 -0
  415. viam/services/vision/client.py +115 -111
  416. viam/services/vision/service.py +143 -0
  417. viam/services/vision/vision.py +317 -0
  418. viam/services/worldstatestore/__init__.py +18 -0
  419. viam/services/worldstatestore/client.py +94 -0
  420. viam/services/worldstatestore/service.py +55 -0
  421. viam/services/worldstatestore/worldstatestore.py +90 -0
  422. viam/sessions_client.py +254 -0
  423. viam/streams.py +44 -0
  424. viam/utils.py +143 -15
  425. viam/version_metadata.py +4 -0
  426. viam_sdk-0.66.0.dist-info/METADATA +157 -0
  427. viam_sdk-0.66.0.dist-info/RECORD +531 -0
  428. {viam_sdk-0.3.0.dist-info → viam_sdk-0.66.0.dist-info}/WHEEL +1 -1
  429. viam/components/audio_input/__init__.py +0 -18
  430. viam/components/audio_input/audio_input.py +0 -79
  431. viam/components/audio_input/client.py +0 -60
  432. viam/components/audio_input/service.py +0 -118
  433. viam/components/types.py +0 -5
  434. viam/gen/app/model/v1/model_grpc.py +0 -39
  435. viam/gen/app/model/v1/model_pb2.py +0 -71
  436. viam/gen/app/model/v1/model_pb2.pyi +0 -285
  437. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_grpc.py +0 -21
  438. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.py +0 -18
  439. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.pyi +0 -49
  440. viam/media/media.py +0 -53
  441. viam/proto/app/model/__init__.py +0 -40
  442. viam/proto/rpc/examples/fileupload/__init__.py +0 -13
  443. viam/services/sensors/__init__.py +0 -5
  444. viam/services/sensors/client.py +0 -63
  445. viam_sdk-0.3.0.dist-info/LICENSE +0 -202
  446. viam_sdk-0.3.0.dist-info/METADATA +0 -122
  447. viam_sdk-0.3.0.dist-info/RECORD +0 -372
  448. /viam/{gen/app/model → app}/__init__.py +0 -0
  449. /viam/gen/app/{model/v1 → agent}/__init__.py +0 -0
  450. /viam/gen/{proto/rpc/examples/fileupload → app/agent/v1}/__init__.py +0 -0
  451. /viam/gen/{proto/rpc/examples/fileupload/v1 → app/cloudslam}/__init__.py +0 -0
  452. /LICENSE → /viam_sdk-0.66.0.dist-info/licenses/LICENSE +0 -0
@@ -3,9 +3,10 @@
3
3
  isort:skip_file
4
4
  """
5
5
  import builtins
6
- from .... import common
6
+ import collections.abc
7
7
  import google.protobuf.descriptor
8
8
  import google.protobuf.duration_pb2
9
+ import google.protobuf.internal.containers
9
10
  import google.protobuf.internal.enum_type_wrapper
10
11
  import google.protobuf.message
11
12
  import google.protobuf.struct_pb2
@@ -34,47 +35,56 @@ POWER_MODE_NORMAL: PowerMode.ValueType
34
35
  POWER_MODE_OFFLINE_DEEP: PowerMode.ValueType
35
36
  global___PowerMode = PowerMode
36
37
 
37
- @typing_extensions.final
38
- class StatusRequest(google.protobuf.message.Message):
38
+ @typing.final
39
+ class Status(google.protobuf.message.Message):
39
40
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
40
- NAME_FIELD_NUMBER: builtins.int
41
- EXTRA_FIELD_NUMBER: builtins.int
42
- name: builtins.str
43
41
 
44
- @property
45
- def extra(self) -> google.protobuf.struct_pb2.Struct:
46
- """Additional arguments to the method"""
42
+ @typing.final
43
+ class AnalogsEntry(google.protobuf.message.Message):
44
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
45
+ KEY_FIELD_NUMBER: builtins.int
46
+ VALUE_FIELD_NUMBER: builtins.int
47
+ key: builtins.str
48
+ value: builtins.int
47
49
 
48
- def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
49
- ...
50
+ def __init__(self, *, key: builtins.str=..., value: builtins.int=...) -> None:
51
+ ...
50
52
 
51
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
52
- ...
53
+ def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None:
54
+ ...
53
55
 
54
- def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'name', b'name']) -> None:
55
- ...
56
- global___StatusRequest = StatusRequest
56
+ @typing.final
57
+ class DigitalInterruptsEntry(google.protobuf.message.Message):
58
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
59
+ KEY_FIELD_NUMBER: builtins.int
60
+ VALUE_FIELD_NUMBER: builtins.int
61
+ key: builtins.str
62
+ value: builtins.int
57
63
 
58
- @typing_extensions.final
59
- class StatusResponse(google.protobuf.message.Message):
60
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
61
- STATUS_FIELD_NUMBER: builtins.int
64
+ def __init__(self, *, key: builtins.str=..., value: builtins.int=...) -> None:
65
+ ...
66
+
67
+ def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None:
68
+ ...
69
+ ANALOGS_FIELD_NUMBER: builtins.int
70
+ DIGITAL_INTERRUPTS_FIELD_NUMBER: builtins.int
62
71
 
63
72
  @property
64
- def status(self) -> common.v1.common_pb2.BoardStatus:
73
+ def analogs(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]:
65
74
  ...
66
75
 
67
- def __init__(self, *, status: common.v1.common_pb2.BoardStatus | None=...) -> None:
76
+ @property
77
+ def digital_interrupts(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.int]:
68
78
  ...
69
79
 
70
- def HasField(self, field_name: typing_extensions.Literal['status', b'status']) -> builtins.bool:
80
+ def __init__(self, *, analogs: collections.abc.Mapping[builtins.str, builtins.int] | None=..., digital_interrupts: collections.abc.Mapping[builtins.str, builtins.int] | None=...) -> None:
71
81
  ...
72
82
 
73
- def ClearField(self, field_name: typing_extensions.Literal['status', b'status']) -> None:
83
+ def ClearField(self, field_name: typing.Literal['analogs', b'analogs', 'digital_interrupts', b'digital_interrupts']) -> None:
74
84
  ...
75
- global___StatusResponse = StatusResponse
85
+ global___Status = Status
76
86
 
77
- @typing_extensions.final
87
+ @typing.final
78
88
  class SetGPIORequest(google.protobuf.message.Message):
79
89
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
80
90
  NAME_FIELD_NUMBER: builtins.int
@@ -92,14 +102,14 @@ class SetGPIORequest(google.protobuf.message.Message):
92
102
  def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., high: builtins.bool=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
93
103
  ...
94
104
 
95
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
105
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
96
106
  ...
97
107
 
98
- def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'high', b'high', 'name', b'name', 'pin', b'pin']) -> None:
108
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'high', b'high', 'name', b'name', 'pin', b'pin']) -> None:
99
109
  ...
100
110
  global___SetGPIORequest = SetGPIORequest
101
111
 
102
- @typing_extensions.final
112
+ @typing.final
103
113
  class SetGPIOResponse(google.protobuf.message.Message):
104
114
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
105
115
 
@@ -107,7 +117,7 @@ class SetGPIOResponse(google.protobuf.message.Message):
107
117
  ...
108
118
  global___SetGPIOResponse = SetGPIOResponse
109
119
 
110
- @typing_extensions.final
120
+ @typing.final
111
121
  class GetGPIORequest(google.protobuf.message.Message):
112
122
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
113
123
  NAME_FIELD_NUMBER: builtins.int
@@ -123,14 +133,14 @@ class GetGPIORequest(google.protobuf.message.Message):
123
133
  def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
124
134
  ...
125
135
 
126
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
136
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
127
137
  ...
128
138
 
129
- def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
139
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
130
140
  ...
131
141
  global___GetGPIORequest = GetGPIORequest
132
142
 
133
- @typing_extensions.final
143
+ @typing.final
134
144
  class GetGPIOResponse(google.protobuf.message.Message):
135
145
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
136
146
  HIGH_FIELD_NUMBER: builtins.int
@@ -139,11 +149,11 @@ class GetGPIOResponse(google.protobuf.message.Message):
139
149
  def __init__(self, *, high: builtins.bool=...) -> None:
140
150
  ...
141
151
 
142
- def ClearField(self, field_name: typing_extensions.Literal['high', b'high']) -> None:
152
+ def ClearField(self, field_name: typing.Literal['high', b'high']) -> None:
143
153
  ...
144
154
  global___GetGPIOResponse = GetGPIOResponse
145
155
 
146
- @typing_extensions.final
156
+ @typing.final
147
157
  class PWMRequest(google.protobuf.message.Message):
148
158
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
149
159
  NAME_FIELD_NUMBER: builtins.int
@@ -159,14 +169,14 @@ class PWMRequest(google.protobuf.message.Message):
159
169
  def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
160
170
  ...
161
171
 
162
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
172
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
163
173
  ...
164
174
 
165
- def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
175
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
166
176
  ...
167
177
  global___PWMRequest = PWMRequest
168
178
 
169
- @typing_extensions.final
179
+ @typing.final
170
180
  class PWMResponse(google.protobuf.message.Message):
171
181
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
172
182
  DUTY_CYCLE_PCT_FIELD_NUMBER: builtins.int
@@ -176,11 +186,11 @@ class PWMResponse(google.protobuf.message.Message):
176
186
  def __init__(self, *, duty_cycle_pct: builtins.float=...) -> None:
177
187
  ...
178
188
 
179
- def ClearField(self, field_name: typing_extensions.Literal['duty_cycle_pct', b'duty_cycle_pct']) -> None:
189
+ def ClearField(self, field_name: typing.Literal['duty_cycle_pct', b'duty_cycle_pct']) -> None:
180
190
  ...
181
191
  global___PWMResponse = PWMResponse
182
192
 
183
- @typing_extensions.final
193
+ @typing.final
184
194
  class SetPWMRequest(google.protobuf.message.Message):
185
195
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
186
196
  NAME_FIELD_NUMBER: builtins.int
@@ -199,14 +209,14 @@ class SetPWMRequest(google.protobuf.message.Message):
199
209
  def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., duty_cycle_pct: builtins.float=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
200
210
  ...
201
211
 
202
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
212
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
203
213
  ...
204
214
 
205
- def ClearField(self, field_name: typing_extensions.Literal['duty_cycle_pct', b'duty_cycle_pct', 'extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
215
+ def ClearField(self, field_name: typing.Literal['duty_cycle_pct', b'duty_cycle_pct', 'extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
206
216
  ...
207
217
  global___SetPWMRequest = SetPWMRequest
208
218
 
209
- @typing_extensions.final
219
+ @typing.final
210
220
  class SetPWMResponse(google.protobuf.message.Message):
211
221
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
212
222
 
@@ -214,7 +224,7 @@ class SetPWMResponse(google.protobuf.message.Message):
214
224
  ...
215
225
  global___SetPWMResponse = SetPWMResponse
216
226
 
217
- @typing_extensions.final
227
+ @typing.final
218
228
  class PWMFrequencyRequest(google.protobuf.message.Message):
219
229
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
220
230
  NAME_FIELD_NUMBER: builtins.int
@@ -230,14 +240,14 @@ class PWMFrequencyRequest(google.protobuf.message.Message):
230
240
  def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
231
241
  ...
232
242
 
233
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
243
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
234
244
  ...
235
245
 
236
- def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
246
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin']) -> None:
237
247
  ...
238
248
  global___PWMFrequencyRequest = PWMFrequencyRequest
239
249
 
240
- @typing_extensions.final
250
+ @typing.final
241
251
  class PWMFrequencyResponse(google.protobuf.message.Message):
242
252
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
243
253
  FREQUENCY_HZ_FIELD_NUMBER: builtins.int
@@ -246,11 +256,11 @@ class PWMFrequencyResponse(google.protobuf.message.Message):
246
256
  def __init__(self, *, frequency_hz: builtins.int=...) -> None:
247
257
  ...
248
258
 
249
- def ClearField(self, field_name: typing_extensions.Literal['frequency_hz', b'frequency_hz']) -> None:
259
+ def ClearField(self, field_name: typing.Literal['frequency_hz', b'frequency_hz']) -> None:
250
260
  ...
251
261
  global___PWMFrequencyResponse = PWMFrequencyResponse
252
262
 
253
- @typing_extensions.final
263
+ @typing.final
254
264
  class SetPWMFrequencyRequest(google.protobuf.message.Message):
255
265
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
256
266
  NAME_FIELD_NUMBER: builtins.int
@@ -268,14 +278,14 @@ class SetPWMFrequencyRequest(google.protobuf.message.Message):
268
278
  def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., frequency_hz: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
269
279
  ...
270
280
 
271
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
281
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
272
282
  ...
273
283
 
274
- def ClearField(self, field_name: typing_extensions.Literal['extra', b'extra', 'frequency_hz', b'frequency_hz', 'name', b'name', 'pin', b'pin']) -> None:
284
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'frequency_hz', b'frequency_hz', 'name', b'name', 'pin', b'pin']) -> None:
275
285
  ...
276
286
  global___SetPWMFrequencyRequest = SetPWMFrequencyRequest
277
287
 
278
- @typing_extensions.final
288
+ @typing.final
279
289
  class SetPWMFrequencyResponse(google.protobuf.message.Message):
280
290
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
281
291
 
@@ -283,7 +293,7 @@ class SetPWMFrequencyResponse(google.protobuf.message.Message):
283
293
  ...
284
294
  global___SetPWMFrequencyResponse = SetPWMFrequencyResponse
285
295
 
286
- @typing_extensions.final
296
+ @typing.final
287
297
  class ReadAnalogReaderRequest(google.protobuf.message.Message):
288
298
  """Analog Reader"""
289
299
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -300,27 +310,67 @@ class ReadAnalogReaderRequest(google.protobuf.message.Message):
300
310
  def __init__(self, *, board_name: builtins.str=..., analog_reader_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
301
311
  ...
302
312
 
303
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
313
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
304
314
  ...
305
315
 
306
- def ClearField(self, field_name: typing_extensions.Literal['analog_reader_name', b'analog_reader_name', 'board_name', b'board_name', 'extra', b'extra']) -> None:
316
+ def ClearField(self, field_name: typing.Literal['analog_reader_name', b'analog_reader_name', 'board_name', b'board_name', 'extra', b'extra']) -> None:
307
317
  ...
308
318
  global___ReadAnalogReaderRequest = ReadAnalogReaderRequest
309
319
 
310
- @typing_extensions.final
320
+ @typing.final
311
321
  class ReadAnalogReaderResponse(google.protobuf.message.Message):
312
322
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
313
323
  VALUE_FIELD_NUMBER: builtins.int
324
+ MIN_RANGE_FIELD_NUMBER: builtins.int
325
+ MAX_RANGE_FIELD_NUMBER: builtins.int
326
+ STEP_SIZE_FIELD_NUMBER: builtins.int
314
327
  value: builtins.int
328
+ min_range: builtins.float
329
+ max_range: builtins.float
330
+ step_size: builtins.float
315
331
 
316
- def __init__(self, *, value: builtins.int=...) -> None:
332
+ def __init__(self, *, value: builtins.int=..., min_range: builtins.float=..., max_range: builtins.float=..., step_size: builtins.float=...) -> None:
317
333
  ...
318
334
 
319
- def ClearField(self, field_name: typing_extensions.Literal['value', b'value']) -> None:
335
+ def ClearField(self, field_name: typing.Literal['max_range', b'max_range', 'min_range', b'min_range', 'step_size', b'step_size', 'value', b'value']) -> None:
320
336
  ...
321
337
  global___ReadAnalogReaderResponse = ReadAnalogReaderResponse
322
338
 
323
- @typing_extensions.final
339
+ @typing.final
340
+ class WriteAnalogRequest(google.protobuf.message.Message):
341
+ """Analog Writer"""
342
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
343
+ NAME_FIELD_NUMBER: builtins.int
344
+ PIN_FIELD_NUMBER: builtins.int
345
+ VALUE_FIELD_NUMBER: builtins.int
346
+ EXTRA_FIELD_NUMBER: builtins.int
347
+ name: builtins.str
348
+ pin: builtins.str
349
+ value: builtins.int
350
+
351
+ @property
352
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
353
+ """Additional arguments to the method"""
354
+
355
+ def __init__(self, *, name: builtins.str=..., pin: builtins.str=..., value: builtins.int=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
356
+ ...
357
+
358
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
359
+ ...
360
+
361
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin', b'pin', 'value', b'value']) -> None:
362
+ ...
363
+ global___WriteAnalogRequest = WriteAnalogRequest
364
+
365
+ @typing.final
366
+ class WriteAnalogResponse(google.protobuf.message.Message):
367
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
368
+
369
+ def __init__(self) -> None:
370
+ ...
371
+ global___WriteAnalogResponse = WriteAnalogResponse
372
+
373
+ @typing.final
324
374
  class GetDigitalInterruptValueRequest(google.protobuf.message.Message):
325
375
  """Digital Interrupt"""
326
376
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
@@ -337,14 +387,14 @@ class GetDigitalInterruptValueRequest(google.protobuf.message.Message):
337
387
  def __init__(self, *, board_name: builtins.str=..., digital_interrupt_name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
338
388
  ...
339
389
 
340
- def HasField(self, field_name: typing_extensions.Literal['extra', b'extra']) -> builtins.bool:
390
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
341
391
  ...
342
392
 
343
- def ClearField(self, field_name: typing_extensions.Literal['board_name', b'board_name', 'digital_interrupt_name', b'digital_interrupt_name', 'extra', b'extra']) -> None:
393
+ def ClearField(self, field_name: typing.Literal['board_name', b'board_name', 'digital_interrupt_name', b'digital_interrupt_name', 'extra', b'extra']) -> None:
344
394
  ...
345
395
  global___GetDigitalInterruptValueRequest = GetDigitalInterruptValueRequest
346
396
 
347
- @typing_extensions.final
397
+ @typing.final
348
398
  class GetDigitalInterruptValueResponse(google.protobuf.message.Message):
349
399
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
350
400
  VALUE_FIELD_NUMBER: builtins.int
@@ -353,11 +403,58 @@ class GetDigitalInterruptValueResponse(google.protobuf.message.Message):
353
403
  def __init__(self, *, value: builtins.int=...) -> None:
354
404
  ...
355
405
 
356
- def ClearField(self, field_name: typing_extensions.Literal['value', b'value']) -> None:
406
+ def ClearField(self, field_name: typing.Literal['value', b'value']) -> None:
357
407
  ...
358
408
  global___GetDigitalInterruptValueResponse = GetDigitalInterruptValueResponse
359
409
 
360
- @typing_extensions.final
410
+ @typing.final
411
+ class StreamTicksRequest(google.protobuf.message.Message):
412
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
413
+ NAME_FIELD_NUMBER: builtins.int
414
+ PIN_NAMES_FIELD_NUMBER: builtins.int
415
+ EXTRA_FIELD_NUMBER: builtins.int
416
+ name: builtins.str
417
+ 'Board name'
418
+
419
+ @property
420
+ def pin_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
421
+ """Name of digital interrupts to recieve ticks from"""
422
+
423
+ @property
424
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
425
+ """Additional arguments to the method"""
426
+
427
+ def __init__(self, *, name: builtins.str=..., pin_names: collections.abc.Iterable[builtins.str] | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
428
+ ...
429
+
430
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
431
+ ...
432
+
433
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'pin_names', b'pin_names']) -> None:
434
+ ...
435
+ global___StreamTicksRequest = StreamTicksRequest
436
+
437
+ @typing.final
438
+ class StreamTicksResponse(google.protobuf.message.Message):
439
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
440
+ PIN_NAME_FIELD_NUMBER: builtins.int
441
+ TIME_FIELD_NUMBER: builtins.int
442
+ HIGH_FIELD_NUMBER: builtins.int
443
+ pin_name: builtins.str
444
+ 'name of interrupt'
445
+ time: builtins.int
446
+ 'Time in nanoseconds of a tick'
447
+ high: builtins.bool
448
+ 'Value high or low of the tick'
449
+
450
+ def __init__(self, *, pin_name: builtins.str=..., time: builtins.int=..., high: builtins.bool=...) -> None:
451
+ ...
452
+
453
+ def ClearField(self, field_name: typing.Literal['high', b'high', 'pin_name', b'pin_name', 'time', b'time']) -> None:
454
+ ...
455
+ global___StreamTicksResponse = StreamTicksResponse
456
+
457
+ @typing.final
361
458
  class SetPowerModeRequest(google.protobuf.message.Message):
362
459
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
363
460
  NAME_FIELD_NUMBER: builtins.int
@@ -380,17 +477,17 @@ class SetPowerModeRequest(google.protobuf.message.Message):
380
477
  def __init__(self, *, name: builtins.str=..., power_mode: global___PowerMode.ValueType=..., duration: google.protobuf.duration_pb2.Duration | None=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
381
478
  ...
382
479
 
383
- def HasField(self, field_name: typing_extensions.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra']) -> builtins.bool:
480
+ def HasField(self, field_name: typing.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra']) -> builtins.bool:
384
481
  ...
385
482
 
386
- def ClearField(self, field_name: typing_extensions.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra', 'name', b'name', 'power_mode', b'power_mode']) -> None:
483
+ def ClearField(self, field_name: typing.Literal['_duration', b'_duration', 'duration', b'duration', 'extra', b'extra', 'name', b'name', 'power_mode', b'power_mode']) -> None:
387
484
  ...
388
485
 
389
- def WhichOneof(self, oneof_group: typing_extensions.Literal['_duration', b'_duration']) -> typing_extensions.Literal['duration'] | None:
486
+ def WhichOneof(self, oneof_group: typing.Literal['_duration', b'_duration']) -> typing.Literal['duration'] | None:
390
487
  ...
391
488
  global___SetPowerModeRequest = SetPowerModeRequest
392
489
 
393
- @typing_extensions.final
490
+ @typing.final
394
491
  class SetPowerModeResponse(google.protobuf.message.Message):
395
492
  DESCRIPTOR: google.protobuf.descriptor.Descriptor
396
493
 
File without changes
File without changes
@@ -0,0 +1,38 @@
1
+ import abc
2
+ import typing
3
+ import grpclib.const
4
+ import grpclib.client
5
+ import grpclib.exceptions
6
+ if typing.TYPE_CHECKING:
7
+ import grpclib.server
8
+ from .... import common
9
+ import google.api.annotations_pb2
10
+ import google.protobuf.struct_pb2
11
+ from .... import component
12
+
13
+ class ButtonServiceBase(abc.ABC):
14
+
15
+ @abc.abstractmethod
16
+ async def Push(self, stream: 'grpclib.server.Stream[component.button.v1.button_pb2.PushRequest, component.button.v1.button_pb2.PushResponse]') -> None:
17
+ pass
18
+
19
+ @abc.abstractmethod
20
+ async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
21
+ pass
22
+
23
+ def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
24
+ return {'/viam.component.button.v1.ButtonService/Push': grpclib.const.Handler(self.Push, grpclib.const.Cardinality.UNARY_UNARY, component.button.v1.button_pb2.PushRequest, component.button.v1.button_pb2.PushResponse), '/viam.component.button.v1.ButtonService/DoCommand': grpclib.const.Handler(self.DoCommand, grpclib.const.Cardinality.UNARY_UNARY, common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)}
25
+
26
+ class UnimplementedButtonServiceBase(ButtonServiceBase):
27
+
28
+ async def Push(self, stream: 'grpclib.server.Stream[component.button.v1.button_pb2.PushRequest, component.button.v1.button_pb2.PushResponse]') -> None:
29
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
30
+
31
+ async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
32
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
33
+
34
+ class ButtonServiceStub:
35
+
36
+ def __init__(self, channel: grpclib.client.Channel) -> None:
37
+ self.Push = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.button.v1.ButtonService/Push', component.button.v1.button_pb2.PushRequest, component.button.v1.button_pb2.PushResponse)
38
+ self.DoCommand = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.button.v1.ButtonService/DoCommand', common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)
@@ -0,0 +1,28 @@
1
+ """Generated protocol buffer code."""
2
+ from google.protobuf import descriptor as _descriptor
3
+ from google.protobuf import descriptor_pool as _descriptor_pool
4
+ from google.protobuf import runtime_version as _runtime_version
5
+ from google.protobuf import symbol_database as _symbol_database
6
+ from google.protobuf.internal import builder as _builder
7
+ _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'component/button/v1/button.proto')
8
+ _sym_db = _symbol_database.Default()
9
+ from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2
10
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
11
+ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
12
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n component/button/v1/button.proto\x12\x18viam.component.button.v1\x1a\x16common/v1/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto"P\n\x0bPushRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\x0e\n\x0cPushResponse2\xa6\x02\n\rButtonService\x12\x88\x01\n\x04Push\x12%.viam.component.button.v1.PushRequest\x1a&.viam.component.button.v1.PushResponse"1\x82\xd3\xe4\x93\x02+\x1a)/viam/api/v1/component/button/{name}/push\x12\x89\x01\n\tDoCommand\x12 .viam.common.v1.DoCommandRequest\x1a!.viam.common.v1.DoCommandResponse"7\x82\xd3\xe4\x93\x021"//viam/api/v1/component/button/{name}/do_commandBC\n\x1ccom.viam.component.button.v1Z#go.viam.com/api/component/button/v1b\x06proto3')
13
+ _globals = globals()
14
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
15
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'component.button.v1.button_pb2', _globals)
16
+ if not _descriptor._USE_C_DESCRIPTORS:
17
+ _globals['DESCRIPTOR']._loaded_options = None
18
+ _globals['DESCRIPTOR']._serialized_options = b'\n\x1ccom.viam.component.button.v1Z#go.viam.com/api/component/button/v1'
19
+ _globals['_BUTTONSERVICE'].methods_by_name['Push']._loaded_options = None
20
+ _globals['_BUTTONSERVICE'].methods_by_name['Push']._serialized_options = b'\x82\xd3\xe4\x93\x02+\x1a)/viam/api/v1/component/button/{name}/push'
21
+ _globals['_BUTTONSERVICE'].methods_by_name['DoCommand']._loaded_options = None
22
+ _globals['_BUTTONSERVICE'].methods_by_name['DoCommand']._serialized_options = b'\x82\xd3\xe4\x93\x021"//viam/api/v1/component/button/{name}/do_command'
23
+ _globals['_PUSHREQUEST']._serialized_start = 146
24
+ _globals['_PUSHREQUEST']._serialized_end = 226
25
+ _globals['_PUSHRESPONSE']._serialized_start = 228
26
+ _globals['_PUSHRESPONSE']._serialized_end = 242
27
+ _globals['_BUTTONSERVICE']._serialized_start = 245
28
+ _globals['_BUTTONSERVICE']._serialized_end = 539
@@ -0,0 +1,39 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import google.protobuf.descriptor
7
+ import google.protobuf.message
8
+ import google.protobuf.struct_pb2
9
+ import typing
10
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
11
+
12
+ @typing.final
13
+ class PushRequest(google.protobuf.message.Message):
14
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
15
+ NAME_FIELD_NUMBER: builtins.int
16
+ EXTRA_FIELD_NUMBER: builtins.int
17
+ name: builtins.str
18
+
19
+ @property
20
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
21
+ ...
22
+
23
+ def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
24
+ ...
25
+
26
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
27
+ ...
28
+
29
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None:
30
+ ...
31
+ global___PushRequest = PushRequest
32
+
33
+ @typing.final
34
+ class PushResponse(google.protobuf.message.Message):
35
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
36
+
37
+ def __init__(self) -> None:
38
+ ...
39
+ global___PushResponse = PushResponse
@@ -2,11 +2,14 @@ import abc
2
2
  import typing
3
3
  import grpclib.const
4
4
  import grpclib.client
5
+ import grpclib.exceptions
5
6
  if typing.TYPE_CHECKING:
6
7
  import grpclib.server
8
+ from .... import app
7
9
  from .... import common
8
10
  import google.api.annotations_pb2
9
11
  import google.api.httpbody_pb2
12
+ import google.protobuf.struct_pb2
10
13
  from .... import component
11
14
 
12
15
  class CameraServiceBase(abc.ABC):
@@ -15,6 +18,10 @@ class CameraServiceBase(abc.ABC):
15
18
  async def GetImage(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.GetImageRequest, component.camera.v1.camera_pb2.GetImageResponse]') -> None:
16
19
  pass
17
20
 
21
+ @abc.abstractmethod
22
+ async def GetImages(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.GetImagesRequest, component.camera.v1.camera_pb2.GetImagesResponse]') -> None:
23
+ pass
24
+
18
25
  @abc.abstractmethod
19
26
  async def RenderFrame(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.RenderFrameRequest, google.api.httpbody_pb2.HttpBody]') -> None:
20
27
  pass
@@ -31,14 +38,43 @@ class CameraServiceBase(abc.ABC):
31
38
  async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
32
39
  pass
33
40
 
41
+ @abc.abstractmethod
42
+ async def GetGeometries(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.GetGeometriesRequest, common.v1.common_pb2.GetGeometriesResponse]') -> None:
43
+ pass
44
+
34
45
  def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
35
- return {'/viam.component.camera.v1.CameraService/GetImage': grpclib.const.Handler(self.GetImage, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.GetImageRequest, component.camera.v1.camera_pb2.GetImageResponse), '/viam.component.camera.v1.CameraService/RenderFrame': grpclib.const.Handler(self.RenderFrame, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.RenderFrameRequest, google.api.httpbody_pb2.HttpBody), '/viam.component.camera.v1.CameraService/GetPointCloud': grpclib.const.Handler(self.GetPointCloud, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.GetPointCloudRequest, component.camera.v1.camera_pb2.GetPointCloudResponse), '/viam.component.camera.v1.CameraService/GetProperties': grpclib.const.Handler(self.GetProperties, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.GetPropertiesRequest, component.camera.v1.camera_pb2.GetPropertiesResponse), '/viam.component.camera.v1.CameraService/DoCommand': grpclib.const.Handler(self.DoCommand, grpclib.const.Cardinality.UNARY_UNARY, common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)}
46
+ return {'/viam.component.camera.v1.CameraService/GetImage': grpclib.const.Handler(self.GetImage, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.GetImageRequest, component.camera.v1.camera_pb2.GetImageResponse), '/viam.component.camera.v1.CameraService/GetImages': grpclib.const.Handler(self.GetImages, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.GetImagesRequest, component.camera.v1.camera_pb2.GetImagesResponse), '/viam.component.camera.v1.CameraService/RenderFrame': grpclib.const.Handler(self.RenderFrame, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.RenderFrameRequest, google.api.httpbody_pb2.HttpBody), '/viam.component.camera.v1.CameraService/GetPointCloud': grpclib.const.Handler(self.GetPointCloud, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.GetPointCloudRequest, component.camera.v1.camera_pb2.GetPointCloudResponse), '/viam.component.camera.v1.CameraService/GetProperties': grpclib.const.Handler(self.GetProperties, grpclib.const.Cardinality.UNARY_UNARY, component.camera.v1.camera_pb2.GetPropertiesRequest, component.camera.v1.camera_pb2.GetPropertiesResponse), '/viam.component.camera.v1.CameraService/DoCommand': grpclib.const.Handler(self.DoCommand, grpclib.const.Cardinality.UNARY_UNARY, common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse), '/viam.component.camera.v1.CameraService/GetGeometries': grpclib.const.Handler(self.GetGeometries, grpclib.const.Cardinality.UNARY_UNARY, common.v1.common_pb2.GetGeometriesRequest, common.v1.common_pb2.GetGeometriesResponse)}
47
+
48
+ class UnimplementedCameraServiceBase(CameraServiceBase):
49
+
50
+ async def GetImage(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.GetImageRequest, component.camera.v1.camera_pb2.GetImageResponse]') -> None:
51
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
52
+
53
+ async def GetImages(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.GetImagesRequest, component.camera.v1.camera_pb2.GetImagesResponse]') -> None:
54
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
55
+
56
+ async def RenderFrame(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.RenderFrameRequest, google.api.httpbody_pb2.HttpBody]') -> None:
57
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
58
+
59
+ async def GetPointCloud(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.GetPointCloudRequest, component.camera.v1.camera_pb2.GetPointCloudResponse]') -> None:
60
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
61
+
62
+ async def GetProperties(self, stream: 'grpclib.server.Stream[component.camera.v1.camera_pb2.GetPropertiesRequest, component.camera.v1.camera_pb2.GetPropertiesResponse]') -> None:
63
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
64
+
65
+ async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
66
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
67
+
68
+ async def GetGeometries(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.GetGeometriesRequest, common.v1.common_pb2.GetGeometriesResponse]') -> None:
69
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
36
70
 
37
71
  class CameraServiceStub:
38
72
 
39
73
  def __init__(self, channel: grpclib.client.Channel) -> None:
40
74
  self.GetImage = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/GetImage', component.camera.v1.camera_pb2.GetImageRequest, component.camera.v1.camera_pb2.GetImageResponse)
75
+ self.GetImages = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/GetImages', component.camera.v1.camera_pb2.GetImagesRequest, component.camera.v1.camera_pb2.GetImagesResponse)
41
76
  self.RenderFrame = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/RenderFrame', component.camera.v1.camera_pb2.RenderFrameRequest, google.api.httpbody_pb2.HttpBody)
42
77
  self.GetPointCloud = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/GetPointCloud', component.camera.v1.camera_pb2.GetPointCloudRequest, component.camera.v1.camera_pb2.GetPointCloudResponse)
43
78
  self.GetProperties = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/GetProperties', component.camera.v1.camera_pb2.GetPropertiesRequest, component.camera.v1.camera_pb2.GetPropertiesResponse)
44
- self.DoCommand = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/DoCommand', common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)
79
+ self.DoCommand = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/DoCommand', common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)
80
+ self.GetGeometries = grpclib.client.UnaryUnaryMethod(channel, '/viam.component.camera.v1.CameraService/GetGeometries', common.v1.common_pb2.GetGeometriesRequest, common.v1.common_pb2.GetGeometriesResponse)