config: fix repo KeyErrors
authorZac Medico <zmedico@gentoo.org>
Tue, 21 Jun 2011 03:27:38 +0000 (20:27 -0700)
committerZac Medico <zmedico@gentoo.org>
Tue, 21 Jun 2011 03:27:38 +0000 (20:27 -0700)
pym/portage/package/ebuild/_config/UseManager.py
pym/portage/package/ebuild/config.py

index 67e92944eabb26819d0a48fa446c50b6a869a812..d7ef0f6b0c7345f678f234e84c0dd5bf7942b360 100644 (file)
@@ -147,7 +147,14 @@ class UseManager(object):
                        cp = cpv_getkey(remove_slot(pkg))
                usemask = []
                if hasattr(pkg, "repo") and pkg.repo != Package.UNKNOWN_REPO:
-                       for repo in [repo.name for repo in self.repositories[pkg.repo].masters] + [pkg.repo]:
+                       repos = []
+                       try:
+                               repos.extend(repo.name for repo in
+                                       self.repositories[pkg.repo].masters)
+                       except KeyError:
+                               pass
+                       repos.append(pkg.repo)
+                       for repo in repos:
                                usemask.append(self._repo_usemask_dict.get(repo, {}))
                                cpdict = self._repo_pusemask_dict.get(repo, {}).get(cp)
                                if cpdict:
@@ -174,7 +181,14 @@ class UseManager(object):
                        cp = cpv_getkey(remove_slot(pkg))
                useforce = []
                if hasattr(pkg, "repo") and pkg.repo != Package.UNKNOWN_REPO:
-                       for repo in [repo.name for repo in self.repositories[pkg.repo].masters] + [pkg.repo]:
+                       repos = []
+                       try:
+                               repos.extend(repo.name for repo in
+                                       self.repositories[pkg.repo].masters)
+                       except KeyError:
+                               pass
+                       repos.append(pkg.repo)
+                       for repo in repos:
                                useforce.append(self._repo_useforce_dict.get(repo, {}))
                                cpdict = self._repo_puseforce_dict.get(repo, {}).get(cp)
                                if cpdict:
index 6b7af51e93e39e57901703f7e30494e4cd632e6f..c8ea1c86ee7f21c8e09749e9176f1ddc544f6371 100644 (file)
@@ -1127,8 +1127,14 @@ class config(object):
                repo_env = []
                repo_env_empty = True
                if repository and repository != Package.UNKNOWN_REPO:
-                       for repo in [repo.name for
-                               repo in self.repositories[repository].masters] + [repository]:
+                       repos = []
+                       try:
+                               repos.extend(repo.name for repo in
+                                       self.repositories[repository].masters)
+                       except KeyError:
+                               pass
+                       repos.append(repository)
+                       for repo in repos:
                                d = self._repo_make_defaults.get(repo)
                                if d is None:
                                        d = {}