定义模块函数

protorpc.definition 包提供以下函数:

define_enum(enum_descriptor, module_name)

定义描述符的 Enum 类。

参数
enum_descriptor
EnumDescriptor 用于构建 Enum 类。
module_name
模块名称用于指定新的描述符类。

返回一个新的 messages.Enum 子类(由 enum_descriptor 描述)。

define_field(field_descriptor)

根据提供的描述符定义字段实例。

参数
field_descriptor
用于构建字段实例的 FieldDescriptor 类。

field_descriptor 所述,返回一个新的字段实例。

define_message(message_descriptor, module_name)

根据提供的描述符定义一个 Message 类。

参数
message_descriptor
MessageDescriptor 用于描述消息类。
module_name
模块名称用于指定新的描述符类。

返回一个新的 messages.Message 子类(由 message_descriptor 描述)。

define_service(service_descriptor, module)

定义一个新的服务代理。

参数
service_descriptor
描述服务的 ServiceDescriptor 类。
module
将服务添加到其中的模块。请求和响应类型与此模块有关。

返回能够与远程服务器通信的类代理。

define_file(file_descriptor, module=None)

根据给定文件描述符定义模块。

参数
file_descriptor
据以描述模块的 FileDescriptor 实例。
module=None
将所包含对象添加到其中的模块。模块名称会重写 file_descriptor.package 中的值。向现有模块(如果已提供)添加一些定义。

如果未提供模块,则创建一个新模块,并将其名称设置为文件描述符包的名称。如果已提供模块,则返回同一个模块。

实用程序函数

import_file(file_descriptor, modules=None)

将 FileDescriptor 导入模块空间。与 define_file() 类似,不同的是会创建一个新模块并添加到模块参数中,如果未提供,则添加到 sys.modules 中。

参数
file_descriptor
据以描述模块的 FileDescriptor 实例。
modulesmodules=None
要更新的模块字典。将创建不存在的模块及其父模块。如果现有模块与 file_descriptor.package 匹配,则使用 FileDescriptor 内容更新该模块。

返回与 modules 参数匹配的模块,如果没有匹配的模块,则返回新模块。

import_file_set(file_set, modules=None)

参数
file_set
可以是一个字符串,也可以是一个 FileSet 实例。如果是一个字符串,import_file_set() 会打开文件并读取已序列化的 FileSet。如果是一个 FileSet 实例,则从该实例导入一些定义。
modules
要更新的模块字典。将要创建的不存在的模块及其父模块。如果现有模块与 file_descriptor.package 匹配,则使用 FileDescriptor 内容更新该模块。