ðÕYf� ã@smdZddlZddlmZddlmZmZmZmZdd„Z Gdd„dej ƒZ dS) aÓFixer 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)ÚCallÚNameÚStringÚ touch_importcs‡fdd†}|S)Ncs ˆ|_|S)N)Ú invocation)Úf)Ús©ú?/opt/alt/python35/lib64/python3.5/lib2to3/fixes/fix_operator.pyÚdecs zinvocation..decr )r r r )r r rsrc@seZdZdZdZdZdZdededeƒZdd „Z e d ƒd d „ƒZ e d ƒdd„ƒZ e dƒdd„ƒZ e dƒdd„ƒZe dƒdd„ƒZe dƒdd„ƒZe dƒdd„ƒZdd „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 > > ÚmethodsÚobjcCs/|j||ƒ}|dk r+|||ƒSdS)N)Ú _check_method)ÚselfÚnodeÚresultsÚmethodr r r Ú transform+s zFixOperator.transformzoperator.contains(%s)cCs|j||dƒS)NÚcontains)Ú_handle_rename)rrrr r r Ú_sequenceIncludes0szFixOperator._sequenceIncludeszhasattr(%s, '__call__')cCsG|d}|jƒtdƒtdƒg}ttdƒ|d|jƒS)Nrz, z '__call__'ÚhasattrÚprefix)Úclonerrrr)rrrrÚargsr r r Ú _isCallable4s !zFixOperator._isCallablezoperator.mul(%s)cCs|j||dƒS)NÚmul)r)rrrr r r Ú_repeat:szFixOperator._repeatzoperator.imul(%s)cCs|j||dƒS)NÚimul)r)rrrr r r Ú_irepeat>szFixOperator._irepeatz$isinstance(%s, collections.Sequence)cCs|j||ddƒS)NÚ collectionsÚSequence)Ú_handle_type2abc)rrrr r r Ú_isSequenceTypeBszFixOperator._isSequenceTypez#isinstance(%s, collections.Mapping)cCs|j||ddƒS)Nr"ÚMapping)r$)rrrr r r Ú_isMappingTypeFszFixOperator._isMappingTypezisinstance(%s, numbers.Number)cCs|j||ddƒS)NZnumbersÚNumber)r$)rrrr r r Ú _isNumberTypeJszFixOperator._isNumberTypecCs%|dd}||_|jƒdS)Nrr)ÚvalueZchanged)rrrÚnamerr r r rNs zFixOperator._handle_renamecCsatd||ƒ|d}|jƒtddj||gƒƒg}ttdƒ|d|jƒS)Nrz, Ú.Ú isinstancer)rrrÚjoinrrr)rrrÚmoduleÚabcrrr r r r$Ss +zFixOperator._handle_type2abccCsxt|d|ddjƒ}t|tjƒrtd|kr@|St|dƒf}|j|}|j|d|ƒdS)NÚ_rrr/rzYou should use '%s' here.)Úgetattrr*r-r"ÚCallableÚstrrZwarning)rrrrÚsubZinvocation_strr r r rYs  zFixOperator._check_methodN)Ú__name__Ú __module__Ú __qualname__Z BM_compatibleÚorderrrÚdictZPATTERNrrrrrr!r%r'r)rr$rr r r r r s    r ) Ú__doc__r"Zlib2to3rZlib2to3.fixer_utilrrrrrZBaseFixr r r r r Ú s  "