viam-sdk 0.25.2__py3-none-linux_armv7l.whl → 0.62.0__py3-none-linux_armv7l.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.
Files changed (328) hide show
  1. viam/app/_logs.py +3 -6
  2. viam/app/app_client.py +606 -262
  3. viam/app/billing_client.py +60 -18
  4. viam/app/data_client.py +1086 -315
  5. viam/app/ml_training_client.py +51 -48
  6. viam/app/provisioning_client.py +3 -5
  7. viam/app/viam_client.py +105 -11
  8. viam/components/arm/__init__.py +1 -25
  9. viam/components/arm/arm.py +21 -22
  10. viam/components/arm/client.py +27 -30
  11. viam/components/arm/service.py +3 -3
  12. viam/components/audio_in/__init__.py +24 -0
  13. viam/components/audio_in/audio_in.py +74 -0
  14. viam/components/audio_in/client.py +76 -0
  15. viam/components/audio_in/service.py +83 -0
  16. viam/components/audio_input/__init__.py +1 -1
  17. viam/components/audio_input/audio_input.py +4 -3
  18. viam/components/audio_input/client.py +19 -8
  19. viam/components/audio_input/service.py +10 -0
  20. viam/components/audio_out/__init__.py +21 -0
  21. viam/components/audio_out/audio_out.py +72 -0
  22. viam/components/audio_out/client.py +67 -0
  23. viam/components/audio_out/service.py +63 -0
  24. viam/components/base/__init__.py +2 -10
  25. viam/components/base/base.py +20 -20
  26. viam/components/base/client.py +27 -30
  27. viam/components/board/__init__.py +2 -25
  28. viam/components/board/board.py +39 -77
  29. viam/components/board/client.py +39 -73
  30. viam/components/button/__init__.py +10 -0
  31. viam/components/button/button.py +41 -0
  32. viam/components/button/client.py +52 -0
  33. viam/components/button/service.py +46 -0
  34. viam/components/camera/__init__.py +1 -1
  35. viam/components/camera/camera.py +31 -22
  36. viam/components/camera/client.py +30 -20
  37. viam/components/camera/service.py +14 -12
  38. viam/components/component_base.py +10 -7
  39. viam/components/encoder/__init__.py +1 -1
  40. viam/components/encoder/client.py +15 -16
  41. viam/components/encoder/encoder.py +9 -9
  42. viam/components/gantry/__init__.py +1 -13
  43. viam/components/gantry/client.py +41 -28
  44. viam/components/gantry/gantry.py +48 -17
  45. viam/components/gantry/service.py +21 -5
  46. viam/components/generic/__init__.py +1 -1
  47. viam/components/generic/client.py +11 -7
  48. viam/components/generic/generic.py +3 -3
  49. viam/components/gripper/__init__.py +3 -12
  50. viam/components/gripper/client.py +43 -20
  51. viam/components/gripper/gripper.py +87 -12
  52. viam/components/gripper/service.py +32 -3
  53. viam/components/input/__init__.py +1 -14
  54. viam/components/input/client.py +22 -23
  55. viam/components/input/input.py +18 -12
  56. viam/components/motor/__init__.py +1 -21
  57. viam/components/motor/client.py +36 -42
  58. viam/components/motor/motor.py +24 -24
  59. viam/components/movement_sensor/__init__.py +1 -1
  60. viam/components/movement_sensor/client.py +33 -40
  61. viam/components/movement_sensor/movement_sensor.py +12 -12
  62. viam/components/pose_tracker/__init__.py +1 -1
  63. viam/components/pose_tracker/client.py +9 -8
  64. viam/components/pose_tracker/pose_tracker.py +2 -2
  65. viam/components/power_sensor/__init__.py +1 -1
  66. viam/components/power_sensor/client.py +15 -18
  67. viam/components/power_sensor/power_sensor.py +12 -12
  68. viam/components/sensor/__init__.py +1 -1
  69. viam/components/sensor/client.py +9 -8
  70. viam/components/sensor/sensor.py +5 -5
  71. viam/components/servo/__init__.py +1 -13
  72. viam/components/servo/client.py +18 -18
  73. viam/components/servo/servo.py +12 -12
  74. viam/components/switch/__init__.py +10 -0
  75. viam/components/switch/client.py +83 -0
  76. viam/components/switch/service.py +72 -0
  77. viam/components/switch/switch.py +95 -0
  78. viam/gen/app/agent/v1/agent_pb2.py +40 -29
  79. viam/gen/app/agent/v1/agent_pb2.pyi +73 -11
  80. viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +45 -42
  81. viam/gen/app/data/v1/data_grpc.py +98 -2
  82. viam/gen/app/data/v1/data_pb2.py +238 -119
  83. viam/gen/app/data/v1/data_pb2.pyi +804 -34
  84. viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
  85. viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +57 -0
  86. viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +387 -0
  87. viam/gen/app/dataset/v1/dataset_grpc.py +10 -2
  88. viam/gen/app/dataset/v1/dataset_pb2.py +38 -31
  89. viam/gen/app/dataset/v1/dataset_pb2.pyi +36 -1
  90. viam/gen/app/datasync/v1/data_sync_grpc.py +1 -1
  91. viam/gen/app/datasync/v1/data_sync_pb2.py +61 -51
  92. viam/gen/app/datasync/v1/data_sync_pb2.pyi +52 -12
  93. viam/gen/app/mlinference/__init__.py +0 -0
  94. viam/gen/app/mlinference/v1/__init__.py +0 -0
  95. viam/gen/app/mlinference/v1/ml_inference_grpc.py +28 -0
  96. viam/gen/app/mlinference/v1/ml_inference_pb2.py +23 -0
  97. viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +63 -0
  98. viam/gen/app/mltraining/v1/ml_training_grpc.py +18 -2
  99. viam/gen/app/mltraining/v1/ml_training_pb2.py +134 -101
  100. viam/gen/app/mltraining/v1/ml_training_pb2.pyi +193 -7
  101. viam/gen/app/packages/v1/packages_pb2.py +43 -40
  102. viam/gen/app/v1/app_grpc.py +290 -2
  103. viam/gen/app/v1/app_pb2.py +670 -453
  104. viam/gen/app/v1/app_pb2.pyi +3133 -947
  105. viam/gen/app/v1/billing_grpc.py +34 -2
  106. viam/gen/app/v1/billing_pb2.py +94 -35
  107. viam/gen/app/v1/billing_pb2.pyi +314 -61
  108. viam/gen/app/v1/end_user_pb2.py +50 -29
  109. viam/gen/app/v1/robot_pb2.py +120 -111
  110. viam/gen/app/v1/robot_pb2.pyi +137 -15
  111. viam/gen/common/v1/common_pb2.py +86 -66
  112. viam/gen/common/v1/common_pb2.pyi +184 -8
  113. viam/gen/component/arm/v1/arm_grpc.py +18 -2
  114. viam/gen/component/arm/v1/arm_pb2.py +68 -55
  115. viam/gen/component/arm/v1/arm_pb2.pyi +73 -3
  116. viam/gen/component/audioin/__init__.py +0 -0
  117. viam/gen/component/audioin/v1/__init__.py +0 -0
  118. viam/gen/component/audioin/v1/audioin_grpc.py +54 -0
  119. viam/gen/component/audioin/v1/audioin_pb2.py +34 -0
  120. viam/gen/component/audioin/v1/audioin_pb2.pyi +94 -0
  121. viam/gen/component/audioinput/v1/audioinput_pb2.py +35 -32
  122. viam/gen/component/audioout/__init__.py +0 -0
  123. viam/gen/component/audioout/v1/__init__.py +0 -0
  124. viam/gen/component/audioout/v1/audioout_grpc.py +54 -0
  125. viam/gen/component/audioout/v1/audioout_pb2.py +32 -0
  126. viam/gen/component/audioout/v1/audioout_pb2.pyi +47 -0
  127. viam/gen/component/base/v1/base_pb2.py +57 -54
  128. viam/gen/component/board/v1/board_pb2.py +93 -90
  129. viam/gen/component/button/__init__.py +0 -0
  130. viam/gen/component/button/v1/__init__.py +0 -0
  131. viam/gen/component/button/v1/button_grpc.py +38 -0
  132. viam/gen/component/button/v1/button_pb2.py +28 -0
  133. viam/gen/component/button/v1/button_pb2.pyi +39 -0
  134. viam/gen/component/camera/v1/camera_pb2.py +58 -55
  135. viam/gen/component/camera/v1/camera_pb2.pyi +31 -7
  136. viam/gen/component/encoder/v1/encoder_pb2.py +35 -32
  137. viam/gen/component/gantry/v1/gantry_grpc.py +9 -1
  138. viam/gen/component/gantry/v1/gantry_pb2.py +56 -51
  139. viam/gen/component/generic/v1/generic_pb2.py +15 -12
  140. viam/gen/component/gripper/v1/gripper_grpc.py +18 -2
  141. viam/gen/component/gripper/v1/gripper_pb2.py +48 -37
  142. viam/gen/component/gripper/v1/gripper_pb2.pyi +43 -1
  143. viam/gen/component/inputcontroller/v1/input_controller_pb2.py +45 -42
  144. viam/gen/component/motor/v1/motor_pb2.py +77 -74
  145. viam/gen/component/movementsensor/v1/movementsensor_pb2.py +69 -66
  146. viam/gen/component/posetracker/v1/pose_tracker_pb2.py +25 -22
  147. viam/gen/component/powersensor/v1/powersensor_pb2.py +33 -30
  148. viam/gen/component/sensor/v1/sensor_pb2.py +17 -14
  149. viam/gen/component/servo/v1/servo_pb2.py +41 -38
  150. viam/gen/component/switch/__init__.py +0 -0
  151. viam/gen/component/switch/v1/__init__.py +0 -0
  152. viam/gen/component/switch/v1/switch_grpc.py +54 -0
  153. viam/gen/component/switch/v1/switch_pb2.py +40 -0
  154. viam/gen/component/switch/v1/switch_pb2.pyi +116 -0
  155. viam/gen/component/testecho/v1/testecho_pb2.py +29 -26
  156. viam/gen/module/v1/module_pb2.py +36 -33
  157. viam/gen/module/v1/module_pb2.pyi +7 -2
  158. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +26 -23
  159. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +23 -20
  160. viam/gen/proto/rpc/v1/auth_pb2.py +27 -24
  161. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +35 -32
  162. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +62 -57
  163. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.pyi +18 -4
  164. viam/gen/provisioning/v1/provisioning_grpc.py +10 -2
  165. viam/gen/provisioning/v1/provisioning_pb2.py +38 -31
  166. viam/gen/provisioning/v1/provisioning_pb2.pyi +20 -2
  167. viam/gen/robot/v1/robot_grpc.py +61 -29
  168. viam/gen/robot/v1/robot_pb2.py +186 -155
  169. viam/gen/robot/v1/robot_pb2.pyi +278 -59
  170. viam/gen/service/datamanager/v1/data_manager_grpc.py +11 -2
  171. viam/gen/service/datamanager/v1/data_manager_pb2.py +27 -17
  172. viam/gen/service/datamanager/v1/data_manager_pb2.pyi +47 -1
  173. viam/gen/service/discovery/__init__.py +0 -0
  174. viam/gen/service/discovery/v1/__init__.py +0 -0
  175. viam/gen/service/discovery/v1/discovery_grpc.py +39 -0
  176. viam/gen/service/discovery/v1/discovery_pb2.py +29 -0
  177. viam/gen/service/discovery/v1/discovery_pb2.pyi +51 -0
  178. viam/gen/service/generic/v1/generic_pb2.py +13 -10
  179. viam/gen/service/mlmodel/v1/mlmodel_pb2.py +75 -72
  180. viam/gen/service/motion/v1/motion_pb2.py +118 -85
  181. viam/gen/service/motion/v1/motion_pb2.pyi +130 -68
  182. viam/gen/service/navigation/v1/navigation_pb2.py +75 -72
  183. viam/gen/service/sensors/v1/sensors_pb2.py +59 -56
  184. viam/gen/service/shell/v1/shell_pb2.py +35 -32
  185. viam/gen/service/slam/v1/slam_pb2.py +43 -40
  186. viam/gen/service/slam/v1/slam_pb2.pyi +1 -1
  187. viam/gen/service/video/__init__.py +0 -0
  188. viam/gen/service/video/v1/__init__.py +0 -0
  189. viam/gen/service/video/v1/video_grpc.py +39 -0
  190. viam/gen/service/video/v1/video_pb2.py +29 -0
  191. viam/gen/service/video/v1/video_pb2.pyi +72 -0
  192. viam/gen/service/vision/v1/vision_pb2.py +60 -57
  193. viam/gen/service/vision/v1/vision_pb2.pyi +28 -3
  194. viam/gen/service/worldstatestore/__init__.py +0 -0
  195. viam/gen/service/worldstatestore/v1/__init__.py +0 -0
  196. viam/gen/service/worldstatestore/v1/world_state_store_grpc.py +55 -0
  197. viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +39 -0
  198. viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +171 -0
  199. viam/gen/stream/v1/stream_grpc.py +17 -1
  200. viam/gen/stream/v1/stream_pb2.py +34 -21
  201. viam/gen/stream/v1/stream_pb2.pyi +79 -1
  202. viam/gen/tagger/v1/tagger_pb2.py +9 -8
  203. viam/logging.py +77 -18
  204. viam/media/audio.py +28 -0
  205. viam/media/utils/pil/__init__.py +7 -3
  206. viam/media/video.py +80 -17
  207. viam/module/module.py +111 -38
  208. viam/module/resource_data_consumer.py +41 -0
  209. viam/module/service.py +9 -1
  210. viam/module/types.py +2 -4
  211. viam/proto/app/__init__.py +199 -0
  212. viam/proto/app/agent/__init__.py +5 -2
  213. viam/proto/app/billing.py +31 -4
  214. viam/proto/app/cloudslam/__init__.py +1 -0
  215. viam/proto/app/data/__init__.py +63 -0
  216. viam/proto/app/datapipelines/__init__.py +56 -0
  217. viam/proto/app/dataset/__init__.py +5 -0
  218. viam/proto/app/datasync/__init__.py +3 -0
  219. viam/proto/app/end_user.py +1 -0
  220. viam/proto/app/mlinference/__init__.py +15 -0
  221. viam/proto/app/mltraining/__init__.py +13 -0
  222. viam/proto/app/packages/__init__.py +1 -0
  223. viam/proto/app/robot.py +7 -0
  224. viam/proto/common/__init__.py +15 -0
  225. viam/proto/component/arm/__init__.py +7 -0
  226. viam/proto/component/audioin/__init__.py +16 -0
  227. viam/proto/component/audioinput/__init__.py +1 -0
  228. viam/proto/component/audioout/__init__.py +15 -0
  229. viam/proto/component/base/__init__.py +1 -0
  230. viam/proto/component/board/__init__.py +1 -0
  231. viam/proto/component/button/__init__.py +15 -0
  232. viam/proto/component/camera/__init__.py +1 -0
  233. viam/proto/component/encoder/__init__.py +1 -0
  234. viam/proto/component/gantry/__init__.py +1 -0
  235. viam/proto/component/generic/__init__.py +1 -0
  236. viam/proto/component/gripper/__init__.py +5 -0
  237. viam/proto/component/inputcontroller/__init__.py +1 -0
  238. viam/proto/component/motor/__init__.py +1 -0
  239. viam/proto/component/movementsensor/__init__.py +1 -0
  240. viam/proto/component/posetracker/__init__.py +1 -0
  241. viam/proto/component/powersensor/__init__.py +1 -0
  242. viam/proto/component/sensor/__init__.py +1 -0
  243. viam/proto/component/servo/__init__.py +1 -0
  244. viam/proto/component/switch/__init__.py +26 -0
  245. viam/proto/component/testecho/__init__.py +1 -0
  246. viam/proto/module/__init__.py +1 -0
  247. viam/proto/provisioning/__init__.py +5 -0
  248. viam/proto/robot/__init__.py +29 -8
  249. viam/proto/rpc/auth.py +1 -0
  250. viam/proto/rpc/examples/echo/__init__.py +1 -0
  251. viam/proto/rpc/examples/echoresource/__init__.py +1 -0
  252. viam/proto/rpc/webrtc/grpc.py +1 -0
  253. viam/proto/rpc/webrtc/signaling.py +3 -0
  254. viam/proto/service/datamanager/__init__.py +9 -1
  255. viam/proto/service/discovery/__init__.py +15 -0
  256. viam/proto/service/generic/__init__.py +1 -0
  257. viam/proto/service/mlmodel/__init__.py +1 -0
  258. viam/proto/service/motion/__init__.py +3 -0
  259. viam/proto/service/navigation/__init__.py +1 -0
  260. viam/proto/service/sensors/__init__.py +1 -0
  261. viam/proto/service/shell/__init__.py +1 -0
  262. viam/proto/service/slam/__init__.py +1 -0
  263. viam/proto/service/video/__init__.py +15 -0
  264. viam/proto/service/vision/__init__.py +1 -0
  265. viam/proto/service/worldstatestore/__init__.py +32 -0
  266. viam/proto/stream/__init__.py +11 -0
  267. viam/py.typed +0 -0
  268. viam/resource/base.py +12 -8
  269. viam/resource/easy_resource.py +24 -13
  270. viam/resource/manager.py +6 -5
  271. viam/resource/registry.py +39 -51
  272. viam/resource/rpc_client_base.py +33 -1
  273. viam/resource/types.py +13 -14
  274. viam/robot/client.py +190 -122
  275. viam/robot/service.py +2 -50
  276. viam/rpc/dial.py +54 -4
  277. viam/rpc/libviam_rust_utils.so +0 -0
  278. viam/rpc/server.py +25 -11
  279. viam/rpc/types.py +2 -4
  280. viam/services/discovery/__init__.py +12 -0
  281. viam/services/discovery/client.py +55 -0
  282. viam/services/discovery/discovery.py +52 -0
  283. viam/services/discovery/service.py +43 -0
  284. viam/services/generic/__init__.py +1 -1
  285. viam/services/generic/client.py +8 -5
  286. viam/services/generic/generic.py +2 -2
  287. viam/services/mlmodel/__init__.py +1 -1
  288. viam/services/mlmodel/client.py +17 -7
  289. viam/services/mlmodel/mlmodel.py +23 -12
  290. viam/services/mlmodel/service.py +5 -2
  291. viam/services/mlmodel/utils.py +11 -1
  292. viam/services/motion/__init__.py +2 -2
  293. viam/services/motion/client.py +32 -32
  294. viam/services/motion/motion.py +66 -62
  295. viam/services/navigation/__init__.py +1 -1
  296. viam/services/navigation/client.py +30 -20
  297. viam/services/navigation/navigation.py +23 -23
  298. viam/services/service_base.py +13 -9
  299. viam/services/service_client_base.py +3 -3
  300. viam/services/slam/__init__.py +1 -1
  301. viam/services/slam/client.py +15 -10
  302. viam/services/slam/slam.py +11 -11
  303. viam/services/vision/__init__.py +1 -1
  304. viam/services/vision/client.py +31 -24
  305. viam/services/vision/service.py +8 -8
  306. viam/services/vision/vision.py +36 -53
  307. viam/services/worldstatestore/__init__.py +18 -0
  308. viam/services/worldstatestore/client.py +94 -0
  309. viam/services/worldstatestore/service.py +55 -0
  310. viam/services/worldstatestore/worldstatestore.py +90 -0
  311. viam/sessions_client.py +115 -46
  312. viam/streams.py +3 -6
  313. viam/utils.py +44 -14
  314. viam/version_metadata.py +4 -0
  315. {viam_sdk-0.25.2.dist-info → viam_sdk-0.62.0.dist-info}/METADATA +27 -28
  316. viam_sdk-0.62.0.dist-info/RECORD +514 -0
  317. {viam_sdk-0.25.2.dist-info → viam_sdk-0.62.0.dist-info}/WHEEL +1 -1
  318. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_grpc.py +0 -27
  319. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.py +0 -18
  320. viam/gen/proto/rpc/examples/fileupload/v1/fileupload_pb2.pyi +0 -45
  321. viam/proto/rpc/examples/fileupload/__init__.py +0 -18
  322. viam/services/sensors/__init__.py +0 -5
  323. viam/services/sensors/client.py +0 -65
  324. viam_sdk-0.25.2.dist-info/LICENSE +0 -202
  325. viam_sdk-0.25.2.dist-info/RECORD +0 -442
  326. /viam/gen/{proto/rpc/examples/fileupload → app/datapipelines}/__init__.py +0 -0
  327. /viam/gen/{proto/rpc/examples/fileupload → app/datapipelines}/v1/__init__.py +0 -0
  328. /LICENSE → /viam_sdk-0.62.0.dist-info/licenses/LICENSE +0 -0
@@ -0,0 +1,26 @@
1
+ """
2
+ @generated by Viam.
3
+ Do not edit manually!
4
+ """
5
+
6
+ from ....gen.component.switch.v1.switch_grpc import SwitchServiceBase, SwitchServiceStub, UnimplementedSwitchServiceBase
7
+ from ....gen.component.switch.v1.switch_pb2 import (
8
+ GetNumberOfPositionsRequest,
9
+ GetNumberOfPositionsResponse,
10
+ GetPositionRequest,
11
+ GetPositionResponse,
12
+ SetPositionRequest,
13
+ SetPositionResponse,
14
+ )
15
+
16
+ __all__ = [
17
+ "SwitchServiceBase",
18
+ "SwitchServiceStub",
19
+ "UnimplementedSwitchServiceBase",
20
+ "GetNumberOfPositionsRequest",
21
+ "GetNumberOfPositionsResponse",
22
+ "GetPositionRequest",
23
+ "GetPositionResponse",
24
+ "SetPositionRequest",
25
+ "SetPositionResponse",
26
+ ]
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.component.testecho.v1.testecho_grpc import TestEchoServiceBase, TestEchoServiceStub, UnimplementedTestEchoServiceBase
6
7
  from ....gen.component.testecho.v1.testecho_pb2 import (
7
8
  EchoBiDiRequest,
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ...gen.module.v1.module_grpc import ModuleServiceBase, ModuleServiceStub, UnimplementedModuleServiceBase
6
7
  from ...gen.module.v1.module_pb2 import (
7
8
  AddResourceRequest,
@@ -2,9 +2,12 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ...gen.provisioning.v1.provisioning_grpc import ProvisioningServiceBase, ProvisioningServiceStub, UnimplementedProvisioningServiceBase
6
7
  from ...gen.provisioning.v1.provisioning_pb2 import (
7
8
  CloudConfig,
9
+ ExitProvisioningRequest,
10
+ ExitProvisioningResponse,
8
11
  GetNetworkListRequest,
9
12
  GetNetworkListResponse,
10
13
  GetSmartMachineStatusRequest,
@@ -22,6 +25,8 @@ __all__ = [
22
25
  "ProvisioningServiceStub",
23
26
  "UnimplementedProvisioningServiceBase",
24
27
  "CloudConfig",
28
+ "ExitProvisioningRequest",
29
+ "ExitProvisioningResponse",
25
30
  "GetNetworkListRequest",
26
31
  "GetNetworkListResponse",
27
32
  "GetSmartMachineStatusRequest",
@@ -2,16 +2,14 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ...gen.robot.v1.robot_grpc import RobotServiceBase, RobotServiceStub, UnimplementedRobotServiceBase
6
7
  from ...gen.robot.v1.robot_pb2 import (
7
8
  BlockForOperationRequest,
8
9
  BlockForOperationResponse,
9
10
  CancelOperationRequest,
10
11
  CancelOperationResponse,
11
- DiscoverComponentsRequest,
12
- DiscoverComponentsResponse,
13
- Discovery,
14
- DiscoveryQuery,
12
+ ConfigStatus,
15
13
  FrameSystemConfig,
16
14
  FrameSystemConfigRequest,
17
15
  FrameSystemConfigResponse,
@@ -19,14 +17,24 @@ from ...gen.robot.v1.robot_pb2 import (
19
17
  GetCloudMetadataResponse,
20
18
  GetMachineStatusRequest,
21
19
  GetMachineStatusResponse,
20
+ GetModelsFromModulesRequest,
21
+ GetModelsFromModulesResponse,
22
22
  GetOperationsRequest,
23
23
  GetOperationsResponse,
24
+ GetPoseRequest,
25
+ GetPoseResponse,
24
26
  GetSessionsRequest,
25
27
  GetSessionsResponse,
26
28
  GetStatusRequest,
27
29
  GetStatusResponse,
30
+ GetVersionRequest,
31
+ GetVersionResponse,
32
+ JobStatus,
33
+ ListTunnelsRequest,
34
+ ListTunnelsResponse,
28
35
  LogRequest,
29
36
  LogResponse,
37
+ ModuleModel,
30
38
  Operation,
31
39
  PeerConnectionInfo,
32
40
  PeerConnectionType,
@@ -55,6 +63,9 @@ from ...gen.robot.v1.robot_pb2 import (
55
63
  TransformPCDResponse,
56
64
  TransformPoseRequest,
57
65
  TransformPoseResponse,
66
+ Tunnel,
67
+ TunnelRequest,
68
+ TunnelResponse,
58
69
  )
59
70
 
60
71
  __all__ = [
@@ -65,10 +76,7 @@ __all__ = [
65
76
  "BlockForOperationResponse",
66
77
  "CancelOperationRequest",
67
78
  "CancelOperationResponse",
68
- "DiscoverComponentsRequest",
69
- "DiscoverComponentsResponse",
70
- "Discovery",
71
- "DiscoveryQuery",
79
+ "ConfigStatus",
72
80
  "FrameSystemConfig",
73
81
  "FrameSystemConfigRequest",
74
82
  "FrameSystemConfigResponse",
@@ -76,14 +84,24 @@ __all__ = [
76
84
  "GetCloudMetadataResponse",
77
85
  "GetMachineStatusRequest",
78
86
  "GetMachineStatusResponse",
87
+ "GetModelsFromModulesRequest",
88
+ "GetModelsFromModulesResponse",
79
89
  "GetOperationsRequest",
80
90
  "GetOperationsResponse",
91
+ "GetPoseRequest",
92
+ "GetPoseResponse",
81
93
  "GetSessionsRequest",
82
94
  "GetSessionsResponse",
83
95
  "GetStatusRequest",
84
96
  "GetStatusResponse",
97
+ "GetVersionRequest",
98
+ "GetVersionResponse",
99
+ "JobStatus",
100
+ "ListTunnelsRequest",
101
+ "ListTunnelsResponse",
85
102
  "LogRequest",
86
103
  "LogResponse",
104
+ "ModuleModel",
87
105
  "Operation",
88
106
  "PeerConnectionInfo",
89
107
  "PeerConnectionType",
@@ -112,4 +130,7 @@ __all__ = [
112
130
  "TransformPCDResponse",
113
131
  "TransformPoseRequest",
114
132
  "TransformPoseResponse",
133
+ "Tunnel",
134
+ "TunnelRequest",
135
+ "TunnelResponse",
115
136
  ]
viam/proto/rpc/auth.py CHANGED
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ...gen.proto.rpc.v1.auth_grpc import (
6
7
  AuthServiceBase,
7
8
  AuthServiceStub,
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from .....gen.proto.rpc.examples.echo.v1.echo_grpc import EchoServiceBase, EchoServiceStub, UnimplementedEchoServiceBase
6
7
  from .....gen.proto.rpc.examples.echo.v1.echo_pb2 import (
7
8
  EchoBiDiRequest,
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from .....gen.proto.rpc.examples.echoresource.v1.echoresource_grpc import (
6
7
  EchoResourceServiceBase,
7
8
  EchoResourceServiceStub,
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.proto.rpc.webrtc.v1.grpc_pb2 import (
6
7
  Metadata,
7
8
  PacketMessage,
@@ -2,11 +2,13 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.proto.rpc.webrtc.v1.signaling_grpc import SignalingServiceBase, SignalingServiceStub, UnimplementedSignalingServiceBase
6
7
  from ....gen.proto.rpc.webrtc.v1.signaling_pb2 import (
7
8
  AnswerRequest,
8
9
  AnswerRequestDoneStage,
9
10
  AnswerRequestErrorStage,
11
+ AnswerRequestHeartbeatStage,
10
12
  AnswerRequestInitStage,
11
13
  AnswerRequestUpdateStage,
12
14
  AnswerResponse,
@@ -34,6 +36,7 @@ __all__ = [
34
36
  "AnswerRequest",
35
37
  "AnswerRequestDoneStage",
36
38
  "AnswerRequestErrorStage",
39
+ "AnswerRequestHeartbeatStage",
37
40
  "AnswerRequestInitStage",
38
41
  "AnswerRequestUpdateStage",
39
42
  "AnswerResponse",
@@ -2,12 +2,18 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.datamanager.v1.data_manager_grpc import (
6
7
  DataManagerServiceBase,
7
8
  DataManagerServiceStub,
8
9
  UnimplementedDataManagerServiceBase,
9
10
  )
10
- from ....gen.service.datamanager.v1.data_manager_pb2 import SyncRequest, SyncResponse
11
+ from ....gen.service.datamanager.v1.data_manager_pb2 import (
12
+ SyncRequest,
13
+ SyncResponse,
14
+ UploadBinaryDataToDatasetsRequest,
15
+ UploadBinaryDataToDatasetsResponse,
16
+ )
11
17
 
12
18
  __all__ = [
13
19
  "DataManagerServiceBase",
@@ -15,4 +21,6 @@ __all__ = [
15
21
  "UnimplementedDataManagerServiceBase",
16
22
  "SyncRequest",
17
23
  "SyncResponse",
24
+ "UploadBinaryDataToDatasetsRequest",
25
+ "UploadBinaryDataToDatasetsResponse",
18
26
  ]
@@ -0,0 +1,15 @@
1
+ """
2
+ @generated by Viam.
3
+ Do not edit manually!
4
+ """
5
+
6
+ from ....gen.service.discovery.v1.discovery_grpc import DiscoveryServiceBase, DiscoveryServiceStub, UnimplementedDiscoveryServiceBase
7
+ from ....gen.service.discovery.v1.discovery_pb2 import DiscoverResourcesRequest, DiscoverResourcesResponse
8
+
9
+ __all__ = [
10
+ "DiscoveryServiceBase",
11
+ "DiscoveryServiceStub",
12
+ "UnimplementedDiscoveryServiceBase",
13
+ "DiscoverResourcesRequest",
14
+ "DiscoverResourcesResponse",
15
+ ]
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.generic.v1.generic_grpc import GenericServiceBase, GenericServiceStub, UnimplementedGenericServiceBase
6
7
 
7
8
  __all__ = [
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.mlmodel.v1.mlmodel_grpc import MLModelServiceBase, MLModelServiceStub, UnimplementedMLModelServiceBase
6
7
  from ....gen.service.mlmodel.v1.mlmodel_pb2 import (
7
8
  File,
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.motion.v1.motion_grpc import MotionServiceBase, MotionServiceStub, UnimplementedMotionServiceBase
6
7
  from ....gen.service.motion.v1.motion_pb2 import (
7
8
  CollisionSpecification,
@@ -29,6 +30,7 @@ from ....gen.service.motion.v1.motion_pb2 import (
29
30
  PlanStatusWithID,
30
31
  PlanStep,
31
32
  PlanWithStatus,
33
+ PseudolinearConstraint,
32
34
  StopPlanRequest,
33
35
  StopPlanResponse,
34
36
  )
@@ -62,6 +64,7 @@ __all__ = [
62
64
  "PlanStatusWithID",
63
65
  "PlanStep",
64
66
  "PlanWithStatus",
67
+ "PseudolinearConstraint",
65
68
  "StopPlanRequest",
66
69
  "StopPlanResponse",
67
70
  ]
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.navigation.v1.navigation_grpc import NavigationServiceBase, NavigationServiceStub, UnimplementedNavigationServiceBase
6
7
  from ....gen.service.navigation.v1.navigation_pb2 import (
7
8
  AddWaypointRequest,
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.sensors.v1.sensors_grpc import SensorsServiceBase, SensorsServiceStub, UnimplementedSensorsServiceBase
6
7
  from ....gen.service.sensors.v1.sensors_pb2 import GetReadingsRequest, GetReadingsResponse, GetSensorsRequest, GetSensorsResponse, Readings
7
8
 
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.shell.v1.shell_grpc import ShellServiceBase, ShellServiceStub, UnimplementedShellServiceBase
6
7
  from ....gen.service.shell.v1.shell_pb2 import (
7
8
  CopyFilesFromMachineRequest,
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.slam.v1.slam_grpc import SLAMServiceBase, SLAMServiceStub, UnimplementedSLAMServiceBase
6
7
  from ....gen.service.slam.v1.slam_pb2 import (
7
8
  GetInternalStateRequest,
@@ -0,0 +1,15 @@
1
+ """
2
+ @generated by Viam.
3
+ Do not edit manually!
4
+ """
5
+
6
+ from ....gen.service.video.v1.video_grpc import UnimplementedVideoServiceBase, VideoServiceBase, VideoServiceStub
7
+ from ....gen.service.video.v1.video_pb2 import GetVideoRequest, GetVideoResponse
8
+
9
+ __all__ = [
10
+ "UnimplementedVideoServiceBase",
11
+ "VideoServiceBase",
12
+ "VideoServiceStub",
13
+ "GetVideoRequest",
14
+ "GetVideoResponse",
15
+ ]
@@ -2,6 +2,7 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ....gen.service.vision.v1.vision_grpc import UnimplementedVisionServiceBase, VisionServiceBase, VisionServiceStub
6
7
  from ....gen.service.vision.v1.vision_pb2 import (
7
8
  CaptureAllFromCameraRequest,
@@ -0,0 +1,32 @@
1
+ """
2
+ @generated by Viam.
3
+ Do not edit manually!
4
+ """
5
+
6
+ from ....gen.service.worldstatestore.v1.world_state_store_grpc import (
7
+ UnimplementedWorldStateStoreServiceBase,
8
+ WorldStateStoreServiceBase,
9
+ WorldStateStoreServiceStub,
10
+ )
11
+ from ....gen.service.worldstatestore.v1.world_state_store_pb2 import (
12
+ GetTransformRequest,
13
+ GetTransformResponse,
14
+ ListUUIDsRequest,
15
+ ListUUIDsResponse,
16
+ StreamTransformChangesRequest,
17
+ StreamTransformChangesResponse,
18
+ TransformChangeType,
19
+ )
20
+
21
+ __all__ = [
22
+ "UnimplementedWorldStateStoreServiceBase",
23
+ "WorldStateStoreServiceBase",
24
+ "WorldStateStoreServiceStub",
25
+ "GetTransformRequest",
26
+ "GetTransformResponse",
27
+ "ListUUIDsRequest",
28
+ "ListUUIDsResponse",
29
+ "StreamTransformChangesRequest",
30
+ "StreamTransformChangesResponse",
31
+ "TransformChangeType",
32
+ ]
@@ -2,14 +2,20 @@
2
2
  @generated by Viam.
3
3
  Do not edit manually!
4
4
  """
5
+
5
6
  from ...gen.stream.v1.stream_grpc import StreamServiceBase, StreamServiceStub, UnimplementedStreamServiceBase
6
7
  from ...gen.stream.v1.stream_pb2 import (
7
8
  AddStreamRequest,
8
9
  AddStreamResponse,
10
+ GetStreamOptionsRequest,
11
+ GetStreamOptionsResponse,
9
12
  ListStreamsRequest,
10
13
  ListStreamsResponse,
11
14
  RemoveStreamRequest,
12
15
  RemoveStreamResponse,
16
+ Resolution,
17
+ SetStreamOptionsRequest,
18
+ SetStreamOptionsResponse,
13
19
  )
14
20
 
15
21
  __all__ = [
@@ -18,8 +24,13 @@ __all__ = [
18
24
  "UnimplementedStreamServiceBase",
19
25
  "AddStreamRequest",
20
26
  "AddStreamResponse",
27
+ "GetStreamOptionsRequest",
28
+ "GetStreamOptionsResponse",
21
29
  "ListStreamsRequest",
22
30
  "ListStreamsResponse",
23
31
  "RemoveStreamRequest",
24
32
  "RemoveStreamResponse",
33
+ "Resolution",
34
+ "SetStreamOptionsRequest",
35
+ "SetStreamOptionsResponse",
25
36
  ]
viam/py.typed ADDED
File without changes
viam/resource/base.py CHANGED
@@ -1,4 +1,5 @@
1
1
  from abc import abstractmethod
2
+ from logging import Logger
2
3
  from typing import TYPE_CHECKING, Any, ClassVar, Mapping, Optional, Protocol, runtime_checkable
3
4
 
4
5
  from typing_extensions import Self
@@ -6,7 +7,7 @@ from typing_extensions import Self
6
7
  from viam.operations import Operation
7
8
  from viam.proto.common import ResourceName
8
9
 
9
- from .types import Subtype
10
+ from .types import API
10
11
 
11
12
  if TYPE_CHECKING:
12
13
  from viam.robot.client import RobotClient
@@ -19,12 +20,15 @@ class ResourceBase(Protocol):
19
20
  The base requirements for a Resource.
20
21
  """
21
22
 
22
- SUBTYPE: ClassVar["Subtype"]
23
- """The Subtype of the Resource"""
23
+ API: ClassVar["API"]
24
+ """The API of the Resource"""
24
25
 
25
26
  name: str
26
27
  """The name of the Resource"""
27
28
 
29
+ logger: Logger
30
+ """A logger allowing for setting log levels on a per-resource basis"""
31
+
28
32
  @classmethod
29
33
  def get_resource_name(cls, name: str) -> ResourceName:
30
34
  """
@@ -33,7 +37,7 @@ class ResourceBase(Protocol):
33
37
  ::
34
38
 
35
39
  # Can be used with any resource, using an arm as an example
36
- my_arm_name = my_arm.get_resource_name("my_arm")
40
+ my_arm_name = Arm.get_resource_name("my_arm")
37
41
 
38
42
  Args:
39
43
  name (str): The name of the Resource
@@ -42,9 +46,9 @@ class ResourceBase(Protocol):
42
46
  ResourceName: The ResourceName of this Resource
43
47
  """
44
48
  return ResourceName(
45
- namespace=cls.SUBTYPE.namespace,
46
- type=cls.SUBTYPE.resource_type,
47
- subtype=cls.SUBTYPE.resource_subtype,
49
+ namespace=cls.API.namespace,
50
+ type=cls.API.resource_type,
51
+ subtype=cls.API.resource_subtype,
48
52
  name=name,
49
53
  )
50
54
 
@@ -76,7 +80,7 @@ class ResourceBase(Protocol):
76
80
  ::
77
81
 
78
82
  command = {"cmd": "test", "data1": 500}
79
- result = component.do(command)
83
+ result = await component.do_command(command)
80
84
 
81
85
  Args:
82
86
  command (Mapping[str, ValueTypes]): The command to execute
@@ -1,7 +1,7 @@
1
1
  import inspect
2
2
  import re
3
3
  from abc import ABCMeta
4
- from typing import Callable, Mapping, Union
4
+ from typing import Callable, ClassVar, Mapping, Sequence, Tuple, Union
5
5
 
6
6
  from viam.proto.app.robot import ComponentConfig
7
7
  from viam.proto.common import ResourceName
@@ -10,7 +10,7 @@ from .. import logging
10
10
  from ..errors import MethodNotImplementedError
11
11
  from .base import ResourceBase
12
12
  from .registry import Registry, ResourceCreatorRegistration
13
- from .types import Model, ModelFamily, Subtype
13
+ from .types import API, Model, ModelFamily
14
14
 
15
15
  modelRegex = re.compile(r"^([^:]+):([^:]+):([^:]+)$")
16
16
 
@@ -92,8 +92,8 @@ class EasyResource:
92
92
  See examples/easy_resource/main.py for extended usage.
93
93
  """
94
94
 
95
- SUBTYPE: Subtype
96
- MODEL: Model
95
+ API: ClassVar[API]
96
+ MODEL: ClassVar[Model]
97
97
 
98
98
  def __init_subclass__(cls, register=True, **kwargs):
99
99
  """
@@ -101,7 +101,7 @@ class EasyResource:
101
101
  """
102
102
  super().__init_subclass__(**kwargs)
103
103
  if not hasattr(cls, "MODEL"):
104
- raise ValueError("please define a MODEL like 'org:type:name' on your class, for example 'viam:camera:IMX219'")
104
+ raise ValueError("Please define a MODEL with the format 'org:type:name' on your class, for example 'viam:camera:IMX219'")
105
105
  cls.MODEL = _parse_model(cls.MODEL)
106
106
  if register:
107
107
  cls.register()
@@ -113,26 +113,37 @@ class EasyResource:
113
113
  @classmethod
114
114
  def new(cls, config: ComponentConfig, dependencies: Mapping[ResourceName, ResourceBase]):
115
115
  """
116
- This is passed to register_resource_creator; the default implementation calls reconfigure()
116
+ This is passed to register_resource_creator. The default implementation only sets the resource name
117
117
  when an instance of your model is instantiated. You can override this in your subclass.
118
118
  """
119
119
  self = cls(config.name)
120
- logger.debug("created %s %s %s", self.SUBTYPE, self.MODEL, config.name)
121
- self.reconfigure(config, dependencies)
120
+ logger.debug("created %s %s %s", cls.API, cls.MODEL, config.name)
122
121
  return self
123
122
 
123
+ @classmethod
124
+ def validate_config(cls, config: ComponentConfig) -> Tuple[Sequence[str], Sequence[str]]:
125
+ """This method allows you to validate the configuration object received from the machine,
126
+ as well as to return any implicit dependencies based on that `config`.
127
+
128
+ Args:
129
+ config (ComponentConfig): The configuration for this resource
130
+
131
+ Returns:
132
+ Tuple[Sequence[str], Sequence[str]]: One list of required implicit dependencies and one of optional deps.
133
+ """
134
+ return [], []
135
+
124
136
  @classmethod
125
137
  def register(cls):
126
138
  """
127
139
  This adds the model to the global registry. It is called by __init_subclass__ and you typically
128
140
  won't call it directly.
129
141
  """
130
- logger.debug("registering %s %s", cls.SUBTYPE, cls.MODEL)
142
+ logger.debug("registering %s %s", cls.API, cls.MODEL)
131
143
  # note: We could fix this pyright-ignore if EasyResource inherited ResourceBase, but that crashes in the mro()
132
144
  # walk in ResourceManager.register.
133
145
  Registry.register_resource_creator(
134
- cls.SUBTYPE, cls.MODEL, ResourceCreatorRegistration(cls.new) # pyright: ignore [reportArgumentType]
146
+ cls.API,
147
+ cls.MODEL,
148
+ ResourceCreatorRegistration(cls.new, cls.validate_config), # pyright: ignore [reportArgumentType]
135
149
  )
136
-
137
- def reconfigure(self, config: ComponentConfig, dependencies: Mapping[ResourceName, ResourceBase]):
138
- logger.debug("reconfigure %s %s", self.SUBTYPE, self.MODEL)
viam/resource/manager.py CHANGED
@@ -39,12 +39,12 @@ class ResourceManager:
39
39
  Raises:
40
40
  DuplicateResourceError: Error if attempting to register resource
41
41
  with the name of an existing resource
42
- ResourceNotFoundError: Raised if the subtype of the resource is not registered
42
+ ResourceNotFoundError: Raised if the API of the resource is not registered
43
43
 
44
44
  Args:
45
45
  resource (ResourceBase): The resource to register
46
46
  """
47
- Registry.lookup_subtype(resource.SUBTYPE) # confirm the subtype is registered in Registry
47
+ Registry.lookup_api(resource.API) # confirm the API is registered in Registry
48
48
 
49
49
  _BaseClasses = (ResourceBase, ComponentBase, ServiceBase)
50
50
  rnames: Dict[ResourceName, ResourceBase] = {}
@@ -103,10 +103,11 @@ class ResourceManager:
103
103
  try:
104
104
  resource = self.resources[name]
105
105
  await resource.close()
106
- except Exception as e:
107
- raise e
108
106
  finally:
109
- del self.resources[name]
107
+ try:
108
+ del self.resources[name]
109
+ except KeyError:
110
+ pass
110
111
 
111
112
  async def close(self):
112
113
  """Close the resourcce manager by removing all resources.