]> Savannah Git Hosting - gnulib.git/commitdiff
gnulib-tool.py: Small refactoring.
authorBruno Haible <bruno@clisp.org>
Sat, 3 Aug 2024 15:04:55 +0000 (17:04 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 3 Aug 2024 15:06:02 +0000 (17:06 +0200)
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
pygnulib/GLModuleSystem.py
pygnulib/main.py

index d331b50f10f60a758f1de98753b82cdb25107b4c..779e593a14371301a881d44e7f1ffde8a95c74eb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2024-08-03  Bruno Haible  <bruno@clisp.org>
+
+       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  <collin.funk1@gmail.com>
 
        gnulib-tool.py: Correct type hint and doc string.
index 04bb87a46d5c4cdcc602c6a3b40fc4ffb62a9ac1..09afcf6883f724a882c28616cba63bd152d2d1b7 100644 (file)
@@ -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"),
index dbff9dc76aa1c485b4b2dd8b0ce47443eec0fca8..f39a05bfd33f43521b7ae0880038a42434e78f86 100644 (file)
@@ -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: