summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-04-15 05:26:44 +0000
committerZac Medico <zmedico@gentoo.org>2006-04-15 05:26:44 +0000
commit5210ef39ff48f5701a837931881680e65aebf716 (patch)
tree2f2889fa17923885f3c988498beafec590e4a7bf /pym/portage.py
parent64d1c57a97f56df9a4e96f8a0a4efa98bf7de010 (diff)
downloadportage-5210ef39ff48f5701a837931881680e65aebf716.tar.gz
portage-5210ef39ff48f5701a837931881680e65aebf716.tar.bz2
portage-5210ef39ff48f5701a837931881680e65aebf716.zip
Add singleton support to LazyItemsDict to make it easier to use with arbitrary function calls.
svn path=/main/trunk/; revision=3149
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py29
1 files changed, 5 insertions, 24 deletions
diff --git a/pym/portage.py b/pym/portage.py
index f53436ba0..7a8258547 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -1404,18 +1404,9 @@ class config:
# XXX Global usage of db... Needs to go away somehow.
global db, root
if "auto" in self["USE_ORDER"].split(":") and db.has_key(root) and db[root].has_key("vartree"):
- class LazyAutouse(object):
- def __init__(self, *pargs, **kwargs):
- self._use = None
- self._pargs = pargs
- self._kwargs = kwargs
- def __call__(self):
- if self._use is None:
- global db, root
- self._use = autouse(db[root]["vartree"], *self._pargs, **self._kwargs)
- return self._use
self.configdict["auto"] = portage_util.LazyItemsDict(self.configdict["auto"])
- self.configdict["auto"].addLazyItem("USE", LazyAutouse(use_cache=use_cache))
+ self.configdict["auto"].addLazySingleton("USE", autouse,
+ db[root]["vartree"], use_cache=use_cache)
else:
self.configdict["auto"]["USE"]=""
else:
@@ -6478,23 +6469,13 @@ def getvirtuals(myroot):
return settings.getvirtuals(myroot)
def do_vartree(mysettings):
- class LazyVirtualsItem(object):
- def __init__(self, myroot):
- self._myroot = myroot
- self._virtuals = None
- def __call__(self):
- if self._virtuals is None:
- global settings
- self._virtuals = settings.getvirtuals(self._myroot)
- return self._virtuals
-
- global db, root
+ global db, root, settings
db["/"] = portage_util.LazyItemsDict()
- db["/"].addLazyItem("virtuals", LazyVirtualsItem("/"))
+ db["/"].addLazySingleton("virtuals", settings.getvirtuals, "/")
db["/"]["vartree"] = vartree("/")
if root!="/":
db[root] = portage_util.LazyItemsDict()
- db[root].addLazyItem("virtuals", LazyVirtualsItem(root))
+ db[root].addLazySingleton("virtuals", settings.getvirtuals, root)
db[root]["vartree"] = vartree(root)
#We need to create the vartree first, then load our settings, and then set up our other trees