Skip to content

trestle_base_model

trestle.core.trestle_base_model ¤

Trestle Base Model.

Model ¤

Classes¤

TrestleBaseModel (BaseModel) pydantic-model ¤

Trestle Base Model. Serves as wrapper around BaseModel for overriding methods.

Source code in trestle/core/trestle_base_model.py
class TrestleBaseModel(BaseModel):
    """Trestle Base Model. Serves as wrapper around BaseModel for overriding methods."""

    @classmethod
    def parse_obj(cls: Type['Model'], obj: Any) -> 'Model':
        """Parse object to the given class."""
        try:
            return super().parse_obj(obj)
        except ValidationError as e:
            # check if failed due to the wrong OSCAL version:
            oscal_version_error = False
            for err in e.errors():
                for field in err['loc']:
                    if field == 'oscal-version':
                        message = err['msg']
                        oscal_version_error = True
                        break
            if oscal_version_error:
                raise TrestleError(f'{message}')
            else:
                raise
__class_vars__ special ¤
__custom_root_type__ special ¤
__doc__ special ¤
__exclude_fields__ special ¤
__fields__ special ¤
__include_fields__ special ¤
__post_root_validators__ special ¤
__pre_root_validators__ special ¤
__private_attributes__ special ¤
__schema_cache__ special ¤
__signature__ special ¤
__slots__: Tuple[str, ...] special ¤
__validators__ special ¤
Methods¤
parse_obj(obj) classmethod ¤

Parse object to the given class.

Source code in trestle/core/trestle_base_model.py
@classmethod
def parse_obj(cls: Type['Model'], obj: Any) -> 'Model':
    """Parse object to the given class."""
    try:
        return super().parse_obj(obj)
    except ValidationError as e:
        # check if failed due to the wrong OSCAL version:
        oscal_version_error = False
        for err in e.errors():
            for field in err['loc']:
                if field == 'oscal-version':
                    message = err['msg']
                    oscal_version_error = True
                    break
        if oscal_version_error:
            raise TrestleError(f'{message}')
        else:
            raise

handler: python