class Metric:
    ValueKind_UINT32 = 1
    ValueKind_UINT64 = 2
    ValueKind_FLOAT = 3
    ValueKind_DOUBLE = 4
    ValueKind_STRING = 5

    def has_value(self):
        return True

    def kind(self):
        return self.ValueKind_UINT64

    def as_uint64(self):
        return 2**64


class Action:
    def name(self):
        return "invalid_uint64"

    def metric_names(self):
        return ("invalid.uint64",)

    def metric_by_name(self, name):
        return Metric()


class Range:
    def num_actions(self):
        return 1

    def action_by_idx(self, index):
        return Action()


class Report:
    def get_version(self):
        return "2099.1"

    def num_ranges(self):
        return 1

    def range_by_idx(self, index):
        return Range()


def load_report(path):
    return Report()
