def typ(value): # pylint: disable=missing-docstring,no-self-argument # pylint thinks isinstance(value, Error), so startswith is not found # pylint: disable=no-member if not value.startswith(Error.ERROR_TYPE_NAMESPACE): raise jose.DeserializationError('Missing error type prefix') without_prefix = value[len(Error.ERROR_TYPE_NAMESPACE):] if without_prefix not in Error.ERROR_TYPE_DESCRIPTIONS: raise jose.DeserializationError('Error type not recognized') return without_prefix
def nonce(value): # pylint: disable=missing-docstring,no-self-argument try: return jose.decode_b64jose(value) except jose.DeserializationError as error: # TODO: custom error raise jose.DeserializationError("Invalid nonce: {0}".format(error))
def from_json(cls, value): if value not in cls.POSSIBLE_NAMES: raise jose.DeserializationError( '{0} not recognized'.format(cls.__name__)) return cls.POSSIBLE_NAMES[value]
def default_decoder(cls, value): try: return pyrfc3339.parse(value) except ValueError as error: raise jose.DeserializationError(error)
def from_json(cls, jobj): try: return cls(jobj) except ValueError as error: raise jose.DeserializationError(str(error))
def decode(self, value): if value != self.resource_type: raise jose.DeserializationError( 'Wrong resource type: {0} instead of {1}'.format( value, self.resource_type)) return value
def decode(self, value): if value != self.value: raise jose.DeserializationError('Expected {0!r}'.format(self.value)) return self.value
def from_json(cls, jobj): jobj['meta'] = cls.Meta.from_json(jobj.pop('meta', {})) try: return cls(jobj) except ValueError as error: raise jose.DeserializationError(str(error))