diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2005-05-21 13:53:38 +0000 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2005-05-21 13:53:38 +0000 |
commit | 8f9a755afae17c950c8478fe1fbfe18c6c153a0b (patch) | |
tree | 0a359003a103fae8a3bb8e939dfd697156b529e8 /lib/bb/data_smart.py | |
parent | 8d02dd8b56152eef07c375a511b78a87bfadad89 (diff) | |
download | bitbake-8f9a755afae17c950c8478fe1fbfe18c6c153a0b.tar.gz |
bitbake/lib/bb/data_smart.py:
-Do a deepcopy of the parent for the persistent
data storage constructor.
-Store the dict as _data member and not the instance
-Operate on the dict in the methods instead of the
DataSmart instances...
Happy deletion of the cache
Diffstat (limited to 'lib/bb/data_smart.py')
-rw-r--r-- | lib/bb/data_smart.py | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py index 5bbc09edd..36b23530e 100644 --- a/lib/bb/data_smart.py +++ b/lib/bb/data_smart.py @@ -104,16 +104,16 @@ class DataSmart: self.dict["_data"] = cfg; def _findVar(self,var): - _dest = self + _dest = self.dict - while (_dest and var not in _dest.dict): - if not "_data" in _dest.dict: + while (_dest and var not in _dest): + if not "_data" in _dest: _dest = None break _dest = _dest["_data"] - if _dest and var in _dest.dict: - return _dest.dict[var] + if _dest and var in _dest: + return _dest[var] return None def _copyVar(self,var,name): @@ -236,31 +236,30 @@ class DataSmart: """ # we really want this to be a DataSmart... data = DataSmart() - data.initVar("_data") - data.dict["_data"] = self + data.dict["_data"] = self.dict return data # Dictionary Methods def keys(self): def _keys(d, mykey): - if "_data" in d.dict: - _keys(d.dict["_data"],mykey) + if "_data" in d: + _keys(d["_data"],mykey) - for key in d.dict.keys(): + for key in d.keys(): if key != "_data": mykey[key] = None keytab = {} - _keys(self,keytab) + _keys(self.dict,keytab) return keytab.keys() def __getitem__(self,item): - start = self + start = self.dict while start: - if item in start.dict: - return start.dict[item] - elif "_data" in start.dict: - start = start.dict["_data"] + if item in start: + return start[item] + elif "_data" in start: + start = start["_data"] else: start = None return None @@ -292,8 +291,8 @@ class DataSmartPackage(DataSmart): def linkDataSet(self,parent): if not parent == None: - self.initVar("_data") - self.dict["_data"] = parent + # assume parent is a DataSmartInstance + self.dict = copy.deepcopy(parent.dict) def __init__(self,cache,name,clean,parent): |