1 |
commit: c864dd8d26ecc2144fd7e0ae56d12519f94dbd99 |
2 |
Author: Zac Medico <zmedico <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Jun 11 01:15:07 2012 +0000 |
4 |
Commit: Zac Medico <zmedico <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jun 11 01:15:07 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=c864dd8d |
7 |
|
8 |
Add a _get_slot_re() function. |
9 |
|
10 |
--- |
11 |
pym/_emerge/Package.py | 4 ++-- |
12 |
pym/portage/dbapi/vartree.py | 6 ++++-- |
13 |
pym/portage/dep/__init__.py | 3 +++ |
14 |
3 files changed, 9 insertions(+), 4 deletions(-) |
15 |
|
16 |
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py |
17 |
index 75021b9..91d7606 100644 |
18 |
--- a/pym/_emerge/Package.py |
19 |
+++ b/pym/_emerge/Package.py |
20 |
@@ -8,7 +8,7 @@ from portage import _encodings, _unicode_decode, _unicode_encode |
21 |
from portage.cache.mappings import slot_dict_class |
22 |
from portage.const import EBUILD_PHASES |
23 |
from portage.dep import Atom, check_required_use, use_reduce, \ |
24 |
- paren_enclose, _slot_re, _slot_separator, _repo_separator |
25 |
+ paren_enclose, _get_slot_re, _slot_separator, _repo_separator |
26 |
from portage.versions import _pkg_str, _unknown_repo |
27 |
from portage.eapi import _get_eapi_attrs |
28 |
from portage.exception import InvalidDependString |
29 |
@@ -51,7 +51,7 @@ class Package(Task): |
30 |
self.metadata['CHOST'] = self.root_config.settings.get('CHOST', '') |
31 |
eapi_attrs = _get_eapi_attrs(self.metadata["EAPI"]) |
32 |
slot = self.slot |
33 |
- if _slot_re.match(slot) is None: |
34 |
+ if _get_slot_re(eapi_attrs).match(slot) is None: |
35 |
self._invalid_metadata('SLOT.invalid', |
36 |
"SLOT: invalid value: '%s'" % slot) |
37 |
# Avoid an InvalidAtom exception when creating slot_atom. |
38 |
|
39 |
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py |
40 |
index 517c873..fbbf49d 100644 |
41 |
--- a/pym/portage/dbapi/vartree.py |
42 |
+++ b/pym/portage/dbapi/vartree.py |
43 |
@@ -12,7 +12,8 @@ portage.proxy.lazyimport.lazyimport(globals(), |
44 |
'portage.dbapi.dep_expand:dep_expand', |
45 |
'portage.dbapi._MergeProcess:MergeProcess', |
46 |
'portage.dep:dep_getkey,isjustname,match_from_list,' + \ |
47 |
- 'use_reduce,_slot_re', |
48 |
+ 'use_reduce,_get_slot_re', |
49 |
+ 'portage.eapi:_get_eapi_attrs', |
50 |
'portage.elog:collect_ebuild_messages,collect_messages,' + \ |
51 |
'elog_process,_merge_logentries', |
52 |
'portage.locks:lockdir,unlockdir,lockfile,unlockfile', |
53 |
@@ -687,7 +688,8 @@ class vardbapi(dbapi): |
54 |
(mydir_mtime, cache_data) |
55 |
self._aux_cache["modified"].add(mycpv) |
56 |
|
57 |
- if _slot_re.match(mydata['SLOT']) is None: |
58 |
+ eapi_attrs = _get_eapi_attrs(mydata['EAPI']) |
59 |
+ if _get_slot_re(eapi_attrs).match(mydata['SLOT']) is None: |
60 |
# Empty or invalid slot triggers InvalidAtom exceptions when |
61 |
# generating slot atoms for packages, so translate it to '0' here. |
62 |
mydata['SLOT'] = _unicode_decode('0') |
63 |
|
64 |
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py |
65 |
index d2df042..e6056b1 100644 |
66 |
--- a/pym/portage/dep/__init__.py |
67 |
+++ b/pym/portage/dep/__init__.py |
68 |
@@ -55,6 +55,9 @@ _repo = r'(?:' + _repo_separator + '(' + _repo_name + ')' + ')?' |
69 |
|
70 |
_extended_cat = r'[\w+*][\w+.*-]*' |
71 |
|
72 |
+def _get_slot_re(eapi_attrs): |
73 |
+ return _slot_re |
74 |
+ |
75 |
_atom_re_cache = {} |
76 |
|
77 |
def _get_atom_re(eapi_attrs): |