warn.py
67 lines
| 1.9 KiB
| text/x-python
|
PythonLexer
Brian Granger
|
r2498 | # encoding: utf-8 | ||
""" | ||||
Utilities for warnings. Shoudn't we just use the built in warnings module. | ||||
""" | ||||
#----------------------------------------------------------------------------- | ||||
Matthias BUSSONNIER
|
r5390 | # Copyright (C) 2008-2011 The IPython Development Team | ||
Brian Granger
|
r2498 | # | ||
# Distributed under the terms of the BSD License. The full license is in | ||||
# the file COPYING, distributed as part of this software. | ||||
#----------------------------------------------------------------------------- | ||||
#----------------------------------------------------------------------------- | ||||
# Imports | ||||
#----------------------------------------------------------------------------- | ||||
Matthias BUSSONNIER
|
r7817 | from __future__ import print_function | ||
Brian Granger
|
r2498 | |||
import sys | ||||
MinRK
|
r3800 | from IPython.utils import io | ||
Brian Granger
|
r2498 | |||
#----------------------------------------------------------------------------- | ||||
# Code | ||||
#----------------------------------------------------------------------------- | ||||
def warn(msg,level=2,exit_val=1): | ||||
"""Standard warning printer. Gives formatting consistency. | ||||
MinRK
|
r3800 | Output is sent to io.stderr (sys.stderr by default). | ||
Brian Granger
|
r2498 | |||
Options: | ||||
-level(2): allows finer control: | ||||
0 -> Do nothing, dummy function. | ||||
1 -> Print message. | ||||
2 -> Print 'WARNING:' + message. (Default level). | ||||
3 -> Print 'ERROR:' + message. | ||||
4 -> Print 'FATAL ERROR:' + message and trigger a sys.exit(exit_val). | ||||
-exit_val (1): exit value returned by sys.exit() for a level 4 | ||||
warning. Ignored for all other levels.""" | ||||
if level>0: | ||||
header = ['','','WARNING: ','ERROR: ','FATAL ERROR: '] | ||||
Thomas Kluyver
|
r4899 | io.stderr.write('%s%s' % (header[level],msg)) | ||
Brian Granger
|
r2498 | if level == 4: | ||
Matthias BUSSONNIER
|
r7817 | print('Exiting.\n', file=io.stderr) | ||
Brian Granger
|
r2498 | sys.exit(exit_val) | ||
def info(msg): | ||||
"""Equivalent to warn(msg,level=1).""" | ||||
warn(msg,level=1) | ||||
def error(msg): | ||||
"""Equivalent to warn(msg,level=3).""" | ||||
warn(msg,level=3) | ||||
def fatal(msg,exit_val=1): | ||||
"""Equivalent to warn(msg,exit_val=exit_val,level=4).""" | ||||
warn(msg,exit_val=exit_val,level=4) | ||||