The following hack seems to repair the damage.  Change:

def _set_proxied(const):
    if not hasattr(const, '__proxied'):
        const.__proxied = _CONST_PROXY[const.value.__class__]
    return const.__proxied

To:

def _set_proxied(const):
    const._proxied = _CONST_PROXY[const.value.__class__]
    return const._proxied

As you can see, there are two major changes to the code:

1. The code uses _proxied instead of __proxied.

I don't see any other uses of __proxied anywhere,
so this would seem like what was originally intended,
but there are absolutely no guarantees.

2. The code always sets const._proxied.

In my test, _set_proxied wasn't called often enough for this to be a concern.
Presumably the GC can handle the "wasted" space.

*Warning*: I've just begun to test this. Please use caution. It will be
good to hear reports from others about how this works for them.

-- 
pylint spews Exception RuntimeError: maximum recursion depth exceeded while 
calling a Python object
https://bugs.launchpad.net/bugs/456870
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to