def _iglob()

in core/maxframe/lib/filesystem/_glob.py [0:0]


    def _iglob(self, pathname, recursive, dironly):
        dirname, basename = self._fs.path_split(pathname.replace(os.path.sep, "/"))
        if not has_magic(pathname):
            assert not dironly
            if basename:
                if self._fs.exists(pathname):
                    yield pathname
            else:  # pragma: no cover
                # Patterns ending with a slash should match only directories
                if self._fs.isdir(dirname):
                    yield pathname
            return
        if not dirname:  # pragma: no cover
            if recursive and _isrecursive(basename):
                yield from self._glob2(dirname, basename, dironly)
            else:
                yield from self._glob1(dirname, basename, dironly)
            return
        # `os.path.split()` returns the argument itself as a dirname if it is a
        # drive or UNC path.  Prevent an infinite recursion if a drive or UNC path
        # contains magic characters (i.e. r'\\?\C:').
        if dirname != pathname and has_magic(dirname):
            dirs = self._iglob(dirname, recursive, True)
        else:
            dirs = [dirname]
        if has_magic(basename):
            if recursive and _isrecursive(basename):
                glob_in_dir = self._glob2
            else:
                glob_in_dir = self._glob1
        else:
            glob_in_dir = self._glob0
        for dirname in dirs:
            for name in glob_in_dir(dirname, basename, dironly):
                if dirname:
                    yield self._fs.path_join(dirname, name)
                else:
                    yield name