HiveNetGRpc.msg_formater module

消息格式化模块

class HiveNetGRpc.msg_formater.RemoteCallFormater[源代码]

基类:object

远程调用函数的消息格式化类

(基于默认的JsonService报文格式进行处理)

classmethod format_call_result(call_result: HiveNetCore.generic.CResult) HiveNetCore.generic.CResult[源代码]

将GRpcClient调用返回的结果转换为标准CResult对象

参数

call_result (CResult) – grpc客户端的call函数返回结果

返回

标准CResult对象

cresult.resp - 远程调用的返回值

cresult.extend_bytes - 扩展返回的字节数组

返回类型

CResult

classmethod format_service(with_request: bool = True, native_request: bool = False, logger: Optional[logging.Logger] = None)[源代码]

服务端处理函数的请求格式转换修饰函数

注: 支持修饰同步及异步函数, 但修饰后需按异步函数执行

参数
  • with_request (bool) –

    default=True, 是否将请求对象送入处理函数的参数中执行

    注1: 如果为True则代表会将原始请求对象送入处理函数(作为第一个参数送入)

    注2: 如果是流模式, 该参数固定为True, 并且会将原请求request字典中的’request’对象替换为第二个迭代值开始的json字典的迭代对象

  • native_request (bool) –

    default=False, 送入的请求对象是否原生请求对象(RpcRequest)

    注: 如果请求数据包含extend_bytes的信息, 则应设置为True以获取到对应的值, 否则只能获取到return_json的值

  • logger (Logger) – default=None, 日志对象

classmethod paras_to_grpc_request(args: Optional[list] = None, kwargs: Optional[dict] = None) msg_json_pb2.RpcRequest[源代码]

将函数入参转换为grpc请求对象

参数
  • args (list) – default=None, 函数固定参数

  • kwargs (dict) – default=None, 函数kv参数

返回

请求对象

返回类型

msg_json_pb2.RpcRequest

classmethod paras_to_grpc_request_iter(iter_obj, args: Optional[list] = None, kwargs: Optional[dict] = None)[源代码]

将迭代对象和函数入参转换为grpc请求对象迭代对象(流模式)

参数
  • iter_obj (generator|async_generator) – 要发送的请求数据迭代对象(支持同步或异步)

  • args (list) – default=None, 函数固定参数

  • kwargs (dict) – default=None, 函数kv参数

返回

请求迭代对象

返回类型

generator

classmethod service_exception_to_grpc_resp(code: str, error: str, err_msg: str, msg_para: tuple = ()) msg_json_pb2.RpcResponse[源代码]

服务端异常信息转换为grpc的响应对象

参数
  • code (str) – 错误码

  • error (str) – 抛出异常时,异常对象的类型

  • err_msg (str) – 错误信息

  • msg_para (tuple) – 错误信息对应的参数, JSON格式, 数组()

返回

返回的grpc响应对象

返回类型

msg_json_pb2.RpcResponse

classmethod service_request_to_paras(request: dict, with_request: bool = True, native_request: bool = False) tuple[源代码]

服务端请求对象转换为函数入参

参数
  • request (dict) –

    服务的请求入参字典

    {

    ‘request’: request, # 请求报文对象(如果是流模式也需获取对应的请求报文对象)

    ’context’: context, # 请求服务端上下文, grpc.ServicerContext

    ’call_mode’: call_mode # 调用模式

    }

  • with_request (bool) – default=True, 是否将请求对象送入处理函数的参数中执行

  • native_request (bool) –

    default=False, 送入的请求对象是否原生请求对象(RpcRequest)

    注: 如果请求数据包含extend_bytes的信息, 则应设置为True以获取到对应的值, 否则只能获取到return_json的值

返回

返回函数入参的二元组(args, kwargs)

返回类型

tuple

classmethod service_request_to_paras_iter(request: dict, native_request: bool = False) tuple[源代码]

服务端迭代类型的请求对象转换为函数入参及迭代对象

注: 第一个迭代值固定为函数入参, 后面的迭代值则转换为json值的迭代

参数
  • request (dict) –

    服务的请求入参字典

    {

    ‘request’: request_iterator, # 流模式的请求对象迭代器

    ’context’: context, # 请求服务端上下文, grpc.ServicerContext

    ’call_mode’: call_mode # 调用模式

    }

  • native_request (bool) –

    default=False, 送入的请求对象是否原生请求对象(RpcRequest)

    注: 如果请求数据包含extend_bytes的信息, 则应设置为True以获取到对应的值, 否则只能获取到return_json的值

返回

返回函数入参的二元组(args, kwargs)

返回类型

tuple

classmethod service_resp_to_grpc_resp(obj, call_mode: HiveNetGRpc.enum.EnumCallMode, extend_bytes: Optional[bytes] = None)[源代码]

将服务端函数返回对象转换为服务返回的grpc对象或迭代器

参数
  • obj (Any) – 要处理的对象

  • call_mode (EnumCallMode) – 请求模式

  • extend_bytes (bytes) –

    default=None, 要返回的扩展字节数组

    注: 如果传入的对象已经是msg_json_pb2.RpcResponse或迭代器则不会处理

返回

返回grpc对象或迭代器

返回类型

msg_json_pb2.RpcResponse|iterator

HiveNetGRpc.msg_formater.isgenerator(obj)