2024-12-05 Bruno Haible <bruno@clisp.org>
+ gnulib-tool.py: Fix invalid use of cache.
+ * pygnulib/GLModuleSystem.py (GLModule._getDependents): Make the modules
+ argument mandatory. Don't store the result in self.cache.
+
gnulib-tool.py: Refactor.
* pygnulib/GLModuleSystem.py (GLModuleSystem.getAllModules): Moved here
from GLModule._getAllModules. No need to eliminate empty module names.
return outmodules
- def _getDependents(self, modules: list[GLModule] | None = None) -> list[GLModule]:
- '''Internal function for getDependentsRecursively
- accepting an optional argument modules.'''
- if 'dependents' not in self.cache:
- result = []
- if modules is None:
- modules = self.modulesystem.getAllModules()
- for module in modules:
- if self in set(module.getDependenciesWithoutConditions()):
- result.append(module)
- self.cache['dependents'] = result
- return self.cache['dependents']
-
def getDependents(self) -> list[GLModule]:
'''Return list of dependents (a.k.a. "reverse dependencies"),
as a list of GLModule objects.
self.cache['dependents'] = result
return self.cache['dependents']
+ def _getDependents(self, modules: list[GLModule]) -> list[GLModule]:
+ '''Return the list of dependents of this module,
+ among the given set of modules.'''
+ result = []
+ for module in modules:
+ if self in set(module.getDependenciesWithoutConditions()):
+ result.append(module)
+ return result
def getDependentsRecursively(self) -> set[GLModule]:
'''Return a list of recursive dependents of this module,