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,79 +0,0 @@
1
- import abc
2
- from dataclasses import dataclass
3
- from datetime import timedelta
4
- from typing import Final, Optional
5
-
6
- from google.protobuf.duration_pb2 import Duration
7
- from typing_extensions import Self
8
-
9
- from viam.media import MediaSource
10
- from viam.media.audio import Audio, AudioStream
11
- from viam.proto.component.audioinput import PropertiesResponse
12
- from viam.resource.types import RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT, Subtype
13
-
14
- from ..component_base import ComponentBase
15
-
16
-
17
- class AudioInput(ComponentBase, MediaSource[Audio]):
18
- """AudioInput represents a component that can capture audio.
19
-
20
- This acts as an abstract base class for any drivers representing specific
21
- audio input implementations. This cannot be used on its own. If the ``__init__()`` function is
22
- overridden, it must call the ``super().__init__()`` function.
23
- """
24
-
25
- SUBTYPE: Final = Subtype(RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT, "audio_input")
26
-
27
- @dataclass
28
- class Properties:
29
- channel_count: int
30
- latency: timedelta
31
- sample_rate: int
32
- sample_size: int
33
- is_big_endian: bool
34
- is_float: bool
35
- is_interleaved: bool
36
-
37
- @property
38
- def proto(self) -> PropertiesResponse:
39
- latency = Duration()
40
- latency.FromTimedelta(self.latency)
41
- return PropertiesResponse(
42
- channel_count=self.channel_count,
43
- latency=latency,
44
- sample_rate=self.sample_rate,
45
- sample_size=self.sample_size,
46
- is_big_endian=self.is_big_endian,
47
- is_float=self.is_float,
48
- is_interleaved=self.is_interleaved,
49
- )
50
-
51
- @classmethod
52
- def from_proto(cls, proto: PropertiesResponse) -> Self:
53
- return cls(
54
- channel_count=proto.channel_count,
55
- latency=proto.latency.ToTimedelta(),
56
- sample_rate=proto.sample_rate,
57
- sample_size=proto.sample_size,
58
- is_big_endian=proto.is_big_endian,
59
- is_float=proto.is_float,
60
- is_interleaved=proto.is_interleaved,
61
- )
62
-
63
- @abc.abstractmethod
64
- async def stream(self, *, timeout: Optional[float] = None, **kwargs) -> AudioStream:
65
- """Stream audio samples from the audio input of the underlying robot
66
-
67
- Returns:
68
- MediaStream[Audio]: The stream of audio chunks
69
- """
70
- ...
71
-
72
- @abc.abstractmethod
73
- async def get_properties(self, *, timeout: Optional[float] = None, **kwargs) -> Properties:
74
- """Get the properties of the audio input of the underlying robot
75
-
76
- Returns:
77
- Properties: The audio input properties
78
- """
79
- ...
@@ -1,60 +0,0 @@
1
- from typing import AsyncIterator, Mapping, Optional, Union
2
-
3
- from grpclib.client import Channel
4
-
5
- from viam.media import MediaStream, MediaStreamWithIterator
6
- from viam.media.audio import Audio
7
- from viam.proto.common import DoCommandRequest, DoCommandResponse
8
- from viam.proto.component.audioinput import (
9
- AudioInputServiceStub,
10
- ChunksRequest,
11
- ChunksResponse,
12
- PropertiesRequest,
13
- PropertiesResponse,
14
- SampleFormat,
15
- )
16
- from viam.resource.rpc_client_base import ReconfigurableResourceRPCClientBase
17
- from viam.utils import ValueTypes, dict_to_struct, struct_to_dict
18
-
19
- from .audio_input import AudioInput
20
-
21
-
22
- class AudioInputClient(AudioInput, ReconfigurableResourceRPCClientBase):
23
- """
24
- gRPC client for the AudioInput component.
25
- """
26
-
27
- def __init__(self, name: str, channel: Channel):
28
- self.channel = channel
29
- self.client = AudioInputServiceStub(channel)
30
- super().__init__(name)
31
-
32
- async def stream(self, *, timeout: Optional[float] = None) -> MediaStream[Audio]:
33
- async def read() -> AsyncIterator[Audio]:
34
- async with self.client.Chunks.open(timeout=timeout) as chunks_stream:
35
- await chunks_stream.send_message(
36
- ChunksRequest(name=self.name, sample_format=SampleFormat.SAMPLE_FORMAT_FLOAT32_INTERLEAVED), end=True
37
- )
38
- response: Union[ChunksResponse, None] = await chunks_stream.recv_message()
39
- assert response is not None and response.HasField("info")
40
- info = response.info
41
-
42
- while True:
43
- response = await chunks_stream.recv_message()
44
- if response is None:
45
- break
46
- assert response.HasField("chunk")
47
- audio = Audio(info=info, chunk=response.chunk)
48
- yield audio
49
-
50
- return MediaStreamWithIterator(read())
51
-
52
- async def get_properties(self, *, timeout: Optional[float] = None) -> AudioInput.Properties:
53
- request = PropertiesRequest(name=self.name)
54
- response: PropertiesResponse = await self.client.Properties(request, timeout=timeout)
55
- return AudioInput.Properties.from_proto(response)
56
-
57
- async def do_command(self, command: Mapping[str, ValueTypes], *, timeout: Optional[float] = None) -> Mapping[str, ValueTypes]:
58
- request = DoCommandRequest(name=self.name, command=dict_to_struct(command))
59
- response: DoCommandResponse = await self.client.DoCommand(request, timeout=timeout)
60
- return struct_to_dict(response.result)
@@ -1,118 +0,0 @@
1
- import wave
2
- from datetime import timedelta
3
- from io import BytesIO
4
-
5
- from google.api.httpbody_pb2 import HttpBody
6
- from grpclib import GRPCError, Status
7
- from grpclib.server import Stream
8
-
9
- from viam.errors import NotSupportedError, ResourceNotFoundError
10
- from viam.proto.common import DoCommandRequest, DoCommandResponse
11
- from viam.proto.component.audioinput import (
12
- AudioInputServiceBase,
13
- ChunksRequest,
14
- ChunksResponse,
15
- PropertiesRequest,
16
- PropertiesResponse,
17
- RecordRequest,
18
- SampleFormat,
19
- )
20
- from viam.resource.rpc_service_base import ResourceRPCServiceBase
21
- from viam.utils import dict_to_struct, struct_to_dict
22
-
23
- from .audio_input import AudioInput
24
-
25
-
26
- class AudioInputRPCService(AudioInputServiceBase, ResourceRPCServiceBase[AudioInput]):
27
- """
28
- gRPC Service for a generic AudioInput
29
- """
30
-
31
- RESOURCE_TYPE = AudioInput
32
-
33
- async def Chunks(self, stream: Stream[ChunksRequest, ChunksResponse]) -> None:
34
- request = await stream.recv_message()
35
- assert request is not None
36
- try:
37
- audio_input = self.get_resource(request.name)
38
- except ResourceNotFoundError as e:
39
- raise e.grpc_error
40
-
41
- timeout = stream.deadline.time_remaining() if stream.deadline else None
42
- audio_stream = await audio_input.stream(timeout=timeout, metadata=stream.metadata)
43
- first_chunk = await audio_stream.__anext__()
44
- await stream.send_message(ChunksResponse(info=first_chunk.info))
45
- await stream.send_message(ChunksResponse(chunk=first_chunk.chunk))
46
-
47
- async for audio in audio_stream:
48
- await stream.send_message(ChunksResponse(chunk=audio.chunk))
49
-
50
- async def Properties(self, stream: Stream[PropertiesRequest, PropertiesResponse]) -> None:
51
- request = await stream.recv_message()
52
- assert request is not None
53
- try:
54
- audio_input = self.get_resource(request.name)
55
- except ResourceNotFoundError as e:
56
- raise e.grpc_error
57
- timeout = stream.deadline.time_remaining() if stream.deadline else None
58
- response = (await audio_input.get_properties(timeout=timeout, metadata=stream.metadata)).proto
59
- await stream.send_message(response)
60
-
61
- async def Record(self, stream: Stream[RecordRequest, HttpBody]) -> None:
62
- raise NotSupportedError("Recording audio input is not supported").grpc_error
63
-
64
- # TODO: Eventually implement recording
65
- request = await stream.recv_message()
66
- assert request is not None
67
- duration = request.duration.ToTimedelta()
68
- if duration.total_seconds() == 0:
69
- duration = timedelta(seconds=1)
70
- if duration.total_seconds() > 5:
71
- raise GRPCError(Status.INVALID_ARGUMENT, "Can only record up to 5 seconds")
72
-
73
- try:
74
- audio_input = self.get_resource(request.name)
75
- except ResourceNotFoundError as e:
76
- raise e.grpc_error
77
- audio_stream = await audio_input.stream()
78
- first_chunk = await audio_stream.__anext__()
79
- num_chunks = int(duration.total_seconds() * float(first_chunk.info.sampling_rate / first_chunk.chunk.length))
80
-
81
- sample_width: int
82
- if first_chunk.info.sample_format == SampleFormat.SAMPLE_FORMAT_INT16_INTERLEAVED:
83
- sample_width = 2
84
- elif first_chunk.info.sample_format == SampleFormat.SAMPLE_FORMAT_FLOAT32_INTERLEAVED:
85
- sample_width = 4
86
- else:
87
- raise GRPCError(Status.INVALID_ARGUMENT, "Unspecified type of audio buffer")
88
-
89
- output = BytesIO()
90
- wav_file = wave.open(output, "w")
91
- wav_file.setnchannels(first_chunk.info.channels)
92
- wav_file.setframerate(first_chunk.info.sampling_rate)
93
- wav_file.setsampwidth(sample_width)
94
- try:
95
- wav_file.writeframes(first_chunk.chunk.data)
96
- for _ in range(num_chunks - 1):
97
- chunk = await audio_stream.__anext__()
98
- wav_file.writeframes(chunk.chunk.data)
99
- finally:
100
- wav_file.close()
101
- output.close()
102
-
103
- output.seek(0)
104
- response = HttpBody(data=output.read(), content_type="audio/wav")
105
-
106
- await stream.send_message(response)
107
-
108
- async def DoCommand(self, stream: Stream[DoCommandRequest, DoCommandResponse]) -> None:
109
- request = await stream.recv_message()
110
- assert request is not None
111
- try:
112
- audio_input = self.get_resource(request.name)
113
- except ResourceNotFoundError as e:
114
- raise e.grpc_error
115
- timeout = stream.deadline.time_remaining() if stream.deadline else None
116
- result = await audio_input.do_command(command=struct_to_dict(request.command), timeout=timeout, metadata=stream.metadata)
117
- response = DoCommandResponse(result=dict_to_struct(result))
118
- await stream.send_message(response)
viam/components/types.py DELETED
@@ -1,5 +0,0 @@
1
- import warnings
2
-
3
- from viam.media.video import CameraMimeType, RawImage # noqa: F401
4
-
5
- warnings.warn("The viam.types module is deprecated. Please find the appropriate types in the media package", DeprecationWarning)
@@ -1,39 +0,0 @@
1
- import abc
2
- import typing
3
- import grpclib.const
4
- import grpclib.client
5
- if typing.TYPE_CHECKING:
6
- import grpclib.server
7
- import google.api.annotations_pb2
8
- import google.protobuf.timestamp_pb2
9
- from .... import tagger
10
- from .... import app
11
-
12
- class ModelServiceBase(abc.ABC):
13
-
14
- @abc.abstractmethod
15
- async def Upload(self, stream: 'grpclib.server.Stream[app.model.v1.model_pb2.UploadRequest, app.model.v1.model_pb2.UploadResponse]') -> None:
16
- pass
17
-
18
- @abc.abstractmethod
19
- async def Delete(self, stream: 'grpclib.server.Stream[app.model.v1.model_pb2.DeleteRequest, app.model.v1.model_pb2.DeleteResponse]') -> None:
20
- pass
21
-
22
- @abc.abstractmethod
23
- async def Deploy(self, stream: 'grpclib.server.Stream[app.model.v1.model_pb2.DeployRequest, app.model.v1.model_pb2.DeployResponse]') -> None:
24
- pass
25
-
26
- @abc.abstractmethod
27
- async def Info(self, stream: 'grpclib.server.Stream[app.model.v1.model_pb2.InfoRequest, app.model.v1.model_pb2.InfoResponse]') -> None:
28
- pass
29
-
30
- def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
31
- return {'/viam.app.model.v1.ModelService/Upload': grpclib.const.Handler(self.Upload, grpclib.const.Cardinality.STREAM_UNARY, app.model.v1.model_pb2.UploadRequest, app.model.v1.model_pb2.UploadResponse), '/viam.app.model.v1.ModelService/Delete': grpclib.const.Handler(self.Delete, grpclib.const.Cardinality.UNARY_UNARY, app.model.v1.model_pb2.DeleteRequest, app.model.v1.model_pb2.DeleteResponse), '/viam.app.model.v1.ModelService/Deploy': grpclib.const.Handler(self.Deploy, grpclib.const.Cardinality.UNARY_UNARY, app.model.v1.model_pb2.DeployRequest, app.model.v1.model_pb2.DeployResponse), '/viam.app.model.v1.ModelService/Info': grpclib.const.Handler(self.Info, grpclib.const.Cardinality.UNARY_UNARY, app.model.v1.model_pb2.InfoRequest, app.model.v1.model_pb2.InfoResponse)}
32
-
33
- class ModelServiceStub:
34
-
35
- def __init__(self, channel: grpclib.client.Channel) -> None:
36
- self.Upload = grpclib.client.StreamUnaryMethod(channel, '/viam.app.model.v1.ModelService/Upload', app.model.v1.model_pb2.UploadRequest, app.model.v1.model_pb2.UploadResponse)
37
- self.Delete = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.model.v1.ModelService/Delete', app.model.v1.model_pb2.DeleteRequest, app.model.v1.model_pb2.DeleteResponse)
38
- self.Deploy = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.model.v1.ModelService/Deploy', app.model.v1.model_pb2.DeployRequest, app.model.v1.model_pb2.DeployResponse)
39
- self.Info = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.model.v1.ModelService/Info', app.model.v1.model_pb2.InfoRequest, app.model.v1.model_pb2.InfoResponse)
@@ -1,71 +0,0 @@
1
- """Generated protocol buffer code."""
2
- from google.protobuf.internal import builder as _builder
3
- from google.protobuf import descriptor as _descriptor
4
- from google.protobuf import descriptor_pool as _descriptor_pool
5
- from google.protobuf import symbol_database as _symbol_database
6
- _sym_db = _symbol_database.Default()
7
- from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
8
- from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
9
- from ....tagger.v1 import tagger_pb2 as tagger_dot_v1_dot_tagger__pb2
10
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18app/model/v1/model.proto\x12\x11viam.app.model.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x16tagger/v1/tagger.proto"\x1e\n\x08FileData\x12\x12\n\x04data\x18\x01 \x01(\x0cR\x04data"\x81\x01\n\x04File\x120\n\x04name\x18\x01 \x01(\tB\x1c\x9a\x84\x9e\x03\x17bson:"name" json:"name"R\x04name\x12G\n\nsize_bytes\x18\x02 \x01(\x03B(\x9a\x84\x9e\x03#bson:"size_bytes" json:"size_bytes"R\tsizeBytes"\xa4\x01\n\x0eUploadMetadata\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x1d\n\nmodel_name\x18\x02 \x01(\tR\tmodelName\x12-\n\x12associated_dataset\x18\x03 \x01(\tR\x11associatedDataset\x12-\n\x05files\x18\x04 \x03(\x0b2\x17.viam.app.model.v1.FileR\x05files"\xa5\x01\n\rUploadRequest\x12?\n\x08metadata\x18\x01 \x01(\x0b2!.viam.app.model.v1.UploadMetadataH\x00R\x08metadata\x12B\n\rfile_contents\x18\x02 \x01(\x0b2\x1b.viam.app.model.v1.FileDataH\x00R\x0cfileContentsB\x0f\n\rupload_packet"E\n\rDeleteRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x1d\n\nmodel_name\x18\x02 \x01(\tR\tmodelName"E\n\rDeployRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId\x12\x1d\n\nmodel_name\x18\x02 \x01(\tR\tmodelName"\xa8\x01\n\x05Model\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n\nsize_bytes\x18\x02 \x01(\x03R\tsizeBytes\x12-\n\x05files\x18\x03 \x03(\x0b2\x17.viam.app.model.v1.FileR\x05files\x12=\n\x0ctime_created\x18\x04 \x01(\x0b2\x1a.google.protobuf.TimestampR\x0btimeCreated"$\n\x0bInfoRequest\x12\x15\n\x06org_id\x18\x01 \x01(\tR\x05orgId">\n\x0cInfoResponse\x12.\n\x05model\x18\x01 \x03(\x0b2\x18.viam.app.model.v1.ModelR\x05model"]\n\x0eUploadResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\x121\n\x06status\x18\x02 \x01(\x0e2\x19.viam.app.model.v1.StatusR\x06status"]\n\x0eDeleteResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\x121\n\x06status\x18\x02 \x01(\x0e2\x19.viam.app.model.v1.StatusR\x06status"]\n\x0eDeployResponse\x12\x18\n\x07message\x18\x01 \x01(\tR\x07message\x121\n\x06status\x18\x02 \x01(\x0e2\x19.viam.app.model.v1.StatusR\x06status"\xb6\x04\n\x0bSyncedModel\x127\n\x06org_id\x18\x01 \x01(\tB \x9a\x84\x9e\x03\x1bbson:"org_id" json:"org_id"R\x05orgId\x12G\n\nmodel_name\x18\x02 \x01(\tB(\x9a\x84\x9e\x03#bson:"model_name" json:"model_name"R\tmodelName\x12g\n\x12associated_dataset\x18\x03 \x01(\tB8\x9a\x84\x9e\x033bson:"associated_dataset" json:"associated_dataset"R\x11associatedDataset\x12M\n\x05files\x18\x04 \x03(\x0b2\x17.viam.app.model.v1.FileB\x1e\x9a\x84\x9e\x03\x19bson:"files" json:"files"R\x05files\x12G\n\nsize_bytes\x18\x05 \x01(\x03B(\x9a\x84\x9e\x03#bson:"size_bytes" json:"size_bytes"R\tsizeBytes\x12C\n\tblob_path\x18\x06 \x01(\tB&\x9a\x84\x9e\x03!bson:"blob_path" json:"blob_path"R\x08blobPath\x12_\n\tsync_time\x18\x07 \x01(\x0b2\x1a.google.protobuf.TimestampB&\x9a\x84\x9e\x03!bson:"sync_time" json:"sync_time"R\x08syncTime*+\n\x06Status\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x08\n\x04FAIL\x10\x01\x12\x06\n\x02OK\x10\x022\xac\x03\n\x0cModelService\x12i\n\x06Upload\x12 .viam.app.model.v1.UploadRequest\x1a!.viam.app.model.v1.UploadResponse"\x18\x82\xd3\xe4\x93\x02\x12"\x10/model/v1/upload(\x01\x12g\n\x06Delete\x12 .viam.app.model.v1.DeleteRequest\x1a!.viam.app.model.v1.DeleteResponse"\x18\x82\xd3\xe4\x93\x02\x12*\x10/model/v1/delete\x12g\n\x06Deploy\x12 .viam.app.model.v1.DeployRequest\x1a!.viam.app.model.v1.DeployResponse"\x18\x82\xd3\xe4\x93\x02\x12"\x10/model/v1/deploy\x12_\n\x04Info\x12\x1e.viam.app.model.v1.InfoRequest\x1a\x1f.viam.app.model.v1.InfoResponse"\x16\x82\xd3\xe4\x93\x02\x10\x12\x0e/model/v1/infoB\x1eZ\x1cgo.viam.com/api/app/model/v1b\x06proto3')
11
- _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
12
- _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'app.model.v1.model_pb2', globals())
13
- if _descriptor._USE_C_DESCRIPTORS == False:
14
- DESCRIPTOR._options = None
15
- DESCRIPTOR._serialized_options = b'Z\x1cgo.viam.com/api/app/model/v1'
16
- _FILE.fields_by_name['name']._options = None
17
- _FILE.fields_by_name['name']._serialized_options = b'\x9a\x84\x9e\x03\x17bson:"name" json:"name"'
18
- _FILE.fields_by_name['size_bytes']._options = None
19
- _FILE.fields_by_name['size_bytes']._serialized_options = b'\x9a\x84\x9e\x03#bson:"size_bytes" json:"size_bytes"'
20
- _SYNCEDMODEL.fields_by_name['org_id']._options = None
21
- _SYNCEDMODEL.fields_by_name['org_id']._serialized_options = b'\x9a\x84\x9e\x03\x1bbson:"org_id" json:"org_id"'
22
- _SYNCEDMODEL.fields_by_name['model_name']._options = None
23
- _SYNCEDMODEL.fields_by_name['model_name']._serialized_options = b'\x9a\x84\x9e\x03#bson:"model_name" json:"model_name"'
24
- _SYNCEDMODEL.fields_by_name['associated_dataset']._options = None
25
- _SYNCEDMODEL.fields_by_name['associated_dataset']._serialized_options = b'\x9a\x84\x9e\x033bson:"associated_dataset" json:"associated_dataset"'
26
- _SYNCEDMODEL.fields_by_name['files']._options = None
27
- _SYNCEDMODEL.fields_by_name['files']._serialized_options = b'\x9a\x84\x9e\x03\x19bson:"files" json:"files"'
28
- _SYNCEDMODEL.fields_by_name['size_bytes']._options = None
29
- _SYNCEDMODEL.fields_by_name['size_bytes']._serialized_options = b'\x9a\x84\x9e\x03#bson:"size_bytes" json:"size_bytes"'
30
- _SYNCEDMODEL.fields_by_name['blob_path']._options = None
31
- _SYNCEDMODEL.fields_by_name['blob_path']._serialized_options = b'\x9a\x84\x9e\x03!bson:"blob_path" json:"blob_path"'
32
- _SYNCEDMODEL.fields_by_name['sync_time']._options = None
33
- _SYNCEDMODEL.fields_by_name['sync_time']._serialized_options = b'\x9a\x84\x9e\x03!bson:"sync_time" json:"sync_time"'
34
- _MODELSERVICE.methods_by_name['Upload']._options = None
35
- _MODELSERVICE.methods_by_name['Upload']._serialized_options = b'\x82\xd3\xe4\x93\x02\x12"\x10/model/v1/upload'
36
- _MODELSERVICE.methods_by_name['Delete']._options = None
37
- _MODELSERVICE.methods_by_name['Delete']._serialized_options = b'\x82\xd3\xe4\x93\x02\x12*\x10/model/v1/delete'
38
- _MODELSERVICE.methods_by_name['Deploy']._options = None
39
- _MODELSERVICE.methods_by_name['Deploy']._serialized_options = b'\x82\xd3\xe4\x93\x02\x12"\x10/model/v1/deploy'
40
- _MODELSERVICE.methods_by_name['Info']._options = None
41
- _MODELSERVICE.methods_by_name['Info']._serialized_options = b'\x82\xd3\xe4\x93\x02\x10\x12\x0e/model/v1/info'
42
- _STATUS._serialized_start = 1902
43
- _STATUS._serialized_end = 1945
44
- _FILEDATA._serialized_start = 134
45
- _FILEDATA._serialized_end = 164
46
- _FILE._serialized_start = 167
47
- _FILE._serialized_end = 296
48
- _UPLOADMETADATA._serialized_start = 299
49
- _UPLOADMETADATA._serialized_end = 463
50
- _UPLOADREQUEST._serialized_start = 466
51
- _UPLOADREQUEST._serialized_end = 631
52
- _DELETEREQUEST._serialized_start = 633
53
- _DELETEREQUEST._serialized_end = 702
54
- _DEPLOYREQUEST._serialized_start = 704
55
- _DEPLOYREQUEST._serialized_end = 773
56
- _MODEL._serialized_start = 776
57
- _MODEL._serialized_end = 944
58
- _INFOREQUEST._serialized_start = 946
59
- _INFOREQUEST._serialized_end = 982
60
- _INFORESPONSE._serialized_start = 984
61
- _INFORESPONSE._serialized_end = 1046
62
- _UPLOADRESPONSE._serialized_start = 1048
63
- _UPLOADRESPONSE._serialized_end = 1141
64
- _DELETERESPONSE._serialized_start = 1143
65
- _DELETERESPONSE._serialized_end = 1236
66
- _DEPLOYRESPONSE._serialized_start = 1238
67
- _DEPLOYRESPONSE._serialized_end = 1331
68
- _SYNCEDMODEL._serialized_start = 1334
69
- _SYNCEDMODEL._serialized_end = 1900
70
- _MODELSERVICE._serialized_start = 1948
71
- _MODELSERVICE._serialized_end = 2376
@@ -1,285 +0,0 @@
1
- """
2
- @generated by mypy-protobuf. Do not edit manually!
3
- isort:skip_file
4
- """
5
- import builtins
6
- import collections.abc
7
- import google.protobuf.descriptor
8
- import google.protobuf.internal.containers
9
- import google.protobuf.internal.enum_type_wrapper
10
- import google.protobuf.message
11
- import google.protobuf.timestamp_pb2
12
- import sys
13
- import typing
14
- if sys.version_info >= (3, 10):
15
- import typing as typing_extensions
16
- else:
17
- import typing_extensions
18
- DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
19
-
20
- class _Status:
21
- ValueType = typing.NewType('ValueType', builtins.int)
22
- V: typing_extensions.TypeAlias = ValueType
23
-
24
- class _StatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Status.ValueType], builtins.type):
25
- DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
26
- UNSPECIFIED: _Status.ValueType
27
- 'buf:lint:ignore ENUM_VALUE_PREFIX\n buf:lint:ignore ENUM_ZERO_VALUE_SUFFIX\n '
28
- FAIL: _Status.ValueType
29
- 'buf:lint:ignore ENUM_VALUE_PREFIX'
30
- OK: _Status.ValueType
31
- 'buf:lint:ignore ENUM_VALUE_PREFIX'
32
-
33
- class Status(_Status, metaclass=_StatusEnumTypeWrapper):
34
- ...
35
- UNSPECIFIED: Status.ValueType
36
- 'buf:lint:ignore ENUM_VALUE_PREFIX\nbuf:lint:ignore ENUM_ZERO_VALUE_SUFFIX\n'
37
- FAIL: Status.ValueType
38
- 'buf:lint:ignore ENUM_VALUE_PREFIX'
39
- OK: Status.ValueType
40
- 'buf:lint:ignore ENUM_VALUE_PREFIX'
41
- global___Status = Status
42
-
43
- @typing_extensions.final
44
- class FileData(google.protobuf.message.Message):
45
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
46
- DATA_FIELD_NUMBER: builtins.int
47
- data: builtins.bytes
48
-
49
- def __init__(self, *, data: builtins.bytes=...) -> None:
50
- ...
51
-
52
- def ClearField(self, field_name: typing_extensions.Literal['data', b'data']) -> None:
53
- ...
54
- global___FileData = FileData
55
-
56
- @typing_extensions.final
57
- class File(google.protobuf.message.Message):
58
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
59
- NAME_FIELD_NUMBER: builtins.int
60
- SIZE_BYTES_FIELD_NUMBER: builtins.int
61
- name: builtins.str
62
- size_bytes: builtins.int
63
-
64
- def __init__(self, *, name: builtins.str=..., size_bytes: builtins.int=...) -> None:
65
- ...
66
-
67
- def ClearField(self, field_name: typing_extensions.Literal['name', b'name', 'size_bytes', b'size_bytes']) -> None:
68
- ...
69
- global___File = File
70
-
71
- @typing_extensions.final
72
- class UploadMetadata(google.protobuf.message.Message):
73
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
74
- ORG_ID_FIELD_NUMBER: builtins.int
75
- MODEL_NAME_FIELD_NUMBER: builtins.int
76
- ASSOCIATED_DATASET_FIELD_NUMBER: builtins.int
77
- FILES_FIELD_NUMBER: builtins.int
78
- org_id: builtins.str
79
- model_name: builtins.str
80
- associated_dataset: builtins.str
81
- "TODO: Determine the format of the associated dataset. Update when it's decided\n whether it should be by ID or name.\n "
82
-
83
- @property
84
- def files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___File]:
85
- ...
86
-
87
- def __init__(self, *, org_id: builtins.str=..., model_name: builtins.str=..., associated_dataset: builtins.str=..., files: collections.abc.Iterable[global___File] | None=...) -> None:
88
- ...
89
-
90
- def ClearField(self, field_name: typing_extensions.Literal['associated_dataset', b'associated_dataset', 'files', b'files', 'model_name', b'model_name', 'org_id', b'org_id']) -> None:
91
- ...
92
- global___UploadMetadata = UploadMetadata
93
-
94
- @typing_extensions.final
95
- class UploadRequest(google.protobuf.message.Message):
96
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
97
- METADATA_FIELD_NUMBER: builtins.int
98
- FILE_CONTENTS_FIELD_NUMBER: builtins.int
99
-
100
- @property
101
- def metadata(self) -> global___UploadMetadata:
102
- ...
103
-
104
- @property
105
- def file_contents(self) -> global___FileData:
106
- ...
107
-
108
- def __init__(self, *, metadata: global___UploadMetadata | None=..., file_contents: global___FileData | None=...) -> None:
109
- ...
110
-
111
- def HasField(self, field_name: typing_extensions.Literal['file_contents', b'file_contents', 'metadata', b'metadata', 'upload_packet', b'upload_packet']) -> builtins.bool:
112
- ...
113
-
114
- def ClearField(self, field_name: typing_extensions.Literal['file_contents', b'file_contents', 'metadata', b'metadata', 'upload_packet', b'upload_packet']) -> None:
115
- ...
116
-
117
- def WhichOneof(self, oneof_group: typing_extensions.Literal['upload_packet', b'upload_packet']) -> typing_extensions.Literal['metadata', 'file_contents'] | None:
118
- ...
119
- global___UploadRequest = UploadRequest
120
-
121
- @typing_extensions.final
122
- class DeleteRequest(google.protobuf.message.Message):
123
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
124
- ORG_ID_FIELD_NUMBER: builtins.int
125
- MODEL_NAME_FIELD_NUMBER: builtins.int
126
- org_id: builtins.str
127
- model_name: builtins.str
128
-
129
- def __init__(self, *, org_id: builtins.str=..., model_name: builtins.str=...) -> None:
130
- ...
131
-
132
- def ClearField(self, field_name: typing_extensions.Literal['model_name', b'model_name', 'org_id', b'org_id']) -> None:
133
- ...
134
- global___DeleteRequest = DeleteRequest
135
-
136
- @typing_extensions.final
137
- class DeployRequest(google.protobuf.message.Message):
138
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
139
- ORG_ID_FIELD_NUMBER: builtins.int
140
- MODEL_NAME_FIELD_NUMBER: builtins.int
141
- org_id: builtins.str
142
- model_name: builtins.str
143
-
144
- def __init__(self, *, org_id: builtins.str=..., model_name: builtins.str=...) -> None:
145
- ...
146
-
147
- def ClearField(self, field_name: typing_extensions.Literal['model_name', b'model_name', 'org_id', b'org_id']) -> None:
148
- ...
149
- global___DeployRequest = DeployRequest
150
-
151
- @typing_extensions.final
152
- class Model(google.protobuf.message.Message):
153
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
154
- NAME_FIELD_NUMBER: builtins.int
155
- SIZE_BYTES_FIELD_NUMBER: builtins.int
156
- FILES_FIELD_NUMBER: builtins.int
157
- TIME_CREATED_FIELD_NUMBER: builtins.int
158
- name: builtins.str
159
- size_bytes: builtins.int
160
-
161
- @property
162
- def files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___File]:
163
- ...
164
-
165
- @property
166
- def time_created(self) -> google.protobuf.timestamp_pb2.Timestamp:
167
- ...
168
-
169
- def __init__(self, *, name: builtins.str=..., size_bytes: builtins.int=..., files: collections.abc.Iterable[global___File] | None=..., time_created: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None:
170
- ...
171
-
172
- def HasField(self, field_name: typing_extensions.Literal['time_created', b'time_created']) -> builtins.bool:
173
- ...
174
-
175
- def ClearField(self, field_name: typing_extensions.Literal['files', b'files', 'name', b'name', 'size_bytes', b'size_bytes', 'time_created', b'time_created']) -> None:
176
- ...
177
- global___Model = Model
178
-
179
- @typing_extensions.final
180
- class InfoRequest(google.protobuf.message.Message):
181
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
182
- ORG_ID_FIELD_NUMBER: builtins.int
183
- org_id: builtins.str
184
-
185
- def __init__(self, *, org_id: builtins.str=...) -> None:
186
- ...
187
-
188
- def ClearField(self, field_name: typing_extensions.Literal['org_id', b'org_id']) -> None:
189
- ...
190
- global___InfoRequest = InfoRequest
191
-
192
- @typing_extensions.final
193
- class InfoResponse(google.protobuf.message.Message):
194
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
195
- MODEL_FIELD_NUMBER: builtins.int
196
-
197
- @property
198
- def model(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Model]:
199
- ...
200
-
201
- def __init__(self, *, model: collections.abc.Iterable[global___Model] | None=...) -> None:
202
- ...
203
-
204
- def ClearField(self, field_name: typing_extensions.Literal['model', b'model']) -> None:
205
- ...
206
- global___InfoResponse = InfoResponse
207
-
208
- @typing_extensions.final
209
- class UploadResponse(google.protobuf.message.Message):
210
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
211
- MESSAGE_FIELD_NUMBER: builtins.int
212
- STATUS_FIELD_NUMBER: builtins.int
213
- message: builtins.str
214
- status: global___Status.ValueType
215
-
216
- def __init__(self, *, message: builtins.str=..., status: global___Status.ValueType=...) -> None:
217
- ...
218
-
219
- def ClearField(self, field_name: typing_extensions.Literal['message', b'message', 'status', b'status']) -> None:
220
- ...
221
- global___UploadResponse = UploadResponse
222
-
223
- @typing_extensions.final
224
- class DeleteResponse(google.protobuf.message.Message):
225
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
226
- MESSAGE_FIELD_NUMBER: builtins.int
227
- STATUS_FIELD_NUMBER: builtins.int
228
- message: builtins.str
229
- status: global___Status.ValueType
230
-
231
- def __init__(self, *, message: builtins.str=..., status: global___Status.ValueType=...) -> None:
232
- ...
233
-
234
- def ClearField(self, field_name: typing_extensions.Literal['message', b'message', 'status', b'status']) -> None:
235
- ...
236
- global___DeleteResponse = DeleteResponse
237
-
238
- @typing_extensions.final
239
- class DeployResponse(google.protobuf.message.Message):
240
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
241
- MESSAGE_FIELD_NUMBER: builtins.int
242
- STATUS_FIELD_NUMBER: builtins.int
243
- message: builtins.str
244
- status: global___Status.ValueType
245
-
246
- def __init__(self, *, message: builtins.str=..., status: global___Status.ValueType=...) -> None:
247
- ...
248
-
249
- def ClearField(self, field_name: typing_extensions.Literal['message', b'message', 'status', b'status']) -> None:
250
- ...
251
- global___DeployResponse = DeployResponse
252
-
253
- @typing_extensions.final
254
- class SyncedModel(google.protobuf.message.Message):
255
- DESCRIPTOR: google.protobuf.descriptor.Descriptor
256
- ORG_ID_FIELD_NUMBER: builtins.int
257
- MODEL_NAME_FIELD_NUMBER: builtins.int
258
- ASSOCIATED_DATASET_FIELD_NUMBER: builtins.int
259
- FILES_FIELD_NUMBER: builtins.int
260
- SIZE_BYTES_FIELD_NUMBER: builtins.int
261
- BLOB_PATH_FIELD_NUMBER: builtins.int
262
- SYNC_TIME_FIELD_NUMBER: builtins.int
263
- org_id: builtins.str
264
- model_name: builtins.str
265
- associated_dataset: builtins.str
266
-
267
- @property
268
- def files(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___File]:
269
- ...
270
- size_bytes: builtins.int
271
- blob_path: builtins.str
272
-
273
- @property
274
- def sync_time(self) -> google.protobuf.timestamp_pb2.Timestamp:
275
- ...
276
-
277
- def __init__(self, *, org_id: builtins.str=..., model_name: builtins.str=..., associated_dataset: builtins.str=..., files: collections.abc.Iterable[global___File] | None=..., size_bytes: builtins.int=..., blob_path: builtins.str=..., sync_time: google.protobuf.timestamp_pb2.Timestamp | None=...) -> None:
278
- ...
279
-
280
- def HasField(self, field_name: typing_extensions.Literal['sync_time', b'sync_time']) -> builtins.bool:
281
- ...
282
-
283
- def ClearField(self, field_name: typing_extensions.Literal['associated_dataset', b'associated_dataset', 'blob_path', b'blob_path', 'files', b'files', 'model_name', b'model_name', 'org_id', b'org_id', 'size_bytes', b'size_bytes', 'sync_time', b'sync_time']) -> None:
284
- ...
285
- global___SyncedModel = SyncedModel