def build_config_comparison_fields()

in data_validation/config_manager.py [0:0]


    def build_config_comparison_fields(self, fields, depth=None):
        """Return list of field config objects."""
        field_configs = []
        source_table = self.get_source_ibis_calculated_table()
        target_table = self.get_target_ibis_calculated_table()
        source_table_schema = {k: v for k, v in source_table.schema().items()}
        target_table_schema = {k: v for k, v in target_table.schema().items()}
        casefold_source_columns = {x.casefold(): str(x) for x in source_table.columns}
        casefold_target_columns = {x.casefold(): str(x) for x in target_table.columns}

        for field in fields:
            cast_type = self._comp_field_cast(
                source_table_schema, target_table_schema, field
            )
            column_config = {
                consts.CONFIG_SOURCE_COLUMN: casefold_source_columns.get(
                    field.casefold(), field
                ),
                consts.CONFIG_TARGET_COLUMN: casefold_target_columns.get(
                    field.casefold(), field
                ),
                consts.CONFIG_FIELD_ALIAS: field,
                consts.CONFIG_CAST: cast_type,
            }
            field_configs.append(column_config)
        return field_configs