Skip to content

Commit cd9bc26

Browse files
committed
Updating datastore script to add imported message types.
1 parent 2025874 commit cd9bc26

2 files changed

Lines changed: 34 additions & 8 deletions

File tree

gcloud/datastore/_generated/datastore_grpc_pb2.py

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,4 @@
1-
import grpc
2-
from grpc.beta import implementations as beta_implementations
3-
from grpc.beta import interfaces as beta_interfaces
4-
from grpc.framework.common import cardinality
5-
from grpc.framework.interfaces.face import utilities as face_utilities
6-
7-
# BEGIN: Manually added imports
1+
# BEGIN: Imports from datastore_pb2
82
from gcloud.datastore._generated.datastore_pb2 import AllocateIdsRequest
93
from gcloud.datastore._generated.datastore_pb2 import AllocateIdsResponse
104
from gcloud.datastore._generated.datastore_pb2 import BeginTransactionRequest
@@ -13,11 +7,19 @@
137
from gcloud.datastore._generated.datastore_pb2 import CommitResponse
148
from gcloud.datastore._generated.datastore_pb2 import LookupRequest
159
from gcloud.datastore._generated.datastore_pb2 import LookupResponse
10+
from gcloud.datastore._generated.datastore_pb2 import Mutation
11+
from gcloud.datastore._generated.datastore_pb2 import MutationResult
12+
from gcloud.datastore._generated.datastore_pb2 import ReadOptions
1613
from gcloud.datastore._generated.datastore_pb2 import RollbackRequest
1714
from gcloud.datastore._generated.datastore_pb2 import RollbackResponse
1815
from gcloud.datastore._generated.datastore_pb2 import RunQueryRequest
1916
from gcloud.datastore._generated.datastore_pb2 import RunQueryResponse
20-
# END: Manually added imports
17+
# END: Imports from datastore_pb2
18+
import grpc
19+
from grpc.beta import implementations as beta_implementations
20+
from grpc.beta import interfaces as beta_interfaces
21+
from grpc.framework.common import cardinality
22+
from grpc.framework.interfaces.face import utilities as face_utilities
2123

2224

2325
class DatastoreStub(object):

scripts/make_datastore_grpc.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@
2929
GRPC_ONLY_FILE = os.path.join(ROOT_DIR, 'gcloud', 'datastore',
3030
'_generated', 'datastore_grpc_pb2.py')
3131
GRPCIO_VIRTUALENV = os.environ.get('GRPCIO_VIRTUALENV', 'protoc')
32+
MESSAGE_SNIPPET = ' = _reflection.GeneratedProtocolMessageType('
33+
IMPORT_TEMPLATE = 'from gcloud.datastore._generated.datastore_pb2 import %s\n'
3234

3335

3436
def get_pb2_contents_with_grpc():
@@ -110,10 +112,32 @@ def get_pb2_grpc_only():
110112
return grpc_only_lines
111113

112114

115+
def get_pb2_message_types():
116+
"""Get message types defined in datastore pb2 file.
117+
118+
:rtype: list
119+
:returns: A list of names that are defined as message types.
120+
"""
121+
non_grpc_contents = get_pb2_contents_without_grpc()
122+
result = []
123+
for line in non_grpc_contents:
124+
if MESSAGE_SNIPPET in line:
125+
name, _ = line.split(MESSAGE_SNIPPET)
126+
result.append(name)
127+
128+
return sorted(result)
129+
130+
113131
def main():
114132
"""Write gRPC-only lines to custom module."""
115133
grpc_only_lines = get_pb2_grpc_only()
116134
with open(GRPC_ONLY_FILE, 'wb') as file_obj:
135+
# First add imports for public objects in the original.
136+
file_obj.write('# BEGIN: Imports from datastore_pb2\n')
137+
for name in get_pb2_message_types():
138+
import_line = IMPORT_TEMPLATE % (name,)
139+
file_obj.write(import_line)
140+
file_obj.write('# END: Imports from datastore_pb2\n')
117141
file_obj.write(''.join(grpc_only_lines))
118142

119143

0 commit comments

Comments
 (0)