Changeset 551

Show
Ignore:
Timestamp:
06/10/03 16:03:19 (5 years ago)
Author:
sholloway
Message:

*** empty log message ***

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/RBFoundation/RBFoundation/Objects/Relations.py

    r550 r551  
    193193        return self.itervalues() 
    194194 
    195     def getkeypairs(self, *relations): 
     195    def add(self, *relations):  
     196        relations = _flattenlist(relations) 
     197        relations = self._getkeypairs(relations) 
     198        self.OnModifying(self, relations) 
     199        self.lookup.update(relations) 
     200        self.OnModified(self, relations) 
     201 
     202    def remove(self, *relation): 
     203        relations = _flattenlist(relations) 
     204        relations = self._getkeypairs(relations) 
     205        self.OnModifying(self, relations) 
     206        for key, relation in relations: 
     207            try: del self.lookup[key] 
     208            except LookupError: continue 
     209        self.OnModified(self, relations) 
     210 
     211    def clear(self): 
     212        relations = self.lookup.items() 
     213        self.OnModifying(self, relations) 
     214        self.lookup.clear() 
     215        self.OnModified(self, relations) 
     216 
     217    def _getkeypairs(self, *relations): 
    196218        if self.keyname is None: 
    197219            raise ValueError, 'Cannot infer key for relation "%s"' % (relation,) 
     
    205227                else: 
    206228                    raise KeyError, 'Relation "%s" metadata has no key "%s"' % (relation, self.keyname) 
    207  
    208     def add(self, *relations):  
    209         relations = _flattenlist(relations) 
    210         relations = self.getkeypairs(relations) 
    211         self.OnModifying(self, relations) 
    212         self.lookup.update(relations) 
    213         self.OnModified(self, relations) 
    214  
    215     def remove(self, *relation): 
    216         relations = _flattenlist(relations) 
    217         relations = self.getkeypairs(relations) 
    218         self.OnModifying(self, relations) 
    219         for key, relation in relations: 
    220             try: del self.lookup[key] 
    221             except LookupError: continue 
    222         self.OnModified(self, relations) 
    223  
    224     def clear(self): 
    225         relations = self.lookup.items() 
    226         self.OnModifying(self, relations) 
    227         self.lookup.clear() 
    228         self.OnModified(self, relations) 
    229229 
    230230    #~ dict adapter ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  • trunk/RBFoundation/RBFoundation/Utilities.py

    r528 r551  
    2323 
    2424#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     25#~ Imports  
     26#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     27 
     28import types 
     29 
     30#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     31#~ Constants / Variables / Etc.  
     32#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     33 
     34_collectiontypes = (list, tuple, types.GeneratorType) 
     35 
     36#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2537#~ Definitions  
     38#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     39 
     40def isIterable(item): 
     41    if isinstance(item, _collectiontypes): 
     42        return True 
     43    elif hasattr(item, '__iter__'): 
     44        return True 
     45    else: 
     46        return False 
     47 
     48def asIterable(item): 
     49    if isinstance(item, _collectiontypes): 
     50        return item 
     51    elif hasattr(item, '__iter__'): 
     52        return item 
     53    else:  
     54        return [item] 
     55 
    2656#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    2757