Loading pysen/misc.py +20 −28 Original line number Diff line number Diff line Loading @@ -44,40 +44,32 @@ def get_loglevel(level): return _LOG_LEVELS.get(level, logging.INFO) def setup_logger_standard(level=DEFAULT_LOG_LEVEL, filename=None): def setup_logger(level=DEFAULT_LOG_LEVEL, filename=None, detail=False): "setup logger" loglevel = get_loglevel(level) # log_format=r'%(message)s' if loglevel<logging.INFO or filename is not None: log_format=r'%(levelname)s: %(funcName)s: %(message)s' logging.basicConfig(filename=filename, level=loglevel, format=log_format) log = logging.getLogger() return log def setup_logger_detail(level=DEFAULT_LOG_LEVEL, filename=None): "setup logger" loglevel = get_loglevel(level) log = logging.getLogger() log.setLevel(loglevel) # if detail: stream_handler = logging.StreamHandler() stream_handler.setLevel(loglevel) stream_formatter = logging.Formatter('%(message)s') stream_formatter = logging.Formatter('%(name)s | %(message)s') stream_handler.setFormatter(stream_formatter) log.addHandler(stream_handler) if filename: file_handler = logging.FileHandler(filename=filename) file_formatter = logging.Formatter('%(asctime)s | %(name)s | %(levelname)s: %(message)s') file_handler.setFormatter(file_formatter) file_handler.setLevel(loglevel) log.addHandler(stream_handler) log.addHandler(file_handler) else: log_format=r'%(message)s' if loglevel<logging.INFO or filename is not None: log_format=r'%(levelname)s: %(funcName)s: %(message)s' logging.basicConfig(filename=filename, level=loglevel, format=log_format) return log setup_logger = setup_logger_standard def dictionary_hash(arg): "compute object hash" Loading test/test_misc.py 0 → 100755 +55 −0 Original line number Diff line number Diff line """ Python unit test cases for misc module """ import unittest import logging import numpy as np import pysen.misc as pmi class MiscTestCase(unittest.TestCase): "Misc Test Cases" def setUp(self): log = logging.getLogger() for handler in list(log.handlers): log.removeHandler(handler) handler.close() log.setLevel(logging.NOTSET) log.propagate = True def tearDown(self): pass def test_getloglevel(self): "test getloglevel" self.assertEqual(logging.ERROR, pmi.get_loglevel("ERROR"), "ERROR") self.assertEqual(logging.WARNING, pmi.get_loglevel("WARNING"), "WARNING") self.assertEqual(logging.INFO, pmi.get_loglevel("INFO"), "INFO") self.assertEqual(logging.DEBUG, pmi.get_loglevel("DEBUG"), "DEBUG") self.assertEqual(logging.DEBUG, pmi.get_loglevel("TRACE"), "TRACE") self.assertEqual(logging.ERROR, pmi.get_loglevel(pmi.ERROR), "ERROR") self.assertEqual(logging.WARNING, pmi.get_loglevel(pmi.WARNING), "WARNING") self.assertEqual(logging.INFO, pmi.get_loglevel(pmi.INFO), "INFO") self.assertEqual(logging.DEBUG, pmi.get_loglevel(pmi.DEBUG), "DEBUG") self.assertEqual(logging.DEBUG, pmi.get_loglevel(pmi.TRACE), "TRACE") def test_setup_logger1(self): "test setup logger plain" log = pmi.setup_logger(level=pmi.DEBUG, filename='test.log') log.info('plain info test') def test_setup_logger2(self): "test setup logger plain" log = pmi.setup_logger(level=pmi.DEBUG, filename='test.log', detail=True) log.info('detail info test') if __name__ == "__main__": unittest.main(exit=False, verbosity=2) Loading
pysen/misc.py +20 −28 Original line number Diff line number Diff line Loading @@ -44,40 +44,32 @@ def get_loglevel(level): return _LOG_LEVELS.get(level, logging.INFO) def setup_logger_standard(level=DEFAULT_LOG_LEVEL, filename=None): def setup_logger(level=DEFAULT_LOG_LEVEL, filename=None, detail=False): "setup logger" loglevel = get_loglevel(level) # log_format=r'%(message)s' if loglevel<logging.INFO or filename is not None: log_format=r'%(levelname)s: %(funcName)s: %(message)s' logging.basicConfig(filename=filename, level=loglevel, format=log_format) log = logging.getLogger() return log def setup_logger_detail(level=DEFAULT_LOG_LEVEL, filename=None): "setup logger" loglevel = get_loglevel(level) log = logging.getLogger() log.setLevel(loglevel) # if detail: stream_handler = logging.StreamHandler() stream_handler.setLevel(loglevel) stream_formatter = logging.Formatter('%(message)s') stream_formatter = logging.Formatter('%(name)s | %(message)s') stream_handler.setFormatter(stream_formatter) log.addHandler(stream_handler) if filename: file_handler = logging.FileHandler(filename=filename) file_formatter = logging.Formatter('%(asctime)s | %(name)s | %(levelname)s: %(message)s') file_handler.setFormatter(file_formatter) file_handler.setLevel(loglevel) log.addHandler(stream_handler) log.addHandler(file_handler) else: log_format=r'%(message)s' if loglevel<logging.INFO or filename is not None: log_format=r'%(levelname)s: %(funcName)s: %(message)s' logging.basicConfig(filename=filename, level=loglevel, format=log_format) return log setup_logger = setup_logger_standard def dictionary_hash(arg): "compute object hash" Loading
test/test_misc.py 0 → 100755 +55 −0 Original line number Diff line number Diff line """ Python unit test cases for misc module """ import unittest import logging import numpy as np import pysen.misc as pmi class MiscTestCase(unittest.TestCase): "Misc Test Cases" def setUp(self): log = logging.getLogger() for handler in list(log.handlers): log.removeHandler(handler) handler.close() log.setLevel(logging.NOTSET) log.propagate = True def tearDown(self): pass def test_getloglevel(self): "test getloglevel" self.assertEqual(logging.ERROR, pmi.get_loglevel("ERROR"), "ERROR") self.assertEqual(logging.WARNING, pmi.get_loglevel("WARNING"), "WARNING") self.assertEqual(logging.INFO, pmi.get_loglevel("INFO"), "INFO") self.assertEqual(logging.DEBUG, pmi.get_loglevel("DEBUG"), "DEBUG") self.assertEqual(logging.DEBUG, pmi.get_loglevel("TRACE"), "TRACE") self.assertEqual(logging.ERROR, pmi.get_loglevel(pmi.ERROR), "ERROR") self.assertEqual(logging.WARNING, pmi.get_loglevel(pmi.WARNING), "WARNING") self.assertEqual(logging.INFO, pmi.get_loglevel(pmi.INFO), "INFO") self.assertEqual(logging.DEBUG, pmi.get_loglevel(pmi.DEBUG), "DEBUG") self.assertEqual(logging.DEBUG, pmi.get_loglevel(pmi.TRACE), "TRACE") def test_setup_logger1(self): "test setup logger plain" log = pmi.setup_logger(level=pmi.DEBUG, filename='test.log') log.info('plain info test') def test_setup_logger2(self): "test setup logger plain" log = pmi.setup_logger(level=pmi.DEBUG, filename='test.log', detail=True) log.info('detail info test') if __name__ == "__main__": unittest.main(exit=False, verbosity=2)