blob: 8a9d239d6917feb96d6a50623e508ed8e075d3c7 [file] [log] [blame]
import base64
import time
import yaml
from protos import modeldefs_pb2
from google.protobuf.empty_pb2 import Empty
from xos.exceptions import *
from apihelper import XOSAPIHelperMixin
def yaml_to_grpc(yaml_repr, grpc_container, yaml_key = None, grpc_parent = None):
if isinstance(yaml_repr, dict):
for k,v in yaml_repr.items():
grpc_sub_container = getattr(grpc_container, k)
yaml_to_grpc(v, grpc_sub_container, k, grpc_container)
elif isinstance(yaml_repr, list):
for i in yaml_repr:
grpc_sub_container = grpc_container.add()
yaml_to_grpc(i, grpc_sub_container, None, grpc_container)
else:
setattr(grpc_parent, yaml_key, yaml_repr)
class ModelDefsService(modeldefs_pb2.modeldefsServicer, XOSAPIHelperMixin):
def __init__(self, thread_pool):
self.thread_pool = thread_pool
def stop(self):
pass
def ListModelDefs(self, request, context):
ystr = open('protos/modeldefs.yaml').read()
yaml_repr = yaml.load(ystr)
modeldefs = modeldefs_pb2.ModelDefs()
yaml_to_grpc(yaml_repr, modeldefs)
return modeldefs
if __name__=='__main__':
ystr = open('protos/modeldefs.yaml').read()
yaml_repr = yaml.load(ystr)
modeldefs = modeldefs_pb2.ModelDefs()
yaml_to_grpc(yaml_repr, modeldefs)
print modeldefs