66
77
88class NodeMap (MutableMapping ):
9- def __init__ (self ):
10- raise NotImplementedError ()
11- # .vector, ._key_to_id, ._id_to_key
12-
13- @classmethod
14- def from_graphblas (cls , v , * , key_to_id = None ):
15- rv = object .__new__ (cls )
16- rv .vector = v
9+ def __init__ (self , v , * , key_to_id = None ):
10+ self .vector = v
1711 if key_to_id is None :
18- rv ._key_to_id = {i : i for i in range (v .size )}
12+ self ._key_to_id = {i : i for i in range (v .size )}
1913 else :
20- rv ._key_to_id = key_to_id
21- rv ._id_to_key = None
22- return rv
14+ self ._key_to_id = key_to_id
15+ self ._id_to_key = None
2316
2417 id_to_key = property (_utils .id_to_key )
2518 # get_property = _utils.get_property
@@ -104,15 +97,8 @@ def setdefault(self, key, default=None):
10497
10598
10699class VectorMap (MutableMapping ):
107- def __init__ (self ):
108- raise NotImplementedError ()
109- # .vector
110-
111- @classmethod
112- def from_graphblas (cls , v ):
113- rv = object .__new__ (cls )
114- rv .vector = v
115- return rv
100+ def __init__ (self , v ):
101+ self .vector = v
116102
117103 # Requirements for MutableMapping
118104 def __delitem__ (self , key ):
@@ -176,21 +162,14 @@ def setdefault(self, key, default=None):
176162
177163
178164class VectorNodeMap (MutableMapping ):
179- def __init__ (self ):
180- raise NotImplementedError ()
181- # .matrix, ._key_to_id, ._id_to_key, ._rows
182-
183- @classmethod
184- def from_graphblas (cls , A , * , key_to_id = None ):
185- rv = object .__new__ (cls )
186- rv .matrix = A
165+ def __init__ (self , A , * , key_to_id = None ):
166+ self .matrix = A
187167 if key_to_id is None :
188- rv ._key_to_id = {i : i for i in range (A .size )}
168+ self ._key_to_id = {i : i for i in range (A .size )}
189169 else :
190- rv ._key_to_id = key_to_id
191- rv ._id_to_key = None
192- rv ._rows = None
193- return rv
170+ self ._key_to_id = key_to_id
171+ self ._id_to_key = None
172+ self ._rows = None
194173
195174 def _get_rows (self ):
196175 if self ._rows is None :
@@ -226,7 +205,7 @@ def __getitem__(self, key):
226205 idx = self ._key_to_id [key ]
227206 if self ._get_rows ().get (idx ) is None :
228207 raise KeyError (key )
229- return VectorMap . from_graphblas (self .matrix [idx , :].new ())
208+ return VectorMap (self .matrix [idx , :].new ())
230209
231210 def __iter__ (self ):
232211 # Slow if we iterate over one; fast if we iterate over all
@@ -273,7 +252,7 @@ def get(self, key, default=None):
273252 idx = self ._key_to_id [key ]
274253 if self ._get_rows ().get (idx ) is None :
275254 return default
276- return VectorMap . from_graphblas (self .matrix [idx , :].new ())
255+ return VectorMap (self .matrix [idx , :].new ())
277256
278257 # items
279258 # keys
@@ -285,7 +264,7 @@ def popitem(self):
285264 idx = next (rows .ss .iterkeys ())
286265 except StopIteration :
287266 raise KeyError from None
288- value = VectorMap . from_graphblas (self .matrix [idx , :].new ())
267+ value = VectorMap (self .matrix [idx , :].new ())
289268 del self .matrix [idx , :]
290269 del rows [idx ]
291270 return self .id_to_key [idx ], value
0 commit comments