schrodinger.application.models.datamodels.validation2 module

Validates model definitions against the YAML transform catalog and validates configuration hierarchy.

class schrodinger.application.models.datamodels.validation2.SettingViolationType

Bases: Enum

UNCASTABLE_VALUE = 1
class schrodinger.application.models.datamodels.validation2.ConfigViolationType

Bases: Enum

DEFINITION_ID_MISMATCH = 1
PARENT_ID_MISMATCH = 2
class schrodinger.application.models.datamodels.validation2.Violation(model: 'ModelInterface')

Bases: object

model: ModelInterface
getMessage() → str
__init__(model: ModelInterface) → None
class schrodinger.application.models.datamodels.validation2.SettingViolation(model: ModelInterface, setting: SettingBinding, transform_name: str, violation_type: SettingViolationType)

Bases: Violation

Violation for a setting that exists in both parent and child.

setting: SettingBinding
transform_name: str
violation_type: SettingViolationType
getMessage() → str
__init__(model: ModelInterface, setting: SettingBinding, transform_name: str, violation_type: SettingViolationType) → None
class schrodinger.application.models.datamodels.validation2.MissingSettingViolation(model: ModelInterface, setting_name: str)

Bases: Violation

Violation when child is missing a setting that parent has.

setting_name: str
getMessage() → str
__init__(model: ModelInterface, setting_name: str) → None
class schrodinger.application.models.datamodels.validation2.UnexpectedSettingViolation(model: ModelInterface, setting: SettingBinding, transform_name: str)

Bases: Violation

Violation when child has a setting that parent doesn’t have.

setting: SettingBinding
transform_name: str
getMessage() → str
__init__(model: ModelInterface, setting: SettingBinding, transform_name: str) → None
class schrodinger.application.models.datamodels.validation2.ConfigViolation(model: 'ModelInterface', parent: 'ModelInterface', violation_type: 'ConfigViolationType')

Bases: Violation

parent: ModelInterface
violation_type: ConfigViolationType
getMessage() → str
__init__(model: ModelInterface, parent: ModelInterface, violation_type: ConfigViolationType) → None
class schrodinger.application.models.datamodels.validation2.MissingTransformViolation(model: ModelInterface, transform_name: str)

Bases: Violation

Violation when child is missing a transform that parent has.

transform_name: str
getMessage() → str
__init__(model: ModelInterface, transform_name: str) → None
class schrodinger.application.models.datamodels.validation2.UnexpectedTransformViolation(model: ModelInterface, transform_name: str)

Bases: Violation

Violation when child has a transform that parent doesn’t have.

transform_name: str
getMessage() → str
__init__(model: ModelInterface, transform_name: str) → None
class schrodinger.application.models.datamodels.validation2.ValidationSummary(violations: list[Violation] | None = None)

Bases: object

__init__(violations: list[Violation] | None = None)
getViolations() → list[Violation]
getModelViolations(model: ModelInterface) → list[Violation]
addViolations(violations: list[Violation])
addViolation(violation: Violation)
extend(other: Self)
getSettingViolations(setting: SettingBinding, transform_name: str) → list[SettingViolation | UnexpectedSettingViolation]

Return violations for the given setting within a specific transform.

Note: Does not include MissingSettingViolation because those represent settings that don’t exist in the child config.

class schrodinger.application.models.datamodels.validation2.AbstractValidator

Bases: object

validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation2.DefinitionValidator(definition: ModelInterface)

Bases: AbstractValidator

Validate a model definition against the YAML transform catalog.

Checks that each transform name exists in the catalog and that each setting name matches a field in the transform’s spec.

__init__(definition: ModelInterface)
validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation2.ConfigurationValidator(config: ModelConfiguration, parent: ModelInterface)

Bases: AbstractValidator

__init__(config: ModelConfiguration, parent: ModelInterface)
validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation2.TransformValidator(child: ModelInterface, parent: ModelInterface)

Bases: AbstractValidator

Validate that a config’s transforms match its parent’s transforms.

Checks for missing/unexpected transforms, then delegates to SettingValidator for each matched transform pair.

__init__(child: ModelInterface, parent: ModelInterface)
static getMismatchedTransformNames(child: ModelInterface, parent: ModelInterface) → tuple[set[str], set[str]]

Return transform names that differ between child and parent.

Returns:

A tuple of (unexpected, missing) name sets.

validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation2.SettingValidator(child: ModelInterface, child_transform: TransformBinding, parent_transform: TransformBinding | TransformSpec)

Bases: AbstractValidator

Validate settings within a single matched transform pair.

__init__(child: ModelInterface, child_transform: TransformBinding, parent_transform: TransformBinding | TransformSpec)
static getMismatchedSettingNames(child_transform: TransformBinding, parent_transform: TransformBinding | TransformSpec) → tuple[set[str], set[str]]

Return setting names that differ between child and parent transforms.

Returns:

A tuple of (unexpected, missing) name sets.

validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation2.CompositeModelValidator(composite: CompositeModel)

Bases: AbstractValidator

__init__(composite: CompositeModel)
validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation2.ModelTreeValidator(model_tree: Any)

Bases: AbstractValidator

__init__(model_tree: Any)
validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation2.MetadataValidator

Bases: AbstractValidator

validate() → ValidationSummary
schrodinger.application.models.datamodels.validation2.validate_tree(model_tree: Any) → ValidationSummary

Validate the entire model tree and return a summary of violations.

schrodinger.application.models.datamodels.validation2.validate_composite_model(composite: CompositeModel) → ValidationSummary

Validate the entire composite model and return a summary of violations.