aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-06-10 15:20:23 -0700
committerZac Medico <zmedico@gentoo.org>2012-06-10 15:20:23 -0700
commit2a5d810445fa819ce64218b17dc70b3228cd61c5 (patch)
tree605bfa2d65bd6a12f3bb824c52808b81ca46cc80 /pym/portage/dep
parent_get_useflag_re: use _eapi_attrs (diff)
downloadportage-2a5d810445fa819ce64218b17dc70b3228cd61c5.tar.gz
portage-2a5d810445fa819ce64218b17dc70b3228cd61c5.tar.bz2
portage-2a5d810445fa819ce64218b17dc70b3228cd61c5.zip
_get_atom_re: share cache between more EAPIs
Diffstat (limited to 'pym/portage/dep')
-rw-r--r--pym/portage/dep/__init__.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/pym/portage/dep/__init__.py b/pym/portage/dep/__init__.py
index d2b885bbb..27b90b90a 100644
--- a/pym/portage/dep/__init__.py
+++ b/pym/portage/dep/__init__.py
@@ -86,7 +86,8 @@ def _get_eapi_attrs(eapi):
_atom_re_cache = {}
def _get_atom_re(eapi_attrs):
- atom_re = _atom_re_cache.get(eapi_attrs)
+ cache_key = eapi_attrs.dots_in_PN
+ atom_re = _atom_re_cache.get(cache_key)
if atom_re is not None:
return atom_re
@@ -104,7 +105,7 @@ def _get_atom_re(eapi_attrs):
'(' + _slot_separator + _slot + ')?' +
_repo + ')(' + _use + ')?$', re.VERBOSE)
- _atom_re_cache[eapi_attrs] = atom_re
+ _atom_re_cache[cache_key] = atom_re
return atom_re
_usedep_re_cache = {}
@@ -117,7 +118,8 @@ def _get_usedep_re(eapi_attrs):
@return: A regular expression object that matches valid USE deps for the
given eapi.
"""
- usedep_re = _usedep_re_cache.get(eapi_attrs)
+ cache_key = eapi_attrs.dots_in_use_flags
+ usedep_re = _usedep_re_cache.get(cache_key)
if usedep_re is not None:
return usedep_re
@@ -129,7 +131,7 @@ def _get_usedep_re(eapi_attrs):
usedep_re = re.compile(r'^(?P<prefix>[!-]?)(?P<flag>' +
_flag_re + r')(?P<default>(\(\+\)|\(\-\))?)(?P<suffix>[?=]?)$')
- _usedep_re_cache[eapi_attrs] = usedep_re
+ _usedep_re_cache[cache_key] = usedep_re
return usedep_re
_useflag_re_cache = {}