PythonCharmers/python-future

futurize `__bool__` not implemented for subclasses of dict

Open

#282 ouverte le 5 mai 2017

Voir sur GitHub
 (0 commentaires) (0 réactions) (0 assignés)Python (327 forks)batch import
0.20bughelp wanted

Métriques du dépôt

Stars
 (1 172 stars)
Métriques de merge PR
 (Aucune PR mergée en 30 j)

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__

Guide contributeur