@@ -179,7 +179,14 @@ def render(self, grid: interfaces.renderers.TreeGrid) -> None:
179
179
outfd .write ("\n {}\n " .format ("\t " .join (line )))
180
180
181
181
def visitor (node : interfaces .renderers .TreeNode , accumulator ):
182
- if self .filter and self .filter .filter (node .values ):
182
+ line = []
183
+ for column_index , column in enumerate (grid .columns ):
184
+ renderer = self ._type_renderers .get (
185
+ column .type , self ._type_renderers ["default" ]
186
+ )
187
+ line .append (renderer (node .values [column_index ]))
188
+
189
+ if self .filter and self .filter .filter (line ):
183
190
return accumulator
184
191
185
192
accumulator .write ("\n " )
@@ -188,13 +195,6 @@ def visitor(node: interfaces.renderers.TreeNode, accumulator):
188
195
"*" * max (0 , node .path_depth - 1 )
189
196
+ ("" if (node .path_depth <= 1 ) else " " )
190
197
)
191
- line = []
192
- for column_index in range (len (grid .columns )):
193
- column = grid .columns [column_index ]
194
- renderer = self ._type_renderers .get (
195
- column .type , self ._type_renderers ["default" ]
196
- )
197
- line .append (renderer (node .values [column_index ]))
198
198
accumulator .write ("{}" .format ("\t " .join (line )))
199
199
accumulator .flush ()
200
200
return accumulator
@@ -259,12 +259,17 @@ def render(self, grid: interfaces.renderers.TreeGrid) -> None:
259
259
def visitor (node : interfaces .renderers .TreeNode , accumulator ):
260
260
# Nodes always have a path value, giving them a path_depth of at least 1, we use max just in case
261
261
row = {"TreeDepth" : str (max (0 , node .path_depth - 1 ))}
262
- for column_index in range ( len ( grid . columns )):
263
- column = grid .columns [ column_index ]
262
+ line = []
263
+ for column_index , column in enumerate ( grid .columns ):
264
264
renderer = self ._type_renderers .get (
265
265
column .type , self ._type_renderers ["default" ]
266
266
)
267
267
row [f"{ column .name } " ] = renderer (node .values [column_index ])
268
+ line .append (row [f"{ column .name } " ])
269
+
270
+ if self .filter and self .filter .filter (line ):
271
+ return accumulator
272
+
268
273
accumulator .writerow (row )
269
274
return accumulator
270
275
@@ -317,12 +322,9 @@ def visitor(
317
322
max_column_widths .get (tree_indent_column , 0 ), node .path_depth
318
323
)
319
324
320
- if self .filter and self .filter .filter (node .values ):
321
- return accumulator
322
-
323
325
line = {}
324
- for column_index in range ( len ( grid . columns )):
325
- column = grid .columns [ column_index ]
326
+ rendered_line = []
327
+ for column_index , column in enumerate ( grid .columns ):
326
328
renderer = self ._type_renderers .get (
327
329
column .type , self ._type_renderers ["default" ]
328
330
)
@@ -334,6 +336,11 @@ def visitor(
334
336
max_column_widths .get (column .name , len (column .name )), field_width
335
337
)
336
338
line [column ] = data .split ("\n " )
339
+ rendered_line .append (data )
340
+
341
+ if self .filter and self .filter .filter (rendered_line ):
342
+ return accumulator
343
+
337
344
accumulator .append ((node .path_depth , line ))
338
345
return accumulator
339
346
@@ -347,8 +354,7 @@ def visitor(
347
354
format_string_list = [
348
355
"{0:<" + str (max_column_widths .get (tree_indent_column , 0 )) + "s}"
349
356
]
350
- for column_index in range (len (grid .columns )):
351
- column = grid .columns [column_index ]
357
+ for column_index , column in enumerate (grid .columns ):
352
358
format_string_list .append (
353
359
"{"
354
360
+ str (column_index + 1 )
@@ -437,15 +443,20 @@ def visitor(
437
443
# Nodes always have a path value, giving them a path_depth of at least 1, we use max just in case
438
444
acc_map , final_tree = accumulator
439
445
node_dict : Dict [str , Any ] = {"__children" : []}
440
- for column_index in range ( len ( grid . columns )):
441
- column = grid .columns [ column_index ]
446
+ line = []
447
+ for column_index , column in enumerate ( grid .columns ):
442
448
renderer = self ._type_renderers .get (
443
449
column .type , self ._type_renderers ["default" ]
444
450
)
445
451
data = renderer (list (node .values )[column_index ])
446
452
if isinstance (data , interfaces .renderers .BaseAbsentValue ):
447
453
data = None
448
454
node_dict [column .name ] = data
455
+ line .append (data )
456
+
457
+ if self .filter and self .filter .filter (line ):
458
+ return accumulator
459
+
449
460
if node .parent :
450
461
acc_map [node .parent .path ]["__children" ].append (node_dict )
451
462
else :
0 commit comments