ExceptionsHandler.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  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 pandas as pd
  10. from cdplib.log import Log
  11. sys.path.append(os.getcwd())
  12. class ExceptionsHandler:
  13. '''
  14. '''
  15. def __init__(self, logger: Log = None):
  16. '''
  17. '''
  18. self._logger = logger or Log("ExceptionHandler")
  19. def check_is_file(self, path: str):
  20. '''
  21. '''
  22. if not os.path.isfile(path):
  23. err = "File {} not found".format(path)
  24. self._logger.error(err)
  25. raise FileNotFoundError(err)
  26. def assert_is_directory(self, path: str):
  27. ""
  28. ""
  29. assert(isinstance(path, str)),\
  30. "Parameter 'path' must of str type"
  31. dirname = os.path.dirname("path")
  32. if len(dirname) > 0:
  33. os.mkdir(dirname, exists_ok=True)
  34. def _check_column_abscence(self,
  35. columns: (str, list),
  36. data: pd.DataFrame,
  37. error_or_warning: str):
  38. '''
  39. '''
  40. if isinstance(columns, str):
  41. columns = [columns]
  42. for column in columns:
  43. if column not in data.columns:
  44. err = ("{} is not an internal column name".format(column))
  45. getattr(self._logger, error_or_warning)(err)
  46. if error_or_warning == "error":
  47. raise Exception(err)
  48. def error_column_abscence(self,
  49. columns: (str, list),
  50. data: pd.DataFrame):
  51. '''
  52. '''
  53. return self._check_column_abscence(columns=columns,
  54. data=data,
  55. error_or_warning="error")
  56. def warn_column_abscence(self, columns: (str, list), data: pd.DataFrame):
  57. '''
  58. '''
  59. return self._check_column_abscence(columns=columns,
  60. data=data,
  61. error_or_warning="warning")