utils.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. class Logger(object):
  2. verbose = 0 #-1= no output
  3. #0 = only errors
  4. #1 = only warnings and errors
  5. #2 = all output
  6. @staticmethod
  7. def showError(error):
  8. if(Logger.verbose > -1) :
  9. print "ERROR : " + error
  10. @staticmethod
  11. def showWarning(warning):
  12. if(Logger.verbose > 0) :
  13. print "WARNING : " + warning
  14. @staticmethod
  15. def showInfo(info):
  16. if(Logger.verbose > 1) :
  17. print "INFO : " + info
  18. #######################
  19. class Enum():
  20. def __init__(self, *entries):
  21. self._keys = entries
  22. self._map = {}
  23. for v,k in enumerate(self._keys) :
  24. self._map[k] = v
  25. def __getattr__(self, name):
  26. return self._map[name]
  27. def name_of(self, index):
  28. return self._keys[index]
  29. #######################
  30. class FileOutputer:
  31. def __init__(self, filename):
  32. self.out = open(filename, 'w')
  33. self.indentLevel = 0
  34. self.indentSpace = " "
  35. self.first_write = True
  36. def write(self, text = ""):
  37. if self.first_write :
  38. self.first_write = False
  39. if text == "":
  40. self.out.write(self.indentLevel*self.indentSpace)
  41. else:
  42. self.out.write(self.indentLevel*self.indentSpace + text)
  43. else:
  44. if text == "":
  45. self.out.write("\n" + self.indentLevel*self.indentSpace)
  46. else:
  47. self.out.write("\n" + self.indentLevel*self.indentSpace + text)
  48. def extendWrite(self, text = ""):
  49. self.out.write(text)
  50. def indent(self):
  51. self.indentLevel+=1
  52. def dedent(self):
  53. self.indentLevel-=1
  54. def close(self):
  55. self.out.close()
  56. #######################