Utils.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import logging
  2. logging.basicConfig()
  3. logger = logging.getLogger("jarvis")
  4. class ModuleNotFoundError(Exception):
  5. pass
  6. class Utils(object):
  7. color_list = dict(
  8. PURPLE='\033[95m',
  9. BLUE='\033[94m',
  10. GREEN='\033[92m',
  11. YELLOW='\033[93m',
  12. RED='\033[91m',
  13. ENDLINE='\033[0m',
  14. BOLD='\033[1m',
  15. UNDERLINE='\033[4m'
  16. )
  17. @classmethod
  18. def print_info(cls, text_to_print):
  19. print cls.color_list["BLUE"] + text_to_print + cls.color_list["ENDLINE"]
  20. @classmethod
  21. def print_success(cls, text_to_print):
  22. print cls.color_list["GREEN"] + text_to_print + cls.color_list["ENDLINE"]
  23. @classmethod
  24. def print_warning(cls, text_to_print):
  25. print cls.color_list["YELLOW"] + text_to_print + cls.color_list["ENDLINE"]
  26. @classmethod
  27. def print_danger(cls, text_to_print):
  28. print cls.color_list["RED"] + text_to_print + cls.color_list["ENDLINE"]
  29. @classmethod
  30. def print_header(cls, text_to_print):
  31. print cls.color_list["HEADER"] + text_to_print + cls.color_list["ENDLINE"]
  32. @classmethod
  33. def print_header(cls, text_to_print):
  34. print cls.color_list["PURPLE"] + text_to_print + cls.color_list["ENDLINE"]
  35. @classmethod
  36. def print_bold(cls, text_to_print):
  37. print cls.color_list["BOLD"] + text_to_print + cls.color_list["ENDLINE"]
  38. @classmethod
  39. def print_underline(cls, text_to_print):
  40. print cls.color_list["UNDERLINE"] + text_to_print + cls.color_list["ENDLINE"]
  41. @classmethod
  42. def get_dynamic_class_instantiation(cls, package_name, module_name, parameters=None):
  43. logger.debug("Run plugin %s with parameter %s" % (module_name, parameters))
  44. mod = __import__(package_name, fromlist=[module_name])
  45. try:
  46. klass = getattr(mod, module_name)
  47. except AttributeError:
  48. logger.debug("Error: No module named %s " % module_name)
  49. raise ModuleNotFoundError("The module %s does not exist in package %s" % (module_name, package_name))
  50. if klass is not None:
  51. # run the plugin
  52. if not parameters:
  53. return klass()
  54. elif isinstance(parameters, dict):
  55. return klass(**parameters)
  56. else:
  57. return klass(parameters)
  58. return None