schrodinger.application.models.datamodels.validation module

class schrodinger.application.models.datamodels.validation.InputViolationType

Bases: Enum

VALUE_TYPE = 1
class schrodinger.application.models.datamodels.validation.ConfigViolationType

Bases: Enum

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

Bases: object

model: ModelInterface
__init__(model: ModelInterface) → None
class schrodinger.application.models.datamodels.validation.InputViolation(model: ModelInterface, input: InputInterface, parent_input: InputInterface, violation_type: InputViolationType)

Bases: Violation

Violation for an input that exists in both parent and child.

input: InputInterface
parent_input: InputInterface
violation_type: InputViolationType
__init__(model: ModelInterface, input: InputInterface, parent_input: InputInterface, violation_type: InputViolationType) → None
class schrodinger.application.models.datamodels.validation.MissingInputViolation(model: ModelInterface, parent_input: InputInterface)

Bases: Violation

Violation when child is missing an input that parent has.

parent_input: InputInterface
__init__(model: ModelInterface, parent_input: InputInterface) → None
class schrodinger.application.models.datamodels.validation.UnexpectedInputViolation(model: ModelInterface, input: InputInterface)

Bases: Violation

Violation when child has an input that parent doesn’t have.

input: InputInterface
__init__(model: ModelInterface, input: InputInterface) → None
class schrodinger.application.models.datamodels.validation.ConfigViolation(model: ModelInterface, parent: ModelInterface, violation_type: ConfigViolationType)

Bases: Violation

parent: ModelInterface
violation_type: ConfigViolationType
__init__(model: ModelInterface, parent: ModelInterface, violation_type: ConfigViolationType) → None
class schrodinger.application.models.datamodels.validation.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]) → None
addViolation(violation: Violation) → None
extend(other: Self) → None
getInputViolations(inp: InputInterface) → list[InputViolation | UnexpectedInputViolation]

Return violations for the given input.

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

class schrodinger.application.models.datamodels.validation.AbstractValidator

Bases: object

validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation.ModelTreeValidator(model_tree)

Bases: AbstractValidator

__init__(model_tree)
validate() → ValidationSummary
validateTree() → ValidationSummary
class schrodinger.application.models.datamodels.validation.CompositeModelValidator(composite)

Bases: AbstractValidator

__init__(composite)
validate() → ValidationSummary
validateConfigurations() → ValidationSummary
class schrodinger.application.models.datamodels.validation.DefinitionValidator

Bases: AbstractValidator

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

Bases: AbstractValidator

__init__(config: ModelConfiguration, parent: ModelInterface)
validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation.InputValidator(config: ModelConfiguration, parent: ModelInterface)

Bases: AbstractValidator

__init__(config: ModelConfiguration, parent: ModelInterface)
static getMismatchedInputNames(child: ModelInterface, parent: ModelInterface) → tuple[set[str], set[str]]

Return input names that differ between child and parent.

Parameters:
  • child – The child model (config).

  • parent – The parent model (definition or config).

Returns:

A tuple of (unexpected, missing) name sets, where unexpected names are in child but not parent, and missing names are in parent but not child.

validate() → ValidationSummary
class schrodinger.application.models.datamodels.validation.MetadataValidator

Bases: AbstractValidator

validate() → ValidationSummary
schrodinger.application.models.datamodels.validation.validate_tree(model_tree) → ValidationSummary

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

schrodinger.application.models.datamodels.validation.validate_composite_model(composite) → ValidationSummary

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