pystac.validation.stac_validator#
- class pystac.validation.stac_validator.JsonSchemaSTACValidator(schema_uri_map: SchemaUriMap | None = None)[source]
Validate STAC based on JSON Schemas.
This validator uses JSON schemas, read from URIs provided by a
SchemaUriMap
, to validate STAC core objects and extensions.- Parameters:
schema_uri_map – The
SchemaUriMap
that defines where the validator will retrieve the JSON schemas for validation. Defaults to an instance ofDefaultSchemaUriMap
Note: This class requires the
jsonschema
library to be installed.- property registry: Any
- schema_uri_map: SchemaUriMap
- validate_core(stac_dict: dict[str, Any], stac_object_type: STACObjectType, stac_version: str, href: str | None = None) str | None [source]
Validate a core stac object.
Return value can be None or specific to the implementation.
- Parameters:
stac_dict – Dictionary that is the STAC json of the object.
stac_object_type – The stac object type of the object encoded in stac_dict. One of
STACObjectType
.stac_version – The version of STAC to validate the object against.
href – Optional HREF of the STAC object being validated.
- Returns:
- URI for the JSON schema that was validated against, or None if
no validation occurred.
- Return type:
- Raises:
STACValidationError – if stac_dict is not valid. The exception is raised from the “best” error, as determined by the jsonschema library. To access all jsonschema validation errors, use
STACValidationError.source
.
- validate_extension(stac_dict: dict[str, Any], stac_object_type: STACObjectType, stac_version: str, extension_id: str, href: str | None = None) str | None [source]
Validate an extension stac object.
Return value can be None or specific to the implementation.
- Parameters:
stac_dict – Dictionary that is the STAC json of the object.
stac_object_type – The stac object type of the object encoded in stac_dict. One of
STACObjectType
.stac_version – The version of STAC to validate the object against.
extension_id – The extension ID to validate against.
href – Optional HREF of the STAC object being validated.
- Returns:
- URI for the JSON schema that was validated against, or None if
no validation occurred.
- Return type:
- Raises:
STACValidationError – if stac_dict is not valid. The exception is raised from the “best” error, as determined by the jsonschema library. To access all jsonschema validation errors, use
STACValidationError.source
.
- exception pystac.validation.stac_validator.GetSchemaError(href: str, error: Exception)[source]#
Raised when unable to fetch a schema.
- class pystac.validation.stac_validator.STACValidator[source]#
STACValidator defines methods for validating STAC JSON. Implementations define methods for validating core objects and extension. By default the JsonSchemaSTACValidator is used by PySTAC; users can define their own STACValidator implementation and set that validator to be used by pystac by using the
set_validator()
method.- validate(stac_dict: dict[str, Any], stac_object_type: STACObjectType, stac_version: str, extensions: list[str], href: str | None = None) list[Any] [source]#
Validate a STAC object JSON.
- Parameters:
stac_dict – Dictionary that is the STAC json of the object.
stac_object_type – The stac object type of the object encoded in stac_dict. One of
STACObjectType
.stac_version – The version of STAC to validate the object against.
extensions – Extension IDs for this stac object.
href – Optional href of the STAC object being validated.
- Returns:
- List of return values from the validation calls for the
core object and any extensions. Element type is specific to the STACValidator implementation.
- Return type:
List[Any]
- abstract validate_core(stac_dict: dict[str, Any], stac_object_type: STACObjectType, stac_version: str, href: str | None = None) Any [source]#
Validate a core stac object.
Return value can be None or specific to the implementation.
- Parameters:
stac_dict – Dictionary that is the STAC json of the object.
stac_object_type – The stac object type of the object encoded in stac_dict. One of
STACObjectType
.stac_version – The version of STAC to validate the object against.
href – Optional HREF of the STAC object being validated.
- abstract validate_extension(stac_dict: dict[str, Any], stac_object_type: STACObjectType, stac_version: str, extension_id: str, href: str | None = None) Any [source]#
Validate an extension stac object.
Return value can be None or specific to the implementation.
- Parameters:
stac_dict – Dictionary that is the STAC json of the object.
stac_object_type – The stac object type of the object encoded in stac_dict. One of
STACObjectType
.stac_version – The version of STAC to validate the object against.
extension_id – The extension ID of the extension to validate against.
href – Optional HREF of the STAC object being validated.