ExceptionsHandler.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. Created on Fri Sep 27 14:20:58 2019
  5. @author: tanya
  6. """
  7. import os
  8. import sys
  9. import logging
  10. import pandas as pd
  11. sys.path.append(os.getcwd())
  12. class ExceptionsHandler:
  13. '''
  14. '''
  15. def __init__(self):
  16. '''
  17. '''
  18. def check_is_file(self, path):
  19. '''
  20. '''
  21. if not os.path.isfile(path):
  22. err = "File {} not found".format(path)
  23. self._log.error(err)
  24. raise FileNotFoundError(err)
  25. def _check_column_abscence(self, columns: (str, list), data: pd.DataFrame,
  26. error_or_warning: str, logger = None):
  27. '''
  28. '''
  29. if logger is None:
  30. logger = logging.getLogger()
  31. if isinstance(columns, str):
  32. columns = [columns]
  33. for column in columns:
  34. if column not in data.columns:
  35. err = ("{} is not an internal column name".format(column))
  36. getattr(logger, error_or_warning)(err)
  37. if error_or_warning == "error":
  38. raise Exception(err)
  39. def error_column_abscence(self, columns: (str, list), data: pd.DataFrame, logger = None):
  40. '''
  41. '''
  42. return self._check_column_abscence(columns=columns,
  43. data=data,
  44. error_or_warning="error",
  45. logger=logger)
  46. def warn_column_abscence(self, columns: (str, list), data: pd.DataFrame, logger = None):
  47. '''
  48. '''
  49. return self._check_column_abscence(columns=columns,
  50. data=data,
  51. error_or_warning="warning",
  52. logger=logger)