haive.core.schema.compatibility.validatorsΒΆ

Field and model validation framework with async support.

ClassesΒΆ

CommonValidators

Collection of common validators.

FieldValidator

Validator for individual fields.

ModelValidator

Validator for entire models/schemas.

ValidationContext

Context passed through validation chain.

Validator

Base validator class.

ValidatorBuilder

Builder for creating validators.

ValidatorChain

Chain multiple validators together.

FunctionsΒΆ

create_validator(schema_info[, custom_validators])

Create a model validator from schema info.

Module ContentsΒΆ

class haive.core.schema.compatibility.validators.CommonValidators[source]ΒΆ

Collection of common validators.

static is_email(value)[source]ΒΆ

Basic email validation.

Parameters:

value (str)

Return type:

bool

static is_url(value)[source]ΒΆ

Basic URL validation.

Parameters:

value (str)

Return type:

bool

static is_uuid(value)[source]ΒΆ

UUID validation.

Parameters:

value (str)

Return type:

bool

static not_empty(value)[source]ΒΆ

Check value is not empty.

Parameters:

value (Any)

Return type:

bool

class haive.core.schema.compatibility.validators.FieldValidator(field_name, validators=None, error_messages=None)[source]ΒΆ

Bases: Validator

Validator for individual fields.

Init .

Parameters:
add_validator(validator, error_message=None)[source]ΒΆ

Add a validator function.

Parameters:
Return type:

None

validate(value, context)[source]ΒΆ

Validate field value.

Parameters:
Return type:

haive.core.schema.compatibility.types.ValidationResult

class haive.core.schema.compatibility.validators.ModelValidator(schema_info=None, field_validators=None, cross_field_validators=None)[source]ΒΆ

Bases: Validator

Validator for entire models/schemas.

Init .

Parameters:
add_cross_field_validator(validator)[source]ΒΆ

Add a cross-field validator.

Parameters:

validator (collections.abc.Callable)

Return type:

None

add_field_validator(field_name, validator)[source]ΒΆ

Add a field validator.

Parameters:
Return type:

None

validate(value, context)[source]ΒΆ

Validate entire model.

Parameters:
Return type:

haive.core.schema.compatibility.types.ValidationResult

class haive.core.schema.compatibility.validators.ValidationContext(/, **data)[source]ΒΆ

Bases: pydantic.BaseModel

Context passed through validation chain.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Parameters:

data (Any)

class Config[source]ΒΆ

Pydantic config.

pop_path()[source]ΒΆ

Pop a path segment.

Return type:

str | None

push_path(segment)[source]ΒΆ

Push a path segment.

Parameters:

segment (str)

Return type:

None

property current_path_str: strΒΆ

Get current path as string.

Return type:

str

class haive.core.schema.compatibility.validators.Validator[source]ΒΆ

Bases: abc.ABC

Base validator class.

async avalidate(value, context)[source]ΒΆ

Async validation (optional).

Parameters:
Return type:

haive.core.schema.compatibility.types.ValidationResult

abstractmethod validate(value, context)[source]ΒΆ

Validate a value.

Parameters:
Return type:

haive.core.schema.compatibility.types.ValidationResult

property supports_async: boolΒΆ

Whether this validator supports async validation.

Return type:

bool

class haive.core.schema.compatibility.validators.ValidatorBuilder[source]ΒΆ

Builder for creating validators.

static combine(*validators)[source]ΒΆ

Combine multiple validators into a chain.

Parameters:

validators (Validator)

Return type:

ValidatorChain

static for_length(min_length=None, max_length=None, field_name='value')[source]ΒΆ

Create length validator.

Parameters:
  • min_length (int | None)

  • max_length (int | None)

  • field_name (str)

Return type:

FieldValidator

static for_pattern(pattern, field_name='value')[source]ΒΆ

Create regex pattern validator.

Parameters:
  • pattern (str)

  • field_name (str)

Return type:

FieldValidator

static for_range(min_value=None, max_value=None, field_name='value')[source]ΒΆ

Create range validator.

Parameters:
  • min_value (float | None)

  • max_value (float | None)

  • field_name (str)

Return type:

FieldValidator

static for_type(type_hint)[source]ΒΆ

Create validator for a specific type.

Parameters:

type_hint (type)

Return type:

FieldValidator

class haive.core.schema.compatibility.validators.ValidatorChain[source]ΒΆ

Chain multiple validators together.

async avalidate(value, context=None)[source]ΒΆ

Async validation of chain.

Parameters:
Return type:

haive.core.schema.compatibility.types.ValidationResult

validate(value, context=None)[source]ΒΆ

Run all validators in chain.

Parameters:
Return type:

haive.core.schema.compatibility.types.ValidationResult

haive.core.schema.compatibility.validators.create_validator(schema_info, custom_validators=None)[source]ΒΆ

Create a model validator from schema info.

Parameters:
Return type:

ModelValidator