warn.py
57 lines
| 1.4 KiB
| text/x-python
|
PythonLexer
Brian Granger
|
r2498 | # encoding: utf-8 | ||
""" | ||||
Utilities for warnings. Shoudn't we just use the built in warnings module. | ||||
""" | ||||
Min RK
|
r21081 | # Copyright (c) IPython Development Team. | ||
# Distributed under the terms of the Modified BSD License. | ||||
Matthias BUSSONNIER
|
r7817 | from __future__ import print_function | ||
Brian Granger
|
r2498 | |||
import sys | ||||
MinRK
|
r3800 | from IPython.utils import io | ||
Brian Granger
|
r2498 | |||
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
|
r8223 | print(header[level], msg, sep='', file=io.stderr) | ||
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) | ||||