aboutsummaryrefslogtreecommitdiffhomepage
path: root/examples/python/route_guide
diff options
context:
space:
mode:
authorGravatar Nathaniel Manista <nathaniel@google.com>2015-09-08 21:34:33 +0000
committerGravatar Nathaniel Manista <nathaniel@google.com>2015-09-10 16:09:17 +0000
commit061d288f559f786c1541f56192303314a61e5489 (patch)
tree3ddf30b2aef7cc3111176d4986c410ccad8c21e1 /examples/python/route_guide
parentf65d3c11023cd39b73c8832947889f656f2427a3 (diff)
Beta Python documentation correction and update
Diffstat (limited to 'examples/python/route_guide')
-rw-r--r--examples/python/route_guide/README.md36
-rw-r--r--[-rwxr-xr-x]examples/python/route_guide/route_guide_client.py21
-rw-r--r--examples/python/route_guide/route_guide_pb2.py267
-rw-r--r--examples/python/route_guide/route_guide_server.py6
-rwxr-xr-xexamples/python/route_guide/run_codegen.sh2
5 files changed, 221 insertions, 111 deletions
diff --git a/examples/python/route_guide/README.md b/examples/python/route_guide/README.md
index 636e134964..cb1aa7d78a 100644
--- a/examples/python/route_guide/README.md
+++ b/examples/python/route_guide/README.md
@@ -29,7 +29,7 @@ Then change your current directory to `examples/python/route_guide`:
$ cd examples/python/route_guide
```
-You also should have the relevant tools installed to generate the server and client interface code - if you don't already, follow the setup instructions in [the Python quick start guide](../python).
+You also should have the relevant tools installed to generate the server and client interface code - if you don't already, follow the setup instructions in [the Python quick start guide](../helloworld).
## Defining the service
@@ -99,12 +99,11 @@ $ protoc -I ../../protos --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=`w
Note that as we've already provided a version of the generated code in the example repository, running this command regenerates the appropriate file rather than creates a new one. The generated code file is called `route_guide_pb2.py` and contains:
- classes for the messages defined in route_guide.proto
- abstract classes for the service defined in route_guide.proto
- - `EarlyAdopterRouteGuideServicer`, which defines the interface for implementations of the RouteGuide service
- - `EarlyAdopterRouteGuideServer`, which may be started and stopped
- - `EarlyAdopterRouteGuideStub`, which can be used by clients to invoke RouteGuide RPCs
+ - `BetaRouteGuideServicer`, which defines the interface for implementations of the RouteGuide service
+ - `BetaRouteGuideStub`, which can be used by clients to invoke RouteGuide RPCs
- functions for application use
- - `early_adopter_create_RouteGuide_server`, which creates a gRPC server given an `EarlyAdopterRouteGuideServicer` object
- - `early_adopter_create_RouteGuide_stub`, which can be used by clients to create a stub object
+ - `beta_create_RouteGuide_server`, which creates a gRPC server given a `BetaRouteGuideServicer` object
+ - `beta_create_RouteGuide_stub`, which can be used by clients to create a stub object
<a name="server"></a>
## Creating the server
@@ -119,11 +118,11 @@ You can find the example `RouteGuide` server in [route_guide_server.py](route_gu
### Implementing RouteGuide
-`route_guide_server.py` has a `RouteGuideServicer` class that implements the generated interface `route_guide_pb2.EarlyAdopterRouteGuideServicer`:
+`route_guide_server.py` has a `RouteGuideServicer` class that implements the generated interface `route_guide_pb2.BetaRouteGuideServicer`:
```python
# RouteGuideServicer provides an implementation of the methods of the RouteGuide service.
-class RouteGuideServicer(route_guide_pb2.EarlyAdopterRouteGuideServicer):
+class RouteGuideServicer(route_guide_pb2.BetaRouteGuideServicer):
```
`RouteGuideServicer` implements all the `RouteGuide` service methods.
@@ -141,7 +140,7 @@ Let's look at the simplest type first, `GetFeature`, which just gets a `Point` f
return feature
```
-The method is passed a `route_guide_pb2.Point` request for the RPC, and an `RpcContext` object that provides RPC-specific information such as timeout limits. It returns a `route_guide_pb2.Feature` response.
+The method is passed a `route_guide_pb2.Point` request for the RPC, and a `ServicerContext` object that provides RPC-specific information such as timeout limits. It returns a `route_guide_pb2.Feature` response.
#### Response-streaming RPC
@@ -212,8 +211,8 @@ Once you have implemented all the `RouteGuide` methods, the next step is to star
```python
def serve():
- server = route_guide_pb2.early_adopter_create_RouteGuide_server(
- RouteGuideServicer(), 50051, None, None)
+ server = route_guide_pb2.beta_create_RouteGuide_server(RouteGuideServicer())
+ server.add_insecure_port('[::]:50051')
server.start()
```
@@ -228,17 +227,14 @@ You can see the complete example client code in [route_guide_client.py](route_gu
To call service methods, we first need to create a *stub*.
-We use the `early_adopter_create_RouteGuide_stub` function of the `route_guide_pb2` module, generated from our .proto.
+We use the `beta_create_RouteGuide_stub` function of the `route_guide_pb2` module, generated from our .proto.
```python
-stub = RouteGuide::Stub.new('localhost', 50051)
+channel = implementations.insecure_channel('localhost', 50051)
+stub = beta_create_RouteGuide_stub(channel)
```
-The returned object implements all the methods defined by the `EarlyAdopterRouteGuideStub` interface, and is also a [context manager](https://docs.python.org/2/library/stdtypes.html#typecontextmanager). All RPCs invoked on the stub must be invoked within the stub's context, so it is common for stubs to be created and used with a [with statement](https://docs.python.org/2/reference/compound_stmts.html#the-with-statement):
-
-```python
-with route_guide_pb2.early_adopter_create_RouteGuide_stub('localhost', 50051) as stub:
-```
+The returned object implements all the methods defined by the `BetaRouteGuideStub` interface.
### Calling service methods
@@ -255,7 +251,7 @@ feature = stub.GetFeature(point, timeout_in_seconds)
An asynchronous call to `GetFeature` is similar, but like calling a local method asynchronously in a thread pool:
```python
-feature_future = stub.GetFeature.async(point, timeout_in_seconds)
+feature_future = stub.GetFeature.future(point, timeout_in_seconds)
feature = feature_future.result()
```
@@ -276,7 +272,7 @@ route_summary = stub.RecordRoute(point_sequence, timeout_in_seconds)
```
```python
-route_summary_future = stub.RecordRoute.async(point_sequence, timeout_in_seconds)
+route_summary_future = stub.RecordRoute.future(point_sequence, timeout_in_seconds)
route_summary = route_summary_future.result()
```
diff --git a/examples/python/route_guide/route_guide_client.py b/examples/python/route_guide/route_guide_client.py
index 078231543e..b1dfad551d 100755..100644
--- a/examples/python/route_guide/route_guide_client.py
+++ b/examples/python/route_guide/route_guide_client.py
@@ -32,6 +32,8 @@
import random
import time
+from grpc.beta import implementations
+
import route_guide_pb2
import route_guide_resources
@@ -115,15 +117,16 @@ def guide_route_chat(stub):
def run():
- with route_guide_pb2.early_adopter_create_RouteGuide_stub('localhost', 50051) as stub:
- print "-------------- GetFeature --------------"
- guide_get_feature(stub)
- print "-------------- ListFeatures --------------"
- guide_list_features(stub)
- print "-------------- RecordRoute --------------"
- guide_record_route(stub)
- print "-------------- RouteChat --------------"
- guide_route_chat(stub)
+ channel = implementations.insecure_channel('localhost', 50051)
+ stub = route_guide_pb2.beta_create_RouteGuide_stub(channel)
+ print "-------------- GetFeature --------------"
+ guide_get_feature(stub)
+ print "-------------- ListFeatures --------------"
+ guide_list_features(stub)
+ print "-------------- RecordRoute --------------"
+ guide_record_route(stub)
+ print "-------------- RouteChat --------------"
+ guide_route_chat(stub)
if __name__ == '__main__':
diff --git a/examples/python/route_guide/route_guide_pb2.py b/examples/python/route_guide/route_guide_pb2.py
index 2a4532bb75..d4d9f8dcd5 100644
--- a/examples/python/route_guide/route_guide_pb2.py
+++ b/examples/python/route_guide/route_guide_pb2.py
@@ -1,8 +1,6 @@
# 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
@@ -17,8 +15,9 @@ _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor(
name='route_guide.proto',
- package='',
- serialized_pb=_b('\n\x11route_guide.proto\",\n\x05Point\x12\x10\n\x08latitude\x18\x01 \x01(\x05\x12\x11\n\tlongitude\x18\x02 \x01(\x05\"3\n\tRectangle\x12\x12\n\x02lo\x18\x01 \x01(\x0b\x32\x06.Point\x12\x12\n\x02hi\x18\x02 \x01(\x0b\x32\x06.Point\"1\n\x07\x46\x65\x61ture\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x08location\x18\x02 \x01(\x0b\x32\x06.Point\"6\n\tRouteNote\x12\x18\n\x08location\x18\x01 \x01(\x0b\x32\x06.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\xad\x01\n\nRouteGuide\x12 \n\nGetFeature\x12\x06.Point\x1a\x08.Feature\"\x00\x12(\n\x0cListFeatures\x12\n.Rectangle\x1a\x08.Feature\"\x00\x30\x01\x12(\n\x0bRecordRoute\x12\x06.Point\x1a\r.RouteSummary\"\x00(\x01\x12)\n\tRouteChat\x12\n.RouteNote\x1a\n.RouteNote\"\x00(\x01\x30\x01')
+ 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\x0f\n\x07\x65x.grpc\xa2\x02\x03RTGb\x06proto3'
)
_sym_db.RegisterFileDescriptor(DESCRIPTOR)
@@ -27,20 +26,20 @@ _sym_db.RegisterFileDescriptor(DESCRIPTOR)
_POINT = _descriptor.Descriptor(
name='Point',
- full_name='Point',
+ full_name='routeguide.Point',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
- name='latitude', full_name='Point.latitude', index=0,
+ 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='Point.longitude', index=1,
+ 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,
@@ -54,30 +53,31 @@ _POINT = _descriptor.Descriptor(
],
options=None,
is_extendable=False,
+ syntax='proto3',
extension_ranges=[],
oneofs=[
],
- serialized_start=21,
- serialized_end=65,
+ serialized_start=33,
+ serialized_end=77,
)
_RECTANGLE = _descriptor.Descriptor(
name='Rectangle',
- full_name='Rectangle',
+ full_name='routeguide.Rectangle',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
- name='lo', full_name='Rectangle.lo', index=0,
+ 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='Rectangle.hi', index=1,
+ 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,
@@ -91,30 +91,31 @@ _RECTANGLE = _descriptor.Descriptor(
],
options=None,
is_extendable=False,
+ syntax='proto3',
extension_ranges=[],
oneofs=[
],
- serialized_start=67,
- serialized_end=118,
+ serialized_start=79,
+ serialized_end=152,
)
_FEATURE = _descriptor.Descriptor(
name='Feature',
- full_name='Feature',
+ full_name='routeguide.Feature',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
- name='name', full_name='Feature.name', index=0,
+ 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'),
+ 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='Feature.location', index=1,
+ 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,
@@ -128,32 +129,33 @@ _FEATURE = _descriptor.Descriptor(
],
options=None,
is_extendable=False,
+ syntax='proto3',
extension_ranges=[],
oneofs=[
],
- serialized_start=120,
- serialized_end=169,
+ serialized_start=154,
+ serialized_end=214,
)
_ROUTENOTE = _descriptor.Descriptor(
name='RouteNote',
- full_name='RouteNote',
+ full_name='routeguide.RouteNote',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
- name='location', full_name='RouteNote.location', index=0,
+ 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='RouteNote.message', index=1,
+ 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'),
+ 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),
@@ -165,44 +167,45 @@ _ROUTENOTE = _descriptor.Descriptor(
],
options=None,
is_extendable=False,
+ syntax='proto3',
extension_ranges=[],
oneofs=[
],
- serialized_start=171,
- serialized_end=225,
+ serialized_start=216,
+ serialized_end=281,
)
_ROUTESUMMARY = _descriptor.Descriptor(
name='RouteSummary',
- full_name='RouteSummary',
+ full_name='routeguide.RouteSummary',
filename=None,
file=DESCRIPTOR,
containing_type=None,
fields=[
_descriptor.FieldDescriptor(
- name='point_count', full_name='RouteSummary.point_count', index=0,
+ 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='RouteSummary.feature_count', index=1,
+ 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='RouteSummary.distance', index=2,
+ 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='RouteSummary.elapsed_time', index=3,
+ 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,
@@ -216,11 +219,12 @@ _ROUTESUMMARY = _descriptor.Descriptor(
],
options=None,
is_extendable=False,
+ syntax='proto3',
extension_ranges=[],
oneofs=[
],
- serialized_start=227,
- serialized_end=325,
+ serialized_start=283,
+ serialized_end=381,
)
_RECTANGLE.fields_by_name['lo'].message_type = _POINT
@@ -236,58 +240,61 @@ DESCRIPTOR.message_types_by_name['RouteSummary'] = _ROUTESUMMARY
Point = _reflection.GeneratedProtocolMessageType('Point', (_message.Message,), dict(
DESCRIPTOR = _POINT,
__module__ = 'route_guide_pb2'
- # @@protoc_insertion_point(class_scope:Point)
+ # @@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:Rectangle)
+ # @@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:Feature)
+ # @@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:RouteNote)
+ # @@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:RouteSummary)
+ # @@protoc_insertion_point(class_scope:routeguide.RouteSummary)
))
_sym_db.RegisterMessage(RouteSummary)
+DESCRIPTOR.has_options = True
+DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), b'\n\007ex.grpc\242\002\003RTG')
import abc
-from grpc._adapter import fore
-from grpc._adapter import rear
-from grpc.framework.assembly import implementations
-from grpc.framework.assembly import utilities
+from grpc.beta import implementations as beta_implementations
+from grpc.early_adopter import implementations as early_adopter_implementations
+from grpc.framework.alpha import utilities as alpha_utilities
+from grpc.framework.common import cardinality
+from grpc.framework.interfaces.face import utilities as face_utilities
class EarlyAdopterRouteGuideServicer(object):
"""<fill me in later!>"""
__metaclass__ = abc.ABCMeta
@abc.abstractmethod
- def GetFeature(self, request):
+ def GetFeature(self, request, context):
raise NotImplementedError()
@abc.abstractmethod
- def ListFeatures(self, request):
+ def ListFeatures(self, request, context):
raise NotImplementedError()
@abc.abstractmethod
- def RecordRoute(self, request_iterator):
+ def RecordRoute(self, request_iterator, context):
raise NotImplementedError()
@abc.abstractmethod
- def RouteChat(self, request_iterator):
+ def RouteChat(self, request_iterator, context):
raise NotImplementedError()
class EarlyAdopterRouteGuideServer(object):
"""<fill me in later!>"""
@@ -317,54 +324,158 @@ class EarlyAdopterRouteGuideStub(object):
def RouteChat(self, request_iterator):
raise NotImplementedError()
RouteChat.async = None
-def early_adopter_create_RouteGuide_server(servicer, port, root_certificates, key_chain_pairs):
- method_implementations = {
- "GetFeature": utilities.unary_unary_inline(servicer.GetFeature),
- "ListFeatures": utilities.unary_stream_inline(servicer.ListFeatures),
- "RecordRoute": utilities.stream_unary_inline(servicer.RecordRoute),
- "RouteChat": utilities.stream_stream_inline(servicer.RouteChat),
+def early_adopter_create_RouteGuide_server(servicer, port, private_key=None, certificate_chain=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
+ method_service_descriptions = {
+ "GetFeature": alpha_utilities.unary_unary_service_description(
+ servicer.GetFeature,
+ route_guide_pb2.Point.FromString,
+ route_guide_pb2.Feature.SerializeToString,
+ ),
+ "ListFeatures": alpha_utilities.unary_stream_service_description(
+ servicer.ListFeatures,
+ route_guide_pb2.Rectangle.FromString,
+ route_guide_pb2.Feature.SerializeToString,
+ ),
+ "RecordRoute": alpha_utilities.stream_unary_service_description(
+ servicer.RecordRoute,
+ route_guide_pb2.Point.FromString,
+ route_guide_pb2.RouteSummary.SerializeToString,
+ ),
+ "RouteChat": alpha_utilities.stream_stream_service_description(
+ servicer.RouteChat,
+ route_guide_pb2.RouteNote.FromString,
+ route_guide_pb2.RouteNote.SerializeToString,
+ ),
+ }
+ return early_adopter_implementations.server("routeguide.RouteGuide", method_service_descriptions, port, private_key=private_key, certificate_chain=certificate_chain)
+def early_adopter_create_RouteGuide_stub(host, port, metadata_transformer=None, secure=False, root_certificates=None, private_key=None, certificate_chain=None, server_host_override=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
+ method_invocation_descriptions = {
+ "GetFeature": alpha_utilities.unary_unary_invocation_description(
+ route_guide_pb2.Point.SerializeToString,
+ route_guide_pb2.Feature.FromString,
+ ),
+ "ListFeatures": alpha_utilities.unary_stream_invocation_description(
+ route_guide_pb2.Rectangle.SerializeToString,
+ route_guide_pb2.Feature.FromString,
+ ),
+ "RecordRoute": alpha_utilities.stream_unary_invocation_description(
+ route_guide_pb2.Point.SerializeToString,
+ route_guide_pb2.RouteSummary.FromString,
+ ),
+ "RouteChat": alpha_utilities.stream_stream_invocation_description(
+ route_guide_pb2.RouteNote.SerializeToString,
+ route_guide_pb2.RouteNote.FromString,
+ ),
}
+ return early_adopter_implementations.stub("routeguide.RouteGuide", method_invocation_descriptions, host, port, metadata_transformer=metadata_transformer, secure=secure, root_certificates=root_certificates, private_key=private_key, certificate_chain=certificate_chain, server_host_override=server_host_override)
+
+class BetaRouteGuideServicer(object):
+ """<fill me in later!>"""
+ __metaclass__ = abc.ABCMeta
+ @abc.abstractmethod
+ def GetFeature(self, request, context):
+ raise NotImplementedError()
+ @abc.abstractmethod
+ def ListFeatures(self, request, context):
+ raise NotImplementedError()
+ @abc.abstractmethod
+ def RecordRoute(self, request_iterator, context):
+ raise NotImplementedError()
+ @abc.abstractmethod
+ def RouteChat(self, request_iterator, context):
+ raise NotImplementedError()
+
+class BetaRouteGuideStub(object):
+ """The interface to which stubs will conform."""
+ __metaclass__ = abc.ABCMeta
+ @abc.abstractmethod
+ def GetFeature(self, request, timeout):
+ raise NotImplementedError()
+ GetFeature.future = None
+ @abc.abstractmethod
+ def ListFeatures(self, request, timeout):
+ raise NotImplementedError()
+ @abc.abstractmethod
+ def RecordRoute(self, request_iterator, timeout):
+ raise NotImplementedError()
+ RecordRoute.future = None
+ @abc.abstractmethod
+ def RouteChat(self, request_iterator, timeout):
+ raise NotImplementedError()
+
+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 = {
- "GetFeature": route_guide_pb2.Point.FromString,
- "ListFeatures": route_guide_pb2.Rectangle.FromString,
- "RecordRoute": route_guide_pb2.Point.FromString,
- "RouteChat": route_guide_pb2.RouteNote.FromString,
+ ('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Point.FromString,
+ ('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Rectangle.FromString,
+ ('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.Point.FromString,
+ ('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.FromString,
}
response_serializers = {
- "GetFeature": lambda x: x.SerializeToString(),
- "ListFeatures": lambda x: x.SerializeToString(),
- "RecordRoute": lambda x: x.SerializeToString(),
- "RouteChat": lambda x: x.SerializeToString(),
+ ('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Feature.SerializeToString,
+ ('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Feature.SerializeToString,
+ ('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.RouteSummary.SerializeToString,
+ ('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.SerializeToString,
}
- link = fore.activated_fore_link(port, request_deserializers, response_serializers, root_certificates, key_chain_pairs)
- return implementations.assemble_service(method_implementations, link)
-def early_adopter_create_RouteGuide_stub(host, port):
method_implementations = {
- "GetFeature": utilities.unary_unary_inline(None),
- "ListFeatures": utilities.unary_stream_inline(None),
- "RecordRoute": utilities.stream_unary_inline(None),
- "RouteChat": utilities.stream_stream_inline(None),
+ ('routeguide.RouteGuide', 'GetFeature'): face_utilities.unary_unary_inline(servicer.GetFeature),
+ ('routeguide.RouteGuide', 'ListFeatures'): face_utilities.unary_stream_inline(servicer.ListFeatures),
+ ('routeguide.RouteGuide', 'RecordRoute'): face_utilities.stream_unary_inline(servicer.RecordRoute),
+ ('routeguide.RouteGuide', 'RouteChat'): face_utilities.stream_stream_inline(servicer.RouteChat),
}
+ 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)
+
+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 = {
+ ('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Point.SerializeToString,
+ ('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Rectangle.SerializeToString,
+ ('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.Point.SerializeToString,
+ ('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.SerializeToString,
+ }
response_deserializers = {
- "GetFeature": route_guide_pb2.Feature.FromString,
- "ListFeatures": route_guide_pb2.Feature.FromString,
- "RecordRoute": route_guide_pb2.RouteSummary.FromString,
- "RouteChat": route_guide_pb2.RouteNote.FromString,
+ ('routeguide.RouteGuide', 'GetFeature'): route_guide_pb2.Feature.FromString,
+ ('routeguide.RouteGuide', 'ListFeatures'): route_guide_pb2.Feature.FromString,
+ ('routeguide.RouteGuide', 'RecordRoute'): route_guide_pb2.RouteSummary.FromString,
+ ('routeguide.RouteGuide', 'RouteChat'): route_guide_pb2.RouteNote.FromString,
}
- request_serializers = {
- "GetFeature": lambda x: x.SerializeToString(),
- "ListFeatures": lambda x: x.SerializeToString(),
- "RecordRoute": lambda x: x.SerializeToString(),
- "RouteChat": lambda x: x.SerializeToString(),
+ cardinalities = {
+ 'GetFeature': cardinality.Cardinality.UNARY_UNARY,
+ 'ListFeatures': cardinality.Cardinality.UNARY_STREAM,
+ 'RecordRoute': cardinality.Cardinality.STREAM_UNARY,
+ 'RouteChat': cardinality.Cardinality.STREAM_STREAM,
}
- link = rear.activated_rear_link(host, port, request_serializers, response_deserializers)
- return implementations.assemble_dynamic_inline_stub(method_implementations, link)
+ stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
+ return beta_implementations.dynamic_stub(channel, 'routeguide.RouteGuide', cardinalities, options=stub_options)
# @@protoc_insertion_point(module_scope)
diff --git a/examples/python/route_guide/route_guide_server.py b/examples/python/route_guide/route_guide_server.py
index 44bbacf5f3..f23b98bf36 100644
--- a/examples/python/route_guide/route_guide_server.py
+++ b/examples/python/route_guide/route_guide_server.py
@@ -65,7 +65,7 @@ def get_distance(start, end):
R = 6371000; # metres
return R * c;
-class RouteGuideServicer(route_guide_pb2.EarlyAdopterRouteGuideServicer):
+class RouteGuideServicer(route_guide_pb2.BetaRouteGuideServicer):
"""Provides methods that implement functionality of route guide server."""
def __init__(self):
@@ -121,8 +121,8 @@ class RouteGuideServicer(route_guide_pb2.EarlyAdopterRouteGuideServicer):
def serve():
- server = route_guide_pb2.early_adopter_create_RouteGuide_server(
- RouteGuideServicer(), 50051, None, None)
+ server = route_guide_pb2.beta_create_RouteGuide_server(RouteGuideServicer())
+ server.add_insecure_port('[::]:50051')
server.start()
try:
while True:
diff --git a/examples/python/route_guide/run_codegen.sh b/examples/python/route_guide/run_codegen.sh
index 689e0978de..a5759025b8 100755
--- a/examples/python/route_guide/run_codegen.sh
+++ b/examples/python/route_guide/run_codegen.sh
@@ -1,4 +1,4 @@
#!/bin/bash
# Runs the protoc with gRPC plugin to generate protocol messages and gRPC stubs.
-protoc -I . --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_python_plugin` route_guide.proto
+protoc -I ../../protos --python_out=. --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_python_plugin` ../../protos/route_guide.proto