Metadata API#

Metadata classes define the structure of data assets and columns.

AssetMetadata#

class wxdi.dq_validator.metadata.AssetMetadata(table_name: str, columns: List[ColumnMetadata])#

Bases: object

Metadata for a data asset (table)

Initialize asset metadata

Parameters:
  • table_name (str) – Name of the table/asset

  • columns (List[ColumnMetadata]) – List of column metadata in order

Raises:

ValueError – If columns list is empty or contains duplicate names

get_column_index(column_name: str)#

Get array index for a column name

Parameters:

column_name (str) – Name of the column

Return type:

int

Returns:

Index of the column in the record array

Raises:

ValueError – If column name not found

get_column(column_name: str)#

Get column metadata by name

Parameters:

column_name (str) – Name of the column

Return type:

ColumnMetadata

Returns:

ColumnMetadata object

Raises:

ValueError – If column name not found

get_value(record: List[Any], column_name: str)#

Extract value from record array by column name

Parameters:
  • record (List[Any]) – The record array

  • column_name (str) – Name of the column

Return type:

Any

Returns:

Value at the column’s position

Raises:

ValueError – If column not found or record too short

ColumnMetadata#

class wxdi.dq_validator.metadata.ColumnMetadata(name: str, data_type: DataType, length: int | None = None, scale: int | None = None, precision: int | None = None, nullable: bool = True)#

Bases: object

Metadata for a single column

Initialize column metadata

Parameters:
  • name (str) – Column name

  • data_type (DataType) – Data type from DataType enum

  • length (int | None, default: None) – Maximum length (for strings)

  • scale (int | None, default: None) – Number of digits after decimal (for decimals)

  • precision (int | None, default: None) – Total number of digits (for decimals)

  • nullable (bool, default: True) – Whether column can be null

DataType#

class wxdi.dq_validator.datatypes.DataType(dtype: str | None = DataTypeEnum.UNKNOWN, length: int | None = 0, precision: int | None = 0, scale: int | None = 0)#

Bases: object

Parameters:
  • dtype (str | None)

  • length (int | None)

  • precision (int | None)

  • scale (int | None)

is_integer()#
is_compatible(inferred: DataType)#

IBM DataType.isCompatibleWithValue

Return type:

bool

Parameters:

inferred (DataType)

DataTypeEnum#

class wxdi.dq_validator.datatypes.DataTypeEnum(*values)#

Bases: str, Enum

INT8 = 'INT8'#
INT16 = 'INT16'#
INT32 = 'INT32'#
INT64 = 'INT64'#
DECIMAL = 'DECIMAL'#
STRING = 'STRING'#
DATE = 'DATE'#
TIME = 'TIME'#
TIMESTAMP = 'TIMESTAMP'#
UNKNOWN = 'UNKNOWN'#

Usage Examples#

See Core Concepts for detailed usage examples.