From 873cafef39676162dad6ac55b83022a1ef8109c7 Mon Sep 17 00:00:00 2001 From: Michel Aractingi Date: Thu, 4 Sep 2025 15:31:21 +0200 Subject: [PATCH] Downgrade the version of grpc and protobuf to fix the conflicting requirements of reachy2_sdk Update automatically generated proto files --- pyproject.toml | 2 +- src/lerobot/transport/services_pb2.py | 55 +++++----- src/lerobot/transport/services_pb2_grpc.py | 114 ++++++++++----------- 3 files changed, 86 insertions(+), 85 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index db8689fd3..4309c4822 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -96,7 +96,7 @@ dependencies = [ pygame-dep = ["pygame>=2.5.1"] placo-dep = ["placo>=0.9.6"] transformers-dep = ["transformers>=4.50.3,<4.52.0"] # TODO: Bumb dependency -grpcio-dep = ["grpcio==1.73.1", "protobuf==6.31.0"] +grpcio-dep = ["grpcio==1.70.0", "protobuf==5.29.5"] # Motors feetech = ["feetech-servo-sdk>=1.0.0"] diff --git a/src/lerobot/transport/services_pb2.py b/src/lerobot/transport/services_pb2.py index 05f2d174f..c6f02958b 100644 --- a/src/lerobot/transport/services_pb2.py +++ b/src/lerobot/transport/services_pb2.py @@ -1,7 +1,8 @@ +# -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # NO CHECKED-IN PROTOBUF GENCODE -# source: lerobot/transport/services.proto -# Protobuf Python Version: 6.31.0 +# source: services.proto +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -10,11 +11,11 @@ from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder _runtime_version.ValidateProtobufRuntimeVersion( _runtime_version.Domain.PUBLIC, - 6, - 31, + 5, + 29, 0, '', - 'lerobot/transport/services.proto' + 'services.proto' ) # @@protoc_insertion_point(imports) @@ -23,31 +24,31 @@ _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n lerobot/transport/services.proto\x12\ttransport\"L\n\nTransition\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"L\n\nParameters\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"T\n\x12InteractionMessage\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"M\n\x0bObservation\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x17\n\x07\x41\x63tions\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x1b\n\x0bPolicySetup\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x07\n\x05\x45mpty*`\n\rTransferState\x12\x14\n\x10TRANSFER_UNKNOWN\x10\x00\x12\x12\n\x0eTRANSFER_BEGIN\x10\x01\x12\x13\n\x0fTRANSFER_MIDDLE\x10\x02\x12\x10\n\x0cTRANSFER_END\x10\x03\x32\x81\x02\n\x0eLearnerService\x12=\n\x10StreamParameters\x12\x10.transport.Empty\x1a\x15.transport.Parameters0\x01\x12<\n\x0fSendTransitions\x12\x15.transport.Transition\x1a\x10.transport.Empty(\x01\x12\x45\n\x10SendInteractions\x12\x1d.transport.InteractionMessage\x1a\x10.transport.Empty(\x01\x12+\n\x05Ready\x12\x10.transport.Empty\x1a\x10.transport.Empty2\xf5\x01\n\x0e\x41syncInference\x12>\n\x10SendObservations\x12\x16.transport.Observation\x1a\x10.transport.Empty(\x01\x12\x32\n\nGetActions\x12\x10.transport.Empty\x1a\x12.transport.Actions\x12\x42\n\x16SendPolicyInstructions\x12\x16.transport.PolicySetup\x1a\x10.transport.Empty\x12+\n\x05Ready\x12\x10.transport.Empty\x1a\x10.transport.Emptyb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eservices.proto\x12\ttransport\"L\n\nTransition\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"L\n\nParameters\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"T\n\x12InteractionMessage\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"M\n\x0bObservation\x12\x30\n\x0etransfer_state\x18\x01 \x01(\x0e\x32\x18.transport.TransferState\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x17\n\x07\x41\x63tions\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x1b\n\x0bPolicySetup\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"\x07\n\x05\x45mpty*`\n\rTransferState\x12\x14\n\x10TRANSFER_UNKNOWN\x10\x00\x12\x12\n\x0eTRANSFER_BEGIN\x10\x01\x12\x13\n\x0fTRANSFER_MIDDLE\x10\x02\x12\x10\n\x0cTRANSFER_END\x10\x03\x32\x81\x02\n\x0eLearnerService\x12=\n\x10StreamParameters\x12\x10.transport.Empty\x1a\x15.transport.Parameters0\x01\x12<\n\x0fSendTransitions\x12\x15.transport.Transition\x1a\x10.transport.Empty(\x01\x12\x45\n\x10SendInteractions\x12\x1d.transport.InteractionMessage\x1a\x10.transport.Empty(\x01\x12+\n\x05Ready\x12\x10.transport.Empty\x1a\x10.transport.Empty2\xf5\x01\n\x0e\x41syncInference\x12>\n\x10SendObservations\x12\x16.transport.Observation\x1a\x10.transport.Empty(\x01\x12\x32\n\nGetActions\x12\x10.transport.Empty\x1a\x12.transport.Actions\x12\x42\n\x16SendPolicyInstructions\x12\x16.transport.PolicySetup\x1a\x10.transport.Empty\x12+\n\x05Ready\x12\x10.transport.Empty\x1a\x10.transport.Emptyb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'lerobot.transport.services_pb2', _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'services_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: DESCRIPTOR._loaded_options = None - _globals['_TRANSFERSTATE']._serialized_start=431 - _globals['_TRANSFERSTATE']._serialized_end=527 - _globals['_TRANSITION']._serialized_start=47 - _globals['_TRANSITION']._serialized_end=123 - _globals['_PARAMETERS']._serialized_start=125 - _globals['_PARAMETERS']._serialized_end=201 - _globals['_INTERACTIONMESSAGE']._serialized_start=203 - _globals['_INTERACTIONMESSAGE']._serialized_end=287 - _globals['_OBSERVATION']._serialized_start=289 - _globals['_OBSERVATION']._serialized_end=366 - _globals['_ACTIONS']._serialized_start=368 - _globals['_ACTIONS']._serialized_end=391 - _globals['_POLICYSETUP']._serialized_start=393 - _globals['_POLICYSETUP']._serialized_end=420 - _globals['_EMPTY']._serialized_start=422 - _globals['_EMPTY']._serialized_end=429 - _globals['_LEARNERSERVICE']._serialized_start=530 - _globals['_LEARNERSERVICE']._serialized_end=787 - _globals['_ASYNCINFERENCE']._serialized_start=790 - _globals['_ASYNCINFERENCE']._serialized_end=1035 + _globals['_TRANSFERSTATE']._serialized_start=413 + _globals['_TRANSFERSTATE']._serialized_end=509 + _globals['_TRANSITION']._serialized_start=29 + _globals['_TRANSITION']._serialized_end=105 + _globals['_PARAMETERS']._serialized_start=107 + _globals['_PARAMETERS']._serialized_end=183 + _globals['_INTERACTIONMESSAGE']._serialized_start=185 + _globals['_INTERACTIONMESSAGE']._serialized_end=269 + _globals['_OBSERVATION']._serialized_start=271 + _globals['_OBSERVATION']._serialized_end=348 + _globals['_ACTIONS']._serialized_start=350 + _globals['_ACTIONS']._serialized_end=373 + _globals['_POLICYSETUP']._serialized_start=375 + _globals['_POLICYSETUP']._serialized_end=402 + _globals['_EMPTY']._serialized_start=404 + _globals['_EMPTY']._serialized_end=411 + _globals['_LEARNERSERVICE']._serialized_start=512 + _globals['_LEARNERSERVICE']._serialized_end=769 + _globals['_ASYNCINFERENCE']._serialized_start=772 + _globals['_ASYNCINFERENCE']._serialized_end=1017 # @@protoc_insertion_point(module_scope) diff --git a/src/lerobot/transport/services_pb2_grpc.py b/src/lerobot/transport/services_pb2_grpc.py index 35a01b675..a24f52cea 100644 --- a/src/lerobot/transport/services_pb2_grpc.py +++ b/src/lerobot/transport/services_pb2_grpc.py @@ -3,9 +3,9 @@ import grpc import warnings -from lerobot.transport import services_pb2 as lerobot_dot_transport_dot_services__pb2 +import services_pb2 as services__pb2 -GRPC_GENERATED_VERSION = '1.73.1' +GRPC_GENERATED_VERSION = '1.70.0' GRPC_VERSION = grpc.__version__ _version_not_supported = False @@ -18,14 +18,14 @@ except ImportError: if _version_not_supported: raise RuntimeError( f'The grpc package installed is at version {GRPC_VERSION},' - + f' but the generated code in lerobot/transport/services_pb2_grpc.py depends on' + + f' but the generated code in services_pb2_grpc.py depends on' + f' grpcio>={GRPC_GENERATED_VERSION}.' + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' ) -class LearnerServiceStub: +class LearnerServiceStub(object): """LearnerService: the Actor calls this to push transitions. The Learner implements this service. """ @@ -38,27 +38,27 @@ class LearnerServiceStub: """ self.StreamParameters = channel.unary_stream( '/transport.LearnerService/StreamParameters', - request_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Parameters.FromString, + request_serializer=services__pb2.Empty.SerializeToString, + response_deserializer=services__pb2.Parameters.FromString, _registered_method=True) self.SendTransitions = channel.stream_unary( '/transport.LearnerService/SendTransitions', - request_serializer=lerobot_dot_transport_dot_services__pb2.Transition.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, + request_serializer=services__pb2.Transition.SerializeToString, + response_deserializer=services__pb2.Empty.FromString, _registered_method=True) self.SendInteractions = channel.stream_unary( '/transport.LearnerService/SendInteractions', - request_serializer=lerobot_dot_transport_dot_services__pb2.InteractionMessage.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, + request_serializer=services__pb2.InteractionMessage.SerializeToString, + response_deserializer=services__pb2.Empty.FromString, _registered_method=True) self.Ready = channel.unary_unary( '/transport.LearnerService/Ready', - request_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, + request_serializer=services__pb2.Empty.SerializeToString, + response_deserializer=services__pb2.Empty.FromString, _registered_method=True) -class LearnerServiceServicer: +class LearnerServiceServicer(object): """LearnerService: the Actor calls this to push transitions. The Learner implements this service. """ @@ -93,23 +93,23 @@ def add_LearnerServiceServicer_to_server(servicer, server): rpc_method_handlers = { 'StreamParameters': grpc.unary_stream_rpc_method_handler( servicer.StreamParameters, - request_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Parameters.SerializeToString, + request_deserializer=services__pb2.Empty.FromString, + response_serializer=services__pb2.Parameters.SerializeToString, ), 'SendTransitions': grpc.stream_unary_rpc_method_handler( servicer.SendTransitions, - request_deserializer=lerobot_dot_transport_dot_services__pb2.Transition.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, + request_deserializer=services__pb2.Transition.FromString, + response_serializer=services__pb2.Empty.SerializeToString, ), 'SendInteractions': grpc.stream_unary_rpc_method_handler( servicer.SendInteractions, - request_deserializer=lerobot_dot_transport_dot_services__pb2.InteractionMessage.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, + request_deserializer=services__pb2.InteractionMessage.FromString, + response_serializer=services__pb2.Empty.SerializeToString, ), 'Ready': grpc.unary_unary_rpc_method_handler( servicer.Ready, - request_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, + request_deserializer=services__pb2.Empty.FromString, + response_serializer=services__pb2.Empty.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( @@ -119,7 +119,7 @@ def add_LearnerServiceServicer_to_server(servicer, server): # This class is part of an EXPERIMENTAL API. -class LearnerService: +class LearnerService(object): """LearnerService: the Actor calls this to push transitions. The Learner implements this service. """ @@ -139,8 +139,8 @@ class LearnerService: request, target, '/transport.LearnerService/StreamParameters', - lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Parameters.FromString, + services__pb2.Empty.SerializeToString, + services__pb2.Parameters.FromString, options, channel_credentials, insecure, @@ -166,8 +166,8 @@ class LearnerService: request_iterator, target, '/transport.LearnerService/SendTransitions', - lerobot_dot_transport_dot_services__pb2.Transition.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Empty.FromString, + services__pb2.Transition.SerializeToString, + services__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -193,8 +193,8 @@ class LearnerService: request_iterator, target, '/transport.LearnerService/SendInteractions', - lerobot_dot_transport_dot_services__pb2.InteractionMessage.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Empty.FromString, + services__pb2.InteractionMessage.SerializeToString, + services__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -220,8 +220,8 @@ class LearnerService: request, target, '/transport.LearnerService/Ready', - lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Empty.FromString, + services__pb2.Empty.SerializeToString, + services__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -233,7 +233,7 @@ class LearnerService: _registered_method=True) -class AsyncInferenceStub: +class AsyncInferenceStub(object): """AsyncInference: from Robot perspective Robot send observations to & executes action received from a remote Policy server """ @@ -246,27 +246,27 @@ class AsyncInferenceStub: """ self.SendObservations = channel.stream_unary( '/transport.AsyncInference/SendObservations', - request_serializer=lerobot_dot_transport_dot_services__pb2.Observation.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, + request_serializer=services__pb2.Observation.SerializeToString, + response_deserializer=services__pb2.Empty.FromString, _registered_method=True) self.GetActions = channel.unary_unary( '/transport.AsyncInference/GetActions', - request_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Actions.FromString, + request_serializer=services__pb2.Empty.SerializeToString, + response_deserializer=services__pb2.Actions.FromString, _registered_method=True) self.SendPolicyInstructions = channel.unary_unary( '/transport.AsyncInference/SendPolicyInstructions', - request_serializer=lerobot_dot_transport_dot_services__pb2.PolicySetup.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, + request_serializer=services__pb2.PolicySetup.SerializeToString, + response_deserializer=services__pb2.Empty.FromString, _registered_method=True) self.Ready = channel.unary_unary( '/transport.AsyncInference/Ready', - request_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - response_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, + request_serializer=services__pb2.Empty.SerializeToString, + response_deserializer=services__pb2.Empty.FromString, _registered_method=True) -class AsyncInferenceServicer: +class AsyncInferenceServicer(object): """AsyncInference: from Robot perspective Robot send observations to & executes action received from a remote Policy server """ @@ -302,23 +302,23 @@ def add_AsyncInferenceServicer_to_server(servicer, server): rpc_method_handlers = { 'SendObservations': grpc.stream_unary_rpc_method_handler( servicer.SendObservations, - request_deserializer=lerobot_dot_transport_dot_services__pb2.Observation.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, + request_deserializer=services__pb2.Observation.FromString, + response_serializer=services__pb2.Empty.SerializeToString, ), 'GetActions': grpc.unary_unary_rpc_method_handler( servicer.GetActions, - request_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Actions.SerializeToString, + request_deserializer=services__pb2.Empty.FromString, + response_serializer=services__pb2.Actions.SerializeToString, ), 'SendPolicyInstructions': grpc.unary_unary_rpc_method_handler( servicer.SendPolicyInstructions, - request_deserializer=lerobot_dot_transport_dot_services__pb2.PolicySetup.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, + request_deserializer=services__pb2.PolicySetup.FromString, + response_serializer=services__pb2.Empty.SerializeToString, ), 'Ready': grpc.unary_unary_rpc_method_handler( servicer.Ready, - request_deserializer=lerobot_dot_transport_dot_services__pb2.Empty.FromString, - response_serializer=lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, + request_deserializer=services__pb2.Empty.FromString, + response_serializer=services__pb2.Empty.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( @@ -328,7 +328,7 @@ def add_AsyncInferenceServicer_to_server(servicer, server): # This class is part of an EXPERIMENTAL API. -class AsyncInference: +class AsyncInference(object): """AsyncInference: from Robot perspective Robot send observations to & executes action received from a remote Policy server """ @@ -348,8 +348,8 @@ class AsyncInference: request_iterator, target, '/transport.AsyncInference/SendObservations', - lerobot_dot_transport_dot_services__pb2.Observation.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Empty.FromString, + services__pb2.Observation.SerializeToString, + services__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -375,8 +375,8 @@ class AsyncInference: request, target, '/transport.AsyncInference/GetActions', - lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Actions.FromString, + services__pb2.Empty.SerializeToString, + services__pb2.Actions.FromString, options, channel_credentials, insecure, @@ -402,8 +402,8 @@ class AsyncInference: request, target, '/transport.AsyncInference/SendPolicyInstructions', - lerobot_dot_transport_dot_services__pb2.PolicySetup.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Empty.FromString, + services__pb2.PolicySetup.SerializeToString, + services__pb2.Empty.FromString, options, channel_credentials, insecure, @@ -429,8 +429,8 @@ class AsyncInference: request, target, '/transport.AsyncInference/Ready', - lerobot_dot_transport_dot_services__pb2.Empty.SerializeToString, - lerobot_dot_transport_dot_services__pb2.Empty.FromString, + services__pb2.Empty.SerializeToString, + services__pb2.Empty.FromString, options, channel_credentials, insecure,