Mercurial > hg > WSGraph
comparison wsgraph/model.py @ 38:df2a719a9b6e
stubbing deletion of nodes + edges
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 24 Dec 2012 22:57:02 -0800 |
parents | f17a6577cc0d |
children | d1e9602145fa |
comparison
equal
deleted
inserted
replaced
37:f17a6577cc0d | 38:df2a719a9b6e |
---|---|
36 | 36 |
37 @abstractmethod | 37 @abstractmethod |
38 def edges(self): | 38 def edges(self): |
39 """returns a list of all edges""" | 39 """returns a list of all edges""" |
40 | 40 |
41 @abstractmethod | |
42 def delete(self, node1, node2=None): | |
43 """ | |
44 delete a node or edge if node2 is given | |
45 If a node is deleted, all edges to it should be deleted | |
46 """ | |
47 | |
41 def __call__(self): | 48 def __call__(self): |
42 """ | 49 """ |
43 returns JSGN format of graph: | 50 returns JSGN format of graph: |
44 {'nodes': {'node1': {}, | 51 {'nodes': {'node1': {}, |
45 'node2': {}, ...}, | 52 'node2': {}, ...}, |
70 if isinstance(key, basestring) or (not isiterable(key)): | 77 if isinstance(key, basestring) or (not isiterable(key)): |
71 self.node(key, value) | 78 self.node(key, value) |
72 else: | 79 else: |
73 key1, key2 = key | 80 key1, key2 = key |
74 self.edge(key1, key2, value) | 81 self.edge(key1, key2, value) |
82 | |
83 def __delitem__(self, key): | |
84 if isinstance(key, basestring) or (not isiterable(key)): | |
85 self.delete(key) | |
86 else: | |
87 key1, key2 = key | |
88 self.delete(key1, key2) | |
75 | 89 |
76 def __contains__(self, key): | 90 def __contains__(self, key): |
77 """ | 91 """ |
78 if key is ..., returns if that node is in the graph | 92 if key is ..., returns if that node is in the graph |
79 if key is a 2-tuple/list, returns if the edge is in the graph | 93 if key is a 2-tuple/list, returns if the edge is in the graph |