Validation Checks API#

The validation checks module provides nine comprehensive check types for data quality validation.

LengthCheck#

class wxdi.dq_validator.checks.length_check.LengthCheck(min_length: int | None = None, max_length: int | None = None)#

Bases: BaseCheck

Validates length of any value (converted to string) is within min/max bounds

Initialize length check

Parameters:
  • min_length (int | None, default: None) – Minimum allowed length (inclusive), None means no minimum

  • max_length (int | None, default: None) – Maximum allowed length (inclusive), None means no maximum

Raises:

ValueError – If parameters are invalid

get_check_name()#

Return check name

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate length of value (converted to string)

Parameters:
  • value (Any) – The value to validate (will be converted to string)

  • context (Dict[str, Any]) – Context containing column_name, record, metadata

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

ValidValuesCheck#

class wxdi.dq_validator.checks.valid_values_check.ValidValuesCheck(valid_values: List[Any], case_sensitive: bool = False)#

Bases: BaseCheck

Validates value is in allowed list with optional case-insensitive comparison

Initialize valid values check

Parameters:
  • valid_values (List[Any]) – List of allowed values

  • case_sensitive (bool, default: False) – If False (default), string comparisons are case-insensitive. If True, exact match required.

Raises:

ValueError – If valid_values is invalid

get_check_name()#

Return check name

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate value is in allowed list

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Context containing column_name, record, metadata

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

ComparisonCheck#

class wxdi.dq_validator.checks.comparison_check.ComparisonCheck(operator: ComparisonOperator | str, target_column: str | None = None, target_value: Any | None = None)#

Bases: BaseCheck

Validates value comparison against another column or constant

Initialize comparison check

Parameters:
  • operator (ComparisonOperator | str) – Comparison operator (ComparisonOperator enum or string)

  • target_column (str | None, default: None) – Name of column to compare against (for column-to-column)

  • target_value (Any | None, default: None) – Constant value to compare against (for column-to-value)

Raises:

ValueError – If parameters are invalid

Note: Exactly one of target_column or target_value must be provided

get_check_name()#

Return check name

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate comparison

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Context containing column_name, record, metadata

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

CaseCheck#

class wxdi.dq_validator.checks.case_check.CaseCheck(case_type: ColumnCaseEnum = ColumnCaseEnum.ANY_CASE)#

Bases: BaseCheck

Validates that a string value follows a specific case rule

Initialize case check

Parameters:

case_type (ColumnCaseEnum, default: <ColumnCaseEnum.ANY_CASE: 'AnyCase'>) – Case type to enforce

get_check_name()#

Return the name of this check type

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate a value

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Additional context (e.g., other column values, metadata) Expected keys: - ‘column_name’: Name of the column being validated - ‘record’: The full record array (for column-to-column comparisons) - ‘metadata’: AssetMetadata object (for column lookups)

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

CompletenessCheck#

class wxdi.dq_validator.checks.completeness_check.CompletenessCheck(missing_values_allowed: bool | None = False)#

Bases: BaseCheck

Validates that a value is not null unless missing values are allowed

Initialize completeness check

Parameters:

missing_values_allowed (bool | None, default: False) – Whether None values are allowed

get_check_name()#

Return check name

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate completeness (null check)

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Context containing column_name, record, metadata

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

RangeCheck#

class wxdi.dq_validator.checks.range_check.RangeCheck(min_value: Any | None = None, max_value: Any | None = None)#

Bases: BaseCheck

Validates that a value lies within a min/max range

Initialize range check

Parameters:
  • min_value (Any | None, default: None) – Minimum allowed value (optional)

  • max_value (Any | None, default: None) – Maximum allowed value (optional)

get_check_name()#

Return the name of this check type

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate range

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Context containing column_name, record, metadata

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

RegexCheck#

class wxdi.dq_validator.checks.regex_check.RegexCheck(pattern: str = '', case_sensitive: bool = True)#

Bases: BaseCheck

Validates that a value matches a regex pattern

Initialize regex check

Parameters:
  • pattern (str, default: '') – Regular expression pattern

  • case_sensitive (bool, default: True) – Whether matching is case-sensitive

get_check_name()#

Return check name

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate regex match

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Context containing column_name, record, metadata

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

FormatCheck#

class wxdi.dq_validator.checks.format_check.FormatCheck(constraint_type: FormatConstraintType | None = FormatConstraintType.ValidFormats, formats: Set[str] | None = None)#

Bases: BaseCheck

Validates if any value is of the format specified in the list of valid or invalid formats.

Initialize format check

Parameters:
  • constraint_type (FormatConstraintType | None, default: <FormatConstraintType.ValidFormats: 'ValidFormats'>) – Defines whether the formats defined are to be Valid or Invalid

  • formats (Set[str] | None, default: None) – The formats for the value that are Valid or Invalid

get_check_name()#

Return the name of this check type

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate a value

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Additional context (e.g., other column values, metadata) Expected keys: - ‘column_name’: Name of the column being validated - ‘record’: The full record array (for column-to-column comparisons) - ‘metadata’: AssetMetadata object (for column lookups)

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

DataTypeCheck#

class wxdi.dq_validator.checks.datatype_check.DataTypeCheck(expected_type: DataType | None = None)#

Bases: BaseCheck

Validates a value to be of the same data type as that of the expected type

Initialize datatype check

Parameters:

expected_type (DataType | None, default: None) – Data type expected of the input value to pass the check

get_check_name()#

Return the name of this check type

Return type:

str

validate(value: Any, context: Dict[str, Any])#

Validate a value

Parameters:
  • value (Any) – The value to validate

  • context (Dict[str, Any]) – Additional context (e.g., other column values, metadata) Expected keys: - ‘column_name’: Name of the column being validated - ‘record’: The full record array (for column-to-column comparisons) - ‘metadata’: AssetMetadata object (for column lookups)

Return type:

ValidationError | None

Returns:

ValidationError if validation fails, None if passes

Usage Examples#

See Validation Checks for detailed usage examples.