ansys.dyna.core.lib.validation_mixin.ValidationMixin#

class ansys.dyna.core.lib.validation_mixin.ValidationMixin#

Mixin that provides validation capabilities for Deck.

This mixin adds methods for validating keywords in a deck using a registry of validators. Default validators check for required fields and unique IDs.

Attributes expected from the host class:

_validator_registry: ValidatorRegistry instance

validate() ansys.dyna.core.lib.validators.ValidationResult#

Validate the collection of keywords.

Returns:
ValidationResult

Result object containing errors, warnings, and info messages.

Examples

>>> result = deck.validate()
>>> if result.has_errors():
...     print(result.get_summary())
...     for error in result.errors:
...         print(f"  - {error}")
register_validator(validator: ansys.dyna.core.lib.validators.Validator) None#

Register a custom validator.

Parameters:
validatorValidator

The validator to register.

Examples

>>> from ansys.dyna.core.lib.validators import RequiredFieldValidator, ValidationSeverity
>>> validator = RequiredFieldValidator("MAT", "mid", ValidationSeverity.ERROR)
>>> deck.register_validator(validator)
register_custom_validator(name: str, func: Callable[[ValidationMixin, ansys.dyna.core.lib.validators.ValidationResult], None]) None#

Register a custom validation function.

Parameters:
namestr

Name of the validator.

funcCallable

Validation function that takes (deck, result) and adds errors to result.

Examples

>>> def check_part_ids(deck, result):
...     from ansys.dyna.core.pre.errors import ValidationError
...     # Custom validation logic
...     if some_condition:
...         error = ValidationError("Custom error message")
...         result.add_error(error)
>>> deck.register_custom_validator("part_id_check", check_part_ids)
unregister_validator(validator_name: str) bool#

Unregister a validator by name.

Parameters:
validator_namestr

Name of the validator to remove.

Returns:
bool

True if validator was found and removed, False otherwise.

clear_validators() None#

Remove all validators from the registry.

get_validators() List[ansys.dyna.core.lib.validators.Validator]#

Get all registered validators.

Returns:
List[Validator]

List of all registered validators.