Django

Code

Changeset 6350

Show
Ignore:
Timestamp:
09/15/07 22:27:38 (1 year ago)
Author:
mtredinnick
Message:

Fixed #3993 -- Added some useful dictionary methods to SortedDict, plus an insert() method. Patch from Paul Collier.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/AUTHORS

    r6333 r6350  
    8484    colin@owlfish.com 
    8585    crankycoder@gmail.com 
     86    Paul Collier <paul@paul-collier.com> 
    8687    Pete Crosier <pete.crosier@gmail.com> 
    8788    Matt Croydon <http://www.postneo.com/> 
  • django/trunk/django/utils/datastructures.py

    r6268 r6350  
    7373        return zip(self.keyOrder, self.values()) 
    7474 
     75    def iteritems(self): 
     76        for key in self.keyOrder: 
     77            yield key, dict.__getitem__(self, key) 
     78 
    7579    def keys(self): 
    7680        return self.keyOrder[:] 
    7781 
     82    def iterkeys(self): 
     83        return iter(self.keyOrder) 
     84 
    7885    def values(self): 
    7986        return [dict.__getitem__(self, k) for k in self.keyOrder] 
     87 
     88    def itervalues(self): 
     89        for key in self.keyOrder: 
     90            yield dict.__getitem__(self, key) 
    8091 
    8192    def update(self, dict): 
     
    91102        "Returns the value of the item at the given zero-based index." 
    92103        return self[self.keyOrder[index]] 
     104 
     105    def insert(self, index, key, value): 
     106        "Inserts the key, value pair before the item with the given index." 
     107        if key in self.keyOrder: 
     108            n = self.keyOrder.index(key) 
     109            del self.keyOrder[n] 
     110            if n < index: index -= 1 
     111        self.keyOrder.insert(index, key) 
     112        dict.__setitem__(self, key, value) 
    93113 
    94114    def copy(self):