import json import sys ALL_DIRS = { "libs/core", "libs/langchain", "libs/experimental", } if __name__ == "__main__": files = sys.argv[1:] dirs_to_run = set() for file in files: if any( file.startswith(dir_) for dir_ in ( ".github/workflows", ".github/tools", ".github/actions", "libs/core", ".github/scripts/check_diff.py", ) ): dirs_to_run = ALL_DIRS break elif "libs/community" in file: dirs_to_run.update( ("libs/community", "libs/langchain", "libs/experimental") ) elif "libs/partners" in file: partner_dir = file.split("/")[2] dirs_to_run.update( (f"libs/partners/{partner_dir}", "libs/langchain", "libs/experimental") ) elif "libs/langchain" in file: dirs_to_run.update(("libs/langchain", "libs/experimental")) elif "libs/experimental" in file: dirs_to_run.add("libs/experimental") elif file.startswith("libs/"): dirs_to_run = ALL_DIRS break else: pass print(json.dumps(list(dirs_to_run)))