]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/lib/subclass.py
Right align total debit/credit on status pages
[bluechips.git] / bluechips / lib / subclass.py
index 57ea48883f5c968641e64b449dd6720b900adfb5..2d838c43795b148c6b6a2c5f103f8c5ee3e2a2b0 100644 (file)
@@ -3,26 +3,16 @@ Create subclasses that call out to their "superclass" for all methods
 but return the "subclass's" type
 """
 
-from weakref import WeakValueDictionary
-
-def wrapper(c, func):
-    return (lambda self,*args: c(getattr(self.value, func)(*map(self.value.__class__, args))))
-
-def __new__(cls, value=0):
-    if value not in cls.__old_values__:
-        new_object = super(cls, cls).__new__(cls, value)
-        cls.__old_values__[value] = new_object
-        return new_object
-    else:
-        return cls.__old_values__[value]
+def wrapper(cls, func):
+    return (lambda self, *args: cls(getattr(self.value, func)(*map(self.value.__class__, args))))
 
 class SmartSubclass(object):
-    def __init__(self, superclass, exclude=[]):
+    def __init__(self, superclass, exclude=None):
+        if exclude is None:
+            exclude = []
         self.superclass = superclass
         self.exclude = exclude
     def __call__(self, name, bases, dict):
-        dict['__old_values__'] = WeakValueDictionary()
-        dict['__new__'] = __new__
         c = type(name, bases, dict)
         for func in dir(self.superclass):
             if func not in dir(c) and \