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