mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-03 14:00:11 +08:00
Added namelookup.
This commit is contained in:
@@ -152,3 +152,23 @@ class ndict(MutableMapping):
|
||||
#return False
|
||||
|
||||
#return True
|
||||
|
||||
# This is not neccesarily the most intuitive construction, but
|
||||
# we're aiming for raw performance rather than readability. So
|
||||
# we do things that we would not normally do in business logic.
|
||||
def namelookup(dct):
|
||||
ks = dct.keys()
|
||||
vs = dct.values()
|
||||
dct = {}
|
||||
class _lookup:
|
||||
__slots__ = ks
|
||||
def __init__(self):
|
||||
for k, v in zip(ks, vs):
|
||||
setattr(self,k,v)
|
||||
self.__setattr__ = self.locked
|
||||
def locked(self,k,v):
|
||||
raise Exception('Name lookups are fixed at init.')
|
||||
def __repr__(self):
|
||||
return '<namelookup %s>' % self.__slots__
|
||||
del dct
|
||||
return _lookup()
|
||||
|
||||
Reference in New Issue
Block a user