From cb4a3190b5c8c7bbe5bbe6f62f3aeb651e21bd63 Mon Sep 17 00:00:00 2001 From: matt Date: Mon, 26 Jul 2021 15:05:24 +0100 Subject: [PATCH] Added support for custom report colours. --- example.pdf | Bin 96380 -> 96396 bytes example.py | 3 +++ gilfoyle/assets/css/default.css | 8 ++++---- gilfoyle/assets/template.html | 9 ++++++++- gilfoyle/report.py | 20 +++++++++++++++++++- setup.py | 2 +- 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/example.pdf b/example.pdf index 3d721afb7ad48d8d9cadbd387321329e0d30705c..4dd3fdd82e66ad70b8d1f15dd0b6a74c6019b191 100644 GIT binary patch delta 10566 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 - {{ title }} + {{ report.title }} diff --git a/gilfoyle/report.py b/gilfoyle/report.py index 80175d7..413bb8a 100644 --- a/gilfoyle/report.py +++ b/gilfoyle/report.py @@ -18,6 +18,8 @@ def __init__(self, self.base_url = base_url self.payload = '' self.title = '' + self.accent_background_color = '' + self.accent_font_color = '' """ Report configuration @@ -26,6 +28,18 @@ def __init__(self, def set_title(self, title): self.title = title + def set_accent_background_color(self, accent_background_color): + if accent_background_color: + self.accent_background_color = accent_background_color + else: + self.accent_background_color = '#32B5C9' + + def set_accent_font_color(self, accent_font_color): + if accent_font_color: + self.accent_font_color = accent_font_color + else: + self.accent_font_color = '#FFFFFF' + """ Add pages """ @@ -146,6 +160,9 @@ def _extend_payload(self, payload): """ payload['report']['title'] = self.title + payload['report']['accent_background_color'] = self.accent_background_color + payload['report']['accent_font_color'] = self.accent_font_color + return payload """ @@ -159,7 +176,7 @@ def to_html(html, filename): Args: html: string of HTML. filename: filename and path. - +cl Returns: File. """ @@ -185,6 +202,7 @@ def create_report(self, payload, output='pdf', verbose=False): """ payload = self._extend_payload(payload) + if verbose: print(payload) diff --git a/setup.py b/setup.py index cafe545..a95cef7 100644 --- a/setup.py +++ b/setup.py @@ -8,7 +8,7 @@ setup( name='gilfoyle', packages=['gilfoyle'], - version='0.914', + version='0.915', license='MIT', description='Gilfoyle is a Python-based report generator for data scientists who use Pandas.', long_description=long_description,