diff options
Diffstat (limited to '.venv/lib/python3.12/site-packages/flupy/cli/utils.py')
-rw-r--r-- | .venv/lib/python3.12/site-packages/flupy/cli/utils.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/flupy/cli/utils.py b/.venv/lib/python3.12/site-packages/flupy/cli/utils.py new file mode 100644 index 00000000..02ee150b --- /dev/null +++ b/.venv/lib/python3.12/site-packages/flupy/cli/utils.py @@ -0,0 +1,34 @@ +# pylint: disable=invalid-name +import os +from typing import Generator + +from flupy.fluent import Fluent, flu + + +def walk_files(*pathes: str, abspath: bool = True) -> "Fluent[str]": + """Yield files recursively starting from each location in *pathes""" + + if pathes == (): + pathes = (".",) + + def _impl() -> Generator[str, None, None]: + for path in pathes: + for d, _, files in os.walk(path): + for x in files: + rel_path = os.path.join(d, x) + if abspath: + yield os.path.abspath(rel_path) + else: + yield rel_path + + return flu(_impl()) + + +def walk_dirs(path: str = ".") -> "Fluent[str]": + """Yield files recursively starting from *path""" + + def _impl() -> Generator[str, None, None]: + for d, _, _ in os.walk(path): + yield d + + return flu(_impl()) |