agatha.util.proto_util module¶
This module contains the functions necessary to load and manipulate proto objects. Key components of this module include the load_proto function, that wraps multiple proto parsers, as well as parse_args_into_proto, which loads and augments a proto from the command line.
-
agatha.util.proto_util.
get_field
(proto_obj, field)¶ Looks up a message or field from the supplied proto in the same way that getattr might. However, this function is smart enough to handle nested messages in terms of “a.b.c”
- Return type
Any
-
agatha.util.proto_util.
get_full_field_names
(proto_obj)¶ Lists all field names in all nested messages in the given proto. For instance: : message Foo { : optional string str_1 = 1; : optional string str_2 = 2; : } : message Bar { : optional Foo foo = 1; : optional int32 num = 2; : } get_full_field_names(Foo()) contains [str_1, str_2] get_full_field_names(Bar()) contains [num, foo.str_1, foo.str_2]
- Return type
List
[str
]
-
agatha.util.proto_util.
load_json_as_proto
(path, proto_obj)¶ Interprets path as a plaintext json file. Reads the data into proto_obj and returns a reference with the result.
- Return type
~ProtoObj
-
agatha.util.proto_util.
load_proto
(path, proto_obj)¶ Attempts to parse the provided file using all available parsers. Raises exception if unavailable.
- Return type
~ProtoObj
-
agatha.util.proto_util.
load_serialized_pb_as_proto
(path, proto_obj)¶ Interprets the file path as a serialized proto. Reads data into proto_obj. Returns a reference to the same proto_obj
- Return type
~ProtoObj
-
agatha.util.proto_util.
load_text_as_proto
(path, proto_obj)¶ Interprets path as a plaintext proto file. Reads the data into proto_obj and returns a reference with the result.
- Return type
~ProtoObj
-
agatha.util.proto_util.
parse_args_to_config_proto
(config_proto)¶ Combines the above steps to replace parse_args.
- Return type
None
-
agatha.util.proto_util.
set_field
(proto_obj, field, val)¶ - Return type
None
-
agatha.util.proto_util.
setup_parser_with_proto
(config_proto)¶ This class parses command line arguments into the config_proto. The idea is to have sensible defaults at all levels. Default Levels:
Written in proto definition
Written in config file
Written on command line
- Return type
ArgumentParser
-
agatha.util.proto_util.
transfer_args_to_proto
(args, config_proto)¶ Writes the fields from the args to the config proto.
- Return type
None