S3/SortedDict.py
ec50b5a7
 ## Amazon S3 manager
 ## Author: Michal Ludvig <michal@logix.cz>
 ##         http://www.logix.cz/michal
 ## License: GPL Version 2
 
 class SortedDictIterator(object):
df9fa4b5
 	def __init__(self, dict):
 		self.dict = dict
 		self.keys = dict.keys()
 		self.index = 0
 		self.length = len(self.keys)
 
 	def next(self):
 		if self.length <= self.index:
 			raise StopIteration
 
 		retval = self.keys[self.index]
 		self.index += 1
 		return retval
 
 
 class SortedDict(dict):
 	def __setitem__(self, name, value):
 		try:
 			value = value.strip()
 		except:
 			pass
 		dict.__setitem__(self, name.lower(), value)
 
 	def __iter__(self):
 		return SortedDictIterator(self)
 	
 
 	def keys(self):
 		keys = dict.keys(self)
 		keys.sort()
 		return keys
 	
 	def popitem(self):
 		keys = self.keys()
 		if len(keys) < 1:
 			raise KeyError("popitem(): dictionary is empty")
 		retval = (keys[0], dict.__getitem__(self, keys[0]))
 		dict.__delitem__(self, keys[0])
 		return retval