class MyView:
def __init__(self, view):
self._view = view
def keys(self):
return [p.name for p in self._view.structure()]
def has_key(self, key):
return key in self.keys()
def __getattr__(self, key):
return getattr(self._view, key)
def __setattr__(self, key, value):
if key == "_view":
self.__dict__[key] = value
return
setattr(self._view, key, value)
def __len__(self):
return len(self._view)
def __getitem__(self, item):
return self._view[item]import metakit storage = metakit.storage() descr = 'entry[stem:S,category:S,id:I]' view = storage.getas(descr)
vw = MyView(view)
print vw.keys()
# -> ['stem', 'category', 'id']
vw.append(("asdf", "bar", 1))
print len(vw)
# -> 1
print vw[0]
assert vw.has_key("stem")Why is this useful? Well a user can actually have spaces inside a column name. You can actually retrieve the column name with getattr is as getattr(view, "my dog has fleas") but you couldn't do that with "row.my dog has fleas" for obvious reasons.
-- Brian Kelley [EMAIL PROTECTED] Whitehead Institute for Biomedical Research 617 258-6191
_______________________________________________ metakit mailing list - [EMAIL PROTECTED] http://www.equi4.com/mailman/listinfo/metakit
