From de0ad115ed3bde33c5ea84a34067b858038d0fc5 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Wed, 30 Oct 2024 12:38:21 +0900 Subject: [PATCH] resursive scripts/helper.py --- scripts/helper.py | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/scripts/helper.py b/scripts/helper.py index 3a51a73..f8aca98 100644 --- a/scripts/helper.py +++ b/scripts/helper.py @@ -1,20 +1,34 @@ from pathlib import Path +import os import tomllib from packaging.requirements import Requirement -def get_deadlib_names() -> None: - content = tomllib.loads(Path("pyproject.toml").read_text()) +script_dir = os.path.dirname(__file__) +project_dir = script_dir.rsplit("/", 1)[0] + + +def local_dependency_names(name) -> [str]: + content = tomllib.loads(Path(f"{project_dir}/{name}/pyproject.toml").read_text()) dependencies = [ Requirement(s).name for s in content["project"].get("dependencies", []) ] - names = [ + local_names = [ name.partition("standard-")[2] - for name in dependencies if name.startswith("standard-") + for name in dependencies + if name.startswith("standard-") ] - for name in names: - print(name) + collected_names = [local_dependency_names(name) + [name] for name in local_names] + # NOTE: Do not sort the collection. The order is important + return [name for names in collected_names for name in names] if __name__ == "__main__": - get_deadlib_names() + import sys + + try: + name = sys.argv[1] + except IndexError: + name = os.path.basename(os.getcwd()) + for name in local_dependency_names(name): + print(name)