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.
- viam/app/app_client.py +225 -51
- viam/app/billing_client.py +47 -5
- viam/app/data_client.py +771 -234
- viam/app/ml_training_client.py +3 -5
- viam/app/provisioning_client.py +3 -5
- viam/app/viam_client.py +58 -11
- viam/components/arm/arm.py +1 -1
- viam/components/arm/service.py +1 -1
- viam/components/audio_in/__init__.py +24 -0
- viam/components/audio_in/audio_in.py +74 -0
- viam/components/audio_in/client.py +76 -0
- viam/components/audio_in/service.py +83 -0
- viam/components/audio_out/__init__.py +21 -0
- viam/components/audio_out/audio_out.py +72 -0
- viam/components/audio_out/client.py +67 -0
- viam/components/audio_out/service.py +63 -0
- viam/components/base/base.py +1 -1
- viam/components/board/board.py +8 -2
- viam/components/board/client.py +2 -1
- viam/components/board/service.py +1 -0
- viam/components/button/__init__.py +10 -0
- viam/components/button/button.py +41 -0
- viam/components/button/client.py +52 -0
- viam/components/button/service.py +46 -0
- viam/components/camera/camera.py +15 -30
- viam/components/camera/client.py +10 -21
- viam/components/camera/service.py +15 -28
- viam/components/component_base.py +2 -2
- viam/components/gantry/client.py +17 -2
- viam/components/gantry/gantry.py +32 -1
- viam/components/gantry/service.py +21 -5
- viam/components/gripper/__init__.py +2 -0
- viam/components/gripper/client.py +25 -2
- viam/components/gripper/gripper.py +76 -1
- viam/components/gripper/service.py +32 -3
- viam/components/input/input.py +1 -1
- viam/components/motor/motor.py +1 -1
- viam/components/power_sensor/power_sensor.py +1 -1
- viam/components/switch/__init__.py +10 -0
- viam/components/switch/client.py +83 -0
- viam/components/switch/service.py +72 -0
- viam/components/switch/switch.py +98 -0
- viam/gen/app/agent/v1/agent_pb2.py +1 -1
- viam/gen/app/cloudslam/v1/cloud_slam_pb2.py +1 -1
- viam/gen/app/data/v1/data_grpc.py +74 -2
- viam/gen/app/data/v1/data_pb2.py +198 -104
- viam/gen/app/data/v1/data_pb2.pyi +563 -31
- viam/gen/app/datapipelines/__init__.py +0 -0
- viam/gen/app/datapipelines/v1/__init__.py +0 -0
- viam/gen/app/datapipelines/v1/data_pipelines_grpc.py +84 -0
- viam/gen/app/datapipelines/v1/data_pipelines_pb2.py +57 -0
- viam/gen/app/datapipelines/v1/data_pipelines_pb2.pyi +387 -0
- viam/gen/app/dataset/v1/dataset_grpc.py +10 -2
- viam/gen/app/dataset/v1/dataset_pb2.py +8 -4
- viam/gen/app/dataset/v1/dataset_pb2.pyi +36 -1
- viam/gen/app/datasync/v1/data_sync_pb2.py +39 -35
- viam/gen/app/datasync/v1/data_sync_pb2.pyi +21 -8
- viam/gen/app/mlinference/v1/ml_inference_pb2.py +7 -7
- viam/gen/app/mlinference/v1/ml_inference_pb2.pyi +4 -2
- viam/gen/app/mltraining/v1/ml_training_grpc.py +10 -2
- viam/gen/app/mltraining/v1/ml_training_pb2.py +63 -43
- viam/gen/app/mltraining/v1/ml_training_pb2.pyi +112 -7
- viam/gen/app/packages/v1/packages_pb2.py +1 -1
- viam/gen/app/v1/app_grpc.py +74 -3
- viam/gen/app/v1/app_pb2.py +600 -545
- viam/gen/app/v1/app_pb2.pyi +1108 -258
- viam/gen/app/v1/billing_grpc.py +26 -2
- viam/gen/app/v1/billing_pb2.py +52 -36
- viam/gen/app/v1/billing_pb2.pyi +158 -4
- viam/gen/app/v1/end_user_pb2.py +1 -1
- viam/gen/app/v1/robot_pb2.py +95 -89
- viam/gen/app/v1/robot_pb2.pyi +121 -9
- viam/gen/common/v1/common_pb2.py +76 -58
- viam/gen/common/v1/common_pb2.pyi +186 -17
- viam/gen/component/arm/v1/arm_grpc.py +10 -2
- viam/gen/component/arm/v1/arm_pb2.py +5 -3
- viam/gen/component/audioin/__init__.py +0 -0
- viam/gen/component/audioin/v1/__init__.py +0 -0
- viam/gen/component/audioin/v1/audioin_grpc.py +54 -0
- viam/gen/component/audioin/v1/audioin_pb2.py +34 -0
- viam/gen/component/audioin/v1/audioin_pb2.pyi +94 -0
- viam/gen/component/audioinput/v1/audioinput_pb2.py +1 -1
- viam/gen/component/audioout/__init__.py +0 -0
- viam/gen/component/audioout/v1/__init__.py +0 -0
- viam/gen/component/audioout/v1/audioout_grpc.py +54 -0
- viam/gen/component/audioout/v1/audioout_pb2.py +32 -0
- viam/gen/component/audioout/v1/audioout_pb2.pyi +47 -0
- viam/gen/component/base/v1/base_pb2.py +1 -1
- viam/gen/component/board/v1/board_pb2.py +1 -1
- viam/gen/component/button/v1/button_pb2.py +1 -1
- viam/gen/component/camera/v1/camera_grpc.py +1 -0
- viam/gen/component/camera/v1/camera_pb2.py +37 -36
- viam/gen/component/camera/v1/camera_pb2.pyi +31 -4
- viam/gen/component/encoder/v1/encoder_pb2.py +1 -1
- viam/gen/component/gantry/v1/gantry_grpc.py +9 -1
- viam/gen/component/gantry/v1/gantry_pb2.py +5 -3
- viam/gen/component/generic/v1/generic_pb2.py +1 -1
- viam/gen/component/gripper/v1/gripper_grpc.py +18 -2
- viam/gen/component/gripper/v1/gripper_pb2.py +12 -4
- viam/gen/component/gripper/v1/gripper_pb2.pyi +43 -1
- viam/gen/component/inputcontroller/v1/input_controller_pb2.py +1 -1
- viam/gen/component/motor/v1/motor_pb2.py +1 -1
- viam/gen/component/movementsensor/v1/movementsensor_pb2.py +1 -1
- viam/gen/component/posetracker/v1/pose_tracker_pb2.py +1 -1
- viam/gen/component/powersensor/v1/powersensor_pb2.py +1 -1
- viam/gen/component/sensor/v1/sensor_pb2.py +1 -1
- viam/gen/component/servo/v1/servo_pb2.py +1 -1
- viam/gen/component/switch/v1/switch_pb2.py +5 -5
- viam/gen/component/switch/v1/switch_pb2.pyi +9 -2
- viam/gen/component/testecho/v1/testecho_pb2.py +1 -1
- viam/gen/module/v1/module_pb2.py +5 -5
- viam/gen/module/v1/module_pb2.pyi +7 -2
- viam/gen/opentelemetry/__init__.py +0 -0
- viam/gen/opentelemetry/proto/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/common_grpc.py +0 -0
- viam/gen/opentelemetry/proto/common/v1/common_pb2.py +27 -0
- viam/gen/opentelemetry/proto/common/v1/common_pb2.pyi +208 -0
- viam/gen/opentelemetry/proto/resource/__init__.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_grpc.py +0 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_pb2.py +18 -0
- viam/gen/opentelemetry/proto/resource/v1/resource_pb2.pyi +59 -0
- viam/gen/opentelemetry/proto/trace/__init__.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/__init__.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_grpc.py +0 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_pb2.py +37 -0
- viam/gen/opentelemetry/proto/trace/v1/trace_pb2.pyi +402 -0
- viam/gen/proto/rpc/examples/echo/v1/echo_pb2.py +1 -1
- viam/gen/proto/rpc/examples/echoresource/v1/echoresource_pb2.py +1 -1
- viam/gen/proto/rpc/v1/auth_pb2.py +1 -1
- viam/gen/proto/rpc/webrtc/v1/grpc_pb2.py +1 -1
- viam/gen/proto/rpc/webrtc/v1/signaling_pb2.py +1 -1
- viam/gen/provisioning/v1/provisioning_grpc.py +10 -2
- viam/gen/provisioning/v1/provisioning_pb2.py +32 -26
- viam/gen/provisioning/v1/provisioning_pb2.pyi +46 -5
- viam/gen/robot/v1/robot_grpc.py +51 -34
- viam/gen/robot/v1/robot_pb2.py +147 -142
- viam/gen/robot/v1/robot_pb2.pyi +153 -86
- viam/gen/service/datamanager/v1/data_manager_grpc.py +11 -2
- viam/gen/service/datamanager/v1/data_manager_pb2.py +15 -8
- viam/gen/service/datamanager/v1/data_manager_pb2.pyi +47 -1
- viam/gen/service/discovery/v1/discovery_pb2.py +1 -1
- viam/gen/service/generic/v1/generic_pb2.py +1 -1
- viam/gen/service/mlmodel/v1/mlmodel_pb2.py +1 -1
- viam/gen/service/motion/v1/motion_pb2.py +92 -62
- viam/gen/service/motion/v1/motion_pb2.pyi +130 -68
- viam/gen/service/navigation/v1/navigation_pb2.py +1 -1
- viam/gen/service/sensors/v1/sensors_pb2.py +1 -1
- viam/gen/service/shell/v1/shell_pb2.py +1 -1
- viam/gen/service/slam/v1/slam_pb2.py +1 -1
- viam/gen/service/slam/v1/slam_pb2.pyi +1 -1
- viam/gen/service/video/__init__.py +0 -0
- viam/gen/service/video/v1/__init__.py +0 -0
- viam/gen/service/video/v1/video_grpc.py +39 -0
- viam/gen/service/video/v1/video_pb2.py +29 -0
- viam/gen/service/video/v1/video_pb2.pyi +72 -0
- viam/gen/service/vision/v1/vision_pb2.py +27 -27
- viam/gen/service/vision/v1/vision_pb2.pyi +28 -3
- viam/gen/service/worldstatestore/__init__.py +0 -0
- viam/gen/service/worldstatestore/v1/__init__.py +0 -0
- viam/gen/service/worldstatestore/v1/world_state_store_grpc.py +55 -0
- viam/gen/service/worldstatestore/v1/world_state_store_pb2.py +39 -0
- viam/gen/service/worldstatestore/v1/world_state_store_pb2.pyi +171 -0
- viam/gen/stream/v1/stream_pb2.py +1 -1
- viam/gen/tagger/v1/tagger_pb2.py +1 -1
- viam/logging.py +9 -8
- viam/media/audio.py +22 -10
- viam/media/utils/pil/__init__.py +5 -1
- viam/media/video.py +54 -40
- viam/module/module.py +85 -16
- viam/module/resource_data_consumer.py +41 -0
- viam/module/service.py +9 -1
- viam/proto/app/__init__.py +68 -0
- viam/proto/app/billing.py +16 -0
- viam/proto/app/data/__init__.py +48 -0
- viam/proto/app/datapipelines/__init__.py +56 -0
- viam/proto/app/dataset/__init__.py +4 -0
- viam/proto/app/mltraining/__init__.py +6 -0
- viam/proto/app/robot.py +6 -0
- viam/proto/common/__init__.py +14 -0
- viam/proto/component/audioin/__init__.py +16 -0
- viam/proto/component/audioout/__init__.py +15 -0
- viam/proto/component/camera/__init__.py +0 -2
- viam/proto/component/gripper/__init__.py +4 -0
- viam/proto/opentelemetry/__init__.py +0 -0
- viam/proto/opentelemetry/proto/__init__.py +0 -0
- viam/proto/opentelemetry/proto/common/__init__.py +15 -0
- viam/proto/opentelemetry/proto/resource/__init__.py +10 -0
- viam/proto/opentelemetry/proto/trace/__init__.py +15 -0
- viam/proto/provisioning/__init__.py +6 -0
- viam/proto/robot/__init__.py +16 -8
- viam/proto/service/datamanager/__init__.py +8 -1
- viam/proto/service/motion/__init__.py +2 -0
- viam/proto/service/video/__init__.py +15 -0
- viam/proto/service/worldstatestore/__init__.py +32 -0
- viam/resource/easy_resource.py +5 -9
- viam/resource/manager.py +4 -3
- viam/resource/registry.py +2 -2
- viam/resource/types.py +2 -2
- viam/robot/client.py +38 -59
- viam/rpc/dial.py +48 -5
- viam/rpc/libviam_rust_utils.so +0 -0
- viam/rpc/server.py +24 -10
- viam/services/motion/client.py +8 -9
- viam/services/motion/motion.py +48 -46
- viam/services/navigation/navigation.py +2 -2
- viam/services/vision/client.py +1 -1
- viam/services/vision/service.py +5 -8
- viam/services/vision/vision.py +5 -3
- viam/services/worldstatestore/__init__.py +18 -0
- viam/services/worldstatestore/client.py +94 -0
- viam/services/worldstatestore/service.py +55 -0
- viam/services/worldstatestore/worldstatestore.py +90 -0
- viam/sessions_client.py +115 -46
- viam/version_metadata.py +2 -2
- {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/METADATA +10 -6
- {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/RECORD +221 -152
- {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/WHEEL +1 -1
- viam/components/audio_input/__init__.py +0 -18
- viam/components/audio_input/audio_input.py +0 -81
- viam/components/audio_input/client.py +0 -70
- viam/components/audio_input/service.py +0 -114
- {viam_sdk-0.41.1.dist-info → viam_sdk-0.66.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import abc
|
|
2
|
-
from
|
|
2
|
+
from dataclasses import dataclass
|
|
3
|
+
from typing import Any, Dict, Final, Optional, Tuple
|
|
3
4
|
|
|
4
5
|
from viam.components.component_base import ComponentBase
|
|
5
6
|
from viam.resource.types import API, RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT
|
|
6
7
|
|
|
8
|
+
from . import KinematicsFileFormat
|
|
9
|
+
|
|
7
10
|
|
|
8
11
|
class Gripper(ComponentBase):
|
|
9
12
|
"""
|
|
@@ -24,6 +27,17 @@ class Gripper(ComponentBase):
|
|
|
24
27
|
RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT, "gripper"
|
|
25
28
|
)
|
|
26
29
|
|
|
30
|
+
@dataclass
|
|
31
|
+
class HoldingStatus:
|
|
32
|
+
"""
|
|
33
|
+
HoldingStatus represents whether the gripper is currently holding onto an object. The
|
|
34
|
+
additional ``meta`` attribute contains other optional contextual information (i.e. confidence
|
|
35
|
+
interval, pressure, etc.)
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
is_holding_something: bool
|
|
39
|
+
meta: Optional[Dict[str, Any]] = None
|
|
40
|
+
|
|
27
41
|
@abc.abstractmethod
|
|
28
42
|
async def open(
|
|
29
43
|
self,
|
|
@@ -71,6 +85,33 @@ class Gripper(ComponentBase):
|
|
|
71
85
|
"""
|
|
72
86
|
...
|
|
73
87
|
|
|
88
|
+
@abc.abstractmethod
|
|
89
|
+
async def is_holding_something(
|
|
90
|
+
self,
|
|
91
|
+
*,
|
|
92
|
+
extra: Optional[Dict[str, Any]] = None,
|
|
93
|
+
timeout: Optional[float] = None,
|
|
94
|
+
**kwargs,
|
|
95
|
+
) -> HoldingStatus:
|
|
96
|
+
"""
|
|
97
|
+
Get information about whether the gripper is currently holding onto an object.
|
|
98
|
+
|
|
99
|
+
::
|
|
100
|
+
|
|
101
|
+
my_gripper = Gripper.from_robot(robot=machine, name="my_gripper")
|
|
102
|
+
|
|
103
|
+
# Grab with the gripper.
|
|
104
|
+
holding_status = await my_gripper.is_holding_something()
|
|
105
|
+
# get the boolean result
|
|
106
|
+
is_holding_something = holding_status.is_holding_something
|
|
107
|
+
|
|
108
|
+
Returns:
|
|
109
|
+
HoldingStatus: see documentation on `HoldingStatus` for more information
|
|
110
|
+
|
|
111
|
+
For more information, see `Gripper component <https://docs.viam.com/dev/reference/apis/components/gripper/#grab>`_.
|
|
112
|
+
|
|
113
|
+
"""
|
|
114
|
+
|
|
74
115
|
@abc.abstractmethod
|
|
75
116
|
async def stop(
|
|
76
117
|
self,
|
|
@@ -112,3 +153,37 @@ class Gripper(ComponentBase):
|
|
|
112
153
|
For more information, see `Gripper component <https://docs.viam.com/dev/reference/apis/components/gripper/#is_moving>`_.
|
|
113
154
|
"""
|
|
114
155
|
...
|
|
156
|
+
|
|
157
|
+
@abc.abstractmethod
|
|
158
|
+
async def get_kinematics(
|
|
159
|
+
self,
|
|
160
|
+
*,
|
|
161
|
+
extra: Optional[Dict[str, Any]] = None,
|
|
162
|
+
timeout: Optional[float] = None,
|
|
163
|
+
**kwargs,
|
|
164
|
+
) -> Tuple[KinematicsFileFormat.ValueType, bytes]:
|
|
165
|
+
"""
|
|
166
|
+
Get the kinematics information associated with the gripper.
|
|
167
|
+
|
|
168
|
+
::
|
|
169
|
+
|
|
170
|
+
my_gripper = Gripper.from_robot(robot=machine, name="my_gripper")
|
|
171
|
+
|
|
172
|
+
# Get the kinematics information associated with the gripper.
|
|
173
|
+
kinematics = await my_gripper.get_kinematics()
|
|
174
|
+
|
|
175
|
+
# Get the format of the kinematics file.
|
|
176
|
+
k_file = kinematics[0]
|
|
177
|
+
|
|
178
|
+
# Get the byte contents of the file.
|
|
179
|
+
k_bytes = kinematics[1]
|
|
180
|
+
|
|
181
|
+
Returns:
|
|
182
|
+
Tuple[KinematicsFileFormat.ValueType, bytes]: A tuple containing two values; the first [0] value represents the format of the
|
|
183
|
+
file, either in URDF format (``KinematicsFileFormat.KINEMATICS_FILE_FORMAT_URDF``) or
|
|
184
|
+
Viam's kinematic parameter format (spatial vector algebra) (``KinematicsFileFormat.KINEMATICS_FILE_FORMAT_SVA``),
|
|
185
|
+
and the second [1] value represents the byte contents of the file.
|
|
186
|
+
|
|
187
|
+
For more information, see `Gripper component <https://docs.viam.com/dev/reference/apis/components/gripper/#getkinematics>`_.
|
|
188
|
+
"""
|
|
189
|
+
...
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
from grpclib.server import Stream
|
|
2
2
|
|
|
3
|
-
from viam.proto.common import
|
|
3
|
+
from viam.proto.common import (
|
|
4
|
+
DoCommandRequest,
|
|
5
|
+
DoCommandResponse,
|
|
6
|
+
GetGeometriesRequest,
|
|
7
|
+
GetGeometriesResponse,
|
|
8
|
+
GetKinematicsRequest,
|
|
9
|
+
GetKinematicsResponse,
|
|
10
|
+
)
|
|
4
11
|
from viam.proto.component.gripper import (
|
|
5
12
|
GrabRequest,
|
|
6
13
|
GrabResponse,
|
|
7
14
|
GripperServiceBase,
|
|
15
|
+
IsHoldingSomethingRequest,
|
|
16
|
+
IsHoldingSomethingResponse,
|
|
8
17
|
IsMovingRequest,
|
|
9
18
|
IsMovingResponse,
|
|
10
19
|
OpenRequest,
|
|
@@ -62,6 +71,17 @@ class GripperRPCService(GripperServiceBase, ResourceRPCServiceBase[Gripper]):
|
|
|
62
71
|
response = IsMovingResponse(is_moving=is_moving)
|
|
63
72
|
await stream.send_message(response)
|
|
64
73
|
|
|
74
|
+
async def IsHoldingSomething(self, stream: Stream[IsHoldingSomethingRequest, IsHoldingSomethingResponse]) -> None:
|
|
75
|
+
request = await stream.recv_message()
|
|
76
|
+
assert request is not None
|
|
77
|
+
name = request.name
|
|
78
|
+
gripper = self.get_resource(name)
|
|
79
|
+
holding_status = await gripper.is_holding_something()
|
|
80
|
+
response = IsHoldingSomethingResponse(
|
|
81
|
+
is_holding_something=holding_status.is_holding_something, meta=dict_to_struct(holding_status.meta)
|
|
82
|
+
)
|
|
83
|
+
await stream.send_message(response)
|
|
84
|
+
|
|
65
85
|
async def DoCommand(self, stream: Stream[DoCommandRequest, DoCommandResponse]) -> None:
|
|
66
86
|
request = await stream.recv_message()
|
|
67
87
|
assert request is not None
|
|
@@ -74,8 +94,17 @@ class GripperRPCService(GripperServiceBase, ResourceRPCServiceBase[Gripper]):
|
|
|
74
94
|
async def GetGeometries(self, stream: Stream[GetGeometriesRequest, GetGeometriesResponse]) -> None:
|
|
75
95
|
request = await stream.recv_message()
|
|
76
96
|
assert request is not None
|
|
77
|
-
|
|
97
|
+
gripper = self.get_resource(request.name)
|
|
78
98
|
timeout = stream.deadline.time_remaining() if stream.deadline else None
|
|
79
|
-
geometries = await
|
|
99
|
+
geometries = await gripper.get_geometries(extra=struct_to_dict(request.extra), timeout=timeout)
|
|
80
100
|
response = GetGeometriesResponse(geometries=geometries)
|
|
81
101
|
await stream.send_message(response)
|
|
102
|
+
|
|
103
|
+
async def GetKinematics(self, stream: Stream[GetKinematicsRequest, GetKinematicsResponse]) -> None:
|
|
104
|
+
request = await stream.recv_message()
|
|
105
|
+
assert request is not None
|
|
106
|
+
gripper = self.get_resource(request.name)
|
|
107
|
+
timeout = stream.deadline.time_remaining() if stream.deadline else None
|
|
108
|
+
format, kinematics_data = await gripper.get_kinematics(extra=struct_to_dict(request.extra), timeout=timeout)
|
|
109
|
+
response = GetKinematicsResponse(format=format, kinematics_data=kinematics_data)
|
|
110
|
+
await stream.send_message(response)
|
viam/components/input/input.py
CHANGED
|
@@ -243,7 +243,7 @@ class Controller(ComponentBase):
|
|
|
243
243
|
|
|
244
244
|
|
|
245
245
|
async def main():
|
|
246
|
-
# ... < INSERT CONNECTION CODE FROM MACHINE'S
|
|
246
|
+
# ... < INSERT CONNECTION CODE FROM MACHINE'S CONNECT TAB >
|
|
247
247
|
|
|
248
248
|
# Get your controller from the machine.
|
|
249
249
|
my_controller = Controller.from_robot(
|
viam/components/motor/motor.py
CHANGED
|
@@ -274,7 +274,7 @@ class Motor(ComponentBase):
|
|
|
274
274
|
|
|
275
275
|
Returns:
|
|
276
276
|
Tuple[bool, float]: A tuple containing two values; the first [0] value indicates whether the motor is currently powered, and
|
|
277
|
-
|
|
277
|
+
the second [1] value indicates the current power percentage of the motor.
|
|
278
278
|
|
|
279
279
|
For more information, see `Motor component <https://docs.viam.com/dev/reference/apis/components/motor/#ispowered>`_.
|
|
280
280
|
"""
|
|
@@ -97,7 +97,7 @@ class PowerSensor(ComponentBase):
|
|
|
97
97
|
|
|
98
98
|
Returns:
|
|
99
99
|
Mapping[str, Any]: The readings for the PowerSensor. Can be of any type. Includes voltage in volts (float), current in
|
|
100
|
-
|
|
100
|
+
amperes (float), is_ac (bool), and power in watts (float).
|
|
101
101
|
|
|
102
102
|
For more information, see `Power Sensor component <https://docs.viam.com/dev/reference/apis/components/power-sensor/#getreadings>`_.
|
|
103
103
|
"""
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import viam.gen.component.switch.v1.switch_pb2
|
|
2
|
+
from viam.resource.registry import Registry, ResourceRegistration
|
|
3
|
+
|
|
4
|
+
from .client import SwitchClient
|
|
5
|
+
from .service import SwitchRPCService
|
|
6
|
+
from .switch import Switch
|
|
7
|
+
|
|
8
|
+
__all__ = ["Switch"]
|
|
9
|
+
|
|
10
|
+
Registry.register_api(ResourceRegistration(Switch, SwitchRPCService, lambda name, channel: SwitchClient(name, channel)))
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
from typing import Any, Mapping, Optional, Sequence, Tuple
|
|
2
|
+
|
|
3
|
+
from grpclib.client import Channel
|
|
4
|
+
|
|
5
|
+
from viam.gen.component.switch.v1.switch_pb2 import (
|
|
6
|
+
GetNumberOfPositionsRequest,
|
|
7
|
+
GetNumberOfPositionsResponse,
|
|
8
|
+
GetPositionRequest,
|
|
9
|
+
GetPositionResponse,
|
|
10
|
+
SetPositionRequest,
|
|
11
|
+
)
|
|
12
|
+
from viam.proto.common import (
|
|
13
|
+
DoCommandRequest,
|
|
14
|
+
DoCommandResponse,
|
|
15
|
+
)
|
|
16
|
+
from viam.proto.component.switch import SwitchServiceStub
|
|
17
|
+
from viam.resource.rpc_client_base import ReconfigurableResourceRPCClientBase
|
|
18
|
+
from viam.utils import (
|
|
19
|
+
ValueTypes,
|
|
20
|
+
dict_to_struct,
|
|
21
|
+
struct_to_dict,
|
|
22
|
+
)
|
|
23
|
+
|
|
24
|
+
from .switch import Switch
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class SwitchClient(Switch, ReconfigurableResourceRPCClientBase):
|
|
28
|
+
"""
|
|
29
|
+
gRPC client for Switch component
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
def __init__(self, name: str, channel: Channel):
|
|
33
|
+
self.channel = channel
|
|
34
|
+
self.client = SwitchServiceStub(channel)
|
|
35
|
+
super().__init__(name)
|
|
36
|
+
|
|
37
|
+
async def get_position(
|
|
38
|
+
self,
|
|
39
|
+
*,
|
|
40
|
+
extra: Optional[Mapping[str, Any]] = None,
|
|
41
|
+
timeout: Optional[float] = None,
|
|
42
|
+
**kwargs,
|
|
43
|
+
) -> int:
|
|
44
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
45
|
+
request = GetPositionRequest(name=self.name, extra=dict_to_struct(extra))
|
|
46
|
+
response: GetPositionResponse = await self.client.GetPosition(request, timeout=timeout, metadata=md)
|
|
47
|
+
return response.position
|
|
48
|
+
|
|
49
|
+
async def set_position(
|
|
50
|
+
self,
|
|
51
|
+
position: int,
|
|
52
|
+
*,
|
|
53
|
+
extra: Optional[Mapping[str, Any]] = None,
|
|
54
|
+
timeout: Optional[float] = None,
|
|
55
|
+
**kwargs,
|
|
56
|
+
) -> None:
|
|
57
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
58
|
+
request = SetPositionRequest(name=self.name, position=position, extra=dict_to_struct(extra))
|
|
59
|
+
await self.client.SetPosition(request, timeout=timeout, metadata=md)
|
|
60
|
+
|
|
61
|
+
async def get_number_of_positions(
|
|
62
|
+
self,
|
|
63
|
+
*,
|
|
64
|
+
extra: Optional[Mapping[str, Any]] = None,
|
|
65
|
+
timeout: Optional[float] = None,
|
|
66
|
+
**kwargs,
|
|
67
|
+
) -> Tuple[int, Sequence[str]]:
|
|
68
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
69
|
+
request = GetNumberOfPositionsRequest(name=self.name, extra=dict_to_struct(extra))
|
|
70
|
+
response: GetNumberOfPositionsResponse = await self.client.GetNumberOfPositions(request, timeout=timeout, metadata=md)
|
|
71
|
+
return response.number_of_positions, response.labels
|
|
72
|
+
|
|
73
|
+
async def do_command(
|
|
74
|
+
self,
|
|
75
|
+
command: Mapping[str, ValueTypes],
|
|
76
|
+
*,
|
|
77
|
+
timeout: Optional[float] = None,
|
|
78
|
+
**kwargs,
|
|
79
|
+
) -> Mapping[str, ValueTypes]:
|
|
80
|
+
md = kwargs.get("metadata", self.Metadata()).proto
|
|
81
|
+
request = DoCommandRequest(name=self.name, command=dict_to_struct(command))
|
|
82
|
+
response: DoCommandResponse = await self.client.DoCommand(request, timeout=timeout, metadata=md)
|
|
83
|
+
return struct_to_dict(response.result)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from grpclib.server import Stream
|
|
2
|
+
|
|
3
|
+
from viam.gen.component.switch.v1.switch_pb2 import (
|
|
4
|
+
GetNumberOfPositionsRequest,
|
|
5
|
+
GetNumberOfPositionsResponse,
|
|
6
|
+
GetPositionRequest,
|
|
7
|
+
GetPositionResponse,
|
|
8
|
+
SetPositionRequest,
|
|
9
|
+
SetPositionResponse,
|
|
10
|
+
)
|
|
11
|
+
from viam.proto.common import (
|
|
12
|
+
DoCommandRequest,
|
|
13
|
+
DoCommandResponse,
|
|
14
|
+
)
|
|
15
|
+
from viam.proto.component.switch import SwitchServiceBase
|
|
16
|
+
from viam.resource.rpc_service_base import ResourceRPCServiceBase
|
|
17
|
+
from viam.utils import dict_to_struct, struct_to_dict
|
|
18
|
+
|
|
19
|
+
from .switch import Switch
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class SwitchRPCService(SwitchServiceBase, ResourceRPCServiceBase[Switch]):
|
|
23
|
+
"""
|
|
24
|
+
gRPC Service for a generic Switch
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
RESOURCE_TYPE = Switch
|
|
28
|
+
|
|
29
|
+
async def GetPosition(self, stream: Stream[GetPositionRequest, GetPositionResponse]) -> None:
|
|
30
|
+
request = await stream.recv_message()
|
|
31
|
+
assert request is not None
|
|
32
|
+
name = request.name
|
|
33
|
+
switch = self.get_resource(name)
|
|
34
|
+
timeout = stream.deadline.time_remaining() if stream.deadline else None
|
|
35
|
+
position = await switch.get_position(extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
|
|
36
|
+
response = GetPositionResponse(position=position)
|
|
37
|
+
await stream.send_message(response)
|
|
38
|
+
|
|
39
|
+
async def SetPosition(self, stream: Stream[SetPositionRequest, SetPositionResponse]) -> None:
|
|
40
|
+
request = await stream.recv_message()
|
|
41
|
+
assert request is not None
|
|
42
|
+
name = request.name
|
|
43
|
+
switch = self.get_resource(name)
|
|
44
|
+
timeout = stream.deadline.time_remaining() if stream.deadline else None
|
|
45
|
+
await switch.set_position(position=request.position, extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata)
|
|
46
|
+
await stream.send_message(SetPositionResponse())
|
|
47
|
+
|
|
48
|
+
async def GetNumberOfPositions(self, stream: Stream[GetNumberOfPositionsRequest, GetNumberOfPositionsResponse]) -> None:
|
|
49
|
+
request = await stream.recv_message()
|
|
50
|
+
assert request is not None
|
|
51
|
+
name = request.name
|
|
52
|
+
switch = self.get_resource(name)
|
|
53
|
+
timeout = stream.deadline.time_remaining() if stream.deadline else None
|
|
54
|
+
number_of_positions, labels = await switch.get_number_of_positions(
|
|
55
|
+
extra=struct_to_dict(request.extra), timeout=timeout, metadata=stream.metadata
|
|
56
|
+
)
|
|
57
|
+
response = GetNumberOfPositionsResponse(number_of_positions=number_of_positions, labels=labels)
|
|
58
|
+
await stream.send_message(response)
|
|
59
|
+
|
|
60
|
+
async def DoCommand(self, stream: Stream[DoCommandRequest, DoCommandResponse]) -> None:
|
|
61
|
+
request = await stream.recv_message()
|
|
62
|
+
assert request is not None
|
|
63
|
+
name = request.name
|
|
64
|
+
switch = self.get_resource(name)
|
|
65
|
+
timeout = stream.deadline.time_remaining() if stream.deadline else None
|
|
66
|
+
result = await switch.do_command(
|
|
67
|
+
command=struct_to_dict(request.command),
|
|
68
|
+
timeout=timeout,
|
|
69
|
+
metadata=stream.metadata,
|
|
70
|
+
)
|
|
71
|
+
response = DoCommandResponse(result=dict_to_struct(result))
|
|
72
|
+
await stream.send_message(response)
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import abc
|
|
2
|
+
from typing import Any, Final, Mapping, Optional, Sequence, Tuple
|
|
3
|
+
|
|
4
|
+
from viam.components.component_base import ComponentBase
|
|
5
|
+
from viam.resource.types import API, RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class Switch(ComponentBase):
|
|
9
|
+
"""
|
|
10
|
+
Switch represents a device with two or more finite states (or positions) than can be set and retrieved.
|
|
11
|
+
|
|
12
|
+
This acts as an abstract base class for any drivers representing specific
|
|
13
|
+
switch implementations. This cannot be used on its own. If the ``__init__()`` function is
|
|
14
|
+
overridden, it must call the ``super().__init__()`` function.
|
|
15
|
+
|
|
16
|
+
::
|
|
17
|
+
|
|
18
|
+
from viam.components.switch import Switch
|
|
19
|
+
|
|
20
|
+
For more information, see `Switch component <https://docs.viam.com/dev/reference/apis/components/switch/>`_.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
API: Final = API( # pyright: ignore [reportIncompatibleVariableOverride]
|
|
24
|
+
RESOURCE_NAMESPACE_RDK, RESOURCE_TYPE_COMPONENT, "switch"
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
@abc.abstractmethod
|
|
28
|
+
async def get_position(self, *, extra: Optional[Mapping[str, Any]] = None, timeout: Optional[float] = None, **kwargs) -> int:
|
|
29
|
+
"""
|
|
30
|
+
Get the current position of the switch
|
|
31
|
+
|
|
32
|
+
::
|
|
33
|
+
|
|
34
|
+
my_switch = Switch.from_robot(robot=machine, name="my_switch")
|
|
35
|
+
|
|
36
|
+
# Update the switch from its current position to the desired position of 1.
|
|
37
|
+
await my_switch.set_position(1)
|
|
38
|
+
|
|
39
|
+
# Get the current set position of the switch.
|
|
40
|
+
pos1 = await my_switch.get_position()
|
|
41
|
+
|
|
42
|
+
# Update the switch from its current position to the desired position.
|
|
43
|
+
await my_switch.set_position(0)
|
|
44
|
+
|
|
45
|
+
# Get the current set position of the switch.
|
|
46
|
+
pos2 = await my_switch.get_position()
|
|
47
|
+
|
|
48
|
+
Returns:
|
|
49
|
+
int: The current position of the switch within the range of available positions.
|
|
50
|
+
|
|
51
|
+
For more information, see `Switch component <https://docs.viam.com/dev/reference/apis/components/Switch/#getposition>`_.
|
|
52
|
+
"""
|
|
53
|
+
...
|
|
54
|
+
|
|
55
|
+
@abc.abstractmethod
|
|
56
|
+
async def set_position(
|
|
57
|
+
self, position: int, *, extra: Optional[Mapping[str, Any]] = None, timeout: Optional[float] = None, **kwargs
|
|
58
|
+
) -> None:
|
|
59
|
+
"""
|
|
60
|
+
Sets the current position of the switch.
|
|
61
|
+
|
|
62
|
+
::
|
|
63
|
+
|
|
64
|
+
my_switch = Switch.from_robot(robot=machine, name="my_switch")
|
|
65
|
+
|
|
66
|
+
# Update the switch from its current position to the desired position of 1.
|
|
67
|
+
await my_switch.set_position(1)
|
|
68
|
+
|
|
69
|
+
# Update the switch from its current position to the desired position of 0.
|
|
70
|
+
await my_switch.set_position(0)
|
|
71
|
+
|
|
72
|
+
Args:
|
|
73
|
+
position (int): The position of the switch within the range of available positions.
|
|
74
|
+
|
|
75
|
+
For more information, see `Switch component <https://docs.viam.com/dev/reference/apis/components/switch/#setposition>`_.
|
|
76
|
+
"""
|
|
77
|
+
...
|
|
78
|
+
|
|
79
|
+
@abc.abstractmethod
|
|
80
|
+
async def get_number_of_positions(
|
|
81
|
+
self, *, extra: Optional[Mapping[str, Any]] = None, timeout: Optional[float] = None, **kwargs
|
|
82
|
+
) -> Tuple[int, Sequence[str]]:
|
|
83
|
+
"""
|
|
84
|
+
Get the number of available positions on the switch.
|
|
85
|
+
|
|
86
|
+
::
|
|
87
|
+
|
|
88
|
+
my_switch = Switch.from_robot(robot=machine, name="my_switch")
|
|
89
|
+
|
|
90
|
+
print(await my_switch.get_number_of_positions())
|
|
91
|
+
|
|
92
|
+
Returns:
|
|
93
|
+
Tuple[int, Sequence[str]]: The number of available positions and their labels
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
For more information, see `Switch component <https://docs.viam.com/dev/reference/apis/components/switch/#getnumberofpositions>`_.
|
|
97
|
+
"""
|
|
98
|
+
...
|
|
@@ -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,
|
|
7
|
+
_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/agent/v1/agent.proto')
|
|
8
8
|
_sym_db = _symbol_database.Default()
|
|
9
9
|
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
|
|
10
10
|
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
|
@@ -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,
|
|
7
|
+
_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'app/cloudslam/v1/cloud_slam.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 google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
|
|
@@ -104,8 +104,44 @@ class DataServiceBase(abc.ABC):
|
|
|
104
104
|
async def RemoveBinaryDataFromDatasetByIDs(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse]') -> None:
|
|
105
105
|
pass
|
|
106
106
|
|
|
107
|
+
@abc.abstractmethod
|
|
108
|
+
async def CreateIndex(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse]') -> None:
|
|
109
|
+
pass
|
|
110
|
+
|
|
111
|
+
@abc.abstractmethod
|
|
112
|
+
async def ListIndexes(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.ListIndexesRequest, app.data.v1.data_pb2.ListIndexesResponse]') -> None:
|
|
113
|
+
pass
|
|
114
|
+
|
|
115
|
+
@abc.abstractmethod
|
|
116
|
+
async def DeleteIndex(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.DeleteIndexRequest, app.data.v1.data_pb2.DeleteIndexResponse]') -> None:
|
|
117
|
+
pass
|
|
118
|
+
|
|
119
|
+
@abc.abstractmethod
|
|
120
|
+
async def CreateSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateSavedQueryRequest, app.data.v1.data_pb2.CreateSavedQueryResponse]') -> None:
|
|
121
|
+
pass
|
|
122
|
+
|
|
123
|
+
@abc.abstractmethod
|
|
124
|
+
async def UpdateSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.UpdateSavedQueryRequest, app.data.v1.data_pb2.UpdateSavedQueryResponse]') -> None:
|
|
125
|
+
pass
|
|
126
|
+
|
|
127
|
+
@abc.abstractmethod
|
|
128
|
+
async def GetSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.GetSavedQueryRequest, app.data.v1.data_pb2.GetSavedQueryResponse]') -> None:
|
|
129
|
+
pass
|
|
130
|
+
|
|
131
|
+
@abc.abstractmethod
|
|
132
|
+
async def DeleteSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.DeleteSavedQueryRequest, app.data.v1.data_pb2.DeleteSavedQueryResponse]') -> None:
|
|
133
|
+
pass
|
|
134
|
+
|
|
135
|
+
@abc.abstractmethod
|
|
136
|
+
async def ListSavedQueries(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.ListSavedQueriesRequest, app.data.v1.data_pb2.ListSavedQueriesResponse]') -> None:
|
|
137
|
+
pass
|
|
138
|
+
|
|
139
|
+
@abc.abstractmethod
|
|
140
|
+
async def CreateBinaryDataSignedURL(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateBinaryDataSignedURLRequest, app.data.v1.data_pb2.CreateBinaryDataSignedURLResponse]') -> None:
|
|
141
|
+
pass
|
|
142
|
+
|
|
107
143
|
def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
|
|
108
|
-
return {'/viam.app.data.v1.DataService/TabularDataByFilter': grpclib.const.Handler(self.TabularDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByFilterRequest, app.data.v1.data_pb2.TabularDataByFilterResponse), '/viam.app.data.v1.DataService/TabularDataBySQL': grpclib.const.Handler(self.TabularDataBySQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataBySQLRequest, app.data.v1.data_pb2.TabularDataBySQLResponse), '/viam.app.data.v1.DataService/TabularDataByMQL': grpclib.const.Handler(self.TabularDataByMQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByMQLRequest, app.data.v1.data_pb2.TabularDataByMQLResponse), '/viam.app.data.v1.DataService/ExportTabularData': grpclib.const.Handler(self.ExportTabularData, grpclib.const.Cardinality.UNARY_STREAM, app.data.v1.data_pb2.ExportTabularDataRequest, app.data.v1.data_pb2.ExportTabularDataResponse), '/viam.app.data.v1.DataService/GetLatestTabularData': grpclib.const.Handler(self.GetLatestTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetLatestTabularDataRequest, app.data.v1.data_pb2.GetLatestTabularDataResponse), '/viam.app.data.v1.DataService/BinaryDataByFilter': grpclib.const.Handler(self.BinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByFilterRequest, app.data.v1.data_pb2.BinaryDataByFilterResponse), '/viam.app.data.v1.DataService/BinaryDataByIDs': grpclib.const.Handler(self.BinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByIDsRequest, app.data.v1.data_pb2.BinaryDataByIDsResponse), '/viam.app.data.v1.DataService/DeleteTabularData': grpclib.const.Handler(self.DeleteTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteTabularDataRequest, app.data.v1.data_pb2.DeleteTabularDataResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByFilter': grpclib.const.Handler(self.DeleteBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByFilterRequest, app.data.v1.data_pb2.DeleteBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByIDs': grpclib.const.Handler(self.DeleteBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByIDsRequest, app.data.v1.data_pb2.DeleteBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByIDs': grpclib.const.Handler(self.AddTagsToBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByFilter': grpclib.const.Handler(self.AddTagsToBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByIDs': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByFilter': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/TagsByFilter': grpclib.const.Handler(self.TagsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TagsByFilterRequest, app.data.v1.data_pb2.TagsByFilterResponse), '/viam.app.data.v1.DataService/AddBoundingBoxToImageByID': grpclib.const.Handler(self.AddBoundingBoxToImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBoundingBoxToImageByIDRequest, app.data.v1.data_pb2.AddBoundingBoxToImageByIDResponse), '/viam.app.data.v1.DataService/RemoveBoundingBoxFromImageByID': grpclib.const.Handler(self.RemoveBoundingBoxFromImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDRequest, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDResponse), '/viam.app.data.v1.DataService/BoundingBoxLabelsByFilter': grpclib.const.Handler(self.BoundingBoxLabelsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest, app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse), '/viam.app.data.v1.DataService/UpdateBoundingBox': grpclib.const.Handler(self.UpdateBoundingBox, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateBoundingBoxRequest, app.data.v1.data_pb2.UpdateBoundingBoxResponse), '/viam.app.data.v1.DataService/GetDatabaseConnection': grpclib.const.Handler(self.GetDatabaseConnection, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetDatabaseConnectionRequest, app.data.v1.data_pb2.GetDatabaseConnectionResponse), '/viam.app.data.v1.DataService/ConfigureDatabaseUser': grpclib.const.Handler(self.ConfigureDatabaseUser, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse), '/viam.app.data.v1.DataService/AddBinaryDataToDatasetByIDs': grpclib.const.Handler(self.AddBinaryDataToDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsRequest, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsResponse), '/viam.app.data.v1.DataService/RemoveBinaryDataFromDatasetByIDs': grpclib.const.Handler(self.RemoveBinaryDataFromDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse)}
|
|
144
|
+
return {'/viam.app.data.v1.DataService/TabularDataByFilter': grpclib.const.Handler(self.TabularDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByFilterRequest, app.data.v1.data_pb2.TabularDataByFilterResponse), '/viam.app.data.v1.DataService/TabularDataBySQL': grpclib.const.Handler(self.TabularDataBySQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataBySQLRequest, app.data.v1.data_pb2.TabularDataBySQLResponse), '/viam.app.data.v1.DataService/TabularDataByMQL': grpclib.const.Handler(self.TabularDataByMQL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TabularDataByMQLRequest, app.data.v1.data_pb2.TabularDataByMQLResponse), '/viam.app.data.v1.DataService/ExportTabularData': grpclib.const.Handler(self.ExportTabularData, grpclib.const.Cardinality.UNARY_STREAM, app.data.v1.data_pb2.ExportTabularDataRequest, app.data.v1.data_pb2.ExportTabularDataResponse), '/viam.app.data.v1.DataService/GetLatestTabularData': grpclib.const.Handler(self.GetLatestTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetLatestTabularDataRequest, app.data.v1.data_pb2.GetLatestTabularDataResponse), '/viam.app.data.v1.DataService/BinaryDataByFilter': grpclib.const.Handler(self.BinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByFilterRequest, app.data.v1.data_pb2.BinaryDataByFilterResponse), '/viam.app.data.v1.DataService/BinaryDataByIDs': grpclib.const.Handler(self.BinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BinaryDataByIDsRequest, app.data.v1.data_pb2.BinaryDataByIDsResponse), '/viam.app.data.v1.DataService/DeleteTabularData': grpclib.const.Handler(self.DeleteTabularData, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteTabularDataRequest, app.data.v1.data_pb2.DeleteTabularDataResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByFilter': grpclib.const.Handler(self.DeleteBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByFilterRequest, app.data.v1.data_pb2.DeleteBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/DeleteBinaryDataByIDs': grpclib.const.Handler(self.DeleteBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteBinaryDataByIDsRequest, app.data.v1.data_pb2.DeleteBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByIDs': grpclib.const.Handler(self.AddTagsToBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/AddTagsToBinaryDataByFilter': grpclib.const.Handler(self.AddTagsToBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterRequest, app.data.v1.data_pb2.AddTagsToBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByIDs': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByIDsResponse), '/viam.app.data.v1.DataService/RemoveTagsFromBinaryDataByFilter': grpclib.const.Handler(self.RemoveTagsFromBinaryDataByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterRequest, app.data.v1.data_pb2.RemoveTagsFromBinaryDataByFilterResponse), '/viam.app.data.v1.DataService/TagsByFilter': grpclib.const.Handler(self.TagsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.TagsByFilterRequest, app.data.v1.data_pb2.TagsByFilterResponse), '/viam.app.data.v1.DataService/AddBoundingBoxToImageByID': grpclib.const.Handler(self.AddBoundingBoxToImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBoundingBoxToImageByIDRequest, app.data.v1.data_pb2.AddBoundingBoxToImageByIDResponse), '/viam.app.data.v1.DataService/RemoveBoundingBoxFromImageByID': grpclib.const.Handler(self.RemoveBoundingBoxFromImageByID, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDRequest, app.data.v1.data_pb2.RemoveBoundingBoxFromImageByIDResponse), '/viam.app.data.v1.DataService/BoundingBoxLabelsByFilter': grpclib.const.Handler(self.BoundingBoxLabelsByFilter, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.BoundingBoxLabelsByFilterRequest, app.data.v1.data_pb2.BoundingBoxLabelsByFilterResponse), '/viam.app.data.v1.DataService/UpdateBoundingBox': grpclib.const.Handler(self.UpdateBoundingBox, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateBoundingBoxRequest, app.data.v1.data_pb2.UpdateBoundingBoxResponse), '/viam.app.data.v1.DataService/GetDatabaseConnection': grpclib.const.Handler(self.GetDatabaseConnection, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetDatabaseConnectionRequest, app.data.v1.data_pb2.GetDatabaseConnectionResponse), '/viam.app.data.v1.DataService/ConfigureDatabaseUser': grpclib.const.Handler(self.ConfigureDatabaseUser, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse), '/viam.app.data.v1.DataService/AddBinaryDataToDatasetByIDs': grpclib.const.Handler(self.AddBinaryDataToDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsRequest, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsResponse), '/viam.app.data.v1.DataService/RemoveBinaryDataFromDatasetByIDs': grpclib.const.Handler(self.RemoveBinaryDataFromDatasetByIDs, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse), '/viam.app.data.v1.DataService/CreateIndex': grpclib.const.Handler(self.CreateIndex, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse), '/viam.app.data.v1.DataService/ListIndexes': grpclib.const.Handler(self.ListIndexes, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListIndexesRequest, app.data.v1.data_pb2.ListIndexesResponse), '/viam.app.data.v1.DataService/DeleteIndex': grpclib.const.Handler(self.DeleteIndex, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteIndexRequest, app.data.v1.data_pb2.DeleteIndexResponse), '/viam.app.data.v1.DataService/CreateSavedQuery': grpclib.const.Handler(self.CreateSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateSavedQueryRequest, app.data.v1.data_pb2.CreateSavedQueryResponse), '/viam.app.data.v1.DataService/UpdateSavedQuery': grpclib.const.Handler(self.UpdateSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.UpdateSavedQueryRequest, app.data.v1.data_pb2.UpdateSavedQueryResponse), '/viam.app.data.v1.DataService/GetSavedQuery': grpclib.const.Handler(self.GetSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.GetSavedQueryRequest, app.data.v1.data_pb2.GetSavedQueryResponse), '/viam.app.data.v1.DataService/DeleteSavedQuery': grpclib.const.Handler(self.DeleteSavedQuery, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.DeleteSavedQueryRequest, app.data.v1.data_pb2.DeleteSavedQueryResponse), '/viam.app.data.v1.DataService/ListSavedQueries': grpclib.const.Handler(self.ListSavedQueries, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.ListSavedQueriesRequest, app.data.v1.data_pb2.ListSavedQueriesResponse), '/viam.app.data.v1.DataService/CreateBinaryDataSignedURL': grpclib.const.Handler(self.CreateBinaryDataSignedURL, grpclib.const.Cardinality.UNARY_UNARY, app.data.v1.data_pb2.CreateBinaryDataSignedURLRequest, app.data.v1.data_pb2.CreateBinaryDataSignedURLResponse)}
|
|
109
145
|
|
|
110
146
|
class UnimplementedDataServiceBase(DataServiceBase):
|
|
111
147
|
|
|
@@ -178,6 +214,33 @@ class UnimplementedDataServiceBase(DataServiceBase):
|
|
|
178
214
|
async def RemoveBinaryDataFromDatasetByIDs(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse]') -> None:
|
|
179
215
|
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
180
216
|
|
|
217
|
+
async def CreateIndex(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse]') -> None:
|
|
218
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
219
|
+
|
|
220
|
+
async def ListIndexes(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.ListIndexesRequest, app.data.v1.data_pb2.ListIndexesResponse]') -> None:
|
|
221
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
222
|
+
|
|
223
|
+
async def DeleteIndex(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.DeleteIndexRequest, app.data.v1.data_pb2.DeleteIndexResponse]') -> None:
|
|
224
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
225
|
+
|
|
226
|
+
async def CreateSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateSavedQueryRequest, app.data.v1.data_pb2.CreateSavedQueryResponse]') -> None:
|
|
227
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
228
|
+
|
|
229
|
+
async def UpdateSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.UpdateSavedQueryRequest, app.data.v1.data_pb2.UpdateSavedQueryResponse]') -> None:
|
|
230
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
231
|
+
|
|
232
|
+
async def GetSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.GetSavedQueryRequest, app.data.v1.data_pb2.GetSavedQueryResponse]') -> None:
|
|
233
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
234
|
+
|
|
235
|
+
async def DeleteSavedQuery(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.DeleteSavedQueryRequest, app.data.v1.data_pb2.DeleteSavedQueryResponse]') -> None:
|
|
236
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
237
|
+
|
|
238
|
+
async def ListSavedQueries(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.ListSavedQueriesRequest, app.data.v1.data_pb2.ListSavedQueriesResponse]') -> None:
|
|
239
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
240
|
+
|
|
241
|
+
async def CreateBinaryDataSignedURL(self, stream: 'grpclib.server.Stream[app.data.v1.data_pb2.CreateBinaryDataSignedURLRequest, app.data.v1.data_pb2.CreateBinaryDataSignedURLResponse]') -> None:
|
|
242
|
+
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
|
|
243
|
+
|
|
181
244
|
class DataServiceStub:
|
|
182
245
|
|
|
183
246
|
def __init__(self, channel: grpclib.client.Channel) -> None:
|
|
@@ -203,4 +266,13 @@ class DataServiceStub:
|
|
|
203
266
|
self.GetDatabaseConnection = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/GetDatabaseConnection', app.data.v1.data_pb2.GetDatabaseConnectionRequest, app.data.v1.data_pb2.GetDatabaseConnectionResponse)
|
|
204
267
|
self.ConfigureDatabaseUser = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ConfigureDatabaseUser', app.data.v1.data_pb2.ConfigureDatabaseUserRequest, app.data.v1.data_pb2.ConfigureDatabaseUserResponse)
|
|
205
268
|
self.AddBinaryDataToDatasetByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/AddBinaryDataToDatasetByIDs', app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsRequest, app.data.v1.data_pb2.AddBinaryDataToDatasetByIDsResponse)
|
|
206
|
-
self.RemoveBinaryDataFromDatasetByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/RemoveBinaryDataFromDatasetByIDs', app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse)
|
|
269
|
+
self.RemoveBinaryDataFromDatasetByIDs = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/RemoveBinaryDataFromDatasetByIDs', app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsRequest, app.data.v1.data_pb2.RemoveBinaryDataFromDatasetByIDsResponse)
|
|
270
|
+
self.CreateIndex = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/CreateIndex', app.data.v1.data_pb2.CreateIndexRequest, app.data.v1.data_pb2.CreateIndexResponse)
|
|
271
|
+
self.ListIndexes = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ListIndexes', app.data.v1.data_pb2.ListIndexesRequest, app.data.v1.data_pb2.ListIndexesResponse)
|
|
272
|
+
self.DeleteIndex = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteIndex', app.data.v1.data_pb2.DeleteIndexRequest, app.data.v1.data_pb2.DeleteIndexResponse)
|
|
273
|
+
self.CreateSavedQuery = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/CreateSavedQuery', app.data.v1.data_pb2.CreateSavedQueryRequest, app.data.v1.data_pb2.CreateSavedQueryResponse)
|
|
274
|
+
self.UpdateSavedQuery = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/UpdateSavedQuery', app.data.v1.data_pb2.UpdateSavedQueryRequest, app.data.v1.data_pb2.UpdateSavedQueryResponse)
|
|
275
|
+
self.GetSavedQuery = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/GetSavedQuery', app.data.v1.data_pb2.GetSavedQueryRequest, app.data.v1.data_pb2.GetSavedQueryResponse)
|
|
276
|
+
self.DeleteSavedQuery = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/DeleteSavedQuery', app.data.v1.data_pb2.DeleteSavedQueryRequest, app.data.v1.data_pb2.DeleteSavedQueryResponse)
|
|
277
|
+
self.ListSavedQueries = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/ListSavedQueries', app.data.v1.data_pb2.ListSavedQueriesRequest, app.data.v1.data_pb2.ListSavedQueriesResponse)
|
|
278
|
+
self.CreateBinaryDataSignedURL = grpclib.client.UnaryUnaryMethod(channel, '/viam.app.data.v1.DataService/CreateBinaryDataSignedURL', app.data.v1.data_pb2.CreateBinaryDataSignedURLRequest, app.data.v1.data_pb2.CreateBinaryDataSignedURLResponse)
|