def test_protobuf(): x = StringTracker() data = ["one", "two", "three", "one", "one", "One", "six", None, None] for record in data: x.update(record) x2 = StringTracker.from_protobuf(x.to_protobuf()) assert x.count == x2.count assert x.items.get_total_weight() == x2.items.get_total_weight() assert x.theta_sketch.get_result().get_estimate() == x2.theta_sketch.get_result().get_estimate()
def from_protobuf(message): """ Load from a protobuf message Returns ------- column_profile : ColumnProfile """ schema_tracker = SchemaTracker.from_protobuf( message.schema, legacy_null_count=message.counters.null_count.value) return ColumnProfile( message.name, counters=(CountersTracker.from_protobuf(message.counters)), schema_tracker=schema_tracker, number_tracker=NumberTracker.from_protobuf(message.numbers), string_tracker=StringTracker.from_protobuf(message.strings), frequent_items=FrequentItemsSketch.from_protobuf( message.frequent_items), cardinality_tracker=HllSketch.from_protobuf( message.cardinality_tracker), )