From da8e6e1317877008ee7be56c3d971eb2343ef415 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 3 Aug 2024 17:04:55 +0200 Subject: [PATCH] gnulib-tool.py: Small refactoring. Suggested by Collin Funk. * pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively): Return a set of GLModule. * pygnulib/main.py (main): Convert the result to a string here. --- ChangeLog | 8 ++++++++ pygnulib/GLModuleSystem.py | 10 ++++------ pygnulib/main.py | 5 ++++- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index d331b50f10..779e593a14 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2024-08-03 Bruno Haible + + gnulib-tool.py: Small refactoring. + Suggested by Collin Funk. + * pygnulib/GLModuleSystem.py (GLModule.getDependenciesRecursively): + Return a set of GLModule. + * pygnulib/main.py (main): Convert the result to a string here. + 2024-08-02 Collin Funk gnulib-tool.py: Correct type hint and doc string. diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py index 04bb87a46d..09afcf6883 100644 --- a/pygnulib/GLModuleSystem.py +++ b/pygnulib/GLModuleSystem.py @@ -528,9 +528,9 @@ class GLModule: self.cache['dependenciesWithCond'] = result return self.cache['dependenciesWithCond'] - def getDependenciesRecursively(self) -> str: - '''Return a list of recursive dependencies of this module separated - by a newline.''' + def getDependenciesRecursively(self) -> set[GLModule]: + '''Return a list of recursive dependencies of this module, + as a set of GLModule objects.''' handledmodules = set() inmodules = set() outmodules = set() @@ -551,9 +551,7 @@ class GLModule: # Remove handledmodules from inmodules. inmodules = inmodules.difference(handledmodules) - module_names = sorted([ module.name - for module in outmodules ]) - return lines_to_multiline(module_names) + return outmodules def getDependents(self) -> list[GLModule]: '''Return list of dependents (a.k.a. "reverse dependencies"), diff --git a/pygnulib/main.py b/pygnulib/main.py index dbff9dc76a..f39a05bfd3 100644 --- a/pygnulib/main.py +++ b/pygnulib/main.py @@ -1256,7 +1256,10 @@ def main(temp_directory: str) -> None: for name in modules: module = modulesystem.find(name) if module: - sys.stdout.write(module.getDependenciesRecursively()) + dependencies = module.getDependenciesRecursively() + dependencies_names = sorted([ m.name + for m in dependencies ]) + sys.stdout.write(lines_to_multiline(dependencies_names)) elif mode == 'extract-dependents': if avoids: -- 2.39.5