diff --git a/.github/scripts/prep_api_docs_build.py b/.github/scripts/prep_api_docs_build.py index 2fcbc0c8f9f61..2c2655e2155a4 100644 --- a/.github/scripts/prep_api_docs_build.py +++ b/.github/scripts/prep_api_docs_build.py @@ -14,13 +14,20 @@ def load_packages_yaml() -> Dict[str, Any]: return yaml.safe_load(f) +def get_target_dir(package_name: str) -> Path: + """Get the target directory for a given package.""" + package_name_short = package_name.replace("langchain-", "") + base_path = Path("langchain/libs") + if package_name_short == "experimental": + return base_path / "experimental" + return base_path / "partners" / package_name_short + + def clean_target_directories(packages: Dict[str, Any]) -> None: """Remove old directories that will be replaced.""" - base_path = Path("langchain/libs/partners") for package in packages["packages"]: if package["repo"] != "langchain-ai/langchain": - package_name = package["name"].replace("langchain-", "") - target_dir = base_path / package_name + target_dir = get_target_dir(package["name"]) if target_dir.exists(): print(f"Removing {target_dir}") shutil.rmtree(target_dir) @@ -36,12 +43,8 @@ def move_libraries(packages: Dict[str, Any]) -> None: continue repo_name = package["repo"].split("/")[1] - package_name = package["name"].replace("langchain-", "") source_path = package["path"] - target_dir = f"langchain/libs/partners/{package_name}" - if package_name == "experimental": - # special case experimental - target_dir = "langchain/libs/experimental" + target_dir = get_target_dir(package["name"]) # Handle root path case if source_path == ".":