Skip to content
Snippets Groups Projects
Commit e7345955 authored by kpayson64's avatar kpayson64 Committed by GitHub
Browse files

Merge pull request #7419 from nathanielmanistaatgoogle/examples-v1.0.x

Update examples to GA API
parents 5e93d3ff 46585e23
No related branches found
No related tags found
No related merge requests found
...@@ -31,17 +31,15 @@ ...@@ -31,17 +31,15 @@
from __future__ import print_function from __future__ import print_function
from grpc.beta import implementations import grpc
import helloworld_pb2 import helloworld_pb2
_TIMEOUT_SECONDS = 10
def run(): def run():
channel = implementations.insecure_channel('localhost', 50051) channel = grpc.insecure_channel('localhost:50051')
stub = helloworld_pb2.beta_create_Greeter_stub(channel) stub = helloworld_pb2.GreeterStub(channel)
response = stub.SayHello(helloworld_pb2.HelloRequest(name='you'), _TIMEOUT_SECONDS) response = stub.SayHello(helloworld_pb2.HelloRequest(name='you'))
print("Greeter client received: " + response.message) print("Greeter client received: " + response.message)
......
...@@ -29,21 +29,25 @@ ...@@ -29,21 +29,25 @@
"""The Python implementation of the GRPC helloworld.Greeter server.""" """The Python implementation of the GRPC helloworld.Greeter server."""
from concurrent import futures
import time import time
import grpc
import helloworld_pb2 import helloworld_pb2
_ONE_DAY_IN_SECONDS = 60 * 60 * 24 _ONE_DAY_IN_SECONDS = 60 * 60 * 24
class Greeter(helloworld_pb2.BetaGreeterServicer): class Greeter(helloworld_pb2.GreeterServicer):
def SayHello(self, request, context): def SayHello(self, request, context):
return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name) return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name)
def serve(): def serve():
server = helloworld_pb2.beta_create_Greeter_server(Greeter()) server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
helloworld_pb2.add_GreeterServicer_to_server(Greeter(), server)
server.add_insecure_port('[::]:50051') server.add_insecure_port('[::]:50051')
server.start() server.start()
try: try:
......
...@@ -107,13 +107,55 @@ _sym_db.RegisterMessage(HelloReply) ...@@ -107,13 +107,55 @@ _sym_db.RegisterMessage(HelloReply)
DESCRIPTOR.has_options = True DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\033io.grpc.examples.helloworldB\017HelloWorldProtoP\001\242\002\003HLW')) DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\033io.grpc.examples.helloworldB\017HelloWorldProtoP\001\242\002\003HLW'))
import abc import grpc
import six
from grpc.beta import implementations as beta_implementations from grpc.beta import implementations as beta_implementations
from grpc.beta import interfaces as beta_interfaces from grpc.beta import interfaces as beta_interfaces
from grpc.framework.common import cardinality from grpc.framework.common import cardinality
from grpc.framework.interfaces.face import utilities as face_utilities from grpc.framework.interfaces.face import utilities as face_utilities
class GreeterStub(object):
"""The greeting service definition.
"""
def __init__(self, channel):
"""Constructor.
Args:
channel: A grpc.Channel.
"""
self.SayHello = channel.unary_unary(
'/helloworld.Greeter/SayHello',
request_serializer=HelloRequest.SerializeToString,
response_deserializer=HelloReply.FromString,
)
class GreeterServicer(object):
"""The greeting service definition.
"""
def SayHello(self, request, context):
"""Sends a greeting
"""
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
context.set_details('Method not implemented!')
raise NotImplementedError('Method not implemented!')
def add_GreeterServicer_to_server(servicer, server):
rpc_method_handlers = {
'SayHello': grpc.unary_unary_rpc_method_handler(
servicer.SayHello,
request_deserializer=HelloRequest.FromString,
response_serializer=HelloReply.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'helloworld.Greeter', rpc_method_handlers)
server.add_generic_rpc_handlers((generic_handler,))
class BetaGreeterServicer(object): class BetaGreeterServicer(object):
"""The greeting service definition. """The greeting service definition.
""" """
...@@ -122,23 +164,23 @@ class BetaGreeterServicer(object): ...@@ -122,23 +164,23 @@ class BetaGreeterServicer(object):
""" """
context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
class BetaGreeterStub(object): class BetaGreeterStub(object):
"""The greeting service definition. """The greeting service definition.
""" """
def SayHello(self, request, timeout): def SayHello(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
"""Sends a greeting """Sends a greeting
""" """
raise NotImplementedError() raise NotImplementedError()
SayHello.future = None SayHello.future = None
def beta_create_Greeter_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None): def beta_create_Greeter_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
import helloworld_pb2
import helloworld_pb2
request_deserializers = { request_deserializers = {
('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloRequest.FromString, ('helloworld.Greeter', 'SayHello'): HelloRequest.FromString,
} }
response_serializers = { response_serializers = {
('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloReply.SerializeToString, ('helloworld.Greeter', 'SayHello'): HelloReply.SerializeToString,
} }
method_implementations = { method_implementations = {
('helloworld.Greeter', 'SayHello'): face_utilities.unary_unary_inline(servicer.SayHello), ('helloworld.Greeter', 'SayHello'): face_utilities.unary_unary_inline(servicer.SayHello),
...@@ -146,14 +188,13 @@ def beta_create_Greeter_server(servicer, pool=None, pool_size=None, default_time ...@@ -146,14 +188,13 @@ def beta_create_Greeter_server(servicer, pool=None, pool_size=None, default_time
server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout) server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
return beta_implementations.server(method_implementations, options=server_options) return beta_implementations.server(method_implementations, options=server_options)
def beta_create_Greeter_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None): def beta_create_Greeter_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
import helloworld_pb2
import helloworld_pb2
request_serializers = { request_serializers = {
('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloRequest.SerializeToString, ('helloworld.Greeter', 'SayHello'): HelloRequest.SerializeToString,
} }
response_deserializers = { response_deserializers = {
('helloworld.Greeter', 'SayHello'): helloworld_pb2.HelloReply.FromString, ('helloworld.Greeter', 'SayHello'): HelloReply.FromString,
} }
cardinalities = { cardinalities = {
'SayHello': cardinality.Cardinality.UNARY_UNARY, 'SayHello': cardinality.Cardinality.UNARY_UNARY,
......
#!/bin/bash
# Copyright 2015, Google Inc. # Copyright 2015, Google Inc.
# All rights reserved. # All rights reserved.
# #
...@@ -28,5 +27,16 @@ ...@@ -28,5 +27,16 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Runs the protoc with gRPC plugin to generate protocol messages and gRPC stubs. """Runs protoc with the gRPC plugin to generate messages and gRPC stubs."""
python -m grpc.tools.protoc -I../../protos --python_out=. --grpc_python_out=. ../../protos/helloworld.proto
from grpc.tools import protoc
protoc.main(
(
'',
'-I../../protos',
'--python_out=.',
'--grpc_python_out=.',
'../../protos/helloworld.proto',
)
)
...@@ -34,13 +34,11 @@ from __future__ import print_function ...@@ -34,13 +34,11 @@ from __future__ import print_function
import random import random
import time import time
from grpc.beta import implementations import grpc
import route_guide_pb2 import route_guide_pb2
import route_guide_resources import route_guide_resources
_TIMEOUT_SECONDS = 30
def make_route_note(message, latitude, longitude): def make_route_note(message, latitude, longitude):
return route_guide_pb2.RouteNote( return route_guide_pb2.RouteNote(
...@@ -49,7 +47,7 @@ def make_route_note(message, latitude, longitude): ...@@ -49,7 +47,7 @@ def make_route_note(message, latitude, longitude):
def guide_get_one_feature(stub, point): def guide_get_one_feature(stub, point):
feature = stub.GetFeature(point, _TIMEOUT_SECONDS) feature = stub.GetFeature(point)
if not feature.location: if not feature.location:
print("Server returned incomplete feature") print("Server returned incomplete feature")
return return
...@@ -66,14 +64,12 @@ def guide_get_feature(stub): ...@@ -66,14 +64,12 @@ def guide_get_feature(stub):
def guide_list_features(stub): def guide_list_features(stub):
rect = route_guide_pb2.Rectangle( rectangle = route_guide_pb2.Rectangle(
lo=route_guide_pb2.Point( lo=route_guide_pb2.Point(latitude=400000000, longitude=-750000000),
latitude=400000000, longitude = -750000000), hi=route_guide_pb2.Point(latitude=420000000, longitude=-730000000))
hi=route_guide_pb2.Point(
latitude = 420000000, longitude = -730000000))
print("Looking for features between 40, -75 and 42, -73") print("Looking for features between 40, -75 and 42, -73")
features = stub.ListFeatures(rect, _TIMEOUT_SECONDS) features = stub.ListFeatures(rectangle)
for feature in features: for feature in features:
print("Feature called %s at %s" % (feature.name, feature.location)) print("Feature called %s at %s" % (feature.name, feature.location))
...@@ -90,8 +86,8 @@ def generate_route(feature_list): ...@@ -90,8 +86,8 @@ def generate_route(feature_list):
def guide_record_route(stub): def guide_record_route(stub):
feature_list = route_guide_resources.read_route_guide_database() feature_list = route_guide_resources.read_route_guide_database()
route_iter = generate_route(feature_list) route_iterator = generate_route(feature_list)
route_summary = stub.RecordRoute(route_iter, _TIMEOUT_SECONDS) route_summary = stub.RecordRoute(route_iterator)
print("Finished trip with %s points " % route_summary.point_count) print("Finished trip with %s points " % route_summary.point_count)
print("Passed %s features " % route_summary.feature_count) print("Passed %s features " % route_summary.feature_count)
print("Travelled %s meters " % route_summary.distance) print("Travelled %s meters " % route_summary.distance)
...@@ -113,14 +109,14 @@ def generate_messages(): ...@@ -113,14 +109,14 @@ def generate_messages():
def guide_route_chat(stub): def guide_route_chat(stub):
responses = stub.RouteChat(generate_messages(), _TIMEOUT_SECONDS) responses = stub.RouteChat(generate_messages())
for response in responses: for response in responses:
print("Received message %s at %s" % (response.message, response.location)) print("Received message %s at %s" % (response.message, response.location))
def run(): def run():
channel = implementations.insecure_channel('localhost', 50051) channel = grpc.insecure_channel('localhost:50051')
stub = route_guide_pb2.beta_create_RouteGuide_stub(channel) stub = route_guide_pb2.RouteGuideStub(channel)
print("-------------- GetFeature --------------") print("-------------- GetFeature --------------")
guide_get_feature(stub) guide_get_feature(stub)
print("-------------- ListFeatures --------------") print("-------------- ListFeatures --------------")
......
...@@ -277,13 +277,122 @@ _sym_db.RegisterMessage(RouteSummary) ...@@ -277,13 +277,122 @@ _sym_db.RegisterMessage(RouteSummary)
DESCRIPTOR.has_options = True DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\033io.grpc.examples.routeguideB\017RouteGuideProtoP\001\242\002\003RTG')) DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\033io.grpc.examples.routeguideB\017RouteGuideProtoP\001\242\002\003RTG'))
import abc import grpc
import six
from grpc.beta import implementations as beta_implementations from grpc.beta import implementations as beta_implementations
from grpc.beta import interfaces as beta_interfaces from grpc.beta import interfaces as beta_interfaces
from grpc.framework.common import cardinality from grpc.framework.common import cardinality
from grpc.framework.interfaces.face import utilities as face_utilities from grpc.framework.interfaces.face import utilities as face_utilities
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=Point.SerializeToString,
response_deserializer=Feature.FromString,
)
self.ListFeatures = channel.unary_stream(
'/routeguide.RouteGuide/ListFeatures',
request_serializer=Rectangle.SerializeToString,
response_deserializer=Feature.FromString,
)
self.RecordRoute = channel.stream_unary(
'/routeguide.RouteGuide/RecordRoute',
request_serializer=Point.SerializeToString,
response_deserializer=RouteSummary.FromString,
)
self.RouteChat = channel.stream_stream(
'/routeguide.RouteGuide/RouteChat',
request_serializer=RouteNote.SerializeToString,
response_deserializer=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=Point.FromString,
response_serializer=Feature.SerializeToString,
),
'ListFeatures': grpc.unary_stream_rpc_method_handler(
servicer.ListFeatures,
request_deserializer=Rectangle.FromString,
response_serializer=Feature.SerializeToString,
),
'RecordRoute': grpc.stream_unary_rpc_method_handler(
servicer.RecordRoute,
request_deserializer=Point.FromString,
response_serializer=RouteSummary.SerializeToString,
),
'RouteChat': grpc.stream_stream_rpc_method_handler(
servicer.RouteChat,
request_deserializer=RouteNote.FromString,
response_serializer=RouteNote.SerializeToString,
),
}
generic_handler = grpc.method_handlers_generic_handler(
'routeguide.RouteGuide', rpc_method_handlers)
server.add_generic_rpc_handlers((generic_handler,))
class BetaRouteGuideServicer(object): class BetaRouteGuideServicer(object):
"""Interface exported by the server. """Interface exported by the server.
""" """
...@@ -320,10 +429,11 @@ class BetaRouteGuideServicer(object): ...@@ -320,10 +429,11 @@ class BetaRouteGuideServicer(object):
""" """
context.code(beta_interfaces.StatusCode.UNIMPLEMENTED) context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
class BetaRouteGuideStub(object): class BetaRouteGuideStub(object):
"""Interface exported by the server. """Interface exported by the server.
""" """
def GetFeature(self, request, timeout): def GetFeature(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
"""A simple RPC. """A simple RPC.
Obtains the feature at a given position. Obtains the feature at a given position.
...@@ -333,7 +443,7 @@ class BetaRouteGuideStub(object): ...@@ -333,7 +443,7 @@ class BetaRouteGuideStub(object):
""" """
raise NotImplementedError() raise NotImplementedError()
GetFeature.future = None GetFeature.future = None
def ListFeatures(self, request, timeout): def ListFeatures(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
"""A server-to-client streaming RPC. """A server-to-client streaming RPC.
Obtains the Features available within the given Rectangle. Results are Obtains the Features available within the given Rectangle. Results are
...@@ -342,7 +452,7 @@ class BetaRouteGuideStub(object): ...@@ -342,7 +452,7 @@ class BetaRouteGuideStub(object):
huge number of features. huge number of features.
""" """
raise NotImplementedError() raise NotImplementedError()
def RecordRoute(self, request_iterator, timeout): def RecordRoute(self, request_iterator, timeout, metadata=None, with_call=False, protocol_options=None):
"""A client-to-server streaming RPC. """A client-to-server streaming RPC.
Accepts a stream of Points on a route being traversed, returning a Accepts a stream of Points on a route being traversed, returning a
...@@ -350,7 +460,7 @@ class BetaRouteGuideStub(object): ...@@ -350,7 +460,7 @@ class BetaRouteGuideStub(object):
""" """
raise NotImplementedError() raise NotImplementedError()
RecordRoute.future = None RecordRoute.future = None
def RouteChat(self, request_iterator, timeout): def RouteChat(self, request_iterator, timeout, metadata=None, with_call=False, protocol_options=None):
"""A Bidirectional streaming RPC. """A Bidirectional streaming RPC.
Accepts a stream of RouteNotes sent while a route is being traversed, Accepts a stream of RouteNotes sent while a route is being traversed,
...@@ -358,26 +468,19 @@ class BetaRouteGuideStub(object): ...@@ -358,26 +468,19 @@ class BetaRouteGuideStub(object):
""" """
raise NotImplementedError() raise NotImplementedError()
def beta_create_RouteGuide_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None): def beta_create_RouteGuide_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
request_deserializers = { request_deserializers = {
('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Point.FromString, ('routeguide.RouteGuide', 'GetFeature'): Point.FromString,
('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Rectangle.FromString, ('routeguide.RouteGuide', 'ListFeatures'): Rectangle.FromString,
('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.Point.FromString, ('routeguide.RouteGuide', 'RecordRoute'): Point.FromString,
('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.FromString, ('routeguide.RouteGuide', 'RouteChat'): RouteNote.FromString,
} }
response_serializers = { response_serializers = {
('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Feature.SerializeToString, ('routeguide.RouteGuide', 'GetFeature'): Feature.SerializeToString,
('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Feature.SerializeToString, ('routeguide.RouteGuide', 'ListFeatures'): Feature.SerializeToString,
('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.RouteSummary.SerializeToString, ('routeguide.RouteGuide', 'RecordRoute'): RouteSummary.SerializeToString,
('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.SerializeToString, ('routeguide.RouteGuide', 'RouteChat'): RouteNote.SerializeToString,
} }
method_implementations = { method_implementations = {
('routeguide.RouteGuide', 'GetFeature'): face_utilities.unary_unary_inline(servicer.GetFeature), ('routeguide.RouteGuide', 'GetFeature'): face_utilities.unary_unary_inline(servicer.GetFeature),
...@@ -388,26 +491,19 @@ def beta_create_RouteGuide_server(servicer, pool=None, pool_size=None, default_t ...@@ -388,26 +491,19 @@ def beta_create_RouteGuide_server(servicer, pool=None, pool_size=None, default_t
server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout) server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
return beta_implementations.server(method_implementations, options=server_options) return beta_implementations.server(method_implementations, options=server_options)
def beta_create_RouteGuide_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None): def beta_create_RouteGuide_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
import route_guide_pb2
request_serializers = { request_serializers = {
('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Point.SerializeToString, ('routeguide.RouteGuide', 'GetFeature'): Point.SerializeToString,
('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Rectangle.SerializeToString, ('routeguide.RouteGuide', 'ListFeatures'): Rectangle.SerializeToString,
('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.Point.SerializeToString, ('routeguide.RouteGuide', 'RecordRoute'): Point.SerializeToString,
('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.SerializeToString, ('routeguide.RouteGuide', 'RouteChat'): RouteNote.SerializeToString,
} }
response_deserializers = { response_deserializers = {
('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Feature.FromString, ('routeguide.RouteGuide', 'GetFeature'): Feature.FromString,
('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Feature.FromString, ('routeguide.RouteGuide', 'ListFeatures'): Feature.FromString,
('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.RouteSummary.FromString, ('routeguide.RouteGuide', 'RecordRoute'): RouteSummary.FromString,
('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.FromString, ('routeguide.RouteGuide', 'RouteChat'): RouteNote.FromString,
} }
cardinalities = { cardinalities = {
'GetFeature': cardinality.Cardinality.UNARY_UNARY, 'GetFeature': cardinality.Cardinality.UNARY_UNARY,
......
File mode changed from 100755 to 100644
...@@ -29,9 +29,12 @@ ...@@ -29,9 +29,12 @@
"""The Python implementation of the gRPC route guide server.""" """The Python implementation of the gRPC route guide server."""
from concurrent import futures
import time import time
import math import math
import grpc
import route_guide_pb2 import route_guide_pb2
import route_guide_resources import route_guide_resources
...@@ -121,7 +124,9 @@ class RouteGuideServicer(route_guide_pb2.BetaRouteGuideServicer): ...@@ -121,7 +124,9 @@ class RouteGuideServicer(route_guide_pb2.BetaRouteGuideServicer):
def serve(): def serve():
server = route_guide_pb2.beta_create_RouteGuide_server(RouteGuideServicer()) server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
route_guide_pb2.add_RouteGuideServicer_to_server(
RouteGuideServicer(), server)
server.add_insecure_port('[::]:50051') server.add_insecure_port('[::]:50051')
server.start() server.start()
try: try:
......
#!/bin/bash
# Copyright 2015, Google Inc. # Copyright 2015, Google Inc.
# All rights reserved. # All rights reserved.
# #
...@@ -28,5 +27,16 @@ ...@@ -28,5 +27,16 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# Runs the protoc with gRPC plugin to generate protocol messages and gRPC stubs. """Runs protoc with the gRPC plugin to generate messages and gRPC stubs."""
python -m grpc.tools.protoc -I../../protos --python_out=. --grpc_python_out=. ../../protos/route_guide.proto
from grpc.tools import protoc
protoc.main(
(
'',
'-I../../protos',
'--python_out=.',
'--grpc_python_out=.',
'../../protos/route_guide.proto',
)
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment