def mk_result(rc, message): def resf(message=message, origin={}, timestamp=None, **kwargs): return result(rc, message=message, origin=origin, timestamp=timestamp, **kwargs) setfname(resf, "result_%s" % rc) resf.__doc__ = "Create result with rc = %s and default message = %s" % (rc, message) return resf
def mkcommand(cmd, __doc__="", **kwargs): def cmdf(**kwargs): return Command(cmd) setfname(cmdf, cmd) cmdf.__doc__ = __doc__ or "Command %s" % cmd return cmdf
def mk_log_level(log_level): def logf(message="", log_handle="", origin={}, timestamp=None, **kwargs): return Event('log', origin, timestamp, log_level=log_level, log_handle=log_handle, message=message, **kwargs) setfname(logf, "log_level_%s" % log_level) logf.__doc__ = "Create log event with log_level = %s" % log_level return logf
def __call__(f): """Log decorator. This will take a function as an argument and return equivalent function loggign calls and return values""" fstr = repr(f) def tempf(*args, **kwargs): try: argstr = "*"+repr(args)+", **"+repr(kwargs) except: argstr = "???" try: logf("start %s(%s) {" % (fstr, argstr)) except: pass try: answ = f(*args, **kwargs) try: logf("} %s returned %s" % (fstr, repr(answ))) except: pass return answ except: (etype, e, etb) = sys.exc_info() if getattr(e, '_printed', False): tb = '...' else: tb = repr(format_exc()) setattr(e, '_printed', True) try: logf("} %s raised %s (%s)" % (fstr, repr(e), tb)) except: pass raise e, None, etb tempf.__doc__ = f.__doc__ setfname(tempf, f.__name__) return tempf
def mk_result(rc, message): def resf(message=message, origin={}, timestamp=None, **kwargs): return result(rc, message=message, origin=origin, timestamp=timestamp, **kwargs) setfname(resf, "result_%s" % rc) resf.__doc__ = "Create result with rc = %s and default message = %s" % ( rc, message) return resf
def __call__(f): """Log decorator. This will take a function as an argument and return equivalent function loggign calls and return values""" fstr = repr(f) def tempf(*args, **kwargs): try: argstr = "*" + repr(args) + ", **" + repr(kwargs) except: argstr = "???" try: logf("start %s(%s) {" % (fstr, argstr)) except: pass try: answ = f(*args, **kwargs) try: logf("} %s returned %s" % (fstr, repr(answ))) except: pass return answ except: (etype, e, etb) = sys.exc_info() if getattr(e, '_printed', False): tb = '...' else: tb = repr(format_exc()) setattr(e, '_printed', True) try: logf("} %s raised %s (%s)" % (fstr, repr(e), tb)) except: pass raise e, None, etb tempf.__doc__ = f.__doc__ setfname(tempf, f.__name__) return tempf