#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri Sep 27 14:20:58 2019 @author: tanya """ import os import sys import pandas as pd from cdplib.log import Log sys.path.append(os.getcwd()) class ExceptionsHandler: ''' ''' def __init__(self, logger: Log = None): ''' ''' self._logger = logger or Log("ExceptionHandler") def check_is_file(self, path: str): ''' ''' if not os.path.isfile(path): err = "File {} not found".format(path) self._logger.error(err) raise FileNotFoundError(err) def assert_is_directory(self, path: str): "" "" assert(isinstance(path, str)),\ "Parameter 'path' must of str type" dirname = os.path.dirname("path") if len(dirname) > 0: os.mkdir(dirname, exists_ok=True) def _check_column_abscence(self, columns: (str, list), data: pd.DataFrame, error_or_warning: str): ''' ''' if isinstance(columns, str): columns = [columns] for column in columns: if column not in data.columns: err = ("{} is not an internal column name".format(column)) getattr(self._logger, error_or_warning)(err) if error_or_warning == "error": raise Exception(err) def error_column_abscence(self, columns: (str, list), data: pd.DataFrame): ''' ''' return self._check_column_abscence(columns=columns, data=data, error_or_warning="error") def warn_column_abscence(self, columns: (str, list), data: pd.DataFrame): ''' ''' return self._check_column_abscence(columns=columns, data=data, error_or_warning="warning")