@@ -416,8 +416,9 @@ def _generate_cell_lines(self, cell_data: Any, is_header: bool, col: Column, fil
416416
417417 def generate_row (
418418 self ,
419+ row_data : Sequence [Any ],
420+ is_header : bool ,
419421 * ,
420- row_data : Optional [Sequence [Any ]] = None ,
421422 fill_char : str = SPACE ,
422423 pre_line : str = EMPTY ,
423424 inter_cell : str = (2 * SPACE ),
@@ -426,8 +427,9 @@ def generate_row(
426427 """
427428 Generate a header or data table row
428429
429- :param row_data: If this is None then a header row is generated. Otherwise data should have an entry for each
430- column in the row. (Defaults to None)
430+ :param row_data: data with an entry for each column in the row
431+ :param is_header: True if writing a header cell, otherwise writing a data cell. This determines whether to
432+ use header or data alignment settings defined in the Columns.
431433 :param fill_char: character that fills remaining space in a cell. Defaults to space. If this is a tab,
432434 then it will be converted to one space. (Cannot be a line breaking character)
433435 :param pre_line: string to print before each line of a row. This can be used for a left row border and
@@ -453,13 +455,8 @@ def __init__(self) -> None:
453455 # Display width of this cell
454456 self .width = 0
455457
456- if row_data is None :
457- row_data = [col .header for col in self .cols ]
458- is_header = True
459- else :
460- if len (row_data ) != len (self .cols ):
461- raise ValueError ("Length of row_data must match length of cols" )
462- is_header = False
458+ if len (row_data ) != len (self .cols ):
459+ raise ValueError ("Length of row_data must match length of cols" )
463460
464461 # Replace tabs (tabs in data strings will be handled in _generate_cell_lines())
465462 fill_char = fill_char .replace ('\t ' , SPACE )
@@ -654,14 +651,14 @@ def generate_header(self) -> str:
654651
655652 # Apply background color to header text in Columns which allow it
656653 to_display : List [Any ] = []
657- for index , col in enumerate ( self .cols ) :
654+ for col in self .cols :
658655 if col .style_header_text :
659656 to_display .append (self .apply_header_bg (col .header ))
660657 else :
661658 to_display .append (col .header )
662659
663660 # Create the header labels
664- header_labels = self .generate_row (row_data = to_display , fill_char = fill_char , inter_cell = inter_cell )
661+ header_labels = self .generate_row (to_display , is_header = True , fill_char = fill_char , inter_cell = inter_cell )
665662 header_buf .write (header_labels )
666663
667664 # Add the divider if necessary
@@ -696,7 +693,7 @@ def generate_data_row(self, row_data: Sequence[Any]) -> str:
696693 else :
697694 to_display .append (row_data [index ])
698695
699- return self .generate_row (row_data = to_display , fill_char = fill_char , inter_cell = inter_cell )
696+ return self .generate_row (to_display , is_header = False , fill_char = fill_char , inter_cell = inter_cell )
700697
701698 def generate_table (self , table_data : Sequence [Sequence [Any ]], * , include_header : bool = True , row_spacing : int = 1 ) -> str :
702699 """
@@ -855,7 +852,8 @@ def generate_table_top_border(self) -> str:
855852 post_line = self .padding * '═' + '╗'
856853
857854 return self .generate_row (
858- row_data = self .empty_data ,
855+ self .empty_data ,
856+ is_header = False ,
859857 fill_char = self .apply_border_color (fill_char ),
860858 pre_line = self .apply_border_color (pre_line ),
861859 inter_cell = self .apply_border_color (inter_cell ),
@@ -876,7 +874,8 @@ def generate_header_bottom_border(self) -> str:
876874 post_line = self .padding * '═' + '╣'
877875
878876 return self .generate_row (
879- row_data = self .empty_data ,
877+ self .empty_data ,
878+ is_header = False ,
880879 fill_char = self .apply_border_color (fill_char ),
881880 pre_line = self .apply_border_color (pre_line ),
882881 inter_cell = self .apply_border_color (inter_cell ),
@@ -898,7 +897,8 @@ def generate_row_bottom_border(self) -> str:
898897 post_line = self .padding * '─' + '╢'
899898
900899 return self .generate_row (
901- row_data = self .empty_data ,
900+ self .empty_data ,
901+ is_header = False ,
902902 fill_char = self .apply_border_color (fill_char ),
903903 pre_line = self .apply_border_color (pre_line ),
904904 inter_cell = self .apply_border_color (inter_cell ),
@@ -919,7 +919,8 @@ def generate_table_bottom_border(self) -> str:
919919 post_line = self .padding * '═' + '╝'
920920
921921 return self .generate_row (
922- row_data = self .empty_data ,
922+ self .empty_data ,
923+ is_header = False ,
923924 fill_char = self .apply_border_color (fill_char ),
924925 pre_line = self .apply_border_color (pre_line ),
925926 inter_cell = self .apply_border_color (inter_cell ),
@@ -941,7 +942,7 @@ def generate_header(self) -> str:
941942
942943 # Apply background color to header text in Columns which allow it
943944 to_display : List [Any ] = []
944- for index , col in enumerate ( self .cols ) :
945+ for col in self .cols :
945946 if col .style_header_text :
946947 to_display .append (self .apply_header_bg (col .header ))
947948 else :
@@ -953,7 +954,7 @@ def generate_header(self) -> str:
953954 header_buf .write ('\n ' )
954955 header_buf .write (
955956 self .generate_row (
956- row_data = to_display , fill_char = fill_char , pre_line = pre_line , inter_cell = inter_cell , post_line = post_line
957+ to_display , is_header = True , fill_char = fill_char , pre_line = pre_line , inter_cell = inter_cell , post_line = post_line
957958 )
958959 )
959960 header_buf .write ('\n ' )
@@ -988,7 +989,7 @@ def generate_data_row(self, row_data: Sequence[Any]) -> str:
988989 to_display .append (row_data [index ])
989990
990991 return self .generate_row (
991- row_data = to_display , fill_char = fill_char , pre_line = pre_line , inter_cell = inter_cell , post_line = post_line
992+ to_display , is_header = False , fill_char = fill_char , pre_line = pre_line , inter_cell = inter_cell , post_line = post_line
992993 )
993994
994995 def generate_table (self , table_data : Sequence [Sequence [Any ]], * , include_header : bool = True ) -> str :
0 commit comments