Source code for lys.decorators



def avoidCircularReference(func, name="_avoidCircularFlg"):
    def wrapper(self, *args, **kwargs):
        if not hasattr(self, name):
            setattr(self, name, False)
        if getattr(self, name) is True:
            return
        else:
            setattr(self, name, True)
            func(self, *args, **kwargs)
            setattr(self, name, False)
    return wrapper