Returns True if the given filepath is a valid watchable filetype.
        The filepath can be assumed to be a file (not a directory).

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