Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion src/viam/components/camera/camera.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,14 @@ async def get_image(
...

@abc.abstractmethod
async def get_images(self, *, filter_source_names: Optional[List[str]] = None, extra: Optional[Dict[str, Any]] = None, timeout: Optional[float] = None, **kwargs) -> Tuple[List[NamedImage], ResponseMetadata]:
async def get_images(
self,
*,
filter_source_names: Optional[List[str]] = None,
extra: Optional[Dict[str, Any]] = None,
timeout: Optional[float] = None,
**kwargs,
) -> Tuple[List[NamedImage], ResponseMetadata]:
"""Get simultaneous images from different imagers, along with associated metadata.
This should not be used for getting a time series of images from the same imager.

Expand Down
2 changes: 1 addition & 1 deletion src/viam/components/camera/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from google.api.httpbody_pb2 import HttpBody # type: ignore
from grpclib.server import Stream

from viam.media.video import CameraMimeType
from viam.proto.common import DoCommandRequest, DoCommandResponse, GetGeometriesRequest, GetGeometriesResponse
from viam.proto.component.camera import (
CameraServiceBase,
Expand All @@ -20,7 +21,6 @@
)
from viam.resource.rpc_service_base import ResourceRPCServiceBase
from viam.utils import dict_to_struct, struct_to_dict
from viam.media.video import CameraMimeType

from . import Camera

Expand Down
84 changes: 43 additions & 41 deletions src/viam/gen/common/v1/common_pb2.py

Large diffs are not rendered by default.

45 changes: 38 additions & 7 deletions src/viam/gen/common/v1/common_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,19 @@ class Mesh(google.protobuf.message.Message):
...
global___Mesh = Mesh

@typing.final
class PointCloud(google.protobuf.message.Message):
DESCRIPTOR: google.protobuf.descriptor.Descriptor
POINT_CLOUD_FIELD_NUMBER: builtins.int
point_cloud: builtins.bytes

def __init__(self, *, point_cloud: builtins.bytes=...) -> None:
...

def ClearField(self, field_name: typing.Literal['point_cloud', b'point_cloud']) -> None:
...
global___PointCloud = PointCloud

@typing.final
class Geometry(google.protobuf.message.Message):
"""Geometry contains the dimensions of a given geometry and the pose of its center. The geometry is one of either a sphere or a box."""
Expand All @@ -242,6 +255,7 @@ class Geometry(google.protobuf.message.Message):
BOX_FIELD_NUMBER: builtins.int
CAPSULE_FIELD_NUMBER: builtins.int
MESH_FIELD_NUMBER: builtins.int
POINTCLOUD_FIELD_NUMBER: builtins.int
LABEL_FIELD_NUMBER: builtins.int
label: builtins.str
'Label of the geometry. If none supplied, will be an empty string.'
Expand All @@ -266,16 +280,20 @@ class Geometry(google.protobuf.message.Message):
def mesh(self) -> global___Mesh:
...

def __init__(self, *, center: global___Pose | None=..., sphere: global___Sphere | None=..., box: global___RectangularPrism | None=..., capsule: global___Capsule | None=..., mesh: global___Mesh | None=..., label: builtins.str=...) -> None:
@property
def pointcloud(self) -> global___PointCloud:
...

def __init__(self, *, center: global___Pose | None=..., sphere: global___Sphere | None=..., box: global___RectangularPrism | None=..., capsule: global___Capsule | None=..., mesh: global___Mesh | None=..., pointcloud: global___PointCloud | None=..., label: builtins.str=...) -> None:
...

def HasField(self, field_name: typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'mesh', b'mesh', 'sphere', b'sphere']) -> builtins.bool:
def HasField(self, field_name: typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'mesh', b'mesh', 'pointcloud', b'pointcloud', 'sphere', b'sphere']) -> builtins.bool:
...

def ClearField(self, field_name: typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'label', b'label', 'mesh', b'mesh', 'sphere', b'sphere']) -> None:
def ClearField(self, field_name: typing.Literal['box', b'box', 'capsule', b'capsule', 'center', b'center', 'geometry_type', b'geometry_type', 'label', b'label', 'mesh', b'mesh', 'pointcloud', b'pointcloud', 'sphere', b'sphere']) -> None:
...

def WhichOneof(self, oneof_group: typing.Literal['geometry_type', b'geometry_type']) -> typing.Literal['sphere', 'box', 'capsule', 'mesh'] | None:
def WhichOneof(self, oneof_group: typing.Literal['geometry_type', b'geometry_type']) -> typing.Literal['sphere', 'box', 'capsule', 'mesh', 'pointcloud'] | None:
...
global___Geometry = Geometry

Expand Down Expand Up @@ -376,8 +394,12 @@ class Transform(google.protobuf.message.Message):
REFERENCE_FRAME_FIELD_NUMBER: builtins.int
POSE_IN_OBSERVER_FRAME_FIELD_NUMBER: builtins.int
PHYSICAL_OBJECT_FIELD_NUMBER: builtins.int
UUID_FIELD_NUMBER: builtins.int
METADATA_FIELD_NUMBER: builtins.int
reference_frame: builtins.str
'the name of a given reference frame'
uuid: builtins.bytes
'The UUID of the transform'

@property
def pose_in_observer_frame(self) -> global___PoseInFrame:
Expand All @@ -387,15 +409,24 @@ class Transform(google.protobuf.message.Message):
def physical_object(self) -> global___Geometry:
...

def __init__(self, *, reference_frame: builtins.str=..., pose_in_observer_frame: global___PoseInFrame | None=..., physical_object: global___Geometry | None=...) -> None:
@property
def metadata(self) -> google.protobuf.struct_pb2.Struct:
"""Can hold information like color, opacity, points colors, collision_allowed, etc..."""

def __init__(self, *, reference_frame: builtins.str=..., pose_in_observer_frame: global___PoseInFrame | None=..., physical_object: global___Geometry | None=..., uuid: builtins.bytes=..., metadata: google.protobuf.struct_pb2.Struct | None=...) -> None:
...

def HasField(self, field_name: typing.Literal['_metadata', b'_metadata', '_physical_object', b'_physical_object', 'metadata', b'metadata', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame']) -> builtins.bool:
...

def HasField(self, field_name: typing.Literal['_physical_object', b'_physical_object', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame']) -> builtins.bool:
def ClearField(self, field_name: typing.Literal['_metadata', b'_metadata', '_physical_object', b'_physical_object', 'metadata', b'metadata', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame', 'reference_frame', b'reference_frame', 'uuid', b'uuid']) -> None:
...

def ClearField(self, field_name: typing.Literal['_physical_object', b'_physical_object', 'physical_object', b'physical_object', 'pose_in_observer_frame', b'pose_in_observer_frame', 'reference_frame', b'reference_frame']) -> None:
@typing.overload
def WhichOneof(self, oneof_group: typing.Literal['_metadata', b'_metadata']) -> typing.Literal['metadata'] | None:
...

@typing.overload
def WhichOneof(self, oneof_group: typing.Literal['_physical_object', b'_physical_object']) -> typing.Literal['physical_object'] | None:
...
global___Transform = Transform
Expand Down
Empty file.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import abc
import typing
import grpclib.const
import grpclib.client
import grpclib.exceptions
if typing.TYPE_CHECKING:
import grpclib.server
from .... import common
import google.api.annotations_pb2
import google.protobuf.field_mask_pb2
import google.protobuf.struct_pb2
from .... import service

class WorldStateStoreServiceBase(abc.ABC):

@abc.abstractmethod
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:
pass

@abc.abstractmethod
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:
pass

@abc.abstractmethod
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:
pass

@abc.abstractmethod
async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
pass

def __mapping__(self) -> typing.Dict[str, grpclib.const.Handler]:
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)}

class UnimplementedWorldStateStoreServiceBase(WorldStateStoreServiceBase):

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:
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)

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:
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)

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:
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)

async def DoCommand(self, stream: 'grpclib.server.Stream[common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse]') -> None:
raise grpclib.exceptions.GRPCError(grpclib.const.Status.UNIMPLEMENTED)

class WorldStateStoreServiceStub:

def __init__(self, channel: grpclib.client.Channel) -> None:
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)
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)
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)
self.DoCommand = grpclib.client.UnaryUnaryMethod(channel, '/viam.service.worldstatestore.v1.WorldStateStoreService/DoCommand', common.v1.common_pb2.DoCommandRequest, common.v1.common_pb2.DoCommandResponse)
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 2, '', 'service/worldstatestore/v1/world_state_store.proto')
_sym_db = _symbol_database.Default()
from ....common.v1 import common_pb2 as common_dot_v1_dot_common__pb2
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
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')
_globals = globals()
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'service.worldstatestore.v1.world_state_store_pb2', _globals)
if not _descriptor._USE_C_DESCRIPTORS:
_globals['DESCRIPTOR']._loaded_options = None
_globals['DESCRIPTOR']._serialized_options = b'\n#com.viam.service.worldstatestore.v1Z*go.viam.com/api/service/worldstatestore/v1'
_globals['_WORLDSTATESTORESERVICE'].methods_by_name['StreamTransformChanges']._loaded_options = None
_globals['_WORLDSTATESTORESERVICE'].methods_by_name['StreamTransformChanges']._serialized_options = b'\x82\xd3\xe4\x93\x02F\x12D/viam/api/v1/service/worldstatestore/{name}/stream_transform_changes'
_globals['_WORLDSTATESTORESERVICE'].methods_by_name['DoCommand']._loaded_options = None
_globals['_WORLDSTATESTORESERVICE'].methods_by_name['DoCommand']._serialized_options = b'\x82\xd3\xe4\x93\x028"6/viam/api/v1/service/worldstatestore/{name}/do_command'
_globals['_TRANSFORMCHANGETYPE']._serialized_start = 873
_globals['_TRANSFORMCHANGETYPE']._serialized_end = 1036
_globals['_LISTUUIDSREQUEST']._serialized_start = 205
_globals['_LISTUUIDSREQUEST']._serialized_end = 290
_globals['_LISTUUIDSRESPONSE']._serialized_start = 292
_globals['_LISTUUIDSRESPONSE']._serialized_end = 333
_globals['_GETTRANSFORMREQUEST']._serialized_start = 335
_globals['_GETTRANSFORMREQUEST']._serialized_end = 443
_globals['_GETTRANSFORMRESPONSE']._serialized_start = 445
_globals['_GETTRANSFORMRESPONSE']._serialized_end = 524
_globals['_STREAMTRANSFORMCHANGESREQUEST']._serialized_start = 526
_globals['_STREAMTRANSFORMCHANGESREQUEST']._serialized_end = 624
_globals['_STREAMTRANSFORMCHANGESRESPONSE']._serialized_start = 627
_globals['_STREAMTRANSFORMCHANGESRESPONSE']._serialized_end = 870
_globals['_WORLDSTATESTORESERVICE']._serialized_start = 1039
_globals['_WORLDSTATESTORESERVICE']._serialized_end = 1691
Loading
Loading