class LabelValidator(object): """ Helper class for validating that labels meet prefix requirements. """ def __init__(self, app): self.app = app overridden_prefixes = app.config.get('LABEL_KEY_RESERVED_PREFIXES', []) for prefix in overridden_prefixes: if not prefix.endswith('.'): raise Exception('Prefix "%s" in LABEL_KEY_RESERVED_PREFIXES must end in a dot', prefix) default_prefixes = app.config.get('DEFAULT_LABEL_KEY_RESERVED_PREFIXES', []) self.reserved_prefixed_set = set(default_prefixes + overridden_prefixes) def has_reserved_prefix(self, label_key): """ Validates that the provided label key does not match any reserved prefixes. """ for prefix in self.reserved_prefixed_set: if label_key.startswith(prefix): return True return False