def header_data_to_thrift_struct(rows, cols, dtypes, col_bounds, col_to_format, df, dim): array_headers = ArrayHeaders() col_headers = [] for col in range(cols): col_label = get_label(df.axes[1].values[col]) if dim > 1 else str(col) bounds = col_bounds[col] col_format = "%" + col_to_format(col) col_header = ColHeader() # col_header.index = col col_header.label = col_label col_header.type = dtypes[col] col_header.format = col_to_format(col) col_header.max = col_format % bounds[1] col_header.min = col_format % bounds[0] col_headers.append(col_header) row_headers = [] for row in range(rows): row_header = RowHeader() row_header.index = row row_header.label = get_label(df.axes[0].values[row]) row_headers.append(row_header) array_headers.colHeaders = col_headers array_headers.rowHeaders = row_headers return array_headers