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
@@ -1,22 +1,27 @@
1
- from typing import Any, Final, List, Mapping, Optional, Sequence
1
+ from typing import Any, Mapping, Optional, Sequence
2
2
 
3
3
  from grpclib.client import Channel
4
4
 
5
5
  from viam.proto.common import (
6
6
  DoCommandRequest,
7
7
  DoCommandResponse,
8
- GeoObstacle,
8
+ GeoGeometry,
9
+ Geometry,
9
10
  GeoPoint,
10
11
  Pose,
11
12
  PoseInFrame,
12
- ResourceName,
13
13
  Transform,
14
14
  WorldState,
15
15
  )
16
16
  from viam.proto.service.motion import (
17
17
  Constraints,
18
+ GetPlanRequest,
19
+ GetPlanResponse,
18
20
  GetPoseRequest,
19
21
  GetPoseResponse,
22
+ ListPlanStatusesRequest,
23
+ ListPlanStatusesResponse,
24
+ MotionConfiguration,
20
25
  MotionServiceStub,
21
26
  MoveOnGlobeRequest,
22
27
  MoveOnGlobeResponse,
@@ -24,62 +29,40 @@ from viam.proto.service.motion import (
24
29
  MoveOnMapResponse,
25
30
  MoveRequest,
26
31
  MoveResponse,
27
- MoveSingleComponentRequest,
28
- MoveSingleComponentResponse,
32
+ PlanStatusWithID,
33
+ StopPlanRequest,
34
+ StopPlanResponse,
29
35
  )
30
36
  from viam.resource.rpc_client_base import ReconfigurableResourceRPCClientBase
31
- from viam.resource.types import RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_SERVICE, Subtype
32
- from viam.services.service_client_base import ServiceClientBase
33
37
  from viam.utils import ValueTypes, dict_to_struct, struct_to_dict
34
38
 
39
+ from .motion import Motion
35
40
 
36
- class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
37
- """Motion is a Viam service that coordinates motion planning across all of the components in a given robot.
38
41
 
39
- The motion planning service calculates a valid path that avoids self collision by default. If additional constraints are supplied in the
40
- ``world_state`` message, the motion planning service will also account for those.
42
+ class MotionClient(Motion, ReconfigurableResourceRPCClientBase):
43
+ """
44
+ gRPC client for the Motion service.
41
45
  """
42
46
 
43
- SUBTYPE: Final = Subtype(RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_SERVICE, "motion")
44
47
  client: MotionServiceStub
45
48
 
46
49
  def __init__(self, name: str, channel: Channel):
47
- super().__init__(name, channel)
50
+ self.channel = channel
48
51
  self.client = MotionServiceStub(channel)
52
+ super().__init__(name)
49
53
 
50
54
  async def move(
51
55
  self,
52
- component_name: ResourceName,
56
+ component_name: str,
53
57
  destination: PoseInFrame,
54
58
  world_state: Optional[WorldState] = None,
55
59
  constraints: Optional[Constraints] = None,
56
60
  *,
57
61
  extra: Optional[Mapping[str, Any]] = None,
58
62
  timeout: Optional[float] = None,
63
+ **kwargs,
59
64
  ) -> bool:
60
- """Plan and execute a movement to move the component specified to its goal destination.
61
-
62
- Note: Frames designated with respect to components can also be used as the ``component_name`` when calling for a move. This
63
- technique allows for planning and moving the frame itself to the ``destination``. To do so, simply create a resource name with
64
- originating ReferenceFrame's name. Then pass in the resource name into ``component_name``. Ex::
65
-
66
- resource_name = Arm.get_resource_name("externalFrame")
67
- success = await MotionServiceClient.move(resource_name, ...)
68
-
69
- Args:
70
- component_name (viam.proto.common.ResourceName): Name of a component on a given robot.
71
- destination (viam.proto.common.PoseInFrame): The destination to move to, expressed as a ``Pose`` and the frame in which it was
72
- observed.
73
- world_state (viam.proto.common.WorldState): When supplied, the motion service will create a plan that obeys any contraints
74
- expressed in the WorldState message.
75
- constraints (viam.proto.service.motion.Constraints): When supplied, the motion service will create a plan that obeys any
76
- specified constraints
77
-
78
- Returns:
79
- bool: Whether the move was successful
80
- """
81
- if extra is None:
82
- extra = {}
65
+ md = kwargs.get("metadata", self.Metadata()).proto
83
66
  request = MoveRequest(
84
67
  name=self.name,
85
68
  destination=destination,
@@ -88,75 +71,24 @@ class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
88
71
  constraints=constraints,
89
72
  extra=dict_to_struct(extra),
90
73
  )
91
- response: MoveResponse = await self.client.Move(request, timeout=timeout)
92
- return response.success
93
-
94
- async def move_single_component(
95
- self,
96
- component_name: ResourceName,
97
- destination: PoseInFrame,
98
- world_state: Optional[WorldState] = None,
99
- *,
100
- extra: Optional[Mapping[str, Any]] = None,
101
- timeout: Optional[float] = None,
102
- ) -> bool:
103
- """
104
- This function will pass through a move command to a component with a ``move_to_position`` method that takes a ``Pose``. ``Arm`` is
105
- the only component that support this. This method will transform the destination pose, given in an arbitrary frame, into the pose of
106
- the arm. The arm will then move its most distal link to that pose. If you instead wish to move any other component than the arm end
107
- to that pose, then you must manually adjust the given destination by the transform from the arm end to the intended component.
108
-
109
- Args:
110
- component_name (viam.proto.common.ResourceName): Name of a component on a given robot.
111
- destination (viam.proto.common.PoseInFrame): The destination to move to, expressed as a ``Pose`` and the frame in which it was
112
- observed.
113
- world_state (viam.proto.common.WorldState): When supplied, the motion service will create a plan that obeys any contraints
114
- expressed in the WorldState message.
115
-
116
- Returns:
117
- bool: Whether the move was successful
118
- """
119
- if extra is None:
120
- extra = {}
121
- request = MoveSingleComponentRequest(
122
- name=self.name,
123
- destination=destination,
124
- component_name=component_name,
125
- world_state=world_state,
126
- extra=dict_to_struct(extra),
127
- )
128
- response: MoveSingleComponentResponse = await self.client.MoveSingleComponent(request, timeout=timeout)
74
+ response: MoveResponse = await self.client.Move(request, timeout=timeout, metadata=md)
129
75
  return response.success
130
76
 
131
77
  async def move_on_globe(
132
78
  self,
133
- component_name: ResourceName,
79
+ component_name: str,
134
80
  destination: GeoPoint,
135
- movement_sensor_name: ResourceName,
136
- obstacles: Optional[Sequence[GeoObstacle]] = None,
81
+ movement_sensor_name: str,
82
+ obstacles: Optional[Sequence[GeoGeometry]] = None,
137
83
  heading: Optional[float] = None,
138
- linear_meters_per_sec: Optional[float] = None,
139
- angular_deg_per_sec: Optional[float] = None,
84
+ configuration: Optional[MotionConfiguration] = None,
140
85
  *,
86
+ bounding_regions: Optional[Sequence[GeoGeometry]] = None,
141
87
  extra: Optional[Mapping[str, ValueTypes]] = None,
142
88
  timeout: Optional[float] = None,
143
- ) -> bool:
144
- """Move a component to a specific latitude and longitude, using a ``MovementSensor`` to check the location.
145
-
146
- Args:
147
- component_name (ResourceName): The component to move
148
- destination (GeoPoint): The destination point
149
- movement_sensor_name (ResourceName): The ``MovementSensor`` which will be used to check robot location
150
- obstacles (Optional[Sequence[GeoObstacle]], optional): Obstacles to be considered for motion planning. Defaults to None.
151
- heading (Optional[float], optional): Compass heading to achieve at the destination, in degrees [0-360). Defaults to None.
152
- linear_meters_per_sec (Optional[float], optional): Linear velocity to target when moving. Defaults to None.
153
- angular_deg_per_sec (Optional[float], optional): Angular velocity to target when turning. Defaults to None.
154
-
155
- Returns:
156
- bool: Whether the request was successful
157
- """
158
- if extra is None:
159
- extra = {}
89
+ **kwargs,
90
+ ) -> str:
91
+ md = kwargs.get("metadata", self.Metadata()).proto
160
92
  request = MoveOnGlobeRequest(
161
93
  name=self.name,
162
94
  component_name=component_name,
@@ -164,73 +96,107 @@ class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
164
96
  movement_sensor_name=movement_sensor_name,
165
97
  obstacles=obstacles,
166
98
  heading=heading,
167
- linear_meters_per_sec=linear_meters_per_sec,
168
- angular_deg_per_sec=angular_deg_per_sec,
99
+ motion_configuration=configuration,
100
+ bounding_regions=bounding_regions,
169
101
  extra=dict_to_struct(extra),
170
102
  )
171
- response: MoveOnGlobeResponse = await self.client.MoveOnGlobe(request, timeout=timeout)
172
- return response.success
103
+ response: MoveOnGlobeResponse = await self.client.MoveOnGlobe(request, timeout=timeout, metadata=md)
104
+ return response.execution_id
173
105
 
174
106
  async def move_on_map(
175
107
  self,
176
- component_name: ResourceName,
108
+ component_name: str,
177
109
  destination: Pose,
178
- slam_service_name: ResourceName,
110
+ slam_service_name: str,
111
+ configuration: Optional[MotionConfiguration] = None,
112
+ obstacles: Optional[Sequence[Geometry]] = None,
179
113
  *,
180
114
  extra: Optional[Mapping[str, ValueTypes]] = None,
181
115
  timeout: Optional[float] = None,
182
- ) -> bool:
183
- """Move a component to a specific pose, using a ``SlamService`` for the SLAM map
184
-
185
- Args:
186
- component_name (ResourceName): The component to move
187
- destination (Pose): The destination, which can be any pose with respect to the SLAM map's origin
188
- slam_service_name (ResourceName): The slam service from which the SLAM map is requested
189
-
190
- Returns:
191
- bool: Whether the request was successful
192
- """
193
- if extra is None:
194
- extra = {}
116
+ **kwargs,
117
+ ) -> str:
118
+ md = kwargs.get("metadata", self.Metadata()).proto
195
119
  request = MoveOnMapRequest(
196
120
  name=self.name,
197
121
  destination=destination,
198
122
  component_name=component_name,
199
123
  slam_service_name=slam_service_name,
124
+ motion_configuration=configuration,
125
+ obstacles=obstacles,
200
126
  extra=dict_to_struct(extra),
201
127
  )
202
- response: MoveOnMapResponse = await self.client.MoveOnMap(request, timeout=timeout)
203
- return response.success
128
+ response: MoveOnMapResponse = await self.client.MoveOnMap(request, timeout=timeout, metadata=md)
129
+ return response.execution_id
204
130
 
205
- async def get_pose(
131
+ async def stop_plan(
206
132
  self,
207
- component_name: ResourceName,
208
- destination_frame: str,
209
- supplemental_transforms: Optional[List[Transform]] = None,
133
+ component_name: str,
210
134
  *,
211
- extra: Optional[Mapping[str, Any]] = None,
135
+ extra: Optional[Mapping[str, ValueTypes]] = None,
212
136
  timeout: Optional[float] = None,
213
- ) -> PoseInFrame:
214
- """
215
- Get the Pose and observer frame for any given component on a robot. A ``component_name`` can be created like this::
137
+ **kwargs,
138
+ ):
139
+ md = kwargs.get("metadata", self.Metadata()).proto
216
140
 
217
- component_name = Arm.get_resource_name("arm")
141
+ request = StopPlanRequest(
142
+ name=self.name,
143
+ component_name=component_name,
144
+ extra=dict_to_struct(extra),
145
+ )
146
+ _: StopPlanResponse = await self.client.StopPlan(request, timeout=timeout, metadata=md)
147
+ return
218
148
 
219
- Note that the example uses the ``Arm`` class, but any component class that inherits from ``ComponentBase`` will work
220
- (``Base``, ``Gripper``, etc).
149
+ async def get_plan(
150
+ self,
151
+ component_name: str,
152
+ last_plan_only: bool = False,
153
+ execution_id: Optional[str] = None,
154
+ *,
155
+ extra: Optional[Mapping[str, ValueTypes]] = None,
156
+ timeout: Optional[float] = None,
157
+ **kwargs,
158
+ ) -> GetPlanResponse:
159
+ md = kwargs.get("metadata", self.Metadata()).proto
221
160
 
161
+ request = GetPlanRequest(
162
+ name=self.name,
163
+ component_name=component_name,
164
+ last_plan_only=last_plan_only,
165
+ execution_id=execution_id,
166
+ extra=dict_to_struct(extra),
167
+ )
168
+ response: GetPlanResponse = await self.client.GetPlan(request, timeout=timeout, metadata=md)
169
+ return response
222
170
 
223
- Args:
224
- component_name (viam.proto.common.ResourceName): Name of a component on a robot.
225
- destination_frame (str): Name of the desired reference frame.
226
- supplemental_transforms (Optional[List[viam.proto.common.Transform]]): Transforms used to augment the robot's frame while
227
- calculating pose.
171
+ async def list_plan_statuses(
172
+ self,
173
+ only_active_plans: bool = False,
174
+ *,
175
+ extra: Optional[Mapping[str, ValueTypes]] = None,
176
+ timeout: Optional[float] = None,
177
+ **kwargs,
178
+ ) -> Sequence[PlanStatusWithID]:
179
+ md = kwargs.get("metadata", self.Metadata()).proto
228
180
 
229
- Returns:
230
- ``Pose`` (PoseInFrame): Pose of the given component and the frame in which it was observed.
231
- """
232
- if extra is None:
233
- extra = {}
181
+ request = ListPlanStatusesRequest(
182
+ name=self.name,
183
+ only_active_plans=only_active_plans,
184
+ extra=dict_to_struct(extra),
185
+ )
186
+ response: ListPlanStatusesResponse = await self.client.ListPlanStatuses(request, timeout=timeout, metadata=md)
187
+ return response.plan_statuses_with_ids
188
+
189
+ async def get_pose(
190
+ self,
191
+ component_name: str,
192
+ destination_frame: str,
193
+ supplemental_transforms: Optional[Sequence[Transform]] = None,
194
+ *,
195
+ extra: Optional[Mapping[str, Any]] = None,
196
+ timeout: Optional[float] = None,
197
+ **kwargs,
198
+ ) -> PoseInFrame:
199
+ md = kwargs.get("metadata", self.Metadata()).proto
234
200
  request = GetPoseRequest(
235
201
  name=self.name,
236
202
  component_name=component_name,
@@ -238,18 +204,11 @@ class MotionClient(ServiceClientBase, ReconfigurableResourceRPCClientBase):
238
204
  supplemental_transforms=supplemental_transforms,
239
205
  extra=dict_to_struct(extra),
240
206
  )
241
- response: GetPoseResponse = await self.client.GetPose(request, timeout=timeout)
207
+ response: GetPoseResponse = await self.client.GetPose(request, timeout=timeout, metadata=md)
242
208
  return response.pose
243
209
 
244
- async def do_command(self, command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None) -> Mapping[str, ValueTypes]:
245
- """Send/receive arbitrary commands
246
-
247
- Args:
248
- command (Dict[str, ValueTypes]): The command to execute
249
-
250
- Returns:
251
- Dict[str, ValueTypes]: Result of the executed command
252
- """
210
+ async def do_command(self, command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None, **kwargs) -> Mapping[str, ValueTypes]:
211
+ md = kwargs.get("metadata", self.Metadata()).proto
253
212
  request = DoCommandRequest(name=self.name, command=dict_to_struct(command))
254
- response: DoCommandResponse = await self.client.DoCommand(request, timeout=timeout)
213
+ response: DoCommandResponse = await self.client.DoCommand(request, timeout=timeout, metadata=md)
255
214
  return struct_to_dict(response.result)