whylabs/whylogs-python

View on GitHub
java/core/src/main/java/com/whylogs/core/metrics/Metric.java

Summary

Maintainability
A
0 mins
Test Coverage
package com.whylogs.core.metrics;

import com.whylogs.core.PreprocessedColumn;
import com.whylogs.core.SummaryConfig;
import com.whylogs.core.metrics.components.MetricComponent;
import java.util.HashMap;
import lombok.*;

@EqualsAndHashCode
@Getter
@Setter
@RequiredArgsConstructor
public abstract class Metric<TSubclass extends Metric> {

  @NonNull private String namespace;

  public abstract HashMap<String, Object> toSummaryDict();

  public abstract HashMap<String, Object> toSummaryDict(SummaryConfig config);

  public abstract OperationResult columnarUpdate(PreprocessedColumn data);

  public abstract HashMap<String, MetricComponent> getComponents();

  public abstract TSubclass merge(Metric<?> other);

  public @NonNull String getNamespace() {
    return namespace;
  }
}