def __init__()

in geneve/solver/type_keyword.py [0:0]


    def __init__(self, field, constraints, field_constraints, schema):
        super().__init__(field, constraints, field_constraints, schema)

        self.templ = get_templ(field, field_constraints)
        self.value = []

        for k, v, *_ in constraints:
            if k in ("==", "wildcard"):
                if not isinstance(v, (list, tuple)):
                    v = [v]
                if self.is_array or not self.value:
                    self.value.append(self.templ & v)
                else:
                    new_value = self.value[0] & v
                    if not new_value:
                        v = "', '".join(sorted(v))
                        raise ConflictError(f"not in {self.value[0]}: ('{v}')", field)
                    self.value[0] = new_value
            elif k in ("!=", "not wildcard"):
                if not isinstance(v, (list, tuple)):
                    v = [v]
                if not self.value:
                    self.value.append(copy(self.templ))
                for i, value in enumerate(self.value):
                    new_value = value - v
                    if not new_value:
                        v = "', '".join(sorted(v))
                        raise ConflictError(f"excluded by {value}: ('{v}')", field)
                    value -= v
        if not self.value:
            self.value.append(copy(self.templ))