Source code for acq400_hapi.debug

'''
Created on 29 Sep 2020

@author: pgm
'''

import logging

logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
logger.addHandler(ch)

[docs]class Debugger(object): """ Debug a method and return it back""" enabled = 0 stack_level = 0
[docs] def __init__(self, func): self.func = func
def __call__(self, *args, **kwargs): if Debugger.enabled: Debugger.stack_level += 1 logger.debug('{} {} {} {}'.format("===>" * self.stack_level, "Enter" if Debugger.enabled > 2 else "Entering", self.func.__name__, args, kwargs)) if Debugger.enabled > 2: inp = input("Enter {}() q/C?".format(self.func.__name__)) if inp == 'q': exit(1) rc = self.func(*args, **kwargs) if Debugger.enabled: logger.debug('{} returned : {}'.format(self.func.__name__, rc)) if self.enabled > 1: logger.debug('Exit : {}'.format(self.func.__name__)) inp = input("Exit {}() q/C?".format(self.func.__name__)) if inp == 'q': exit(1) Debugger.stack_level = Debugger.stack_level - 1 return rc