a
XC?hb
� @ sN d Z ddlZddlmZ ddlmZmZmZm Z dd� Z
G dd� dej�ZdS ) a� Fixer for operator functions.
operator.isCallable(obj) -> callable(obj)
operator.sequenceIncludes(obj) -> operator.contains(obj)
operator.isSequenceType(obj) -> isinstance(obj, collections.abc.Sequence)
operator.isMappingType(obj) -> isinstance(obj, collections.abc.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_importc s � fdd�}|S )Nc s
� | _ | S �N)�
invocation)�f��s� �?/opt/alt/python39/lib64/python3.9/lib2to3/fixes/fix_operator.py�dec s zinvocation..decr )r r r r
r
r s r c @ s� e Zd ZdZdZdZdZdeeed� Zdd� Z e
d �d
d� �Ze
d�d
d� �Ze
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�objc C s" | � ||�}|d ur|||�S d S r )�
_check_method)�self�node�results�methodr r r
� transform+ s zFixOperator.transformzoperator.contains(%s)c C s | � ||d�S )N�contains��_handle_rename�r r r r r r
�_sequenceIncludes0 s zFixOperator._sequenceIncludeszcallable(%s)c C s" |d }t td�|�� g|jd�S )Nr �callable��prefix)r r �cloner )r r r r r r r
�_isCallable4 s zFixOperator._isCallablezoperator.mul(%s)c C s | � ||d�S )N�mulr r r r r
�_repeat9 s zFixOperator._repeatzoperator.imul(%s)c C s | � ||d�S )N�imulr r r r r
�_irepeat= s zFixOperator._irepeatz(isinstance(%s, collections.abc.Sequence)c C s | � ||dd�S )N�collections.abc�Sequence��_handle_type2abcr r r r
�_isSequenceTypeA s zFixOperator._isSequenceTypez'isinstance(%s, collections.abc.Mapping)c C s | � ||dd�S )Nr&