May-09-2017, 01:47 PM
(May-09-2017, 12:36 AM)Skaperen Wrote: here is a snippet example i coded yesterday:
if time_prefix: if sys.version_info.major < 3: def xprint(*args,**opts): opts['file']=efile try: return print(now().strftime(etformat),*args,**opts) except (IOError,KeyboardInterrupt): return else: def xprint(*args,**opts): opts['file']=efile try: return print(now().strftime(etformat),*args,**opts) except (BrokenPipeError,IOError,KeyboardInterrupt): return else: if sys.version_info.major < 3: def xprint(*args,**opts): opts['file']=efile try: return print(*args,**opts) except (IOError,KeyboardInterrupt): return else: def xprint(*args,**opts): opts['file']=efile try: return print(*args,**opts) except (BrokenPipeError,IOError,KeyboardInterrupt): return
I think I'd write that like:
printer = print if time_prefix: printer = lambda *args, **opts: print(now().strftime(etformat),*args,**opts) errors = (IOError, KeyboardInterrupt) if sys.version_info.major >= 3: errors += (BrokenPipeError, ) def xprint(*args, **opts): opts["file"] = efile try: return printer(*args, **opts) except errors: pass