From 26924b0f90ea310f6d48c94defeea10f5622c32f Mon Sep 17 00:00:00 2001 From: Jacob Faibussowitsch Date: Thu, 31 Jul 2025 10:41:34 -0400 Subject: [PATCH 1/2] Add default packages even if they are not reachable by main package --- src/aedifix/manager.py | 8 ++++++-- src/aedifix/packages/__init__.py | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/aedifix/manager.py b/src/aedifix/manager.py index eb9da00..02a05ce 100644 --- a/src/aedifix/manager.py +++ b/src/aedifix/manager.py @@ -482,7 +482,7 @@ def gen_summary() -> Iterator[str]: "$ make", ] - from .packages.python import Python + from .packages import Python if self._get_package(Python).state.enabled(): install_mess.extend( @@ -507,8 +507,12 @@ def _collect_deps(self) -> set[type[Package]]: # that are reachable starting from the main package dependencies. # ref: https://en.wikipedia.org/wiki/Depth-first_search#Pseudocode + from .packages import _all_default_packages + seen: set[type[Package]] = set() - stack: list[type[Package]] = list(self._main_package.dependencies) + stack: list[type[Package]] = ( + list(self._main_package.dependencies) + _all_default_packages() + ) while stack: if (dep := stack.pop()) not in seen: diff --git a/src/aedifix/packages/__init__.py b/src/aedifix/packages/__init__.py index c655e05..5a1e96e 100644 --- a/src/aedifix/packages/__init__.py +++ b/src/aedifix/packages/__init__.py @@ -2,3 +2,20 @@ # All rights reserved. # SPDX-License-Identifier: Apache-2.0 from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from ..package.package import Package + + +from .cmake import CMake +from .cuda import CUDA +from .python import Python + + +def _all_default_packages() -> list[type[Package]]: + return [CMake, CUDA, Python] + + +__all__ = ("CUDA", "CMake", "Python") From c6e44b00b8224f6c1fa3c74c88ce4fa0500f81a0 Mon Sep 17 00:00:00 2001 From: Jacob Faibussowitsch Date: Thu, 31 Jul 2025 10:54:00 -0400 Subject: [PATCH 2/2] fixup! Add default packages even if they are not reachable by main package --- tests/test_manager.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/test_manager.py b/tests/test_manager.py index 216cffa..2918e29 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -77,9 +77,12 @@ def test_create( def test_setup(self, AEDIFIX_PYTEST_ARCH: str) -> None: manager = ConfigurationManager((), DummyMainModule) orig_argv = deepcopy(manager.argv) + # Only the main module assert len(manager._modules) == 1 manager.setup() - assert len(manager._modules) == 1 + # 4 modules: The main module, and the default modules (currently only + # 3, CMake, CUDA, and Python). + assert len(manager._modules) == 4 assert manager.argv == orig_argv assert ( CLArg(