MCPcopy Create free account
hub / github.com/s3tools/s3cmd / BidirMap

Class BidirMap

S3/BidirMap.py:13–47  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11## --------------------------------------------------------------------
12
13class BidirMap(object):
14 def __init__(self, **map):
15 self.k2v = {}
16 self.v2k = {}
17 for key in map:
18 self.__setitem__(key, map[key])
19
20 def __setitem__(self, key, value):
21 if value in self.v2k:
22 if self.v2k[value] != key:
23 raise KeyError("Value '"+str(value)+"' already in use with key '"+str(self.v2k[value])+"'")
24 try:
25 del(self.v2k[self.k2v[key]])
26 except KeyError:
27 pass
28 self.k2v[key] = value
29 self.v2k[value] = key
30
31 def __getitem__(self, key):
32 return self.k2v[key]
33
34 def __str__(self):
35 return self.v2k.__str__()
36
37 def getkey(self, value):
38 return self.v2k[value]
39
40 def getvalue(self, key):
41 return self.k2v[key]
42
43 def keys(self):
44 return [key for key in self.k2v]
45
46 def values(self):
47 return [value for value in self.v2k]
48
49# vim:et:ts=4:sts=4:ai

Callers 2

S3Class · 0.90
keysMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…