From c9809f077512985a92fa8d46bba5a9ac6ca0ffd2 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Fri, 29 Nov 2013 19:56:20 +0100 Subject: [PATCH] [entropy.server] migrate to pkg_dependencies metadata --- lib/entropy/server/interfaces/main.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/entropy/server/interfaces/main.py b/lib/entropy/server/interfaces/main.py index 3f5d83fd7..dea60a99f 100644 --- a/lib/entropy/server/interfaces/main.py +++ b/lib/entropy/server/interfaces/main.py @@ -7455,8 +7455,10 @@ class Server(Client): # pkg_meta['conflicts'] is a frozenset conflicts = set(pkg_meta['conflicts']) + new_dependencies = [] + remove_dependencies = set() - for dep_string, dep_value in pkg_meta['dependencies'].items(): + for dep_string, dep_value in pkg_meta['pkg_dependencies']: dep_string_matched = False matched_pattern = False @@ -7472,8 +7474,8 @@ class Server(Client): if conflict: conflicts.add(dep_pattern_string) else: - pkg_meta['dependencies'][dep_pattern_string] = \ - dep_pattern_type + new_dependencies.append( + (dep_pattern_string, dep_pattern_type)) continue if not compiled_pattern.match(dep_string): @@ -7491,7 +7493,7 @@ class Server(Client): if number_of_subs_made: dep_string_matched = True if new_dep_string and (new_dep_string != "-"): - pkg_meta['dependencies'][new_dep_string] = dep_value + new_dependencies.append((new_dep_string, dep_value)) self.output( "%s: %s => %s" % ( teal(_("replaced")), @@ -7526,7 +7528,7 @@ class Server(Client): ) if dep_string_matched: - del pkg_meta['dependencies'][dep_string] + remove_dependencies.add(dep_string) elif (not dep_string_matched) and matched_pattern: self.output( "%s: %s :: %s" % ( @@ -7539,6 +7541,15 @@ class Server(Client): header = darkred(" !x!x!x! ") ) + pkg_dependencies = [] + for dep_string, dep_value in pkg_meta['pkg_dependencies']: + if dep_string in remove_dependencies: + continue + pkg_dependencies.append((dep_string, dep_value)) + + pkg_dependencies.extend(new_dependencies) + pkg_meta['pkg_dependencies'] = tuple(pkg_dependencies) + # save conflicts metadata back in place pkg_meta['conflicts'] = frozenset(conflicts)