def from_protobuf(message: DatasetProfileMessage): """ Load from a protobuf message Parameters ---------- message : DatasetProfileMessage The protobuf message. Should match the output of `DatasetProfile.to_protobuf()` Returns ------- dataset_profile : DatasetProfile """ return DatasetProfile( name=message.properties.tags["Name"], session_id=message.properties.session_id, session_timestamp=from_utc_ms(message.properties.session_timestamp), data_timestamp=from_utc_ms(message.properties.data_timestamp), columns={ k: ColumnProfile.from_protobuf(v) for k, v in message.columns.items() }, tags=dict(message.properties.tags), metadata=dict(message.properties.metadata), )
def from_protobuf(message: DatasetProfileMessage) -> "DatasetProfile": """ Load from a protobuf message Parameters ---------- message : DatasetProfileMessage The protobuf message. Should match the output of `DatasetProfile.to_protobuf()` Returns ------- dataset_profile : DatasetProfile """ properties: DatasetProperties = message.properties name = (properties.tags or {}).get( "name", None) or (properties.tags or {}).get("Name", None) or "" return DatasetProfile( name=name, session_id=properties.session_id, session_timestamp=from_utc_ms(properties.session_timestamp), dataset_timestamp=from_utc_ms(properties.data_timestamp), columns={ k: ColumnProfile.from_protobuf(v) for k, v in message.columns.items() }, tags=dict(properties.tags or {}), metadata=dict(properties.metadata or {}), model_profile=ModelProfile.from_protobuf(message.modeProfile), )
def test_write_template_path(): data_time = time.from_utc_ms(9999) session_time = time.from_utc_ms(88888) path_template = "$name-$session_timestamp-$dataset_timestamp-$session_id" writer_config = WriterConfig("local", ["protobuf", "flat"], "output", path_template, "dataset-profile-$name") writer = writer_from_config(writer_config) dp = DatasetProfile("name", data_time, session_time, session_id="session") assert writer.path_suffix(dp) == "name-88888-9999-session" assert writer.file_name(dp, ".txt") == "dataset-profile-name.txt"