def _resolve_paths(self, *paths):
        """
        Resolve paths into a set of filenames (no directories) to check.

        External tools will handle directories as arguments differently, so for
        consistency we just want to pass them filenames.

        This method will recursively walk all directories and filter out
        any paths that match self.options.ignores.
        """
        result = set()
        for path in paths:
            if os.path.isdir(path):
                for dirpath, _, filenames in os.walk(path):
                    for filename in filenames:
                        path = os.path.join(dirpath, filename)
                        if path.startswith('.'):
                            path = path[1:].lstrip('/')
                        if not self._should_ignore(path):
                            result.add(path)
            else:
                result.add(path)
        return result
Resolve paths into a set of filenames (no directories) to check.

        External tools will handle directories as arguments differently, so for
        consistency we just want to pass them filenames.

        This method will recursively walk all directories and filter out
        any paths that match self.options.ignores.