docs: def is_valid_type(self, filepath):
          """
          Returns True if the given filepath is a valid watchable filetype.
          The filepath can be assumed to be a file (not a directory).
          """
          if self.in_repo(filepath):
              return False
  
          validators = self._validators
          if len(validators) == 0:
              validators = [self.default_validator]
  
          if any([hasattr(v, 'runnable') for v in self._validators]):
              # case where we select the runnable function by the validator
              for validator in validators:
                  if validator(filepath):
                      if hasattr(validator, 'runnable'):
                          self._scent.set_runner(validator.runnable)
                          return True
              return False
  
          for validator in validators:
              if not validator(filepath):
                  return False
          return True