Contact: fumanchu@aminus.org

Log in as guest/dejavu to create tickets

I think I've seen this ORM somewhere before...

Changeset 404

Show
Ignore:
Timestamp:
01/31/07 22:35:25
Author:
fumanchu
Message:

Better superclass calls inside engine classes.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/engines.py

    r403 r404  
    7979    Timestamp = dejavu.UnitProperty(datetime.datetime) 
    8080     
    81     def __init__(self, **kwargs): 
    82         dejavu.Unit.__init__(self) 
    83         self.Members = [] 
     81    def __init__(self, Members=None, **kwargs): 
     82        if Members is None: 
     83            Members = [] 
    8484        self._mutex = threading.RLock() 
    85          
    86         for k, v in kwargs.iteritems(): 
    87             setattr(self, k, v) 
    88      
    89     def __getstate__(self): 
    90         return (self._properties, self._initial_property_hash) 
     85        TemporaryUnit.__init__(self, Members=Members, **kwargs) 
    9186     
    9287    def __setstate__(self, state): 
    93         self.sandbox = None 
    9488        self._mutex = threading.RLock() 
    95         self._properties, self._initial_property_hash = state 
     89        TemporaryUnit.__setstate__(self, state) 
    9690     
    9791    def acquire(self): 
     
    152146     
    153147    def __copy__(self): 
    154         newUnit = dejavu.Unit.__copy__(self) 
     148        newUnit = TemporaryUnit.__copy__(self) 
    155149        newUnit.Members = self.Members[:] 
    156150        return newUnit 
     
    195189    EngineID = EngIDProperty(int, index=True) 
    196190     
    197     def __init__(self, **kwargs): 
     191    def __init__(self, Operation=None, SetID=None, Operand=None, **kwargs): 
    198192        """kw: Operation, SetID, Operand=(Type | logic.Expression | otherSet) 
    199193         
     
    227221            is Set 1. 
    228222        """ 
    229         dejavu.Unit.__init__(self) 
    230          
    231         if kwargs.get('Operation', '') == 'FILTER': 
    232             op = kwargs.get('Operand') 
    233             if not isinstance(op, (str, unicode)): 
    234                 if not isinstance(op, logic.Expression): 
     223        if Operation == 'FILTER': 
     224            if not isinstance(Operand, basestring): 
     225                if not isinstance(Operand, logic.Expression): 
    235226                    # op can be a function 
    236                     op = logic.Expression(op) 
    237                 kwargs['Operand'] = pickle.dumps(op) 
    238          
    239         for k, v in kwargs.iteritems(): 
    240             setattr(self, k, v) 
     227                    Operand= logic.Expression(Operand) 
     228                Operand = pickle.dumps(Operand) 
     229        TemporaryUnit.__init__(self, Operation=Operation, SetID=SetID, 
     230                               Operand=Operand, **kwargs) 
    241231     
    242232    def __repr__(self): 
     
    273263    FinalClassName = dejavu.UnitProperty() 
    274264     
    275     def __init__(self, **kwargs): 
    276         dejavu.Unit.__init__(self) 
    277         self.Created = datetime.datetime.today() 
    278         self.Owner = u'' 
    279          
    280         for k, v in kwargs.iteritems(): 
    281             setattr(self, k, v) 
     265    def __init__(self, Created=None, Owner=u'', **kwargs): 
     266        if Created is None: 
     267            Created = datetime.datetime.today() 
     268        TemporaryUnit.__init__(self, Created=Created, Owner=Owner, **kwargs) 
    282269     
    283270    def on_forget(self): 
     
    366353     
    367354    def __copy__(self): 
    368         newUnit = dejavu.Unit.__copy__(self) 
     355        newUnit = TemporaryUnit.__copy__(self) 
    369356        newUnit.Name = "Copy of %s" % newUnit.Name 
    370357        newUnit.Created = datetime.datetime.now()