Código fuente para pydatajson.response_formatters.tables_formatter
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from openpyxl.styles import Alignment, Font
from pydatajson import writers
from pydatajson.response_formatters.list_formatter import ListFormatter
from pydatajson.response_formatters.validation_response_formatter import\
ValidationResponseFormatter
[documentos]class TablesFormatter(ValidationResponseFormatter):
def __init__(self, response, export_path):
super(TablesFormatter, self).__init__(response)
self.export_path = export_path
[documentos] def format(self):
validation_lists = ListFormatter(self.response).format()
column_styles = {
"catalog": {
"catalog_status": {"width": 20},
"catalog_error_location": {"width": 40},
"catalog_error_message": {"width": 40},
"catalog_title": {"width": 20},
},
"dataset": {
"dataset_error_location": {"width": 20},
"dataset_identifier": {"width": 40},
"dataset_status": {"width": 20},
"dataset_title": {"width": 40},
"dataset_list_index": {"width": 20},
"dataset_error_message": {"width": 40},
}
}
cell_styles = {
"catalog": [
{"alignment": Alignment(vertical="center")},
{"row": 1, "font": Font(bold=True)},
],
"dataset": [
{"alignment": Alignment(vertical="center")},
{"row": 1, "font": Font(bold=True)},
]
}
# crea tablas en un sólo excel o varios CSVs
writers.write_tables(
tables=validation_lists, path=self.export_path,
column_styles=column_styles, cell_styles=cell_styles
)