1
1
"""
2
2
Module for formatting output data in Latex.
3
3
"""
4
+ from typing import IO , List , Optional , Tuple
5
+
4
6
import numpy as np
5
7
6
8
from pandas .core .dtypes .generic import ABCMultiIndex
7
9
8
- from pandas .io .formats .format import TableFormatter
10
+ from pandas .io .formats .format import DataFrameFormatter , TableFormatter
9
11
10
12
11
13
class LatexFormatter (TableFormatter ):
@@ -28,12 +30,12 @@ class LatexFormatter(TableFormatter):
28
30
29
31
def __init__ (
30
32
self ,
31
- formatter ,
32
- column_format = None ,
33
- longtable = False ,
34
- multicolumn = False ,
35
- multicolumn_format = None ,
36
- multirow = False ,
33
+ formatter : DataFrameFormatter ,
34
+ column_format : Optional [ str ] = None ,
35
+ longtable : bool = False ,
36
+ multicolumn : bool = False ,
37
+ multicolumn_format : Optional [ str ] = None ,
38
+ multirow : bool = False ,
37
39
):
38
40
self .fmt = formatter
39
41
self .frame = self .fmt .frame
@@ -44,7 +46,7 @@ def __init__(
44
46
self .multicolumn_format = multicolumn_format
45
47
self .multirow = multirow
46
48
47
- def write_result (self , buf ) :
49
+ def write_result (self , buf : IO [ str ]) -> None :
48
50
"""
49
51
Render a DataFrame to a LaTeX tabular/longtable environment output.
50
52
"""
@@ -124,7 +126,7 @@ def pad_empties(x):
124
126
if self .fmt .has_index_names and self .fmt .show_index_names :
125
127
nlevels += 1
126
128
strrows = list (zip (* strcols ))
127
- self .clinebuf = []
129
+ self .clinebuf = [] # type: List[List[int]]
128
130
129
131
for i , row in enumerate (strrows ):
130
132
if i == nlevels and self .fmt .header :
@@ -186,7 +188,7 @@ def pad_empties(x):
186
188
else :
187
189
buf .write ("\\ end{longtable}\n " )
188
190
189
- def _format_multicolumn (self , row , ilevels ) :
191
+ def _format_multicolumn (self , row : List [ str ] , ilevels : int ) -> List [ str ] :
190
192
r"""
191
193
Combine columns belonging to a group to a single multicolumn entry
192
194
according to self.multicolumn_format
@@ -227,7 +229,9 @@ def append_col():
227
229
append_col ()
228
230
return row2
229
231
230
- def _format_multirow (self , row , ilevels , i , rows ):
232
+ def _format_multirow (
233
+ self , row : List [str ], ilevels : int , i : int , rows : List [Tuple [str , ...]]
234
+ ) -> List [str ]:
231
235
r"""
232
236
Check following rows, whether row should be a multirow
233
237
@@ -254,7 +258,7 @@ def _format_multirow(self, row, ilevels, i, rows):
254
258
self .clinebuf .append ([i + nrow - 1 , j + 1 ])
255
259
return row
256
260
257
- def _print_cline (self , buf , i , icol ) :
261
+ def _print_cline (self , buf : IO [ str ] , i : int , icol : int ) -> None :
258
262
"""
259
263
Print clines after multirow-blocks are finished
260
264
"""
0 commit comments