Mercurial > hg > WSGraph
comparison wsgraph/model.py @ 9:0affca1f4dc0
start using deepcopy since lord knows we cant trust users
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 10 Dec 2012 17:10:50 -0800 |
parents | f1f7a505e0d0 |
children | 81d68388ec97 |
comparison
equal
deleted
inserted
replaced
8:f1f7a505e0d0 | 9:0affca1f4dc0 |
---|---|
1 from abc import abstractmethod | 1 from abc import abstractmethod |
2 from copy import deepcopy | |
2 from utils import iterable | 3 from utils import iterable |
3 | 4 |
4 class GraphModel(object): | 5 class GraphModel(object): |
5 | 6 |
6 @abstractmethod | 7 @abstractmethod |
48 self._nodes = {} | 49 self._nodes = {} |
49 | 50 |
50 def node(self, name, **values): | 51 def node(self, name, **values): |
51 if values: | 52 if values: |
52 # setter | 53 # setter |
53 self._nodes[name] = values | 54 self._nodes[name] = deepcopy(values) |
54 else: | 55 else: |
55 # getter | 56 # getter |
57 # TODO: deepcopy | |
56 return self._nodes.get(name, None) | 58 return self._nodes.get(name, None) |
57 | 59 |
58 def nodes(self): | 60 def nodes(self): |
59 return self._nodes.keys() | 61 return self._nodes.keys() |
60 | 62 |
61 def edge(self, node1, node2, **values): | 63 def edge(self, node1, node2, **values): |
62 if values: | 64 if values: |
63 # setter | 65 # setter |
64 self._edges[(node1, node2)] = values | 66 self._edges[(node1, node2)] = deepcopy(values) |
65 else: | 67 else: |
66 # getter | 68 # getter |
69 # TODO: deepcopy | |
67 return self._edges.get((node1, node2), None) | 70 return self._edges.get((node1, node2), None) |
68 | 71 |
69 def edges(self): | 72 def edges(self): |
70 return self._edges.keys() | 73 return self._edges.keys() |