def deserialize(self, value, **kwargs):
        """Deserialize the attribute from a HAL structure.

        Get the value from the HAL structure from the attribute's compartment
        using the attribute's name as a key, convert it using the attribute's
        type. Schema will either return it to  parent schema or will assign
        to the output value if specified using the attribute's accessor setter.

        :param value: HAL structure to get the value from.
        :return: Deserialized attribute value.
        :raises: ValidationError.
        """
        compartment = value

        if self.compartment is not None:
            compartment = value[self.compartment]

        try:
            value = self.accessor.get(compartment, **kwargs)
        except (KeyError, AttributeError):
            if not hasattr(self, "default") and self.required:
                raise
            return self.default() if callable(self.default) else self.default

        return self.attr_type.deserialize(value, **kwargs)
def deserialize ( self , value , ** kwargs ) : compartment = value if self . compartment is not None : compartment = value [ self . compartment ] try : value = self . accessor . get ( compartment , ** kwargs ) except ( KeyError , AttributeError ) : if not hasattr ( self , "default" ) and self . required : raise return self . default ( ) if callable ( self . default ) else self . default return self . attr_type . deserialize ( value , ** kwargs )
Deserialize the attribute from a HAL structure.

        Get the value from the HAL structure from the attribute's compartment
        using the attribute's name as a key, convert it using the attribute's
        type. Schema will either return it to  parent schema or will assign
        to the output value if specified using the attribute's accessor setter.

        :param value: HAL structure to get the value from.
        :return: Deserialized attribute value.
        :raises: ValidationError.