@@ -2327,3 +2327,95 @@ def get_instancemethod(self):
2327
2327
else :
2328
2328
def _putmask (a , mask , values ):
2329
2329
return np .copyto (a , values , where = mask )
2330
+
2331
+ class OrderedDict (dict ):
2332
+ """Very Basic implementation of OrderedDict, don't trust, missing a
2333
+ few higher level functions, see NotImplemented functions below """
2334
+ def __init__ (self , * args , ** kwargs ):
2335
+ self ._keys = []
2336
+ for key in kwargs :
2337
+ self .__setitem__ (key , kwargs [key ])
2338
+
2339
+ def __contains__ (self , key ):
2340
+ return key in self ._keys
2341
+
2342
+ def __setitem__ (self , key , value ):
2343
+ if key not in self ._keys :
2344
+ self ._keys .append (key )
2345
+ dict .__setitem__ (self ,key ,value )
2346
+
2347
+ def __delitem__ (self , key ):
2348
+ self ._keys .remove (key )
2349
+ dict .__delitem__ (key )
2350
+
2351
+ def __iter__ (self ):
2352
+ return self ._keys .__iter__ ()
2353
+
2354
+ def __eq__ (self , other ):
2355
+ return type (other ) == type (self ) and other ._keys == self ._keys and \
2356
+ super .__eq__ (self , other )
2357
+
2358
+ def __ne__ (self , other ):
2359
+ return type (other ) != type (self ) or other ._keys != self ._keys or \
2360
+ super .__ne__ (self , other )
2361
+
2362
+ def __reduce__ (self ):
2363
+ raise NotImplementedError
2364
+
2365
+ def __reversed__ (self ):
2366
+ return self ._keys .__reversed__ ()
2367
+
2368
+ def clear (self ):
2369
+ del self ._keys [:]
2370
+ dict .clear ()
2371
+
2372
+ def copy (self ):
2373
+ raise NotImplementedError
2374
+
2375
+ def items (self ):
2376
+ return [(k , dict [k ]) in self ._keys ]
2377
+
2378
+ def iteritems (self ):
2379
+ for k in self ._keys :
2380
+ yield k , dict [k ]
2381
+
2382
+ def iterkeys (self ):
2383
+ return self .__iter__ ()
2384
+
2385
+ def itervalues (self ):
2386
+ for k in self ._keys :
2387
+ yield dict [self ._keys ]
2388
+
2389
+ def keys (self ):
2390
+ return self ._keys
2391
+
2392
+ def pop (self , key ):
2393
+ self ._keys .remove (key )
2394
+ return dict .pop (self ,key )
2395
+
2396
+ def pop_item (self , last = True ):
2397
+ if last :
2398
+ key = self ._keys [- 1 ]
2399
+ else :
2400
+ key = self ._keys [0 ]
2401
+ return key , self .pop [key ]
2402
+
2403
+ def set_default (self , key , default = None ):
2404
+ if key not in self ._keys :
2405
+ self [key ] = default
2406
+ return dict .get_default (self , key , default )
2407
+
2408
+ def update (* args , ** kwds ):
2409
+ raise NotImplementedError
2410
+
2411
+ def values (self ):
2412
+ return [dict [k ] for k in self ._keys ]
2413
+
2414
+ def viewitems (self ):
2415
+ raise NotImplementedError
2416
+ def viewkeys (self ):
2417
+ raise NotImplementedError
2418
+ def viewvalues (self ):
2419
+ raise NotImplementedError
2420
+ def fromkeys (cls , iterable , value = None ):
2421
+ raise NotImplementedError
0 commit comments