Package VisionEgg :: Module Deprecated
[frames] | no frames]

Source Code for Module VisionEgg.Deprecated

  1  # The Vision Egg: Deprecated 
  2  # 
  3  # Copyright (C) 2001-2003 Andrew Straw. 
  4  # Copyright (C) 2008 California Institute of Technology 
  5  # 
  6  # URL: <http://www.visionegg.org/> 
  7  # 
  8  # Distributed under the terms of the GNU Lesser General Public License 
  9  # (LGPL). See LICENSE.TXT that came with this file. 
 10   
 11  """ 
 12  Bits of code which will be removed in the future. 
 13   
 14  """ 
 15   
 16  import VisionEgg 
 17  import sys, os 
 18  import logging                              # available in Python 2.3 
 19   
 20  #################################################################### 
 21  # 
 22  #        Error handling and assumption checking 
 23  # 
 24  #################################################################### 
 25   
26 -class Message:
27 """DEPRECATED Handles message/warning/error printing, exception raising.""" 28 29 # Levels are: 30 TRIVIAL = 0 31 NAG = 1 32 INFO = 2 33 DEPRECATION = 3 34 WARNING = 4 35 ERROR = 5 36 FATAL = 6 37
38 - def __init__(self):
39 ## script_name = sys.argv[0] 40 ## if not script_name: 41 ## script_name = "(interactive shell)" 42 self.pid = os.getpid()
43 ## self.logger.info("Script "+script_name+" started Vision Egg %s with process id %d."%(VisionEgg.release_name,self.pid)) 44
45 - def add(self,message,level=INFO,preserve_formatting=0,no_sys_stderr=0):
46 level_translate = { 47 # convert from old VisionEgg levels to new logging module levels 48 Message.TRIVIAL : logging.DEBUG, 49 Message.NAG : logging.DEBUG, 50 Message.INFO : logging.INFO, 51 Message.DEPRECATION : logging.WARNING, 52 Message.WARNING : logging.WARNING, 53 Message.ERROR : logging.ERROR, 54 Message.FATAL : logging.CRITICAL, 55 } 56 new_level = level_translate[ level ] 57 if not hasattr(self,"logger"): 58 self.logger = logging.getLogger('VisionEgg.Deprecated') 59 self.logger.log(new_level,message + '\n(sent using deprecated VisionEgg.Core.Message class)')
60
61 - def format_string(self,in_str):
62 # This probably a slow way to do things, but it works! 63 min_line_length = 70 64 in_list = in_str.split() 65 out_str = "" 66 cur_line = "" 67 for word in in_list: 68 cur_line = cur_line + word + " " 69 if len(cur_line) > min_line_length: 70 out_str = out_str + cur_line[:-1] + "\n" 71 cur_line = " " 72 if cur_line.strip(): 73 # only add another newline if the last line done is non-empty 74 out_str = out_str + cur_line + "\n" 75 return out_str
76
77 - def handle(self):
78 if not self._sent_initial_newline: 79 self.output_stream.write("\n",_no_sys_stderr=1) 80 self.output_stream.flush() 81 self._sent_initial_newline = 1 82 while len(self.message_queue) > 0: 83 my_str = "" 84 level,text,preserve_formatting,date_str,no_sys_stderr = self.message_queue.pop(0) 85 if level >= self.print_level: 86 my_str= my_str+date_str+" " 87 if self.pid: 88 my_str += "(%d) "%(self.pid,) 89 #my_str=my_str+self.prefix+" " 90 if level == Message.TRIVIAL: 91 my_str=my_str+"trivial" 92 elif level == Message.INFO: 93 my_str=my_str+"info" 94 elif level == Message.NAG: 95 my_str=my_str+"nag" 96 elif level == Message.DEPRECATION: 97 my_str=my_str+"DEPRECATION WARNING" 98 elif level == Message.WARNING: 99 my_str=my_str+"WARNING" 100 elif level == Message.ERROR: 101 my_str=my_str+"ERROR" 102 elif level == Message.FATAL: 103 my_str=my_str+"FATAL" 104 my_str += ": " 105 my_str += text 106 if not preserve_formatting: 107 my_str = self.format_string(my_str) 108 self.output_stream.write(my_str,_no_sys_stderr=no_sys_stderr) 109 self.output_stream.flush() 110 if level >= self.exception_level: 111 raise RuntimeError(text) 112 if level == Message.FATAL: 113 sys.exit(-1)
114