i f @smdZddlZddlmZddlmZmZmZmZddZ Gdddej Z dS) aFixer for operator functions. operator.isCallable(obj) -> hasattr(obj, '__call__') operator.sequenceIncludes(obj) -> operator.contains(obj) operator.isSequenceType(obj) -> isinstance(obj, collections.Sequence) operator.isMappingType(obj) -> isinstance(obj, collections.Mapping) operator.isNumberType(obj) -> isinstance(obj, numbers.Number) operator.repeat(obj, n) -> operator.mul(obj, n) operator.irepeat(obj, n) -> operator.imul(obj, n) N) fixer_base)CallNameString touch_importcsfdd}|S)Ncs |_|S)N) invocation)f)s?/opt/alt/python34/lib64/python3.4/lib2to3/fixes/fix_operator.pydecs zinvocation..decr )r r r )r r rsrc@seZdZdZdZdZdZdededeZdd Z e d d d Z e d ddZ e dddZ e dddZe dddZe dddZe dddZdd Zd!d"Zd#d$Zd%S)& FixOperatorTZprez method=('isCallable'|'sequenceIncludes' |'isSequenceType'|'isMappingType'|'isNumberType' |'repeat'|'irepeat') z'(' obj=any ')'z power< module='operator' trailer< '.' %(methods)s > trailer< %(obj)s > > | power< %(methods)s trailer< %(obj)s > > methodsobjcCs/|j||}|dk r+|||SdS)N) _check_method)selfnoderesultsmethodr r r transform+s zFixOperator.transformzoperator.contains(%s)cCs|j||dS)Ncontains)_handle_rename)rrrr r r _sequenceIncludes0szFixOperator._sequenceIncludeszhasattr(%s, '__call__')cCsG|d}|jtdtdg}ttd|d|jS)Nrz, z '__call__'hasattrprefix)clonerrrr)rrrrargsr r r _isCallable4s !zFixOperator._isCallablezoperator.mul(%s)cCs|j||dS)Nmul)r)rrrr r r _repeat:szFixOperator._repeatzoperator.imul(%s)cCs|j||dS)Nimul)r)rrrr r r _irepeat>szFixOperator._irepeatz$isinstance(%s, collections.Sequence)cCs|j||ddS)N collectionsSequence)_handle_type2abc)rrrr r r _isSequenceTypeBszFixOperator._isSequenceTypez#isinstance(%s, collections.Mapping)cCs|j||ddS)Nr"Mapping)r$)rrrr r r _isMappingTypeFszFixOperator._isMappingTypezisinstance(%s, numbers.Number)cCs|j||ddS)NZnumbersNumber)r$)rrrr r r _isNumberTypeJszFixOperator._isNumberTypecCs%|dd}||_|jdS)Nrr)valueZchanged)rrrnamerr r r rNs zFixOperator._handle_renamecCsatd|||d}|jtddj||gg}ttd|d|jS)Nrz, . isinstancer)rrrjoinrrr)rrrmoduleabcrrr r r r$Ss +zFixOperator._handle_type2abccCs{t|d|ddj}t|tjrwd|kr@|St|df}|j|}|j|d|ndS)N_rrr/rzYou should use '%s' here.)getattrr*r-r"CallablestrrZwarning)rrrrsubZinvocation_strr r r rYs  zFixOperator._check_methodN)__name__ __module__ __qualname__Z BM_compatibleZorderrrdictZPATTERNrrrrrr!r%r'r)rr$rr r r r r s    r ) __doc__r"Zlib2to3rZlib2to3.fixer_utilrrrrrZBaseFixr r r r r  s  "