15e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis"""Fixer for __nonzero__ -> __bool__ methods.""" 25e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis# Author: Collin Winter 35e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis 45e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis# Local imports 5e607823af57c176c3be23985f5bbf9260f6bd836Benjamin Petersonfrom .. import fixer_base 6e607823af57c176c3be23985f5bbf9260f6bd836Benjamin Petersonfrom ..fixer_util import Name, syms 75e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis 8e607823af57c176c3be23985f5bbf9260f6bd836Benjamin Petersonclass FixNonzero(fixer_base.BaseFix): 9a81eae1fd71eed670d1c28bf940ea99b4bfa2335Benjamin Peterson BM_compatible = True 105e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis PATTERN = """ 115e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis classdef< 'class' any+ ':' 125e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis suite< any* 135e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis funcdef< 'def' name='__nonzero__' 145e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis parameters< '(' NAME ')' > any+ > 155e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis any* > > 165e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis """ 175e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis 185e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis def transform(self, node, results): 195e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis name = results["name"] 206118040b7aee905bcddcb949c6815dc19ca23070Benjamin Peterson new = Name(u"__bool__", prefix=name.prefix) 215e37baea8007cb64b65a180e4d6c80de292a8a4aMartin v. Löwis name.replace(new) 22