blob: cf6fa285735202e5ad92aaef5b87c94ad56c7630 [file] [log] [blame]
Daniel Dunbar9da6b122011-11-03 17:56:10 +00001import inspect
2import os
3import sys
4
5def _write_message(kind, message):
6 # Get the file/line where this message was generated.
7 f = inspect.currentframe()
8 # Step out of _write_message, and then out of wrapper.
9 f = f.f_back.f_back
10 file,line,_,_,_ = inspect.getframeinfo(f)
11 location = '%s:%d' % (os.path.basename(file), line)
12
13 print >>sys.stderr, '%s: %s: %s' % (location, kind, message)
14
15note = lambda message: _write_message('note', message)
16warning = lambda message: _write_message('warning', message)
17error = lambda message: _write_message('error', message)
18fatal = lambda message: (_write_message('fatal error', message), sys.exit(1))
19
20__all__ = ['note', 'warning', 'error', 'fatal']