__init__.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from __future__ import print_function
  2. import sys
  3. _COLOR_CODES = {
  4. "white": u'\033[0m',
  5. "red": u'\033[31m',
  6. "green": u'\033[32m',
  7. "orange": u'\033[33m',
  8. "blue": u'\033[34m',
  9. "purple": u'\033[35m',
  10. "W": u'\033[0m',
  11. "R": u'\033[31m',
  12. "G": u'\033[32m',
  13. "O": u'\033[33m',
  14. "B": u'\033[34m',
  15. "P": u'\033[35m'
  16. }
  17. def console_log(data, color="white", end="\n"):
  18. """
  19. log data to console.
  20. (if not flush console log, Gitlab-CI won't update logs during job execution)
  21. :param data: data content
  22. :param color: color
  23. """
  24. if color not in _COLOR_CODES:
  25. color = "white"
  26. color_codes = _COLOR_CODES[color]
  27. if isinstance(data, type(b'')):
  28. data = data.decode('utf-8', 'replace')
  29. print(color_codes + data, end=end)
  30. if color not in ["white", "W"]:
  31. # reset color to white for later logs
  32. print(_COLOR_CODES["white"] + u"\r")
  33. sys.stdout.flush()
  34. def load_source(name, path):
  35. try:
  36. from importlib.machinery import SourceFileLoader
  37. return SourceFileLoader(name, path).load_module()
  38. except ImportError:
  39. # importlib.machinery doesn't exists in Python 2 so we will use imp (deprecated in Python 3)
  40. import imp
  41. return imp.load_source(name, path)