From d0a8b0bdfeeb406f459ee460f0df3b1b3360ddf1 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 22 May 2011 11:53:41 -0700 Subject: Package: add new _gen_hash_key method --- pym/_emerge/depgraph.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) (limited to 'pym/_emerge/depgraph.py') diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index d09ee87ba..0bd351278 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -4130,30 +4130,20 @@ class depgraph(object): failures for some reason (package does not exist or is corrupt). """ - if type_name != "ebuild": - # For installed (and binary) packages we don't care for the repo - # when it comes to hashing, because there can only be one cpv. - # So overwrite the repo_key with type_name. - repo_key = type_name - myrepo = None - elif myrepo is None: - raise AssertionError( - "depgraph._pkg() called without 'myrepo' argument") - else: - repo_key = myrepo - operation = "merge" - if installed or onlydeps: - operation = "nomerge" # Ensure that we use the specially optimized RootConfig instance # that refers to FakeVartree instead of the real vartree. root_config = self._frozen_config.roots[root_config.root] pkg = self._frozen_config._pkg_cache.get( - (type_name, root_config.root, cpv, operation, repo_key)) + Package._gen_hash_key(cpv=cpv, type_name=type_name, + repo_name=myrepo, root_config=root_config, + installed=installed, onlydeps=onlydeps)) if pkg is None and onlydeps and not installed: # Maybe it already got pulled in as a "merge" node. pkg = self._dynamic_config.mydbapi[root_config.root].get( - (type_name, root_config.root, cpv, 'merge', repo_key)) + Package._gen_hash_key(cpv=cpv, type_name=type_name, + repo_name=myrepo, root_config=root_config, + installed=installed, onlydeps=False)) if pkg is None: tree_type = self.pkg_tree_map[type_name] -- cgit v1.2.3-1-g7c22