packagelister.whouses
1import argparse 2 3from pathier import Pathier 4 5from packagelister import scan 6 7 8def get_args() -> argparse.Namespace: 9 parser = argparse.ArgumentParser() 10 11 parser.add_argument( 12 "package", 13 type=str, 14 help=""" Scan the current working directory for project folders that use this package.""", 15 ) 16 17 parser.add_argument( 18 "-i", 19 "--ignore", 20 nargs="*", 21 default=["pkgs", "envs"], 22 type=str, 23 help=""" Ignore these folders. """, 24 ) 25 args = parser.parse_args() 26 27 return args 28 29 30def find(root: Pathier, package: str, ignore: list[str] = []) -> list[str]: 31 """Find what sub-folders of `root`, excluding those in `ignore`, have files that use `package`.""" 32 package_users = [] 33 for project in root.iterdir(): 34 if project.is_dir() and project.stem not in ignore: 35 if package in scan(project): 36 package_users.append(project.stem) 37 return package_users 38 39 40def main(args: argparse.Namespace = None): 41 if not args: 42 args = get_args() 43 package_users = find(Pathier.cwd(), args.package, args.ignore) 44 print(f"The following folders have files that use {args.package}:") 45 print(*package_users, sep="\n") 46 47 48if __name__ == "__main__": 49 main(get_args())
def
get_args() -> argparse.Namespace:
9def get_args() -> argparse.Namespace: 10 parser = argparse.ArgumentParser() 11 12 parser.add_argument( 13 "package", 14 type=str, 15 help=""" Scan the current working directory for project folders that use this package.""", 16 ) 17 18 parser.add_argument( 19 "-i", 20 "--ignore", 21 nargs="*", 22 default=["pkgs", "envs"], 23 type=str, 24 help=""" Ignore these folders. """, 25 ) 26 args = parser.parse_args() 27 28 return args
def
find( root: pathier.pathier.Pathier, package: str, ignore: list[str] = []) -> list[str]:
31def find(root: Pathier, package: str, ignore: list[str] = []) -> list[str]: 32 """Find what sub-folders of `root`, excluding those in `ignore`, have files that use `package`.""" 33 package_users = [] 34 for project in root.iterdir(): 35 if project.is_dir() and project.stem not in ignore: 36 if package in scan(project): 37 package_users.append(project.stem) 38 return package_users
Find what sub-folders of root, excluding those in ignore, have files that use package.
def
main(args: argparse.Namespace = None):