Source code for PseudoNetCDF.pncwarn

import sys
import warnings

std_showwarning = warnings.showwarning


[docs]def warn(*args, **kwds): """ Thin wrapper around warnings.warn to prepend **PNC: to warnings. This makes it easy to find PseudoNetCDF warnings. Arguments --------- args : arguments for warnings.warn kwds : keywords for warnings.warn Returns ------- out : same as warnings.warn """ warnings.showwarning = clean_showwarning out = warnings.warn(*args, **kwds) warnings.showwarning = std_showwarning return out
def clean_showwarning(message, category, filename, lineno, file=None, line=None): global _first_read_only if file is None: file = sys.stderr if file is None: # sys.stderr is None when run with pythonw.exe - warnings get lost return try: warnstr = '**PNC:%s:%s:%s:\n %s\n' % ( (filename), lineno, category.__name__, message) file.write(warnstr) except OSError: pass # the file (probably stderr) is invalid - this warning gets lost. return filterwarnings = warnings.filterwarnings simplefilter = warnings.simplefilter def quiet(): simplefilter('ignore', UserWarning)