def is_valid()

in azure-kusto-ingest/azure/kusto/ingest/ingestion_properties.py [0:0]


    def is_valid(self, kind: IngestionMappingKind) -> (bool, List[str]):
        if not self.column:
            return False, ["Column name is required"]

        results = []

        needed_props = self.NEEDED_PROPERTIES[kind]

        if all(prop not in self.properties for prop in needed_props):
            results.append(f"{kind} needs at least one of the required properties: {needed_props}")

        if self.properties.get(self.TRANSFORMATION_METHOD):
            if (self.properties.get(self.PATH) or self.properties.get(self.FIELD_NAME)) and self.properties.get(
                self.TRANSFORMATION_METHOD
            ) in self.CONSTANT_TRANSFORMATION_METHODS:
                results.append(
                    f"When specifying {self.PATH} or {self.FIELD_NAME}, {self.TRANSFORMATION_METHOD} must not be one of "
                    f"{','.join(str(x) for x in self.CONSTANT_TRANSFORMATION_METHODS)}, not {self.properties.get(self.TRANSFORMATION_METHOD)}."
                )

            if (not self.properties.get(self.PATH) and not self.properties.get(self.FIELD_NAME)) and self.properties.get(
                self.TRANSFORMATION_METHOD
            ) not in self.CONSTANT_TRANSFORMATION_METHODS:
                results.append(
                    f"When not specifying {self.PATH} or {self.FIELD_NAME}, {self.TRANSFORMATION_METHOD} must be one of"
                    f" {','.join(str(x) for x in self.CONSTANT_TRANSFORMATION_METHODS)}, not {self.properties.get(self.TRANSFORMATION_METHOD)}."
                )

        return not bool(results), results