PythonCharmers/python-future

futurize `__bool__` not implemented for subclasses of dict

Open

#282 aberto em 5 de mai. de 2017

Ver no GitHub
 (0 comments) (0 reactions) (0 assignees)Python (327 forks)batch import
0.20bughelp wanted

Métricas do repositório

Stars
 (1.172 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

If a run futurize on python 2 code containing a subclass of the built in dict, e.g.

class A(dict):
    __nonzero__(self):
    return False

it is translated to

class A(dict):
    __bool__(self):
    return False

However, the __bool__ method is not called in python 2. Seems some other kind of trickery is needed.

For now I'm working around the issue by doing

class A(dict):
    __bool__(self):
    return False
    if sys.version_info[0] == 2:
        __nonzero__ = __bool__

Guia do colaborador