def validate(self, level='max'):
_check_validation_level(level)
if not self.path.is_file():
raise ValidationError("%s is not a file." % self.path)
if hasattr(self, '_validate_'):
try:
self._validate_(level)
except ValidationError as e:
raise ValidationError(
"%s is not a(n) %s file:\n\n%s"
% (self.path, self.__class__.__name__, str(e))
) from e
# TODO: remove this branch
elif hasattr(self, 'sniff'):
if not self.sniff():
raise ValidationError("%s is not a(n) %s file"
% (self.path, self.__class__.__name__))
# TODO: define an abc.abstractmethod for `validate` when sniff is
# removed instead of this
else:
raise NotImplementedError("%r does not implement validate."
% type(self))
评论列表
文章目录