refactor: remove Machine.vars_generators() method

Replace all calls to machine.vars_generators() with direct calls to
Generator.generators_from_flake() to make the dependency more explicit
and remove unnecessary indirection.

This reduces coupling to the Machine class, making the codebase more
modular and easier to refactor in the future.
This commit is contained in:
DavHau
2025-07-05 15:26:31 +07:00
parent 324e934204
commit 448e60f866
9 changed files with 81 additions and 23 deletions

View File

@@ -187,7 +187,10 @@ def decrypt_dependencies(
decrypted_dependencies: dict[str, Any] = {}
for generator_name in set(generator.dependencies):
decrypted_dependencies[generator_name] = {}
for dep_generator in machine.vars_generators():
generators = Generator.generators_from_flake(
machine.name, machine.flake, machine
)
for dep_generator in generators:
if generator_name == dep_generator.name:
break
else:
@@ -395,7 +398,9 @@ def get_closure(
) -> list[Generator]:
from . import graph
vars_generators = machine.vars_generators()
vars_generators = Generator.generators_from_flake(
machine.name, machine.flake, machine
)
generators: dict[str, Generator] = {
generator.name: generator for generator in vars_generators
}
@@ -470,7 +475,11 @@ def generate_vars_for_machine(
machine = Machine(name=machine_name, flake=Flake(str(base_dir)))
generators_set = set(generators)
generators_ = [g for g in machine.vars_generators() if g.name in generators_set]
generators_ = [
g
for g in Generator.generators_from_flake(machine_name, machine.flake, machine)
if g.name in generators_set
]
return _generate_vars_for_machine(
machine=machine,
@@ -489,7 +498,10 @@ def generate_vars_for_machine_interactive(
) -> bool:
_generator = None
if generator_name:
for generator in machine.vars_generators():
generators = Generator.generators_from_flake(
machine.name, machine.flake, machine
)
for generator in generators:
if generator.name == generator_name:
_generator = generator
break