summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--pygnulib/GLModuleSystem.py18
2 files changed, 18 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index d907a52c53..65770c9c33 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
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.
* pygnulib/GLModuleSystem.py (GLModuleTable.__init__): Use a defaultdict
for dependers to remove the base initialization case.
diff --git a/pygnulib/GLModuleSystem.py b/pygnulib/GLModuleSystem.py
index ce1fad110c..6d5e874375 100644
--- a/pygnulib/GLModuleSystem.py
+++ b/pygnulib/GLModuleSystem.py
@@ -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]:

Return to:

Send suggestions and report system problems to the System administrator.