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 15 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 29 30 31def find(top_dir: Pathier, package: str, ignore: list[str]) -> list[str]: 32 """Find what sub-folders of top_dir, excluding those in ignore, use 'package'.""" 33 package_users = [] 34 for project in top_dir.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 39 40 41def main(args: argparse.Namespace = None): 42 if not args: 43 args = get_args() 44 package_users = find(Pathier.cwd(), args.package, args.ignore) 45 print(f"The following packages use {args.package}:") 46 print(*package_users, sep="\n") 47 48 49if __name__ == "__main__": 50 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 16 project folders that use this package.""", 17 ) 18 19 parser.add_argument( 20 "-i", 21 "--ignore", 22 nargs="*", 23 default=["pkgs", "envs"], 24 type=str, 25 help=""" Ignore these folders. """, 26 ) 27 args = parser.parse_args() 28 29 return args
def
find( top_dir: pathier.pathier.Pathier, package: str, ignore: list[str]) -> list[str]:
32def find(top_dir: Pathier, package: str, ignore: list[str]) -> list[str]: 33 """Find what sub-folders of top_dir, excluding those in ignore, use 'package'.""" 34 package_users = [] 35 for project in top_dir.iterdir(): 36 if project.is_dir() and project.stem not in ignore: 37 if package in scan(project): 38 package_users.append(project.stem) 39 return package_users
Find what sub-folders of top_dir, excluding those in ignore, use 'package'.
def
main(args: argparse.Namespace = None):