code: def validate(self, value):
          
          for validator in self.validators:
              errors = []
              try:
                  validator(value)
              except ValidationError as err:
                  errors.append(err)
              if errors:
                  raise ValidationError(errors)
          return value
docs: Abstract method, check if a value is correct (type).
          Should raise :class:`TypeError` if the type the validation fail.
          
          :param value: the value to validate
          :return: the given value (that may have been converted)