4
4
object graph.
5
5
"""
6
6
7
- import collections .abc
8
7
import gc
9
8
import random
10
9
import sys
@@ -127,15 +126,6 @@ def get_count(self):
127
126
result += node .get_count ()
128
127
return result
129
128
130
- def get_node_count (self ):
131
- """() -> int
132
- How many nodes are here, including descendants?
133
- """
134
- result = 1
135
- for node in self .nodes or []:
136
- result += node .get_node_count ()
137
- return result
138
-
139
129
def get_level (self ):
140
130
"""() -> int
141
131
How many levels of nodes are there between this node
@@ -236,23 +226,20 @@ def is_big(node):
236
226
self .nodes = self .nodes [0 ].nodes
237
227
238
228
239
- class BTree ( collections . abc . MutableMapping ) :
229
+ class BTree :
240
230
"""
241
231
Instance attributes:
242
232
root: BNode
243
233
"""
244
234
245
235
__slots__ = ['root' ]
246
236
247
- def __init__ (self , node_constructor = BNode ):
248
- assert issubclass (node_constructor , BNode )
249
- self .root = node_constructor ()
237
+ def __init__ (self ):
238
+ self .root = BNode ()
250
239
251
- def __nonzero__ (self ):
240
+ def __bool__ (self ):
252
241
return bool (self .root .items )
253
242
254
- __bool__ = __nonzero__
255
-
256
243
def iteritems (self ):
257
244
for item in self .root :
258
245
yield item
@@ -261,39 +248,16 @@ def iterkeys(self):
261
248
for item in self .root :
262
249
yield item [0 ]
263
250
264
- def itervalues (self ):
265
- for item in self .root :
266
- yield item [1 ]
267
-
268
- def items (self ):
269
- return list (self .iteritems ())
270
-
271
- def keys (self ):
272
- return list (self .iterkeys ())
273
-
274
- def values (self ):
275
- return list (self .itervalues ())
276
-
277
251
def __iter__ (self ):
278
252
for key in self .iterkeys ():
279
253
yield key
280
254
281
255
def __contains__ (self , key ):
282
256
return self .root .search (key ) is not None
283
257
284
- def has_key (self , key ):
285
- return self .root .search (key ) is not None
286
-
287
258
def __setitem__ (self , key , value ):
288
259
self .add (key , value )
289
260
290
- def setdefault (self , key , value ):
291
- item = self .root .search (key )
292
- if item is None :
293
- self .add (key , value )
294
- return value
295
- return item [1 ]
296
-
297
261
def __getitem__ (self , key ):
298
262
item = self .root .search (key )
299
263
if item is None :
@@ -303,9 +267,6 @@ def __getitem__(self, key):
303
267
def __delitem__ (self , key ):
304
268
self .root .delete (key )
305
269
306
- def clear (self ):
307
- self .root = self .root .__class__ ()
308
-
309
270
def get (self , key , default = None ):
310
271
"""(key:anything, default:anything=None) -> anything"""
311
272
try :
@@ -330,18 +291,6 @@ def __len__(self):
330
291
Compute and return the total number of items."""
331
292
return self .root .get_count ()
332
293
333
- def get_depth (self ):
334
- """() -> int
335
- How many levels of nodes are used for this BTree?
336
- """
337
- return self .root .get_level () + 1
338
-
339
- def get_node_count (self ):
340
- """() -> int
341
- How many nodes are used for this BTree?
342
- """
343
- return self .root .get_node_count ()
344
-
345
294
346
295
class Record :
347
296
def __init__ (self , a , b , c , d , e , f ):
0 commit comments