summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-06-10 18:15:07 -0700
committerZac Medico <zmedico@gentoo.org>2012-06-10 18:15:07 -0700
commitc864dd8d26ecc2144fd7e0ae56d12519f94dbd99 (patch)
tree3f3a16da982e875c09bed6d870784b5764442641
parentb6ecc428a7e04afa3449df6a6844978eeb40d569 (diff)
downloadportage-c864dd8d26ecc2144fd7e0ae56d12519f94dbd99.tar.gz
portage-c864dd8d26ecc2144fd7e0ae56d12519f94dbd99.tar.bz2
portage-c864dd8d26ecc2144fd7e0ae56d12519f94dbd99.zip
Add a _get_slot_re() function.
-rw-r--r--pym/_emerge/Package.py4
-rw-r--r--pym/portage/dbapi/vartree.py6
-rw-r--r--pym/portage/dep/__init__.py3
3 files changed, 9 insertions, 4 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index 75021b9f5..91d7606b2 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -8,7 +8,7 @@ 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
+ paren_enclose, _get_slot_re, _slot_separator, _repo_separator
from portage.versions import _pkg_str, _unknown_repo
from portage.eapi import _get_eapi_attrs
from portage.exception import InvalidDependString
@@ -51,7 +51,7 @@ class Package(Task):
self.metadata['CHOST'] = self.root_config.settings.get('CHOST', '')
eapi_attrs = _get_eapi_attrs(self.metadata["EAPI"])
slot = self.slot
- if _slot_re.match(slot) is None:
+ if _get_slot_re(eapi_attrs).match(slot) is None:
self._invalid_metadata('SLOT.invalid',
"SLOT: invalid value: '%s'" % slot)
# Avoid an InvalidAtom exception when creating slot_atom.
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 517c873ab..fbbf49dcf 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -12,7 +12,8 @@ portage.proxy.lazyimport.lazyimport(globals(),
'portage.dbapi.dep_expand:dep_expand',
'portage.dbapi._MergeProcess:MergeProcess',
'portage.dep:dep_getkey,isjustname,match_from_list,' + \
- 'use_reduce,_slot_re',
+ 'use_reduce,_get_slot_re',
+ 'portage.eapi:_get_eapi_attrs',
'portage.elog:collect_ebuild_messages,collect_messages,' + \
'elog_process,_merge_logentries',
'portage.locks:lockdir,unlockdir,lockfile,unlockfile',
@@ -687,7 +688,8 @@ class vardbapi(dbapi):
(mydir_mtime, cache_data)
self._aux_cache["modified"].add(mycpv)
- if _slot_re.match(mydata['SLOT']) is None:
+ eapi_attrs = _get_eapi_attrs(mydata['EAPI'])
+ if _get_slot_re(eapi_attrs).match(mydata['SLOT']) is None:
# Empty or invalid slot triggers InvalidAtom exceptions when
# generating slot atoms for packages, so translate it to '0' here.
mydata['SLOT'] = _unicode_decode('0')
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index d2df0425d..e6056b104 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -55,6 +55,9 @@ _repo = r'(?:' + _repo_separator + '(' + _repo_name + ')' + ')?'
_extended_cat = r'[\w+*][\w+.*-]*'
+def _get_slot_re(eapi_attrs):
+ return _slot_re
+
_atom_re_cache = {}
def _get_atom_re(eapi_attrs):