whylogs.util.protobuf

Functions for interacting with protobuf

message_to_json#

message_to_json(x: google.protobuf.message, **kwargs)

A wrapper for google.protobuf.json_format.MessageToJson

Currently a very thin wrapper...x and kwargs are just passed to MessageToJson

message_to_dict#

message_to_dict(x: google.protobuf.message)

Convert a protobuf message to a dictionary

A thin wrapper around the google built-in function.

multi_msg_reader#

multi_msg_reader(f, msg_class)

Return an iterator to iterate through protobuf messages in a multi-message protobuf file.

See also: write_multi_msg()

Parameters#

f : str, file-object Filename or open file object to read from msg_class : class The Protobuf message class, gets instantiated with a call to msg_class()

Returns#

msg_iterator Iterator which returns protobuf messages

read_multi_msg#

read_multi_msg(f, msg_class)

Wrapper for :func:multi_msg_reader which reads all the messages and returns them as a list.

write_multi_msg#

write_multi_msg(msgs: list, f)

Write a list (or iterator) of protobuf messages to a file.

The multi-message file format is a binary format with:

<varint MessageBytesSize><message>

Which is repeated, where the len(message) in bytes is MessageBytesSize

Parameters#

msgs : list, iterable Protobuf messages to write to disk f : str, file-object Filename or open binary file object to write to

repr_message#

repr_message(x: google.protobuf.message.Message, indent=2, display=True)

Print or generate string preview of a protobuf message. This is mainly to get a preview of the attribute names and structure of a protobuf message class.

Parameters#

x : google.protobuf.message.Message Message to preview indent : int Indentation display : bool If True, print the message and return None. Else, return a string.

Returns#

msg : str, None If display == False, return the message, else return None.