@@ -153,44 +153,46 @@ def document_members(self, all_members: bool = False) -> None:
153153 for f in field_iter (self .object , self .options .include_virtual )
154154 ]
155155
156- # Calculate table column widths
157- name_len = 4
158- data_type_len = 9
159- details_len = 7
160- for name , data_type , details in data_table :
161- name_len = max (len (name ), name_len )
162- data_type_len = max (len (data_type ), data_type_len )
163- details_len = max (max (len (l ) for l in details ), details_len )
164- name_len += 2 # Padding
165- data_type_len += 2 # Padding
166- details_len += 2 # Padding
167-
168- def add_separator (char = "-" ):
169- self .add_line (
170- f"+{ char * name_len } +{ char * data_type_len } +{ char * details_len } +" ,
171- "<odin_sphinx>" ,
172- )
173-
174- def add_row_line (name , data_type , details ):
175- self .add_line (
176- f"| { name } { ' ' * (name_len - len (name ) - 2 )} "
177- f"| { data_type } { ' ' * (data_type_len - len (data_type ) - 2 )} "
178- f"| { details } { ' ' * (details_len - len (details ) - 2 )} |" ,
179- "<odin_sphinx>" ,
180- )
181-
182- def add_row (name , data_type , details ):
183- add_row_line (name , data_type , details .pop (0 ))
184- for line in details :
185- add_row_line ("" , "" , line )
186-
187- # Generate table
188- add_separator ()
189- add_row ("Name" , "Data type" , ["Details" ])
190- add_separator ("=" )
191- for row in data_table :
192- add_row (* row )
156+ # Generate output if there is any.
157+ if data_table :
158+ # Calculate table column widths
159+ name_len = 4
160+ data_type_len = 9
161+ details_len = 7
162+ for name , data_type , details in data_table :
163+ name_len = max (len (name ), name_len )
164+ data_type_len = max (len (data_type ), data_type_len )
165+ details_len = max (max (len (l ) for l in details ), details_len )
166+ name_len += 2 # Padding
167+ data_type_len += 2 # Padding
168+ details_len += 2 # Padding
169+
170+ def add_separator (char = "-" ):
171+ self .add_line (
172+ f"+{ char * name_len } +{ char * data_type_len } +{ char * details_len } +" ,
173+ "<odin_sphinx>" ,
174+ )
175+
176+ def add_row_line (name , data_type , details ):
177+ self .add_line (
178+ f"| { name } { ' ' * (name_len - len (name ) - 2 )} "
179+ f"| { data_type } { ' ' * (data_type_len - len (data_type ) - 2 )} "
180+ f"| { details } { ' ' * (details_len - len (details ) - 2 )} |" ,
181+ "<odin_sphinx>" ,
182+ )
183+
184+ def add_row (name , data_type , details ):
185+ add_row_line (name , data_type , details .pop (0 ))
186+ for line in details :
187+ add_row_line ("" , "" , line )
188+
189+ # Generate table
193190 add_separator ()
191+ add_row ("Name" , "Data type" , ["Details" ])
192+ add_separator ("=" )
193+ for row in data_table :
194+ add_row (* row )
195+ add_separator ()
194196
195197
196198def setup (app : Sphinx ):
0 commit comments