util.py revision 9da6b1244191319b39779307d60d7729811d3d5c
19da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbarimport inspect 29da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbarimport os 39da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbarimport sys 49da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar 59da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbardef _write_message(kind, message): 69da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar # Get the file/line where this message was generated. 79da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar f = inspect.currentframe() 89da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar # Step out of _write_message, and then out of wrapper. 99da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar f = f.f_back.f_back 109da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar file,line,_,_,_ = inspect.getframeinfo(f) 119da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar location = '%s:%d' % (os.path.basename(file), line) 129da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar 139da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar print >>sys.stderr, '%s: %s: %s' % (location, kind, message) 149da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar 159da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbarnote = lambda message: _write_message('note', message) 169da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbarwarning = lambda message: _write_message('warning', message) 179da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbarerror = lambda message: _write_message('error', message) 189da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbarfatal = lambda message: (_write_message('fatal error', message), sys.exit(1)) 199da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar 209da6b1244191319b39779307d60d7729811d3d5cDaniel Dunbar__all__ = ['note', 'warning', 'error', 'fatal'] 21