From 799ed1f0b30dc65f574773f511834cb3c3783479 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Dec 2025 17:13:23 +0000 Subject: [PATCH 1/2] Initial plan From 45cbfaf9e961fa4493af5c298f12b96cdf27adcf Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 3 Dec 2025 17:16:47 +0000 Subject: [PATCH 2/2] Optimize file I/O by caching pyproject data during first pass Co-authored-by: pontemonti <7850950+pontemonti@users.noreply.github.com> --- generate_dependency_diagram.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/generate_dependency_diagram.py b/generate_dependency_diagram.py index 6bc84e8c..bc102049 100644 --- a/generate_dependency_diagram.py +++ b/generate_dependency_diagram.py @@ -156,9 +156,10 @@ def main(): pkg_type = determine_package_type(member_path) package_configs.append((member_path, pkg_type)) - # Collect all package names first + # Collect all package names first and cache pyproject data all_package_names = set() packages: List[PackageInfo] = [] + pyproject_data_cache: Dict[str, Dict] = {} for path_str, pkg_type in package_configs: pyproject_path = repo_root / path_str / 'pyproject.toml' @@ -174,12 +175,15 @@ def main(): pkg_name = pyproject_data['project']['name'] all_package_names.add(pkg_name) + # Cache the pyproject data to avoid reading the file again + pyproject_data_cache[pkg_name] = pyproject_data + pkg_info = PackageInfo(pkg_name, pkg_type, pyproject_path) packages.append(pkg_info) - # Extract dependencies for each package + # Extract dependencies for each package using cached data for pkg in packages: - pyproject_data = read_pyproject_toml(pkg.path) + pyproject_data = pyproject_data_cache[pkg.name] pkg.dependencies = extract_dependencies(pyproject_data, all_package_names) # Generate Mermaid diagram