PythonCharmers/python-future

futurize `__bool__` not implemented for subclasses of dict

Open

#282 aperta il 5 mag 2017

Vedi su GitHub
 (0 commenti) (0 reazioni) (0 assegnatari)Python (327 fork)batch import
0.20bughelp wanted

Metriche repository

Star
 (1172 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

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__

Guida contributor