Source code for asdf.extension._validator

import abc


[docs] class Validator(abc.ABC): """ Abstract base class for plugins that handle custom validators in ASDF schemas. """ @abc.abstractproperty def schema_property(self): """ Name of the schema property used to invoke this validator. """ @abc.abstractproperty def tags(self): """ Get the YAML tags that are appropriate to this validator. URI patterns are permitted, see `asdf.util.uri_match` for details. Returns ------- iterable of str Tag URIs or URI patterns. """
[docs] @abc.abstractmethod def validate(self, schema_property_value, node, schema): """ Validate the given node from the ASDF tree. Parameters ---------- schema_property_value : object The value assigned to the schema property associated with this valdiator. node : asdf.tagged.Tagged A tagged node from the tree. Guaranteed to bear a tag that matches one of the URIs returned by this validator's tags property. schema : dict The schema object that contains the property that triggered the validation. Typically implementations of this method do not need to make use of this object, but sometimes the behavior of a validator depends on other schema properties. An example is the built-in "additionalProperties" property, which needs to know the contents of the "properties" property in order to determine which node properties are additional. Yields ------ asdf.exceptions.ValidationError Yield an instance of ValidationError for each error present in the node. """