Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
G
Grpc
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
tci-gateway-module
Grpc
Commits
4e7ea936
Commit
4e7ea936
authored
9 years ago
by
Nathaniel Manista
Browse files
Options
Downloads
Patches
Plain Diff
"gRPC in 3 minutes" for Python
parent
1331bf38
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
examples/python/README.md
+55
-0
55 additions, 0 deletions
examples/python/README.md
examples/python/helloworld/helloworld_pb2.py
+202
-0
202 additions, 0 deletions
examples/python/helloworld/helloworld_pb2.py
with
257 additions
and
0 deletions
examples/python/README.md
0 → 100644
+
55
−
0
View file @
4e7ea936
gRPC in 3 minutes (Python)
========================
Background
-------------
For this sample, we've already generated the server and client stubs from
[
helloworld.proto
][]
and we'll be using a specific reference platform.
Prerequisites
-------------
-
Debian 8.2 "Jessie" platform with
`root`
access
-
`git`
-
`python2.7`
-
`pip`
-
Python development headers
Set-up
-------
```
sh
$
# install the gRPC Core:
$
sudo
apt-get
install
libgrpc-dev
$
# install gRPC Python:
$
sudo
pip
install
-U
grpcio
==
0.11.0b1
$
# Since this "hello, world" example uses protocol buffers:
$
sudo
pip
install
-U
protobuf
==
3.0.0a3
$
# Clone the repository to get the example code:
$
git clone https://github.com/grpc/grpc
$
# Navigate to the "hello, world" Python example:
$
cd
grpc/examples/python/helloworld
```
Try it!
-------
-
Run the server
```
sh
$
python2.7 greeter_server.py &
```
-
Run the client
```
sh
$
python2.7 greeter_client.py
```
Tutorial
--------
You can find a more detailed tutorial in
[
gRPC Basics: Python
][]
[
helloworld.proto
]:
../protos/helloworld.proto
[
Install gRPC Python
]:
../../src/python#installation
[
gRPC Basics: Python
]:
http://www.grpc.io/docs/tutorials/basic/python.html
This diff is collapsed.
Click to expand it.
examples/python/helloworld/helloworld_pb2.py
0 → 100644
+
202
−
0
View file @
4e7ea936
# Generated by the protocol buffer compiler. DO NOT EDIT!
# source: helloworld.proto
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
=
'
helloworld.proto
'
,
package
=
'
helloworld
'
,
syntax
=
'
proto3
'
,
serialized_pb
=
b
'
\n\x10
helloworld.proto
\x12\n
helloworld
\"\x1c\n\x0c
HelloRequest
\x12\x0c\n\x04
name
\x18\x01
\x01
(
\t\"\x1d\n\n
HelloReply
\x12\x0f\n\x07
message
\x18\x01
\x01
(
\t
2I
\n\x07
Greeter
\x12
>
\n\x08
SayHello
\x12\x18
.helloworld.HelloRequest
\x1a\x16
.helloworld.HelloReply
\"\x00\x42\x18\n\x10
io.grpc.examples
\xa2\x02\x03
HLWb
\x06
proto3
'
)
_sym_db
.
RegisterFileDescriptor
(
DESCRIPTOR
)
_HELLOREQUEST
=
_descriptor
.
Descriptor
(
name
=
'
HelloRequest
'
,
full_name
=
'
helloworld.HelloRequest
'
,
filename
=
None
,
file
=
DESCRIPTOR
,
containing_type
=
None
,
fields
=
[
_descriptor
.
FieldDescriptor
(
name
=
'
name
'
,
full_name
=
'
helloworld.HelloRequest.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
),
],
extensions
=
[
],
nested_types
=
[],
enum_types
=
[
],
options
=
None
,
is_extendable
=
False
,
syntax
=
'
proto3
'
,
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
32
,
serialized_end
=
60
,
)
_HELLOREPLY
=
_descriptor
.
Descriptor
(
name
=
'
HelloReply
'
,
full_name
=
'
helloworld.HelloReply
'
,
filename
=
None
,
file
=
DESCRIPTOR
,
containing_type
=
None
,
fields
=
[
_descriptor
.
FieldDescriptor
(
name
=
'
message
'
,
full_name
=
'
helloworld.HelloReply.message
'
,
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
),
],
extensions
=
[
],
nested_types
=
[],
enum_types
=
[
],
options
=
None
,
is_extendable
=
False
,
syntax
=
'
proto3
'
,
extension_ranges
=
[],
oneofs
=
[
],
serialized_start
=
62
,
serialized_end
=
91
,
)
DESCRIPTOR
.
message_types_by_name
[
'
HelloRequest
'
]
=
_HELLOREQUEST
DESCRIPTOR
.
message_types_by_name
[
'
HelloReply
'
]
=
_HELLOREPLY
HelloRequest
=
_reflection
.
GeneratedProtocolMessageType
(
'
HelloRequest
'
,
(
_message
.
Message
,),
dict
(
DESCRIPTOR
=
_HELLOREQUEST
,
__module__
=
'
helloworld_pb2
'
# @@protoc_insertion_point(class_scope:helloworld.HelloRequest)
))
_sym_db
.
RegisterMessage
(
HelloRequest
)
HelloReply
=
_reflection
.
GeneratedProtocolMessageType
(
'
HelloReply
'
,
(
_message
.
Message
,),
dict
(
DESCRIPTOR
=
_HELLOREPLY
,
__module__
=
'
helloworld_pb2
'
# @@protoc_insertion_point(class_scope:helloworld.HelloReply)
))
_sym_db
.
RegisterMessage
(
HelloReply
)
DESCRIPTOR
.
has_options
=
True
DESCRIPTOR
.
_options
=
_descriptor
.
_ParseOptions
(
descriptor_pb2
.
FileOptions
(),
b
'
\n\020
io.grpc.examples
\242\002\003
HLW
'
)
import
abc
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
EarlyAdopterGreeterServicer
(
object
):
"""
<fill me in later!>
"""
__metaclass__
=
abc
.
ABCMeta
@abc.abstractmethod
def
SayHello
(
self
,
request
,
context
):
raise
NotImplementedError
()
class
EarlyAdopterGreeterServer
(
object
):
"""
<fill me in later!>
"""
__metaclass__
=
abc
.
ABCMeta
@abc.abstractmethod
def
start
(
self
):
raise
NotImplementedError
()
@abc.abstractmethod
def
stop
(
self
):
raise
NotImplementedError
()
class
EarlyAdopterGreeterStub
(
object
):
"""
<fill me in later!>
"""
__metaclass__
=
abc
.
ABCMeta
@abc.abstractmethod
def
SayHello
(
self
,
request
):
raise
NotImplementedError
()
SayHello
.
async
=
None
def
early_adopter_create_Greeter_server
(
servicer
,
port
,
private_key
=
None
,
certificate_chain
=
None
):
import
helloworld_pb2
import
helloworld_pb2
method_service_descriptions
=
{
"
SayHello
"
:
alpha_utilities
.
unary_unary_service_description
(
servicer
.
SayHello
,
helloworld_pb2
.
HelloRequest
.
FromString
,
helloworld_pb2
.
HelloReply
.
SerializeToString
,
),
}
return
early_adopter_implementations
.
server
(
"
helloworld.Greeter
"
,
method_service_descriptions
,
port
,
private_key
=
private_key
,
certificate_chain
=
certificate_chain
)
def
early_adopter_create_Greeter_stub
(
host
,
port
,
metadata_transformer
=
None
,
secure
=
False
,
root_certificates
=
None
,
private_key
=
None
,
certificate_chain
=
None
,
server_host_override
=
None
):
import
helloworld_pb2
import
helloworld_pb2
method_invocation_descriptions
=
{
"
SayHello
"
:
alpha_utilities
.
unary_unary_invocation_description
(
helloworld_pb2
.
HelloRequest
.
SerializeToString
,
helloworld_pb2
.
HelloReply
.
FromString
,
),
}
return
early_adopter_implementations
.
stub
(
"
helloworld.Greeter
"
,
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
BetaGreeterServicer
(
object
):
"""
<fill me in later!>
"""
__metaclass__
=
abc
.
ABCMeta
@abc.abstractmethod
def
SayHello
(
self
,
request
,
context
):
raise
NotImplementedError
()
class
BetaGreeterStub
(
object
):
"""
The interface to which stubs will conform.
"""
__metaclass__
=
abc
.
ABCMeta
@abc.abstractmethod
def
SayHello
(
self
,
request
,
timeout
):
raise
NotImplementedError
()
SayHello
.
future
=
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
=
{
(
'
helloworld.Greeter
'
,
'
SayHello
'
):
helloworld_pb2
.
HelloRequest
.
FromString
,
}
response_serializers
=
{
(
'
helloworld.Greeter
'
,
'
SayHello
'
):
helloworld_pb2
.
HelloReply
.
SerializeToString
,
}
method_implementations
=
{
(
'
helloworld.Greeter
'
,
'
SayHello
'
):
face_utilities
.
unary_unary_inline
(
servicer
.
SayHello
),
}
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_Greeter_stub
(
channel
,
host
=
None
,
metadata_transformer
=
None
,
pool
=
None
,
pool_size
=
None
):
import
helloworld_pb2
import
helloworld_pb2
request_serializers
=
{
(
'
helloworld.Greeter
'
,
'
SayHello
'
):
helloworld_pb2
.
HelloRequest
.
SerializeToString
,
}
response_deserializers
=
{
(
'
helloworld.Greeter
'
,
'
SayHello
'
):
helloworld_pb2
.
HelloReply
.
FromString
,
}
cardinalities
=
{
'
SayHello
'
:
cardinality
.
Cardinality
.
UNARY_UNARY
,
}
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
,
'
helloworld.Greeter
'
,
cardinalities
,
options
=
stub_options
)
# @@protoc_insertion_point(module_scope)
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment