borgend/exprotect.py

Tue, 21 Apr 2020 09:59:51 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Tue, 21 Apr 2020 09:59:51 -0500
changeset 129
9f3ae6b3133f
parent 106
a7bdc239ef62
permissions
-rw-r--r--

Improve installation instructions;
move py2app to keychain configuration section.

#
# Borgend by Tuomo Valkonen, 2018
#
# Except-catching decocators to catch bugs in callbacks
#

import logging

logger=logging.getLogger(__name__)

def protect_noreturn(fn):
    name=fn.__name__
    def wrapper(*args, **kwargs):
        try:
            fn(*args, **kwargs)
        except:
            logger.exception('bug in ' + name)
    return wrapper


def protect_return(default):
    def wrap(fn):
        name=fn.__name__
        def wrapper(*args, **kwargs):
            try:
                return fn(*args, **kwargs)
            except:
                logger.exception('bug in ' + name)
                return default
        return wrapper
    return wrap

mercurial