diff options
Diffstat (limited to 'datamaps/plugins/dft/portfolio.py')
-rw-r--r-- | datamaps/plugins/dft/portfolio.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/datamaps/plugins/dft/portfolio.py b/datamaps/plugins/dft/portfolio.py new file mode 100644 index 0000000..40bb010 --- /dev/null +++ b/datamaps/plugins/dft/portfolio.py @@ -0,0 +1,45 @@ +from collections import OrderedDict +from datetime import date +from datetime import datetime + +from openpyxl import load_workbook + +from datamaps.process import Cleanser + + +def project_data_from_master(master_file: str, opened_wb=False): + if opened_wb is False: + wb = load_workbook(master_file) + ws = wb.active + else: + wb = master_file + ws = wb.active + # cleanse the keys + for cell in ws["A"]: + # we don't want to clean None... + if cell.value is None: + continue + c = Cleanser(cell.value) + cell.value = c.clean() + p_dict = {} + for col in ws.iter_cols(min_col=2): + project_name = "" + o = OrderedDict() + for cell in col: + if cell.row == 1: + project_name = cell.value + p_dict[project_name] = o + else: + val = ws.cell(row=cell.row, column=1).value + if type(cell.value) == datetime: + d_value = date(cell.value.year, cell.value.month, + cell.value.day) + p_dict[project_name][val] = d_value + else: + p_dict[project_name][val] = cell.value + # remove any "None" projects that were pulled from the master + try: + del p_dict[None] + except KeyError: + pass + return p_dict
\ No newline at end of file |