]> Savannah Git Hosting - gnulib.git/commitdiff
gnulib-tool.py: Make use of GLModule's __hash__ method.
authorCollin Funk <collin.funk1@gmail.com>
Fri, 19 Apr 2024 19:00:33 +0000 (12:00 -0700)
committerBruno Haible <bruno@clisp.org>
Fri, 19 Apr 2024 21:15:57 +0000 (23:15 +0200)
* pygnulib/GLModuleSystem.py (GLModuleTable.addUnconditional)
(GLModuleTable.isConditional): Use the GLModule object instead of the
module name directly.
(GLModuleTable.addConditional, GLModuleTable.getCondition): Likewise.
Use a tuple of two GLModule objects as a key for the conditionals
dictionary.

ChangeLog
pygnulib/GLModuleSystem.py

index d907a52c53b459a07948f52ec6fb945d8103fc39..65770c9c33ab76b03f8d50495bbdd2acf91a2351 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2024-04-19  Collin Funk  <collin.funk1@gmail.com>
+
+       gnulib-tool.py: Make use of GLModule's __hash__ method.
+       * pygnulib/GLModuleSystem.py (GLModuleTable.addUnconditional)
+       (GLModuleTable.isConditional): Use the GLModule object instead of the
+       module name directly.
+       (GLModuleTable.addConditional, GLModuleTable.getCondition): Likewise.
+       Use a tuple of two GLModule objects as a key for the conditionals
+       dictionary.
+
 2024-04-19  Collin Funk  <collin.funk1@gmail.com>
 
        gnulib-tool.py: Simplify data structures for dependencies.
index ce1fad110cb937ed08fd6f5c774e2e93f7bbd334..6d5e87437550b3f48c74f76ba559f6db7092d0ad 100644 (file)
@@ -762,27 +762,26 @@ class GLModuleTable:
         if not (type(condition) is str or condition == True):
             raise TypeError('condition must be a string or True, not %s'
                             % type(condition).__name__)
-        if str(module) not in self.unconditionals:
+        if module not in self.unconditionals:
             # No unconditional dependency to the given module is known at this point.
-            self.dependers[str(module)].add(str(parent))
-            key = '%s---%s' % (str(parent), str(module))
-            self.conditionals[key] = condition
+            self.dependers[module].add(parent)
+            self.conditionals[(parent, module)] = condition
 
     def addUnconditional(self, module: GLModule) -> None:
         '''Add module as unconditional dependency.'''
         if type(module) is not GLModule:
             raise TypeError('module must be a GLModule, not %s'
                             % type(module).__name__)
-        self.unconditionals.add(str(module))
-        if str(module) in self.dependers:
-            self.dependers.pop(str(module))
+        self.unconditionals.add(module)
+        if module in self.dependers:
+            self.dependers.pop(module)
 
     def isConditional(self, module: GLModule) -> bool:
         '''Check whether module is unconditional.'''
         if type(module) is not GLModule:
             raise TypeError('module must be a GLModule, not %s'
                             % type(module).__name__)
-        result = str(module) in self.dependers
+        result = module in self.dependers
         return result
 
     def getCondition(self, parent: GLModule, module: GLModule) -> str | bool | None:
@@ -794,8 +793,7 @@ class GLModuleTable:
         if type(module) is not GLModule:
             raise TypeError('module must be a GLModule, not %s'
                             % type(module).__name__)
-        key = '%s---%s' % (str(parent), str(module))
-        result = self.conditionals.get(key, None)
+        result = self.conditionals.get((parent, module), None)
         return result
 
     def transitive_closure(self, modules: list[GLModule]) -> list[GLModule]: