from portage.util import ensure_dirs, getconfig, grabdict, \
grabdict_package, grabfile, grabfile_package, LazyItemsDict, \
normalize_path, shlex_split, stack_dictlist, stack_dicts, stack_lists, \
- writemsg, writemsg_level
+ writemsg, writemsg_level, _eapi_cache
from portage.versions import catpkgsplit, catsplit, cpv_getkey, _pkg_str
from portage.package.ebuild._config import special_env_vars
# and subsequent calls to the _init() functions have no effect.
portage.output._init(config_root=self['PORTAGE_CONFIGROOT'])
portage.data._init(self)
+ _eapi_cache.clear()
if mycpv:
self.setcpv(mycpv)
newdict[k] = " ".join(v)
return newdict
+_eapi_cache = {}
+
def read_corresponding_eapi_file(filename):
"""
Read the 'eapi' file from the directory 'filename' is in.
"""
default = "0"
eapi_file = os.path.join(os.path.dirname(filename), "eapi")
+ try:
+ return _eapi_cache[eapi_file]
+ except KeyError:
+ pass
try:
f = io.open(_unicode_encode(eapi_file,
encoding=_encodings['fs'], errors='strict'),
except IOError:
eapi = default
+ _eapi_cache[eapi_file] = eapi
return eapi
def grabdict_package(myfilename, juststrings=0, recursive=0, allow_wildcard=False, allow_repo=False,