comparison src/browser/collections.py @ 674:690a8a80a0ad frontends_multi_profiles

browser_side: added __len__ method in OrderedDict
author Goffi <goffi@goffi.org>
date Tue, 17 Mar 2015 20:26:31 +0100
parents 2664fe93ceb3
children 44df078187b9
comparison
equal deleted inserted replaced
673:e489218886d7 674:690a8a80a0ad
29 if isinstance(args[0], (dict, OrderedDict)): 29 if isinstance(args[0], (dict, OrderedDict)):
30 for key, value in args[0].iteritems(): 30 for key, value in args[0].iteritems():
31 self[key] = value 31 self[key] = value
32 for key, value in args[0]: 32 for key, value in args[0]:
33 self[key] = value 33 self[key] = value
34
35 def __len__(self):
36 return len(self.__keys)
34 37
35 def __setitem__(self, key, value): 38 def __setitem__(self, key, value):
36 self.__keys.append(key) 39 self.__keys.append(key)
37 self.__internal_dict[key] = value 40 self.__internal_dict[key] = value
38 41
106 109
107 def setdefault(self, key, default=None): 110 def setdefault(self, key, default=None):
108 try: 111 try:
109 return self.__internal_dict[key] 112 return self.__internal_dict[key]
110 except KeyError: 113 except KeyError:
111 self.__internal_dict[key] = default 114 self[key] = default
112 return default 115 return default
113 116
114 def update(self, *args, **kwargs): 117 def update(self, *args, **kwargs):
115 if len(args) > 1: 118 if len(args) > 1:
116 raise TypeError('udpate expected at most 1 argument, got {}'.format(len(args))) 119 raise TypeError('udpate expected at most 1 argument, got {}'.format(len(args)))