Source code for co3.resources.disk
from pathlib import Path
from co3.util import paths
from co3.resource import SelectableResource
[docs]
class DiskResource(SelectableResource):
[docs]
    def select(
        self,
        path_list: str | Path | list[str | Path],
        glob:  str | None = None
    ) -> list[Path]:
        iter_path_kwargs = {'relative': True, 'no_dir': True}
        if type(path_list) is not list:
            path_list = [path_list]
        path_agg = set()
        for path in path_list:
            path_union = set()
            if glob is None:
                path_union = set(paths.iter_nested_paths(path, **iter_path_kwargs))
            else:
                path_union = set(paths.iter_glob_paths(glob, path, **iter_path_kwargs))
            path_agg = path_agg.union(( (path, head) for head in path_union ))
        return path_agg