2019-07-22 17:42:38 +02:00
|
|
|
import collections
|
2019-07-23 11:34:43 +02:00
|
|
|
from replication import ReplicatedDatablock
|
2019-07-22 17:42:38 +02:00
|
|
|
|
|
|
|
class ReplicationGraph(collections.MutableMapping):
|
|
|
|
"""
|
|
|
|
Structure to hold replicated data relation graph
|
|
|
|
"""
|
|
|
|
|
|
|
|
def __init__(self, *args, **kwargs):
|
|
|
|
self.store = dict()
|
|
|
|
self.update(dict(*args, **kwargs)) # use the free update to set keys
|
|
|
|
|
|
|
|
def __getitem__(self, key):
|
2019-07-23 10:38:14 +02:00
|
|
|
return self.store[key]
|
2019-07-22 17:42:38 +02:00
|
|
|
|
|
|
|
def __setitem__(self, key, value):
|
2019-07-23 10:38:14 +02:00
|
|
|
self.store[key] = value
|
2019-07-22 17:42:38 +02:00
|
|
|
|
|
|
|
def __delitem__(self, key):
|
2019-07-23 10:38:14 +02:00
|
|
|
del self.store[key]
|
2019-07-22 17:42:38 +02:00
|
|
|
|
|
|
|
def __iter__(self):
|
|
|
|
return iter(self.store)
|
|
|
|
|
|
|
|
def __len__(self):
|
|
|
|
return len(self.store)
|
|
|
|
|
2019-07-23 11:41:36 +02:00
|
|
|
def __repr__(self):
|
|
|
|
str = "\n"
|
|
|
|
for key,item in self.store.items():
|
|
|
|
str+=repr(item)
|
|
|
|
return str
|
|
|
|
|
2019-07-22 17:42:38 +02:00
|
|
|
|
2019-07-23 11:34:43 +02:00
|
|
|
|
2019-07-22 17:42:38 +02:00
|
|
|
|