a XC?hb �@sJddlZddlmZddlmZmZmZmZdd�Z Gdd�dej �Z dS)�N)� fixer_base)�Call�Name�String� touch_importcs�fdd�}|S)Ncs �|_|S�N)� invocation)�f��s��?/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_operator.py�decszinvocation..decr )r rr r r rs rc@s�eZdZdZdZdZdZdeeed�Zdd�Z e d �d d ��Z e d �d d��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"|�||�}|dur|||�SdSr)� _check_method)�self�node�results�methodr r r � transform+s zFixOperator.transformzoperator.contains(%s)cCs|�||d�S)N�contains��_handle_rename�rrrr r r �_sequenceIncludes0szFixOperator._sequenceIncludesz callable(%s)cCs"|d}ttd�|��g|jd�S)Nr�callable��prefix)rr�cloner)rrrrr r r � _isCallable4szFixOperator._isCallablezoperator.mul(%s)cCs|�||d�S)N�mulrrr r r �_repeat9szFixOperator._repeatzoperator.imul(%s)cCs|�||d�S)N�imulrrr r r �_irepeat=szFixOperator._irepeatz(isinstance(%s, collections.abc.Sequence)cCs|�||dd�S)N�collections.abc�Sequence��_handle_type2abcrr r r �_isSequenceTypeAszFixOperator._isSequenceTypez'isinstance(%s, collections.abc.Mapping)cCs|�||dd�S)Nr&�Mappingr(rr r r �_isMappingTypeEszFixOperator._isMappingTypezisinstance(%s, numbers.Number)cCs|�||dd�S)NZnumbers�Numberr(rr r r � _isNumberTypeIszFixOperator._isNumberTypecCs|dd}||_|��dS)Nrr)�valueZchanged)rrr�namerr r r rMs zFixOperator._handle_renamecCsFtd||�|d}|��tdd�||g��g}ttd�||jd�S)Nrz, �.� isinstancer)rr r�joinrrr)rrr�module�abcr�argsr r r r)Rs zFixOperator._handle_type2abccCs^t|d|ddj�}t|tjj�rZd|vr2|St|d�f}|j|}|�|d|�dS)N�_rrr4rzYou should use '%s' here.) �getattrr/r2� collectionsr5�Callable�strrZwarning)rrrr�subZinvocation_strr r r rXs zFixOperator._check_methodN)�__name__� __module__� __qualname__Z BM_compatible�orderrr�dictZPATTERNrrrr!r#r%r*r,r.rr)rr r r r rs2 �       r) �collections.abcr9Zlib2to3rZlib2to3.fixer_utilrrrrrZBaseFixrr r r r � s