# 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())