viam-sdk 0.41.1__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 (225) hide show
  1. viam/app/app_client.py +225 -51
  2. viam/app/billing_client.py +47 -5
  3. viam/app/data_client.py +771 -234
  4. viam/app/ml_training_client.py +3 -5
  5. viam/app/provisioning_client.py +3 -5
  6. viam/app/viam_client.py +58 -11
  7. viam/components/arm/arm.py +1 -1
  8. viam/components/arm/service.py +1 -1
  9. viam/components/audio_in/__init__.py +24 -0
  10. viam/components/audio_in/audio_in.py +74 -0
  11. viam/components/audio_in/client.py +76 -0
  12. viam/components/audio_in/service.py +83 -0
  13. viam/components/audio_out/__init__.py +21 -0
  14. viam/components/audio_out/audio_out.py +72 -0
  15. viam/components/audio_out/client.py +67 -0
  16. viam/components/audio_out/service.py +63 -0
  17. viam/components/base/base.py +1 -1
  18. viam/components/board/board.py +8 -2
  19. viam/components/board/client.py +2 -1
  20. viam/components/board/service.py +1 -0
  21. viam/components/button/__init__.py +10 -0
  22. viam/components/button/button.py +41 -0
  23. viam/components/button/client.py +52 -0
  24. viam/components/button/service.py +46 -0
  25. viam/components/camera/camera.py +15 -30
  26. viam/components/camera/client.py +10 -21
  27. viam/components/camera/service.py +15 -28
  28. viam/components/component_base.py +2 -2
  29. viam/components/gantry/client.py +17 -2
  30. viam/components/gantry/gantry.py +32 -1
  31. viam/components/gantry/service.py +21 -5
  32. viam/components/gripper/__init__.py +2 -0
  33. viam/components/gripper/client.py +25 -2
  34. viam/components/gripper/gripper.py +76 -1
  35. viam/components/gripper/service.py +32 -3
  36. viam/components/input/input.py +1 -1
  37. viam/components/motor/motor.py +1 -1
  38. viam/components/power_sensor/power_sensor.py +1 -1
  39. viam/components/switch/__init__.py +10 -0
  40. viam/components/switch/client.py +83 -0
  41. viam/components/switch/service.py +72 -0
  42. viam/components/switch/switch.py +98 -0
  43. viam/gen/app/agent/v1/agent_pb2.py +1 -1
  44. viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +1 -1
  45. viam/gen/app/data/v1/data_grpc.py +74 -2
  46. viam/gen/app/data/v1/data_pb2.py +198 -104
  47. viam/gen/app/data/v1/data_pb2.pyi +563 -31
  48. viam/gen/app/datapipelines/__init__.py +0 -0
  49. viam/gen/app/datapipelines/v1/__init__.py +0 -0
  50. viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
  51. viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +57 -0
  52. viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +387 -0
  53. viam/gen/app/dataset/v1/dataset_grpc.py +10 -2
  54. viam/gen/app/dataset/v1/dataset_pb2.py +8 -4
  55. viam/gen/app/dataset/v1/dataset_pb2.pyi +36 -1
  56. viam/gen/app/datasync/v1/data_sync_pb2.py +39 -35
  57. viam/gen/app/datasync/v1/data_sync_pb2.pyi +21 -8
  58. viam/gen/app/mlinference/v1/ml_inference_pb2.py +7 -7
  59. viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +4 -2
  60. viam/gen/app/mltraining/v1/ml_training_grpc.py +10 -2
  61. viam/gen/app/mltraining/v1/ml_training_pb2.py +63 -43
  62. viam/gen/app/mltraining/v1/ml_training_pb2.pyi +112 -7
  63. viam/gen/app/packages/v1/packages_pb2.py +1 -1
  64. viam/gen/app/v1/app_grpc.py +74 -3
  65. viam/gen/app/v1/app_pb2.py +600 -545
  66. viam/gen/app/v1/app_pb2.pyi +1108 -258
  67. viam/gen/app/v1/billing_grpc.py +26 -2
  68. viam/gen/app/v1/billing_pb2.py +52 -36
  69. viam/gen/app/v1/billing_pb2.pyi +158 -4
  70. viam/gen/app/v1/end_user_pb2.py +1 -1
  71. viam/gen/app/v1/robot_pb2.py +95 -89
  72. viam/gen/app/v1/robot_pb2.pyi +121 -9
  73. viam/gen/common/v1/common_pb2.py +76 -58
  74. viam/gen/common/v1/common_pb2.pyi +186 -17
  75. viam/gen/component/arm/v1/arm_grpc.py +10 -2
  76. viam/gen/component/arm/v1/arm_pb2.py +5 -3
  77. viam/gen/component/audioin/__init__.py +0 -0
  78. viam/gen/component/audioin/v1/__init__.py +0 -0
  79. viam/gen/component/audioin/v1/audioin_grpc.py +54 -0
  80. viam/gen/component/audioin/v1/audioin_pb2.py +34 -0
  81. viam/gen/component/audioin/v1/audioin_pb2.pyi +94 -0
  82. viam/gen/component/audioinput/v1/audioinput_pb2.py +1 -1
  83. viam/gen/component/audioout/__init__.py +0 -0
  84. viam/gen/component/audioout/v1/__init__.py +0 -0
  85. viam/gen/component/audioout/v1/audioout_grpc.py +54 -0
  86. viam/gen/component/audioout/v1/audioout_pb2.py +32 -0
  87. viam/gen/component/audioout/v1/audioout_pb2.pyi +47 -0
  88. viam/gen/component/base/v1/base_pb2.py +1 -1
  89. viam/gen/component/board/v1/board_pb2.py +1 -1
  90. viam/gen/component/button/v1/button_pb2.py +1 -1
  91. viam/gen/component/camera/v1/camera_grpc.py +1 -0
  92. viam/gen/component/camera/v1/camera_pb2.py +37 -36
  93. viam/gen/component/camera/v1/camera_pb2.pyi +31 -4
  94. viam/gen/component/encoder/v1/encoder_pb2.py +1 -1
  95. viam/gen/component/gantry/v1/gantry_grpc.py +9 -1
  96. viam/gen/component/gantry/v1/gantry_pb2.py +5 -3
  97. viam/gen/component/generic/v1/generic_pb2.py +1 -1
  98. viam/gen/component/gripper/v1/gripper_grpc.py +18 -2
  99. viam/gen/component/gripper/v1/gripper_pb2.py +12 -4
  100. viam/gen/component/gripper/v1/gripper_pb2.pyi +43 -1
  101. viam/gen/component/inputcontroller/v1/input_controller_pb2.py +1 -1
  102. viam/gen/component/motor/v1/motor_pb2.py +1 -1
  103. viam/gen/component/movementsensor/v1/movementsensor_pb2.py +1 -1
  104. viam/gen/component/posetracker/v1/pose_tracker_pb2.py +1 -1
  105. viam/gen/component/powersensor/v1/powersensor_pb2.py +1 -1
  106. viam/gen/component/sensor/v1/sensor_pb2.py +1 -1
  107. viam/gen/component/servo/v1/servo_pb2.py +1 -1
  108. viam/gen/component/switch/v1/switch_pb2.py +5 -5
  109. viam/gen/component/switch/v1/switch_pb2.pyi +9 -2
  110. viam/gen/component/testecho/v1/testecho_pb2.py +1 -1
  111. viam/gen/module/v1/module_pb2.py +5 -5
  112. viam/gen/module/v1/module_pb2.pyi +7 -2
  113. viam/gen/opentelemetry/__init__.py +0 -0
  114. viam/gen/opentelemetry/proto/__init__.py +0 -0
  115. viam/gen/opentelemetry/proto/common/__init__.py +0 -0
  116. viam/gen/opentelemetry/proto/common/v1/__init__.py +0 -0
  117. viam/gen/opentelemetry/proto/common/v1/common_grpc.py +0 -0
  118. viam/gen/opentelemetry/proto/common/v1/common_pb2.py +27 -0
  119. viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi +208 -0
  120. viam/gen/opentelemetry/proto/resource/__init__.py +0 -0
  121. viam/gen/opentelemetry/proto/resource/v1/__init__.py +0 -0
  122. viam/gen/opentelemetry/proto/resource/v1/resource_grpc.py +0 -0
  123. viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py +18 -0
  124. viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi +59 -0
  125. viam/gen/opentelemetry/proto/trace/__init__.py +0 -0
  126. viam/gen/opentelemetry/proto/trace/v1/__init__.py +0 -0
  127. viam/gen/opentelemetry/proto/trace/v1/trace_grpc.py +0 -0
  128. viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py +37 -0
  129. viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi +402 -0
  130. viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +1 -1
  131. viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +1 -1
  132. viam/gen/proto/rpc/v1/auth_pb2.py +1 -1
  133. viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +1 -1
  134. viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +1 -1
  135. viam/gen/provisioning/v1/provisioning_grpc.py +10 -2
  136. viam/gen/provisioning/v1/provisioning_pb2.py +32 -26
  137. viam/gen/provisioning/v1/provisioning_pb2.pyi +46 -5
  138. viam/gen/robot/v1/robot_grpc.py +51 -34
  139. viam/gen/robot/v1/robot_pb2.py +147 -142
  140. viam/gen/robot/v1/robot_pb2.pyi +153 -86
  141. viam/gen/service/datamanager/v1/data_manager_grpc.py +11 -2
  142. viam/gen/service/datamanager/v1/data_manager_pb2.py +15 -8
  143. viam/gen/service/datamanager/v1/data_manager_pb2.pyi +47 -1
  144. viam/gen/service/discovery/v1/discovery_pb2.py +1 -1
  145. viam/gen/service/generic/v1/generic_pb2.py +1 -1
  146. viam/gen/service/mlmodel/v1/mlmodel_pb2.py +1 -1
  147. viam/gen/service/motion/v1/motion_pb2.py +92 -62
  148. viam/gen/service/motion/v1/motion_pb2.pyi +130 -68
  149. viam/gen/service/navigation/v1/navigation_pb2.py +1 -1
  150. viam/gen/service/sensors/v1/sensors_pb2.py +1 -1
  151. viam/gen/service/shell/v1/shell_pb2.py +1 -1
  152. viam/gen/service/slam/v1/slam_pb2.py +1 -1
  153. viam/gen/service/slam/v1/slam_pb2.pyi +1 -1
  154. viam/gen/service/video/__init__.py +0 -0
  155. viam/gen/service/video/v1/__init__.py +0 -0
  156. viam/gen/service/video/v1/video_grpc.py +39 -0
  157. viam/gen/service/video/v1/video_pb2.py +29 -0
  158. viam/gen/service/video/v1/video_pb2.pyi +72 -0
  159. viam/gen/service/vision/v1/vision_pb2.py +27 -27
  160. viam/gen/service/vision/v1/vision_pb2.pyi +28 -3
  161. viam/gen/service/worldstatestore/__init__.py +0 -0
  162. viam/gen/service/worldstatestore/v1/__init__.py +0 -0
  163. viam/gen/service/worldstatestore/v1/world_state_store_grpc.py +55 -0
  164. viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +39 -0
  165. viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +171 -0
  166. viam/gen/stream/v1/stream_pb2.py +1 -1
  167. viam/gen/tagger/v1/tagger_pb2.py +1 -1
  168. viam/logging.py +9 -8
  169. viam/media/audio.py +22 -10
  170. viam/media/utils/pil/__init__.py +5 -1
  171. viam/media/video.py +54 -40
  172. viam/module/module.py +85 -16
  173. viam/module/resource_data_consumer.py +41 -0
  174. viam/module/service.py +9 -1
  175. viam/proto/app/__init__.py +68 -0
  176. viam/proto/app/billing.py +16 -0
  177. viam/proto/app/data/__init__.py +48 -0
  178. viam/proto/app/datapipelines/__init__.py +56 -0
  179. viam/proto/app/dataset/__init__.py +4 -0
  180. viam/proto/app/mltraining/__init__.py +6 -0
  181. viam/proto/app/robot.py +6 -0
  182. viam/proto/common/__init__.py +14 -0
  183. viam/proto/component/audioin/__init__.py +16 -0
  184. viam/proto/component/audioout/__init__.py +15 -0
  185. viam/proto/component/camera/__init__.py +0 -2
  186. viam/proto/component/gripper/__init__.py +4 -0
  187. viam/proto/opentelemetry/__init__.py +0 -0
  188. viam/proto/opentelemetry/proto/__init__.py +0 -0
  189. viam/proto/opentelemetry/proto/common/__init__.py +15 -0
  190. viam/proto/opentelemetry/proto/resource/__init__.py +10 -0
  191. viam/proto/opentelemetry/proto/trace/__init__.py +15 -0
  192. viam/proto/provisioning/__init__.py +6 -0
  193. viam/proto/robot/__init__.py +16 -8
  194. viam/proto/service/datamanager/__init__.py +8 -1
  195. viam/proto/service/motion/__init__.py +2 -0
  196. viam/proto/service/video/__init__.py +15 -0
  197. viam/proto/service/worldstatestore/__init__.py +32 -0
  198. viam/resource/easy_resource.py +5 -9
  199. viam/resource/manager.py +4 -3
  200. viam/resource/registry.py +2 -2
  201. viam/resource/types.py +2 -2
  202. viam/robot/client.py +38 -59
  203. viam/rpc/dial.py +48 -5
  204. viam/rpc/libviam_rust_utils.so +0 -0
  205. viam/rpc/server.py +24 -10
  206. viam/services/motion/client.py +8 -9
  207. viam/services/motion/motion.py +48 -46
  208. viam/services/navigation/navigation.py +2 -2
  209. viam/services/vision/client.py +1 -1
  210. viam/services/vision/service.py +5 -8
  211. viam/services/vision/vision.py +5 -3
  212. viam/services/worldstatestore/__init__.py +18 -0
  213. viam/services/worldstatestore/client.py +94 -0
  214. viam/services/worldstatestore/service.py +55 -0
  215. viam/services/worldstatestore/worldstatestore.py +90 -0
  216. viam/sessions_client.py +115 -46
  217. viam/version_metadata.py +2 -2
  218. {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/METADATA +10 -6
  219. {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/RECORD +221 -152
  220. {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/WHEEL +1 -1
  221. viam/components/audio_input/__init__.py +0 -18
  222. viam/components/audio_input/audio_input.py +0 -81
  223. viam/components/audio_input/client.py +0 -70
  224. viam/components/audio_input/service.py +0 -114
  225. {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,72 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import google.protobuf.descriptor
7
+ import google.protobuf.message
8
+ import google.protobuf.struct_pb2
9
+ import google.protobuf.timestamp_pb2
10
+ import typing
11
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
12
+
13
+ @typing.final
14
+ class GetVideoRequest(google.protobuf.message.Message):
15
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
16
+ NAME_FIELD_NUMBER: builtins.int
17
+ START_TIMESTAMP_FIELD_NUMBER: builtins.int
18
+ END_TIMESTAMP_FIELD_NUMBER: builtins.int
19
+ VIDEO_CODEC_FIELD_NUMBER: builtins.int
20
+ VIDEO_CONTAINER_FIELD_NUMBER: builtins.int
21
+ REQUEST_ID_FIELD_NUMBER: builtins.int
22
+ EXTRA_FIELD_NUMBER: builtins.int
23
+ name: builtins.str
24
+ 'Name of the video source'
25
+ video_codec: builtins.str
26
+ 'Codec for the video retrieval (e.g., "h264", "h265")'
27
+ video_container: builtins.str
28
+ 'Container format for the video retrieval (e.g., "mp4", "fmp4")'
29
+ request_id: builtins.str
30
+ 'To match a request to its responses'
31
+
32
+ @property
33
+ def start_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
34
+ """Start time for the video retrieval"""
35
+
36
+ @property
37
+ def end_timestamp(self) -> google.protobuf.timestamp_pb2.Timestamp:
38
+ """End time for the video retrieval"""
39
+
40
+ @property
41
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
42
+ """Additional arguments to the method"""
43
+
44
+ def __init__(self, *, name: builtins.str=..., start_timestamp: google.protobuf.timestamp_pb2.Timestamp | None=..., end_timestamp: google.protobuf.timestamp_pb2.Timestamp | None=..., video_codec: builtins.str=..., video_container: builtins.str=..., request_id: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
45
+ ...
46
+
47
+ def HasField(self, field_name: typing.Literal['end_timestamp', b'end_timestamp', 'extra', b'extra', 'start_timestamp', b'start_timestamp']) -> builtins.bool:
48
+ ...
49
+
50
+ def ClearField(self, field_name: typing.Literal['end_timestamp', b'end_timestamp', 'extra', b'extra', 'name', b'name', 'request_id', b'request_id', 'start_timestamp', b'start_timestamp', 'video_codec', b'video_codec', 'video_container', b'video_container']) -> None:
51
+ ...
52
+ global___GetVideoRequest = GetVideoRequest
53
+
54
+ @typing.final
55
+ class GetVideoResponse(google.protobuf.message.Message):
56
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
57
+ VIDEO_DATA_FIELD_NUMBER: builtins.int
58
+ VIDEO_CONTAINER_FIELD_NUMBER: builtins.int
59
+ REQUEST_ID_FIELD_NUMBER: builtins.int
60
+ video_data: builtins.bytes
61
+ 'Video data chunk'
62
+ video_container: builtins.str
63
+ 'Container format (e.g., "mp4", "fmp4")'
64
+ request_id: builtins.str
65
+ 'Request ID to match this response to its request'
66
+
67
+ def __init__(self, *, video_data: builtins.bytes=..., video_container: builtins.str=..., request_id: builtins.str=...) -> None:
68
+ ...
69
+
70
+ def ClearField(self, field_name: typing.Literal['request_id', b'request_id', 'video_container', b'video_container', 'video_data', b'video_data']) -> None:
71
+ ...
72
+ global___GetVideoResponse = GetVideoResponse
@@ -4,13 +4,13 @@ from google.protobuf import descriptor_pool as _descriptor_pool
4
4
  from google.protobuf import runtime_version as _runtime_version
5
5
  from google.protobuf import symbol_database as _symbol_database
6
6
  from google.protobuf.internal import builder as _builder
7
- _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 1, '', 'service/vision/v1/vision.proto')
7
+ _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/vision/v1/vision.proto')
8
8
  _sym_db = _symbol_database.Default()
9
9
  from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2
10
10
  from ....component.camera.v1 import camera_pb2 as component_dot_camera_dot_v1_dot_camera__pb2
11
11
  from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
12
12
  from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
13
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eservice/vision/v1/vision.proto\x12\x16viam.service.vision.v1\x1a\x16common/v1/common.proto\x1a component/camera/v1/camera.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto"\xba\x01\n\x14GetDetectionsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05image\x18\x02 \x01(\x0cR\x05image\x12\x14\n\x05width\x18\x03 \x01(\x03R\x05width\x12\x16\n\x06height\x18\x04 \x01(\x03R\x06height\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"Z\n\x15GetDetectionsResponse\x12A\n\ndetections\x18\x01 \x03(\x0b2!.viam.service.vision.v1.DetectionR\ndetections"\x84\x01\n\x1eGetDetectionsFromCameraRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"d\n\x1fGetDetectionsFromCameraResponse\x12A\n\ndetections\x18\x01 \x03(\x0b2!.viam.service.vision.v1.DetectionR\ndetections"\xda\x01\n\tDetection\x12\x18\n\x05x_min\x18\x01 \x01(\x03H\x00R\x04xMin\x88\x01\x01\x12\x18\n\x05y_min\x18\x02 \x01(\x03H\x01R\x04yMin\x88\x01\x01\x12\x18\n\x05x_max\x18\x03 \x01(\x03H\x02R\x04xMax\x88\x01\x01\x12\x18\n\x05y_max\x18\x04 \x01(\x03H\x03R\x04yMax\x88\x01\x01\x12\x1e\n\nconfidence\x18\x05 \x01(\x01R\nconfidence\x12\x1d\n\nclass_name\x18\x06 \x01(\tR\tclassNameB\x08\n\x06_x_minB\x08\n\x06_y_minB\x08\n\x06_x_maxB\x08\n\x06_y_max"\xcd\x01\n\x19GetClassificationsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05image\x18\x02 \x01(\x0cR\x05image\x12\x14\n\x05width\x18\x03 \x01(\x05R\x05width\x12\x16\n\x06height\x18\x04 \x01(\x05R\x06height\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\x12\x0c\n\x01n\x18\x06 \x01(\x05R\x01n\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"n\n\x1aGetClassificationsResponse\x12P\n\x0fclassifications\x18\x01 \x03(\x0b2&.viam.service.vision.v1.ClassificationR\x0fclassifications"\x97\x01\n#GetClassificationsFromCameraRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12\x0c\n\x01n\x18\x03 \x01(\x05R\x01n\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"x\n$GetClassificationsFromCameraResponse\x12P\n\x0fclassifications\x18\x01 \x03(\x0b2&.viam.service.vision.v1.ClassificationR\x0fclassifications"O\n\x0eClassification\x12\x1d\n\nclass_name\x18\x01 \x01(\tR\tclassName\x12\x1e\n\nconfidence\x18\x02 \x01(\x01R\nconfidence"\x9e\x01\n\x1bGetObjectPointCloudsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12\x1b\n\tmime_type\x18\x03 \x01(\tR\x08mimeType\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"w\n\x1cGetObjectPointCloudsResponse\x12\x1b\n\tmime_type\x18\x01 \x01(\tR\x08mimeType\x12:\n\x07objects\x18\x02 \x03(\x0b2 .viam.common.v1.PointCloudObjectR\x07objects"Y\n\x14GetPropertiesRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\xc5\x02\n\x1bCaptureAllFromCameraRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12!\n\x0creturn_image\x18\x03 \x01(\x08R\x0breturnImage\x125\n\x16return_classifications\x18\x04 \x01(\x08R\x15returnClassifications\x12+\n\x11return_detections\x18\x05 \x01(\x08R\x10returnDetections\x12;\n\x1areturn_object_point_clouds\x18\x06 \x01(\x08R\x17returnObjectPointClouds\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\xd5\x02\n\x1cCaptureAllFromCameraResponse\x125\n\x05image\x18\x01 \x01(\x0b2\x1f.viam.component.camera.v1.ImageR\x05image\x12A\n\ndetections\x18\x02 \x03(\x0b2!.viam.service.vision.v1.DetectionR\ndetections\x12P\n\x0fclassifications\x18\x03 \x03(\x0b2&.viam.service.vision.v1.ClassificationR\x0fclassifications\x12:\n\x07objects\x18\x04 \x03(\x0b2 .viam.common.v1.PointCloudObjectR\x07objects\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\xca\x01\n\x15GetPropertiesResponse\x12;\n\x19classifications_supported\x18\x01 \x01(\x08R\x18classificationsSupported\x121\n\x14detections_supported\x18\x02 \x01(\x08R\x13detectionsSupported\x12A\n\x1dobject_point_clouds_supported\x18\x03 \x01(\x08R\x1aobjectPointCloudsSupported2\xcd\x0b\n\rVisionService\x12\xc8\x01\n\x17GetDetectionsFromCamera\x126.viam.service.vision.v1.GetDetectionsFromCameraRequest\x1a7.viam.service.vision.v1.GetDetectionsFromCameraResponse"<\x82\xd3\xe4\x93\x026"4/viam/api/v1/service/vision/{name}/camera_detections\x12\xa3\x01\n\rGetDetections\x12,.viam.service.vision.v1.GetDetectionsRequest\x1a-.viam.service.vision.v1.GetDetectionsResponse"5\x82\xd3\xe4\x93\x02/"-/viam/api/v1/service/vision/{name}/detections\x12\xdc\x01\n\x1cGetClassificationsFromCamera\x12;.viam.service.vision.v1.GetClassificationsFromCameraRequest\x1a<.viam.service.vision.v1.GetClassificationsFromCameraResponse"A\x82\xd3\xe4\x93\x02;"9/viam/api/v1/service/vision/{name}/camera_classifications\x12\xb7\x01\n\x12GetClassifications\x121.viam.service.vision.v1.GetClassificationsRequest\x1a2.viam.service.vision.v1.GetClassificationsResponse":\x82\xd3\xe4\x93\x024"2/viam/api/v1/service/vision/{name}/classifications\x12\xc1\x01\n\x14GetObjectPointClouds\x123.viam.service.vision.v1.GetObjectPointCloudsRequest\x1a4.viam.service.vision.v1.GetObjectPointCloudsResponse">\x82\xd3\xe4\x93\x028"6/viam/api/v1/service/vision/{name}/object_point_clouds\x12\xa7\x01\n\rGetProperties\x12,.viam.service.vision.v1.GetPropertiesRequest\x1a-.viam.service.vision.v1.GetPropertiesResponse"9\x82\xd3\xe4\x93\x023"1/viam/api/v1/service/vision/{name}/get_properties\x12\xb9\x01\n\x14CaptureAllFromCamera\x123.viam.service.vision.v1.CaptureAllFromCameraRequest\x1a4.viam.service.vision.v1.CaptureAllFromCameraResponse"6\x82\xd3\xe4\x93\x020"./viam/api/v1/service/vision/{name}/capture_all\x12\x87\x01\n\tDoCommand\x12 .viam.common.v1.DoCommandRequest\x1a!.viam.common.v1.DoCommandResponse"5\x82\xd3\xe4\x93\x02/"-/viam/api/v1/service/vision/{name}/do_commandB?\n\x1acom.viam.service.vision.v1Z!go.viam.com/api/service/vision/v1b\x06proto3')
13
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1eservice/vision/v1/vision.proto\x12\x16viam.service.vision.v1\x1a\x16common/v1/common.proto\x1a component/camera/v1/camera.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x1cgoogle/protobuf/struct.proto"\xba\x01\n\x14GetDetectionsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05image\x18\x02 \x01(\x0cR\x05image\x12\x14\n\x05width\x18\x03 \x01(\x03R\x05width\x12\x16\n\x06height\x18\x04 \x01(\x03R\x06height\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"Z\n\x15GetDetectionsResponse\x12A\n\ndetections\x18\x01 \x03(\x0b2!.viam.service.vision.v1.DetectionR\ndetections"\x84\x01\n\x1eGetDetectionsFromCameraRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"d\n\x1fGetDetectionsFromCameraResponse\x12A\n\ndetections\x18\x01 \x03(\x0b2!.viam.service.vision.v1.DetectionR\ndetections"\xea\x03\n\tDetection\x12\x18\n\x05x_min\x18\x01 \x01(\x03H\x00R\x04xMin\x88\x01\x01\x12\x18\n\x05y_min\x18\x02 \x01(\x03H\x01R\x04yMin\x88\x01\x01\x12\x18\n\x05x_max\x18\x03 \x01(\x03H\x02R\x04xMax\x88\x01\x01\x12\x18\n\x05y_max\x18\x04 \x01(\x03H\x03R\x04yMax\x88\x01\x01\x12\x1e\n\nconfidence\x18\x05 \x01(\x01R\nconfidence\x12\x1d\n\nclass_name\x18\x06 \x01(\tR\tclassName\x12-\n\x10x_min_normalized\x18\x07 \x01(\x01H\x04R\x0exMinNormalized\x88\x01\x01\x12-\n\x10y_min_normalized\x18\x08 \x01(\x01H\x05R\x0eyMinNormalized\x88\x01\x01\x12-\n\x10x_max_normalized\x18\t \x01(\x01H\x06R\x0exMaxNormalized\x88\x01\x01\x12-\n\x10y_max_normalized\x18\n \x01(\x01H\x07R\x0eyMaxNormalized\x88\x01\x01B\x08\n\x06_x_minB\x08\n\x06_y_minB\x08\n\x06_x_maxB\x08\n\x06_y_maxB\x13\n\x11_x_min_normalizedB\x13\n\x11_y_min_normalizedB\x13\n\x11_x_max_normalizedB\x13\n\x11_y_max_normalized"\xcd\x01\n\x19GetClassificationsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n\x05image\x18\x02 \x01(\x0cR\x05image\x12\x14\n\x05width\x18\x03 \x01(\x05R\x05width\x12\x16\n\x06height\x18\x04 \x01(\x05R\x06height\x12\x1b\n\tmime_type\x18\x05 \x01(\tR\x08mimeType\x12\x0c\n\x01n\x18\x06 \x01(\x05R\x01n\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"n\n\x1aGetClassificationsResponse\x12P\n\x0fclassifications\x18\x01 \x03(\x0b2&.viam.service.vision.v1.ClassificationR\x0fclassifications"\x97\x01\n#GetClassificationsFromCameraRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12\x0c\n\x01n\x18\x03 \x01(\x05R\x01n\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"x\n$GetClassificationsFromCameraResponse\x12P\n\x0fclassifications\x18\x01 \x03(\x0b2&.viam.service.vision.v1.ClassificationR\x0fclassifications"O\n\x0eClassification\x12\x1d\n\nclass_name\x18\x01 \x01(\tR\tclassName\x12\x1e\n\nconfidence\x18\x02 \x01(\x01R\nconfidence"\x9e\x01\n\x1bGetObjectPointCloudsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12\x1b\n\tmime_type\x18\x03 \x01(\tR\x08mimeType\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"w\n\x1cGetObjectPointCloudsResponse\x12\x1b\n\tmime_type\x18\x01 \x01(\tR\x08mimeType\x12:\n\x07objects\x18\x02 \x03(\x0b2 .viam.common.v1.PointCloudObjectR\x07objects"Y\n\x14GetPropertiesRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\xc5\x02\n\x1bCaptureAllFromCameraRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1f\n\x0bcamera_name\x18\x02 \x01(\tR\ncameraName\x12!\n\x0creturn_image\x18\x03 \x01(\x08R\x0breturnImage\x125\n\x16return_classifications\x18\x04 \x01(\x08R\x15returnClassifications\x12+\n\x11return_detections\x18\x05 \x01(\x08R\x10returnDetections\x12;\n\x1areturn_object_point_clouds\x18\x06 \x01(\x08R\x17returnObjectPointClouds\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\xd5\x02\n\x1cCaptureAllFromCameraResponse\x125\n\x05image\x18\x01 \x01(\x0b2\x1f.viam.component.camera.v1.ImageR\x05image\x12A\n\ndetections\x18\x02 \x03(\x0b2!.viam.service.vision.v1.DetectionR\ndetections\x12P\n\x0fclassifications\x18\x03 \x03(\x0b2&.viam.service.vision.v1.ClassificationR\x0fclassifications\x12:\n\x07objects\x18\x04 \x03(\x0b2 .viam.common.v1.PointCloudObjectR\x07objects\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\xca\x01\n\x15GetPropertiesResponse\x12;\n\x19classifications_supported\x18\x01 \x01(\x08R\x18classificationsSupported\x121\n\x14detections_supported\x18\x02 \x01(\x08R\x13detectionsSupported\x12A\n\x1dobject_point_clouds_supported\x18\x03 \x01(\x08R\x1aobjectPointCloudsSupported2\xcd\x0b\n\rVisionService\x12\xc8\x01\n\x17GetDetectionsFromCamera\x126.viam.service.vision.v1.GetDetectionsFromCameraRequest\x1a7.viam.service.vision.v1.GetDetectionsFromCameraResponse"<\x82\xd3\xe4\x93\x026"4/viam/api/v1/service/vision/{name}/camera_detections\x12\xa3\x01\n\rGetDetections\x12,.viam.service.vision.v1.GetDetectionsRequest\x1a-.viam.service.vision.v1.GetDetectionsResponse"5\x82\xd3\xe4\x93\x02/"-/viam/api/v1/service/vision/{name}/detections\x12\xdc\x01\n\x1cGetClassificationsFromCamera\x12;.viam.service.vision.v1.GetClassificationsFromCameraRequest\x1a<.viam.service.vision.v1.GetClassificationsFromCameraResponse"A\x82\xd3\xe4\x93\x02;"9/viam/api/v1/service/vision/{name}/camera_classifications\x12\xb7\x01\n\x12GetClassifications\x121.viam.service.vision.v1.GetClassificationsRequest\x1a2.viam.service.vision.v1.GetClassificationsResponse":\x82\xd3\xe4\x93\x024"2/viam/api/v1/service/vision/{name}/classifications\x12\xc1\x01\n\x14GetObjectPointClouds\x123.viam.service.vision.v1.GetObjectPointCloudsRequest\x1a4.viam.service.vision.v1.GetObjectPointCloudsResponse">\x82\xd3\xe4\x93\x028"6/viam/api/v1/service/vision/{name}/object_point_clouds\x12\xa7\x01\n\rGetProperties\x12,.viam.service.vision.v1.GetPropertiesRequest\x1a-.viam.service.vision.v1.GetPropertiesResponse"9\x82\xd3\xe4\x93\x023"1/viam/api/v1/service/vision/{name}/get_properties\x12\xb9\x01\n\x14CaptureAllFromCamera\x123.viam.service.vision.v1.CaptureAllFromCameraRequest\x1a4.viam.service.vision.v1.CaptureAllFromCameraResponse"6\x82\xd3\xe4\x93\x020"./viam/api/v1/service/vision/{name}/capture_all\x12\x87\x01\n\tDoCommand\x12 .viam.common.v1.DoCommandRequest\x1a!.viam.common.v1.DoCommandResponse"5\x82\xd3\xe4\x93\x02/"-/viam/api/v1/service/vision/{name}/do_commandB?\n\x1acom.viam.service.vision.v1Z!go.viam.com/api/service/vision/v1b\x06proto3')
14
14
  _globals = globals()
15
15
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
16
16
  _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'service.vision.v1.vision_pb2', _globals)
@@ -42,28 +42,28 @@ if not _descriptor._USE_C_DESCRIPTORS:
42
42
  _globals['_GETDETECTIONSFROMCAMERARESPONSE']._serialized_start = 592
43
43
  _globals['_GETDETECTIONSFROMCAMERARESPONSE']._serialized_end = 692
44
44
  _globals['_DETECTION']._serialized_start = 695
45
- _globals['_DETECTION']._serialized_end = 913
46
- _globals['_GETCLASSIFICATIONSREQUEST']._serialized_start = 916
47
- _globals['_GETCLASSIFICATIONSREQUEST']._serialized_end = 1121
48
- _globals['_GETCLASSIFICATIONSRESPONSE']._serialized_start = 1123
49
- _globals['_GETCLASSIFICATIONSRESPONSE']._serialized_end = 1233
50
- _globals['_GETCLASSIFICATIONSFROMCAMERAREQUEST']._serialized_start = 1236
51
- _globals['_GETCLASSIFICATIONSFROMCAMERAREQUEST']._serialized_end = 1387
52
- _globals['_GETCLASSIFICATIONSFROMCAMERARESPONSE']._serialized_start = 1389
53
- _globals['_GETCLASSIFICATIONSFROMCAMERARESPONSE']._serialized_end = 1509
54
- _globals['_CLASSIFICATION']._serialized_start = 1511
55
- _globals['_CLASSIFICATION']._serialized_end = 1590
56
- _globals['_GETOBJECTPOINTCLOUDSREQUEST']._serialized_start = 1593
57
- _globals['_GETOBJECTPOINTCLOUDSREQUEST']._serialized_end = 1751
58
- _globals['_GETOBJECTPOINTCLOUDSRESPONSE']._serialized_start = 1753
59
- _globals['_GETOBJECTPOINTCLOUDSRESPONSE']._serialized_end = 1872
60
- _globals['_GETPROPERTIESREQUEST']._serialized_start = 1874
61
- _globals['_GETPROPERTIESREQUEST']._serialized_end = 1963
62
- _globals['_CAPTUREALLFROMCAMERAREQUEST']._serialized_start = 1966
63
- _globals['_CAPTUREALLFROMCAMERAREQUEST']._serialized_end = 2291
64
- _globals['_CAPTUREALLFROMCAMERARESPONSE']._serialized_start = 2294
65
- _globals['_CAPTUREALLFROMCAMERARESPONSE']._serialized_end = 2635
66
- _globals['_GETPROPERTIESRESPONSE']._serialized_start = 2638
67
- _globals['_GETPROPERTIESRESPONSE']._serialized_end = 2840
68
- _globals['_VISIONSERVICE']._serialized_start = 2843
69
- _globals['_VISIONSERVICE']._serialized_end = 4328
45
+ _globals['_DETECTION']._serialized_end = 1185
46
+ _globals['_GETCLASSIFICATIONSREQUEST']._serialized_start = 1188
47
+ _globals['_GETCLASSIFICATIONSREQUEST']._serialized_end = 1393
48
+ _globals['_GETCLASSIFICATIONSRESPONSE']._serialized_start = 1395
49
+ _globals['_GETCLASSIFICATIONSRESPONSE']._serialized_end = 1505
50
+ _globals['_GETCLASSIFICATIONSFROMCAMERAREQUEST']._serialized_start = 1508
51
+ _globals['_GETCLASSIFICATIONSFROMCAMERAREQUEST']._serialized_end = 1659
52
+ _globals['_GETCLASSIFICATIONSFROMCAMERARESPONSE']._serialized_start = 1661
53
+ _globals['_GETCLASSIFICATIONSFROMCAMERARESPONSE']._serialized_end = 1781
54
+ _globals['_CLASSIFICATION']._serialized_start = 1783
55
+ _globals['_CLASSIFICATION']._serialized_end = 1862
56
+ _globals['_GETOBJECTPOINTCLOUDSREQUEST']._serialized_start = 1865
57
+ _globals['_GETOBJECTPOINTCLOUDSREQUEST']._serialized_end = 2023
58
+ _globals['_GETOBJECTPOINTCLOUDSRESPONSE']._serialized_start = 2025
59
+ _globals['_GETOBJECTPOINTCLOUDSRESPONSE']._serialized_end = 2144
60
+ _globals['_GETPROPERTIESREQUEST']._serialized_start = 2146
61
+ _globals['_GETPROPERTIESREQUEST']._serialized_end = 2235
62
+ _globals['_CAPTUREALLFROMCAMERAREQUEST']._serialized_start = 2238
63
+ _globals['_CAPTUREALLFROMCAMERAREQUEST']._serialized_end = 2563
64
+ _globals['_CAPTUREALLFROMCAMERARESPONSE']._serialized_start = 2566
65
+ _globals['_CAPTUREALLFROMCAMERARESPONSE']._serialized_end = 2907
66
+ _globals['_GETPROPERTIESRESPONSE']._serialized_start = 2910
67
+ _globals['_GETPROPERTIESRESPONSE']._serialized_end = 3112
68
+ _globals['_VISIONSERVICE']._serialized_start = 3115
69
+ _globals['_VISIONSERVICE']._serialized_end = 4600
@@ -113,6 +113,10 @@ class Detection(google.protobuf.message.Message):
113
113
  Y_MAX_FIELD_NUMBER: builtins.int
114
114
  CONFIDENCE_FIELD_NUMBER: builtins.int
115
115
  CLASS_NAME_FIELD_NUMBER: builtins.int
116
+ X_MIN_NORMALIZED_FIELD_NUMBER: builtins.int
117
+ Y_MIN_NORMALIZED_FIELD_NUMBER: builtins.int
118
+ X_MAX_NORMALIZED_FIELD_NUMBER: builtins.int
119
+ Y_MAX_NORMALIZED_FIELD_NUMBER: builtins.int
116
120
  x_min: builtins.int
117
121
  'the four corners of the box'
118
122
  y_min: builtins.int
@@ -122,31 +126,52 @@ class Detection(google.protobuf.message.Message):
122
126
  'the confidence of the detection'
123
127
  class_name: builtins.str
124
128
  'label associated with the detected object'
129
+ x_min_normalized: builtins.float
130
+ 'the four corners of the box, in proportion to the respective image dimension'
131
+ y_min_normalized: builtins.float
132
+ x_max_normalized: builtins.float
133
+ y_max_normalized: builtins.float
125
134
 
126
- def __init__(self, *, x_min: builtins.int | None=..., y_min: builtins.int | None=..., x_max: builtins.int | None=..., y_max: builtins.int | None=..., confidence: builtins.float=..., class_name: builtins.str=...) -> None:
135
+ def __init__(self, *, x_min: builtins.int | None=..., y_min: builtins.int | None=..., x_max: builtins.int | None=..., y_max: builtins.int | None=..., confidence: builtins.float=..., class_name: builtins.str=..., x_min_normalized: builtins.float | None=..., y_min_normalized: builtins.float | None=..., x_max_normalized: builtins.float | None=..., y_max_normalized: builtins.float | None=...) -> None:
127
136
  ...
128
137
 
129
- def HasField(self, field_name: typing.Literal['_x_max', b'_x_max', '_x_min', b'_x_min', '_y_max', b'_y_max', '_y_min', b'_y_min', 'x_max', b'x_max', 'x_min', b'x_min', 'y_max', b'y_max', 'y_min', b'y_min']) -> builtins.bool:
138
+ def HasField(self, field_name: typing.Literal['_x_max', b'_x_max', '_x_max_normalized', b'_x_max_normalized', '_x_min', b'_x_min', '_x_min_normalized', b'_x_min_normalized', '_y_max', b'_y_max', '_y_max_normalized', b'_y_max_normalized', '_y_min', b'_y_min', '_y_min_normalized', b'_y_min_normalized', 'x_max', b'x_max', 'x_max_normalized', b'x_max_normalized', 'x_min', b'x_min', 'x_min_normalized', b'x_min_normalized', 'y_max', b'y_max', 'y_max_normalized', b'y_max_normalized', 'y_min', b'y_min', 'y_min_normalized', b'y_min_normalized']) -> builtins.bool:
130
139
  ...
131
140
 
132
- def ClearField(self, field_name: typing.Literal['_x_max', b'_x_max', '_x_min', b'_x_min', '_y_max', b'_y_max', '_y_min', b'_y_min', 'class_name', b'class_name', 'confidence', b'confidence', 'x_max', b'x_max', 'x_min', b'x_min', 'y_max', b'y_max', 'y_min', b'y_min']) -> None:
141
+ def ClearField(self, field_name: typing.Literal['_x_max', b'_x_max', '_x_max_normalized', b'_x_max_normalized', '_x_min', b'_x_min', '_x_min_normalized', b'_x_min_normalized', '_y_max', b'_y_max', '_y_max_normalized', b'_y_max_normalized', '_y_min', b'_y_min', '_y_min_normalized', b'_y_min_normalized', 'class_name', b'class_name', 'confidence', b'confidence', 'x_max', b'x_max', 'x_max_normalized', b'x_max_normalized', 'x_min', b'x_min', 'x_min_normalized', b'x_min_normalized', 'y_max', b'y_max', 'y_max_normalized', b'y_max_normalized', 'y_min', b'y_min', 'y_min_normalized', b'y_min_normalized']) -> None:
133
142
  ...
134
143
 
135
144
  @typing.overload
136
145
  def WhichOneof(self, oneof_group: typing.Literal['_x_max', b'_x_max']) -> typing.Literal['x_max'] | None:
137
146
  ...
138
147
 
148
+ @typing.overload
149
+ def WhichOneof(self, oneof_group: typing.Literal['_x_max_normalized', b'_x_max_normalized']) -> typing.Literal['x_max_normalized'] | None:
150
+ ...
151
+
139
152
  @typing.overload
140
153
  def WhichOneof(self, oneof_group: typing.Literal['_x_min', b'_x_min']) -> typing.Literal['x_min'] | None:
141
154
  ...
142
155
 
156
+ @typing.overload
157
+ def WhichOneof(self, oneof_group: typing.Literal['_x_min_normalized', b'_x_min_normalized']) -> typing.Literal['x_min_normalized'] | None:
158
+ ...
159
+
143
160
  @typing.overload
144
161
  def WhichOneof(self, oneof_group: typing.Literal['_y_max', b'_y_max']) -> typing.Literal['y_max'] | None:
145
162
  ...
146
163
 
164
+ @typing.overload
165
+ def WhichOneof(self, oneof_group: typing.Literal['_y_max_normalized', b'_y_max_normalized']) -> typing.Literal['y_max_normalized'] | None:
166
+ ...
167
+
147
168
  @typing.overload
148
169
  def WhichOneof(self, oneof_group: typing.Literal['_y_min', b'_y_min']) -> typing.Literal['y_min'] | None:
149
170
  ...
171
+
172
+ @typing.overload
173
+ def WhichOneof(self, oneof_group: typing.Literal['_y_min_normalized', b'_y_min_normalized']) -> typing.Literal['y_min_normalized'] | None:
174
+ ...
150
175
  global___Detection = Detection
151
176
 
152
177
  @typing.final
File without changes
File without changes
@@ -0,0 +1,55 @@
1
+ import abc
2
+ import typing
3
+ import grpclib.const
4
+ import grpclib.client
5
+ import grpclib.exceptions
6
+ if typing.TYPE_CHECKING:
7
+ import grpclib.server
8
+ from .... import common
9
+ import google.api.annotations_pb2
10
+ import google.protobuf.field_mask_pb2
11
+ import google.protobuf.struct_pb2
12
+ from .... import service
13
+
14
+ class WorldStateStoreServiceBase(abc.ABC):
15
+
16
+ @abc.abstractmethod
17
+ async def ListUUIDs(self, stream: 'grpclib.server.Stream[service.worldstatestore.v1.world_state_store_pb2.ListUUIDsRequest, service.worldstatestore.v1.world_state_store_pb2.ListUUIDsResponse]') -> None:
18
+ pass
19
+
20
+ @abc.abstractmethod
21
+ async def GetTransform(self, stream: 'grpclib.server.Stream[service.worldstatestore.v1.world_state_store_pb2.GetTransformRequest, service.worldstatestore.v1.world_state_store_pb2.GetTransformResponse]') -> None:
22
+ pass
23
+
24
+ @abc.abstractmethod
25
+ async def StreamTransformChanges(self, stream: 'grpclib.server.Stream[service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesRequest, service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesResponse]') -> None:
26
+ pass
27
+
28
+ @abc.abstractmethod
29
+ async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
30
+ pass
31
+
32
+ def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
33
+ return {'/viam.service.worldstatestore.v1.WorldStateStoreService/ListUUIDs': grpclib.const.Handler(self.ListUUIDs, grpclib.const.Cardinality.UNARY_UNARY, service.worldstatestore.v1.world_state_store_pb2.ListUUIDsRequest, service.worldstatestore.v1.world_state_store_pb2.ListUUIDsResponse), '/viam.service.worldstatestore.v1.WorldStateStoreService/GetTransform': grpclib.const.Handler(self.GetTransform, grpclib.const.Cardinality.UNARY_UNARY, service.worldstatestore.v1.world_state_store_pb2.GetTransformRequest, service.worldstatestore.v1.world_state_store_pb2.GetTransformResponse), '/viam.service.worldstatestore.v1.WorldStateStoreService/StreamTransformChanges': grpclib.const.Handler(self.StreamTransformChanges, grpclib.const.Cardinality.UNARY_STREAM, service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesRequest, service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesResponse), '/viam.service.worldstatestore.v1.WorldStateStoreService/DoCommand': grpclib.const.Handler(self.DoCommand, grpclib.const.Cardinality.UNARY_UNARY, common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)}
34
+
35
+ class UnimplementedWorldStateStoreServiceBase(WorldStateStoreServiceBase):
36
+
37
+ async def ListUUIDs(self, stream: 'grpclib.server.Stream[service.worldstatestore.v1.world_state_store_pb2.ListUUIDsRequest, service.worldstatestore.v1.world_state_store_pb2.ListUUIDsResponse]') -> None:
38
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
39
+
40
+ async def GetTransform(self, stream: 'grpclib.server.Stream[service.worldstatestore.v1.world_state_store_pb2.GetTransformRequest, service.worldstatestore.v1.world_state_store_pb2.GetTransformResponse]') -> None:
41
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
42
+
43
+ async def StreamTransformChanges(self, stream: 'grpclib.server.Stream[service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesRequest, service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesResponse]') -> None:
44
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
45
+
46
+ async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
47
+ raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
48
+
49
+ class WorldStateStoreServiceStub:
50
+
51
+ def __init__(self, channel: grpclib.client.Channel) -> None:
52
+ self.ListUUIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.service.worldstatestore.v1.WorldStateStoreService/ListUUIDs', service.worldstatestore.v1.world_state_store_pb2.ListUUIDsRequest, service.worldstatestore.v1.world_state_store_pb2.ListUUIDsResponse)
53
+ self.GetTransform = grpclib.client.UnaryUnaryMethod(channel, '/viam.service.worldstatestore.v1.WorldStateStoreService/GetTransform', service.worldstatestore.v1.world_state_store_pb2.GetTransformRequest, service.worldstatestore.v1.world_state_store_pb2.GetTransformResponse)
54
+ self.StreamTransformChanges = grpclib.client.UnaryStreamMethod(channel, '/viam.service.worldstatestore.v1.WorldStateStoreService/StreamTransformChanges', service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesRequest, service.worldstatestore.v1.world_state_store_pb2.StreamTransformChangesResponse)
55
+ self.DoCommand = grpclib.client.UnaryUnaryMethod(channel, '/viam.service.worldstatestore.v1.WorldStateStoreService/DoCommand', common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)
@@ -0,0 +1,39 @@
1
+ """Generated protocol buffer code."""
2
+ from google.protobuf import descriptor as _descriptor
3
+ from google.protobuf import descriptor_pool as _descriptor_pool
4
+ from google.protobuf import runtime_version as _runtime_version
5
+ from google.protobuf import symbol_database as _symbol_database
6
+ from google.protobuf.internal import builder as _builder
7
+ _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/worldstatestore/v1/world_state_store.proto')
8
+ _sym_db = _symbol_database.Default()
9
+ from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2
10
+ from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
11
+ from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
12
+ from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
13
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n2service/worldstatestore/v1/world_state_store.proto\x12\x1fviam.service.worldstatestore.v1\x1a\x16common/v1/common.proto\x1a\x1cgoogle/api/annotations.proto\x1a google/protobuf/field_mask.proto\x1a\x1cgoogle/protobuf/struct.proto"U\n\x10ListUUIDsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra")\n\x11ListUUIDsResponse\x12\x14\n\x05uuids\x18\x01 \x03(\x0cR\x05uuids"l\n\x13GetTransformRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04uuid\x18\x02 \x01(\x0cR\x04uuid\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"O\n\x14GetTransformResponse\x127\n\ttransform\x18\x02 \x01(\x0b2\x19.viam.common.v1.TransformR\ttransform"b\n\x1dStreamTransformChangesRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x05extra\x18c \x01(\x0b2\x17.google.protobuf.StructR\x05extra"\xf3\x01\n\x1eStreamTransformChangesResponse\x12U\n\x0bchange_type\x18\x01 \x01(\x0e24.viam.service.worldstatestore.v1.TransformChangeTypeR\nchangeType\x127\n\ttransform\x18\x02 \x01(\x0b2\x19.viam.common.v1.TransformR\ttransform\x12A\n\x0eupdated_fields\x18\x03 \x01(\x0b2\x1a.google.protobuf.FieldMaskR\rupdatedFields*\xa3\x01\n\x13TransformChangeType\x12%\n!TRANSFORM_CHANGE_TYPE_UNSPECIFIED\x10\x00\x12\x1f\n\x1bTRANSFORM_CHANGE_TYPE_ADDED\x10\x01\x12!\n\x1dTRANSFORM_CHANGE_TYPE_REMOVED\x10\x02\x12!\n\x1dTRANSFORM_CHANGE_TYPE_UPDATED\x10\x032\x8c\x05\n\x16WorldStateStoreService\x12t\n\tListUUIDs\x121.viam.service.worldstatestore.v1.ListUUIDsRequest\x1a2.viam.service.worldstatestore.v1.ListUUIDsResponse"\x00\x12}\n\x0cGetTransform\x124.viam.service.worldstatestore.v1.GetTransformRequest\x1a5.viam.service.worldstatestore.v1.GetTransformResponse"\x00\x12\xe9\x01\n\x16StreamTransformChanges\x12>.viam.service.worldstatestore.v1.StreamTransformChangesRequest\x1a?.viam.service.worldstatestore.v1.StreamTransformChangesResponse"L\x82\xd3\xe4\x93\x02F\x12D/viam/api/v1/service/worldstatestore/{name}/stream_transform_changes0\x01\x12\x90\x01\n\tDoCommand\x12 .viam.common.v1.DoCommandRequest\x1a!.viam.common.v1.DoCommandResponse">\x82\xd3\xe4\x93\x028"6/viam/api/v1/service/worldstatestore/{name}/do_commandBQ\n#com.viam.service.worldstatestore.v1Z*go.viam.com/api/service/worldstatestore/v1b\x06proto3')
14
+ _globals = globals()
15
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
16
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'service.worldstatestore.v1.world_state_store_pb2', _globals)
17
+ if not _descriptor._USE_C_DESCRIPTORS:
18
+ _globals['DESCRIPTOR']._loaded_options = None
19
+ _globals['DESCRIPTOR']._serialized_options = b'\n#com.viam.service.worldstatestore.v1Z*go.viam.com/api/service/worldstatestore/v1'
20
+ _globals['_WORLDSTATESTORESERVICE'].methods_by_name['StreamTransformChanges']._loaded_options = None
21
+ _globals['_WORLDSTATESTORESERVICE'].methods_by_name['StreamTransformChanges']._serialized_options = b'\x82\xd3\xe4\x93\x02F\x12D/viam/api/v1/service/worldstatestore/{name}/stream_transform_changes'
22
+ _globals['_WORLDSTATESTORESERVICE'].methods_by_name['DoCommand']._loaded_options = None
23
+ _globals['_WORLDSTATESTORESERVICE'].methods_by_name['DoCommand']._serialized_options = b'\x82\xd3\xe4\x93\x028"6/viam/api/v1/service/worldstatestore/{name}/do_command'
24
+ _globals['_TRANSFORMCHANGETYPE']._serialized_start = 873
25
+ _globals['_TRANSFORMCHANGETYPE']._serialized_end = 1036
26
+ _globals['_LISTUUIDSREQUEST']._serialized_start = 205
27
+ _globals['_LISTUUIDSREQUEST']._serialized_end = 290
28
+ _globals['_LISTUUIDSRESPONSE']._serialized_start = 292
29
+ _globals['_LISTUUIDSRESPONSE']._serialized_end = 333
30
+ _globals['_GETTRANSFORMREQUEST']._serialized_start = 335
31
+ _globals['_GETTRANSFORMREQUEST']._serialized_end = 443
32
+ _globals['_GETTRANSFORMRESPONSE']._serialized_start = 445
33
+ _globals['_GETTRANSFORMRESPONSE']._serialized_end = 524
34
+ _globals['_STREAMTRANSFORMCHANGESREQUEST']._serialized_start = 526
35
+ _globals['_STREAMTRANSFORMCHANGESREQUEST']._serialized_end = 624
36
+ _globals['_STREAMTRANSFORMCHANGESRESPONSE']._serialized_start = 627
37
+ _globals['_STREAMTRANSFORMCHANGESRESPONSE']._serialized_end = 870
38
+ _globals['_WORLDSTATESTORESERVICE']._serialized_start = 1039
39
+ _globals['_WORLDSTATESTORESERVICE']._serialized_end = 1691
@@ -0,0 +1,171 @@
1
+ """
2
+ @generated by mypy-protobuf. Do not edit manually!
3
+ isort:skip_file
4
+ """
5
+ import builtins
6
+ import collections.abc
7
+ from .... import common
8
+ import google.protobuf.descriptor
9
+ import google.protobuf.field_mask_pb2
10
+ import google.protobuf.internal.containers
11
+ import google.protobuf.internal.enum_type_wrapper
12
+ import google.protobuf.message
13
+ import google.protobuf.struct_pb2
14
+ import sys
15
+ import typing
16
+ if sys.version_info >= (3, 10):
17
+ import typing as typing_extensions
18
+ else:
19
+ import typing_extensions
20
+ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor
21
+
22
+ class _TransformChangeType:
23
+ ValueType = typing.NewType('ValueType', builtins.int)
24
+ V: typing_extensions.TypeAlias = ValueType
25
+
26
+ class _TransformChangeTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_TransformChangeType.ValueType], builtins.type):
27
+ DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
28
+ TRANSFORM_CHANGE_TYPE_UNSPECIFIED: _TransformChangeType.ValueType
29
+ TRANSFORM_CHANGE_TYPE_ADDED: _TransformChangeType.ValueType
30
+ TRANSFORM_CHANGE_TYPE_REMOVED: _TransformChangeType.ValueType
31
+ TRANSFORM_CHANGE_TYPE_UPDATED: _TransformChangeType.ValueType
32
+
33
+ class TransformChangeType(_TransformChangeType, metaclass=_TransformChangeTypeEnumTypeWrapper):
34
+ ...
35
+ TRANSFORM_CHANGE_TYPE_UNSPECIFIED: TransformChangeType.ValueType
36
+ TRANSFORM_CHANGE_TYPE_ADDED: TransformChangeType.ValueType
37
+ TRANSFORM_CHANGE_TYPE_REMOVED: TransformChangeType.ValueType
38
+ TRANSFORM_CHANGE_TYPE_UPDATED: TransformChangeType.ValueType
39
+ global___TransformChangeType = TransformChangeType
40
+
41
+ @typing.final
42
+ class ListUUIDsRequest(google.protobuf.message.Message):
43
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
44
+ NAME_FIELD_NUMBER: builtins.int
45
+ EXTRA_FIELD_NUMBER: builtins.int
46
+ name: builtins.str
47
+ 'Name of the world object store service'
48
+
49
+ @property
50
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
51
+ """Additional arguments to the method"""
52
+
53
+ def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
54
+ ...
55
+
56
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
57
+ ...
58
+
59
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None:
60
+ ...
61
+ global___ListUUIDsRequest = ListUUIDsRequest
62
+
63
+ @typing.final
64
+ class ListUUIDsResponse(google.protobuf.message.Message):
65
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
66
+ UUIDS_FIELD_NUMBER: builtins.int
67
+
68
+ @property
69
+ def uuids(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]:
70
+ ...
71
+
72
+ def __init__(self, *, uuids: collections.abc.Iterable[builtins.bytes] | None=...) -> None:
73
+ ...
74
+
75
+ def ClearField(self, field_name: typing.Literal['uuids', b'uuids']) -> None:
76
+ ...
77
+ global___ListUUIDsResponse = ListUUIDsResponse
78
+
79
+ @typing.final
80
+ class GetTransformRequest(google.protobuf.message.Message):
81
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
82
+ NAME_FIELD_NUMBER: builtins.int
83
+ UUID_FIELD_NUMBER: builtins.int
84
+ EXTRA_FIELD_NUMBER: builtins.int
85
+ name: builtins.str
86
+ 'Name of the world object store service'
87
+ uuid: builtins.bytes
88
+
89
+ @property
90
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
91
+ """Additional arguments to the method"""
92
+
93
+ def __init__(self, *, name: builtins.str=..., uuid: builtins.bytes=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
94
+ ...
95
+
96
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
97
+ ...
98
+
99
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name', 'uuid', b'uuid']) -> None:
100
+ ...
101
+ global___GetTransformRequest = GetTransformRequest
102
+
103
+ @typing.final
104
+ class GetTransformResponse(google.protobuf.message.Message):
105
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
106
+ TRANSFORM_FIELD_NUMBER: builtins.int
107
+
108
+ @property
109
+ def transform(self) -> common.v1.common_pb2.Transform:
110
+ ...
111
+
112
+ def __init__(self, *, transform: common.v1.common_pb2.Transform | None=...) -> None:
113
+ ...
114
+
115
+ def HasField(self, field_name: typing.Literal['transform', b'transform']) -> builtins.bool:
116
+ ...
117
+
118
+ def ClearField(self, field_name: typing.Literal['transform', b'transform']) -> None:
119
+ ...
120
+ global___GetTransformResponse = GetTransformResponse
121
+
122
+ @typing.final
123
+ class StreamTransformChangesRequest(google.protobuf.message.Message):
124
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
125
+ NAME_FIELD_NUMBER: builtins.int
126
+ EXTRA_FIELD_NUMBER: builtins.int
127
+ name: builtins.str
128
+ 'Name of the world object store service'
129
+
130
+ @property
131
+ def extra(self) -> google.protobuf.struct_pb2.Struct:
132
+ """Additional arguments to the method"""
133
+
134
+ def __init__(self, *, name: builtins.str=..., extra: google.protobuf.struct_pb2.Struct | None=...) -> None:
135
+ ...
136
+
137
+ def HasField(self, field_name: typing.Literal['extra', b'extra']) -> builtins.bool:
138
+ ...
139
+
140
+ def ClearField(self, field_name: typing.Literal['extra', b'extra', 'name', b'name']) -> None:
141
+ ...
142
+ global___StreamTransformChangesRequest = StreamTransformChangesRequest
143
+
144
+ @typing.final
145
+ class StreamTransformChangesResponse(google.protobuf.message.Message):
146
+ DESCRIPTOR: google.protobuf.descriptor.Descriptor
147
+ CHANGE_TYPE_FIELD_NUMBER: builtins.int
148
+ TRANSFORM_FIELD_NUMBER: builtins.int
149
+ UPDATED_FIELDS_FIELD_NUMBER: builtins.int
150
+ change_type: global___TransformChangeType.ValueType
151
+
152
+ @property
153
+ def transform(self) -> common.v1.common_pb2.Transform:
154
+ ...
155
+
156
+ @property
157
+ def updated_fields(self) -> google.protobuf.field_mask_pb2.FieldMask:
158
+ """The field mask of the transform that has changed, if any. For added transforms, this will be empty. For updated
159
+ transforms, this will be the fields that have changed. For removed transforms, this will be the transform's UUID
160
+ path.
161
+ """
162
+
163
+ def __init__(self, *, change_type: global___TransformChangeType.ValueType=..., transform: common.v1.common_pb2.Transform | None=..., updated_fields: google.protobuf.field_mask_pb2.FieldMask | None=...) -> None:
164
+ ...
165
+
166
+ def HasField(self, field_name: typing.Literal['transform', b'transform', 'updated_fields', b'updated_fields']) -> builtins.bool:
167
+ ...
168
+
169
+ def ClearField(self, field_name: typing.Literal['change_type', b'change_type', 'transform', b'transform', 'updated_fields', b'updated_fields']) -> None:
170
+ ...
171
+ global___StreamTransformChangesResponse = StreamTransformChangesResponse
@@ -4,7 +4,7 @@ from google.protobuf import descriptor_pool as _descriptor_pool
4
4
  from google.protobuf import runtime_version as _runtime_version
5
5
  from google.protobuf import symbol_database as _symbol_database
6
6
  from google.protobuf.internal import builder as _builder
7
- _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 1, '', 'stream/v1/stream.proto')
7
+ _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'stream/v1/stream.proto')
8
8
  _sym_db = _symbol_database.Default()
9
9
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16stream/v1/stream.proto\x12\x0fproto.stream.v1"\x14\n\x12ListStreamsRequest"+\n\x13ListStreamsResponse\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names"&\n\x10AddStreamRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"\x13\n\x11AddStreamResponse")\n\x13RemoveStreamRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"\x16\n\x14RemoveStreamResponse":\n\nResolution\x12\x14\n\x05width\x18\x01 \x01(\x05R\x05width\x12\x16\n\x06height\x18\x02 \x01(\x05R\x06height"-\n\x17GetStreamOptionsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name"Y\n\x18GetStreamOptionsResponse\x12=\n\x0bresolutions\x18\x01 \x03(\x0b2\x1b.proto.stream.v1.ResolutionR\x0bresolutions"j\n\x17SetStreamOptionsRequest\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nresolution\x18\x02 \x01(\x0b2\x1b.proto.stream.v1.ResolutionR\nresolution"\x1a\n\x18SetStreamOptionsResponse2\xec\x03\n\rStreamService\x12X\n\x0bListStreams\x12#.proto.stream.v1.ListStreamsRequest\x1a$.proto.stream.v1.ListStreamsResponse\x12R\n\tAddStream\x12!.proto.stream.v1.AddStreamRequest\x1a".proto.stream.v1.AddStreamResponse\x12g\n\x10GetStreamOptions\x12(.proto.stream.v1.GetStreamOptionsRequest\x1a).proto.stream.v1.GetStreamOptionsResponse\x12g\n\x10SetStreamOptions\x12(.proto.stream.v1.SetStreamOptionsRequest\x1a).proto.stream.v1.SetStreamOptionsResponse\x12[\n\x0cRemoveStream\x12$.proto.stream.v1.RemoveStreamRequest\x1a%.proto.stream.v1.RemoveStreamResponseB.Z,github.com/edaniels/gostream/proto/stream/v1b\x06proto3')
10
10
  _globals = globals()
@@ -4,7 +4,7 @@ from google.protobuf import descriptor_pool as _descriptor_pool
4
4
  from google.protobuf import runtime_version as _runtime_version
5
5
  from google.protobuf import symbol_database as _symbol_database
6
6
  from google.protobuf.internal import builder as _builder
7
- _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 1, '', 'tagger/v1/tagger.proto')
7
+ _runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'tagger/v1/tagger.proto')
8
8
  _sym_db = _symbol_database.Default()
9
9
  from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2
10
10
  DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16tagger/v1/tagger.proto\x12\ttagger.v1\x1a google/protobuf/descriptor.proto:3\n\x04tags\x12\x1d.google.protobuf.FieldOptions\x18\xc3\xe03 \x01(\tR\x04tags:>\n\noneof_tags\x12\x1d.google.protobuf.OneofOptions\x18\xc3\xe03 \x01(\tR\toneofTagsB4Z2github.com/srikrsna/protoc-gen-gotag/tagger;taggerb\x06proto3')
viam/logging.py CHANGED
@@ -4,7 +4,7 @@ import sys
4
4
  from copy import copy
5
5
  from datetime import datetime
6
6
  from logging import DEBUG, ERROR, FATAL, INFO, WARN, WARNING # noqa: F401
7
- from threading import Lock, Thread
7
+ from threading import Event, Lock, Thread
8
8
  from typing import TYPE_CHECKING, Dict, Iterable, List, Optional, Union
9
9
 
10
10
  from grpclib.exceptions import StreamTerminatedError
@@ -23,8 +23,10 @@ _MODULE_PARENT: Optional["RobotClient"] = None
23
23
  class _SingletonEventLoopThread:
24
24
  _instance = None
25
25
  _lock = Lock()
26
- _ready_event = asyncio.Event()
27
- _loop: Union[asyncio.AbstractEventLoop, None]
26
+ # We use a threading.Event instead of an asyncio.Event because the latter are not thread safe,
27
+ # and this is set in a separate thread than it is waited on.
28
+ _ready_event = Event()
29
+ _loop: asyncio.AbstractEventLoop
28
30
  _thread: Thread
29
31
 
30
32
  def __new__(cls):
@@ -33,13 +35,12 @@ class _SingletonEventLoopThread:
33
35
  with cls._lock:
34
36
  if cls._instance is None:
35
37
  cls._instance = super(_SingletonEventLoopThread, cls).__new__(cls)
36
- cls._instance._loop = None
38
+ cls._instance._loop = asyncio.new_event_loop()
37
39
  cls._instance._thread = Thread(target=cls._instance._run)
38
40
  cls._instance._thread.start()
39
41
  return cls._instance
40
42
 
41
43
  def _run(self):
42
- self._loop = asyncio.new_event_loop()
43
44
  asyncio.set_event_loop(self._loop)
44
45
  self._ready_event.set()
45
46
  self._loop.run_forever()
@@ -54,8 +55,8 @@ class _SingletonEventLoopThread:
54
55
  raise RuntimeError("Event loop is None. Did you call .start() and .wait_until_ready()?")
55
56
  return self._loop
56
57
 
57
- async def wait_until_ready(self):
58
- await self._ready_event.wait()
58
+ def wait_until_ready(self):
59
+ self._ready_event.wait()
59
60
 
60
61
 
61
62
  class _ModuleHandler(logging.Handler):
@@ -101,7 +102,7 @@ class _ModuleHandler(logging.Handler):
101
102
  self._logger.log(record.levelno, message)
102
103
 
103
104
  async def _asynchronously_emit(self, record: logging.LogRecord, name: str, message: str, stack: str, time: datetime):
104
- await self._worker.wait_until_ready()
105
+ self._worker.wait_until_ready()
105
106
  task = self._worker.get_loop().create_task(
106
107
  self._parent.log(name, record.levelname, time, message, stack),
107
108
  name=f"{viam._TASK_PREFIX}-LOG-{record.created}",
viam/media/audio.py CHANGED
@@ -1,16 +1,28 @@
1
- from dataclasses import dataclass
1
+ from enum import Enum
2
2
 
3
- from viam.proto.component.audioinput import AudioChunk, AudioChunkInfo
4
- from viam.streams import Stream, StreamReader
5
3
 
4
+ class AudioCodec(str, Enum):
5
+ """Common audio codec identifiers.
6
6
 
7
- @dataclass
8
- class Audio:
9
- """A block of audio data containing information about the block and the audio data"""
7
+ These constants represent commonly supported audio codecs
8
+ for audioin and audioout components.
10
9
 
11
- info: AudioChunkInfo
12
- chunk: AudioChunk
10
+ Example::
13
11
 
12
+ from viam.components.codecs import AudioCodec
13
+ from viam.proto.common import AudioInfo
14
14
 
15
- AudioReader = StreamReader[Audio]
16
- AudioStream = Stream[Audio]
15
+ audio_info = AudioInfo(
16
+ codec=AudioCodec.PCM16,
17
+ sample_rate_hz=44100,
18
+ num_channels=2
19
+ )
20
+ """
21
+
22
+ PCM16 = "pcm16"
23
+ PCM32 = "pcm32"
24
+ PCM32_FLOAT = "pcm32_float"
25
+ MP3 = "mp3"
26
+ AAC = "aac"
27
+ OPUS = "opus"
28
+ FLAC = "flac"