diff options
Diffstat (limited to 'odoo/modules/graph.py')
| -rw-r--r-- | odoo/modules/graph.py | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/odoo/modules/graph.py b/odoo/modules/graph.py index d962ea78bdc..731b6f6557a 100644 --- a/odoo/modules/graph.py +++ b/odoo/modules/graph.py @@ -8,7 +8,7 @@ import logging import odoo import odoo.tools as tools - +from odoo.tools import pycompat _logger = logging.getLogger(__name__) @@ -36,7 +36,7 @@ class Graph(dict): return # update the graph with values from the database (if exist) ## First, we set the default values for each package in graph - additional_data = dict((key, {'id': 0, 'state': 'uninstalled', 'dbdemo': False, 'installed_version': None}) for key in self.keys()) + additional_data = {key: {'id': 0, 'state': 'uninstalled', 'dbdemo': False, 'installed_version': None} for key in pycompat.keys(self)} ## Then we get the values from the database cr.execute('SELECT name, id, state, demo AS dbdemo, latest_version AS installed_version' ' FROM ir_module_module' @@ -46,8 +46,8 @@ class Graph(dict): ## and we update the default values with values from the database additional_data.update((x['name'], x) for x in cr.dictfetchall()) - for package in self.values(): - for k, v in additional_data[package.name].items(): + for package in pycompat.values(self): + for k, v in pycompat.items(additional_data[package.name]): setattr(package, k, v) def add_module(self, cr, module, force=None): @@ -94,7 +94,7 @@ class Graph(dict): self.update_from_db(cr) for package in later: - unmet_deps = filter(lambda p: p not in self, dependencies[package]) + unmet_deps = [p for p in dependencies[package] if p not in self] _logger.error('module %s: Unmet dependencies: %s', package, ', '.join(unmet_deps)) return len(self) - len_graph @@ -102,9 +102,9 @@ class Graph(dict): def __iter__(self): level = 0 - done = set(self.keys()) + done = set(pycompat.keys(self)) while done: - level_modules = sorted((name, module) for name, module in self.items() if module.depth==level) + level_modules = sorted((name, module) for name, module in pycompat.items(self) if module.depth==level) for name, module in level_modules: done.remove(name) yield module @@ -164,7 +164,10 @@ class Node(object): setattr(child, name, value + 1) def __iter__(self): - return itertools.chain(iter(self.children), *map(iter, self.children)) + return itertools.chain( + self.children, + itertools.chain.from_iterable(self.children) + ) def __str__(self): return self._pprint() |
