From 528990c3279dcb2b37062f447cfda80730ead6b7 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 13 May 2012 16:40:29 -0700 Subject: _pkg_str: validate repo (move code from Package) --- pym/_emerge/Package.py | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'pym/_emerge') diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 84a2cbced..c04fa1f8f 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -8,12 +8,10 @@ from portage import _encodings, _unicode_decode, _unicode_encode from portage.cache.mappings import slot_dict_class from portage.const import EBUILD_PHASES from portage.dep import Atom, check_required_use, use_reduce, \ - paren_enclose, _slot_re, _slot_separator, _repo_separator, \ - _unknown_repo -from portage.versions import _pkg_str + paren_enclose, _slot_re, _slot_separator, _repo_separator +from portage.versions import _pkg_str, _unknown_repo from portage.eapi import eapi_has_iuse_defaults, eapi_has_required_use from portage.exception import InvalidDependString -from portage.repository.config import _gen_valid_repo from _emerge.Task import Task if sys.hexversion >= 0x3000000: @@ -58,12 +56,11 @@ class Package(Task): # Avoid an InvalidAtom exception when creating slot_atom. # This package instance will be masked due to empty SLOT. slot = '0' - repo = _gen_valid_repo(self.metadata.get('repository', '')) - if not repo: - repo = self.UNKNOWN_REPO - self.metadata['repository'] = repo - self.cpv = _pkg_str(self.cpv, slot=slot, repo=repo) + self.cpv = _pkg_str(self.cpv, slot=slot, + repo=self.metadata.get('repository', '')) self.cp = self.cpv.cp + # sync metadata with validated repo (may be UNKNOWN_REPO) + self.metadata['repository'] = self.cpv.repo if (self.iuse.enabled or self.iuse.disabled) and \ not eapi_has_iuse_defaults(self.metadata["EAPI"]): if not self.installed: @@ -87,7 +84,7 @@ class Package(Task): self._hash_key = Package._gen_hash_key(cpv=self.cpv, installed=self.installed, onlydeps=self.onlydeps, - operation=self.operation, repo_name=repo, + operation=self.operation, repo_name=self.cpv.repo, root_config=self.root_config, type_name=self.type_name) self._hash_value = hash(self._hash_key) -- cgit v1.2.3-1-g7c22