portage.dep.Atom: Ignore allow_repo argument when non-None eapi is passed.
authorArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Wed, 30 May 2012 00:40:15 +0000 (02:40 +0200)
committerArfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
Wed, 30 May 2012 00:40:15 +0000 (02:40 +0200)
Allow repository when allow_repo=False is not passed and eapi=None is passed.

pym/portage/dep/__init__.py

index 152af0aa814a104b75a8e4942b90cd98bc1c10d6..d29a4c4a1c63693d7808ca1fb985a117d6a2616a 100644 (file)
@@ -1068,11 +1068,11 @@ class Atom(_atom_base):
                def __init__(self, forbid_overlap=False):
                        self.overlap = self._overlap(forbid=forbid_overlap)
 
-       def __new__(cls, s, unevaluated_atom=None, allow_wildcard=False, allow_repo=False,
+       def __new__(cls, s, unevaluated_atom=None, allow_wildcard=False, allow_repo=None,
                _use=None, eapi=None, is_valid_flag=None):
                return _atom_base.__new__(cls, s)
 
-       def __init__(self, s, unevaluated_atom=None, allow_wildcard=False, allow_repo=False,
+       def __init__(self, s, unevaluated_atom=None, allow_wildcard=False, allow_repo=None,
                _use=None, eapi=None, is_valid_flag=None):
                if isinstance(s, Atom):
                        # This is an efficiency assertion, to ensure that the Atom
@@ -1087,8 +1087,13 @@ class Atom(_atom_base):
                _atom_base.__init__(s)
 
                atom_re = _get_atom_re(eapi)
-               if eapi_has_repo_deps(eapi):
-                       allow_repo = True
+
+               if eapi is not None:
+                       # Ignore allow_repo when eapi is specified.
+                       allow_repo = eapi_has_repo_deps(eapi)
+               else:
+                       if allow_repo is None:
+                               allow_repo = True
 
                if "!" == s[:1]:
                        blocker = self._blocker(forbid_overlap=("!" == s[1:2]))