diff --git a/examples/python/route_guide/route_guide_client.py b/examples/python/route_guide/route_guide_client.py index dc93fb44379..49a9fc07e79 100644 --- a/examples/python/route_guide/route_guide_client.py +++ b/examples/python/route_guide/route_guide_client.py @@ -20,15 +20,15 @@ import logging import grpc -import route_guide_pb2 -import route_guide_pb2_grpc +protos, services = grpc.protos_and_services("protos/route_guide.proto", + include_paths=["../.."]) import route_guide_resources def make_route_note(message, latitude, longitude): - return route_guide_pb2.RouteNote( + return protos.RouteNote( message=message, - location=route_guide_pb2.Point(latitude=latitude, longitude=longitude)) + location=protos.Point(latitude=latitude, longitude=longitude)) def guide_get_one_feature(stub, point): @@ -45,15 +45,15 @@ def guide_get_one_feature(stub, point): def guide_get_feature(stub): guide_get_one_feature(stub, - route_guide_pb2.Point( + protos.Point( latitude=409146138, longitude=-746188906)) - guide_get_one_feature(stub, route_guide_pb2.Point(latitude=0, longitude=0)) + guide_get_one_feature(stub, protos.Point(latitude=0, longitude=0)) def guide_list_features(stub): - rectangle = route_guide_pb2.Rectangle( - lo=route_guide_pb2.Point(latitude=400000000, longitude=-750000000), - hi=route_guide_pb2.Point(latitude=420000000, longitude=-730000000)) + rectangle = protos.Rectangle( + lo=protos.Point(latitude=400000000, longitude=-750000000), + hi=protos.Point(latitude=420000000, longitude=-730000000)) print("Looking for features between 40, -75 and 42, -73") features = stub.ListFeatures(rectangle) @@ -105,7 +105,7 @@ def run(): # used in circumstances in which the with statement does not fit the needs # of the code. with grpc.insecure_channel('localhost:50051') as channel: - stub = route_guide_pb2_grpc.RouteGuideStub(channel) + stub = services.RouteGuideStub(channel) print("-------------- GetFeature --------------") guide_get_feature(stub) print("-------------- ListFeatures --------------") diff --git a/examples/python/route_guide/route_guide_pb2.py b/examples/python/route_guide/route_guide_pb2.py deleted file mode 100644 index fbbc194a580..00000000000 --- a/examples/python/route_guide/route_guide_pb2.py +++ /dev/null @@ -1,331 +0,0 @@ -# Generated by the protocol buffer compiler. DO NOT EDIT! -# source: route_guide.proto - -import sys -_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1')) -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection -from google.protobuf import symbol_database as _symbol_database -from google.protobuf import descriptor_pb2 -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor.FileDescriptor( - name='route_guide.proto', - package='routeguide', - syntax='proto3', - serialized_pb=_b('\n\x11route_guide.proto\x12\nrouteguide\",\n\x05Point\x12\x10\n\x08latitude\x18\x01 \x01(\x05\x12\x11\n\tlongitude\x18\x02 \x01(\x05\"I\n\tRectangle\x12\x1d\n\x02lo\x18\x01 \x01(\x0b\x32\x11.routeguide.Point\x12\x1d\n\x02hi\x18\x02 \x01(\x0b\x32\x11.routeguide.Point\"<\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x08location\x18\x02 \x01(\x0b\x32\x11.routeguide.Point\"A\n\tRouteNote\x12#\n\x08location\x18\x01 \x01(\x0b\x32\x11.routeguide.Point\x12\x0f\n\x07message\x18\x02 \x01(\t\"b\n\x0cRouteSummary\x12\x13\n\x0bpoint_count\x18\x01 \x01(\x05\x12\x15\n\rfeature_count\x18\x02 \x01(\x05\x12\x10\n\x08\x64istance\x18\x03 \x01(\x05\x12\x14\n\x0c\x65lapsed_time\x18\x04 \x01(\x05\x32\x85\x02\n\nRouteGuide\x12\x36\n\nGetFeature\x12\x11.routeguide.Point\x1a\x13.routeguide.Feature\"\x00\x12>\n\x0cListFeatures\x12\x15.routeguide.Rectangle\x1a\x13.routeguide.Feature\"\x00\x30\x01\x12>\n\x0bRecordRoute\x12\x11.routeguide.Point\x1a\x18.routeguide.RouteSummary\"\x00(\x01\x12?\n\tRouteChat\x12\x15.routeguide.RouteNote\x1a\x15.routeguide.RouteNote\"\x00(\x01\x30\x01\x42\x36\n\x1bio.grpc.examples.routeguideB\x0fRouteGuideProtoP\x01\xa2\x02\x03RTGb\x06proto3') -) - - - - -_POINT = _descriptor.Descriptor( - name='Point', - full_name='routeguide.Point', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='latitude', full_name='routeguide.Point.latitude', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='longitude', full_name='routeguide.Point.longitude', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=33, - serialized_end=77, -) - - -_RECTANGLE = _descriptor.Descriptor( - name='Rectangle', - full_name='routeguide.Rectangle', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='lo', full_name='routeguide.Rectangle.lo', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='hi', full_name='routeguide.Rectangle.hi', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=79, - serialized_end=152, -) - - -_FEATURE = _descriptor.Descriptor( - name='Feature', - full_name='routeguide.Feature', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='routeguide.Feature.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='location', full_name='routeguide.Feature.location', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=154, - serialized_end=214, -) - - -_ROUTENOTE = _descriptor.Descriptor( - name='RouteNote', - full_name='routeguide.RouteNote', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='location', full_name='routeguide.RouteNote.location', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='message', full_name='routeguide.RouteNote.message', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=_b("").decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=216, - serialized_end=281, -) - - -_ROUTESUMMARY = _descriptor.Descriptor( - name='RouteSummary', - full_name='routeguide.RouteSummary', - filename=None, - file=DESCRIPTOR, - containing_type=None, - fields=[ - _descriptor.FieldDescriptor( - name='point_count', full_name='routeguide.RouteSummary.point_count', index=0, - number=1, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='feature_count', full_name='routeguide.RouteSummary.feature_count', index=1, - number=2, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='distance', full_name='routeguide.RouteSummary.distance', index=2, - number=3, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - _descriptor.FieldDescriptor( - name='elapsed_time', full_name='routeguide.RouteSummary.elapsed_time', index=3, - number=4, type=5, cpp_type=1, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - options=None), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=283, - serialized_end=381, -) - -_RECTANGLE.fields_by_name['lo'].message_type = _POINT -_RECTANGLE.fields_by_name['hi'].message_type = _POINT -_FEATURE.fields_by_name['location'].message_type = _POINT -_ROUTENOTE.fields_by_name['location'].message_type = _POINT -DESCRIPTOR.message_types_by_name['Point'] = _POINT -DESCRIPTOR.message_types_by_name['Rectangle'] = _RECTANGLE -DESCRIPTOR.message_types_by_name['Feature'] = _FEATURE -DESCRIPTOR.message_types_by_name['RouteNote'] = _ROUTENOTE -DESCRIPTOR.message_types_by_name['RouteSummary'] = _ROUTESUMMARY -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -Point = _reflection.GeneratedProtocolMessageType('Point', (_message.Message,), dict( - DESCRIPTOR = _POINT, - __module__ = 'route_guide_pb2' - # @@protoc_insertion_point(class_scope:routeguide.Point) - )) -_sym_db.RegisterMessage(Point) - -Rectangle = _reflection.GeneratedProtocolMessageType('Rectangle', (_message.Message,), dict( - DESCRIPTOR = _RECTANGLE, - __module__ = 'route_guide_pb2' - # @@protoc_insertion_point(class_scope:routeguide.Rectangle) - )) -_sym_db.RegisterMessage(Rectangle) - -Feature = _reflection.GeneratedProtocolMessageType('Feature', (_message.Message,), dict( - DESCRIPTOR = _FEATURE, - __module__ = 'route_guide_pb2' - # @@protoc_insertion_point(class_scope:routeguide.Feature) - )) -_sym_db.RegisterMessage(Feature) - -RouteNote = _reflection.GeneratedProtocolMessageType('RouteNote', (_message.Message,), dict( - DESCRIPTOR = _ROUTENOTE, - __module__ = 'route_guide_pb2' - # @@protoc_insertion_point(class_scope:routeguide.RouteNote) - )) -_sym_db.RegisterMessage(RouteNote) - -RouteSummary = _reflection.GeneratedProtocolMessageType('RouteSummary', (_message.Message,), dict( - DESCRIPTOR = _ROUTESUMMARY, - __module__ = 'route_guide_pb2' - # @@protoc_insertion_point(class_scope:routeguide.RouteSummary) - )) -_sym_db.RegisterMessage(RouteSummary) - - -DESCRIPTOR.has_options = True -DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\033io.grpc.examples.routeguideB\017RouteGuideProtoP\001\242\002\003RTG')) - -_ROUTEGUIDE = _descriptor.ServiceDescriptor( - name='RouteGuide', - full_name='routeguide.RouteGuide', - file=DESCRIPTOR, - index=0, - options=None, - serialized_start=384, - serialized_end=645, - methods=[ - _descriptor.MethodDescriptor( - name='GetFeature', - full_name='routeguide.RouteGuide.GetFeature', - index=0, - containing_service=None, - input_type=_POINT, - output_type=_FEATURE, - options=None, - ), - _descriptor.MethodDescriptor( - name='ListFeatures', - full_name='routeguide.RouteGuide.ListFeatures', - index=1, - containing_service=None, - input_type=_RECTANGLE, - output_type=_FEATURE, - options=None, - ), - _descriptor.MethodDescriptor( - name='RecordRoute', - full_name='routeguide.RouteGuide.RecordRoute', - index=2, - containing_service=None, - input_type=_POINT, - output_type=_ROUTESUMMARY, - options=None, - ), - _descriptor.MethodDescriptor( - name='RouteChat', - full_name='routeguide.RouteGuide.RouteChat', - index=3, - containing_service=None, - input_type=_ROUTENOTE, - output_type=_ROUTENOTE, - options=None, - ), -]) -_sym_db.RegisterServiceDescriptor(_ROUTEGUIDE) - -DESCRIPTOR.services_by_name['RouteGuide'] = _ROUTEGUIDE - -# @@protoc_insertion_point(module_scope) diff --git a/examples/python/route_guide/route_guide_pb2_grpc.py b/examples/python/route_guide/route_guide_pb2_grpc.py deleted file mode 100644 index 05c1b793128..00000000000 --- a/examples/python/route_guide/route_guide_pb2_grpc.py +++ /dev/null @@ -1,113 +0,0 @@ -# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! -import grpc - -import route_guide_pb2 as route__guide__pb2 - - -class RouteGuideStub(object): - """Interface exported by the server. - """ - - def __init__(self, channel): - """Constructor. - - Args: - channel: A grpc.Channel. - """ - self.GetFeature = channel.unary_unary( - '/routeguide.RouteGuide/GetFeature', - request_serializer=route__guide__pb2.Point.SerializeToString, - response_deserializer=route__guide__pb2.Feature.FromString, - ) - self.ListFeatures = channel.unary_stream( - '/routeguide.RouteGuide/ListFeatures', - request_serializer=route__guide__pb2.Rectangle.SerializeToString, - response_deserializer=route__guide__pb2.Feature.FromString, - ) - self.RecordRoute = channel.stream_unary( - '/routeguide.RouteGuide/RecordRoute', - request_serializer=route__guide__pb2.Point.SerializeToString, - response_deserializer=route__guide__pb2.RouteSummary.FromString, - ) - self.RouteChat = channel.stream_stream( - '/routeguide.RouteGuide/RouteChat', - request_serializer=route__guide__pb2.RouteNote.SerializeToString, - response_deserializer=route__guide__pb2.RouteNote.FromString, - ) - - -class RouteGuideServicer(object): - """Interface exported by the server. - """ - - def GetFeature(self, request, context): - """A simple RPC. - - Obtains the feature at a given position. - - A feature with an empty name is returned if there's no feature at the given - position. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def ListFeatures(self, request, context): - """A server-to-client streaming RPC. - - Obtains the Features available within the given Rectangle. Results are - streamed rather than returned at once (e.g. in a response message with a - repeated field), as the rectangle may cover a large area and contain a - huge number of features. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RecordRoute(self, request_iterator, context): - """A client-to-server streaming RPC. - - Accepts a stream of Points on a route being traversed, returning a - RouteSummary when traversal is completed. - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - def RouteChat(self, request_iterator, context): - """A Bidirectional streaming RPC. - - Accepts a stream of RouteNotes sent while a route is being traversed, - while receiving other RouteNotes (e.g. from other users). - """ - context.set_code(grpc.StatusCode.UNIMPLEMENTED) - context.set_details('Method not implemented!') - raise NotImplementedError('Method not implemented!') - - -def add_RouteGuideServicer_to_server(servicer, server): - rpc_method_handlers = { - 'GetFeature': grpc.unary_unary_rpc_method_handler( - servicer.GetFeature, - request_deserializer=route__guide__pb2.Point.FromString, - response_serializer=route__guide__pb2.Feature.SerializeToString, - ), - 'ListFeatures': grpc.unary_stream_rpc_method_handler( - servicer.ListFeatures, - request_deserializer=route__guide__pb2.Rectangle.FromString, - response_serializer=route__guide__pb2.Feature.SerializeToString, - ), - 'RecordRoute': grpc.stream_unary_rpc_method_handler( - servicer.RecordRoute, - request_deserializer=route__guide__pb2.Point.FromString, - response_serializer=route__guide__pb2.RouteSummary.SerializeToString, - ), - 'RouteChat': grpc.stream_stream_rpc_method_handler( - servicer.RouteChat, - request_deserializer=route__guide__pb2.RouteNote.FromString, - response_serializer=route__guide__pb2.RouteNote.SerializeToString, - ), - } - generic_handler = grpc.method_handlers_generic_handler( - 'routeguide.RouteGuide', rpc_method_handlers) - server.add_generic_rpc_handlers((generic_handler,)) diff --git a/examples/python/route_guide/route_guide_resources.py b/examples/python/route_guide/route_guide_resources.py index ace85d6f9d4..9d232e7e940 100644 --- a/examples/python/route_guide/route_guide_resources.py +++ b/examples/python/route_guide/route_guide_resources.py @@ -15,7 +15,9 @@ import json -import route_guide_pb2 +import grpc +protos = grpc.protos("protos/route_guide.proto", + include_paths=["../.."]) def read_route_guide_database(): @@ -23,14 +25,14 @@ def read_route_guide_database(): Returns: The full contents of the route guide database as a sequence of - route_guide_pb2.Features. + protos.Features. """ feature_list = [] with open("route_guide_db.json") as route_guide_db_file: for item in json.load(route_guide_db_file): - feature = route_guide_pb2.Feature( + feature = protos.Feature( name=item["name"], - location=route_guide_pb2.Point( + location=protos.Point( latitude=item["location"]["latitude"], longitude=item["location"]["longitude"])) feature_list.append(feature) diff --git a/examples/python/route_guide/route_guide_server.py b/examples/python/route_guide/route_guide_server.py index 4ab33e68f28..2d03f7f0cda 100644 --- a/examples/python/route_guide/route_guide_server.py +++ b/examples/python/route_guide/route_guide_server.py @@ -20,8 +20,8 @@ import logging import grpc -import route_guide_pb2 -import route_guide_pb2_grpc +protos, services = grpc.protos_and_services("protos/route_guide.proto", + include_paths=["../.."]) import route_guide_resources @@ -55,7 +55,7 @@ def get_distance(start, end): return R * c -class RouteGuideServicer(route_guide_pb2_grpc.RouteGuideServicer): +class RouteGuideServicer(services.RouteGuideServicer): """Provides methods that implement functionality of route guide server.""" def __init__(self): @@ -64,7 +64,7 @@ class RouteGuideServicer(route_guide_pb2_grpc.RouteGuideServicer): def GetFeature(self, request, context): feature = get_feature(self.db, request) if feature is None: - return route_guide_pb2.Feature(name="", location=request) + return protos.Feature(name="", location=request) else: return feature @@ -96,7 +96,7 @@ class RouteGuideServicer(route_guide_pb2_grpc.RouteGuideServicer): prev_point = point elapsed_time = time.time() - start_time - return route_guide_pb2.RouteSummary( + return protos.RouteSummary( point_count=point_count, feature_count=feature_count, distance=int(distance), @@ -113,7 +113,7 @@ class RouteGuideServicer(route_guide_pb2_grpc.RouteGuideServicer): def serve(): server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) - route_guide_pb2_grpc.add_RouteGuideServicer_to_server( + services.add_RouteGuideServicer_to_server( RouteGuideServicer(), server) server.add_insecure_port('[::]:50051') server.start() diff --git a/examples/python/route_guide/run_codegen.py b/examples/python/route_guide/run_codegen.py deleted file mode 100644 index 8df562d3497..00000000000 --- a/examples/python/route_guide/run_codegen.py +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2015 gRPC authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -"""Runs protoc with the gRPC plugin to generate messages and gRPC stubs.""" - -from grpc_tools import protoc - -protoc.main(( - '', - '-I../../protos', - '--python_out=.', - '--grpc_python_out=.', - '../../protos/route_guide.proto', -))