2
     591 O    """Fixer for __nonzero__ -> __bool__ methods."""
# Author: Collin Winter

# Local imports
from .. import fixer_base
from ..fixer_util import Name

class FixNonzero(fixer_base.BaseFix):
    BM_compatible = True
    PATTERN = """
    classdef< 'class' any+ ':'
              suite< any*
                     funcdef< 'def' name='__nonzero__'
                              parameters< '(' NAME ')' > any+ >
                     any* > >
    """

    def transform(self, node, results):
        name = results["name"]
        new = Name("__bool__", prefix=name.prefix)
        name.replace(new)
     i ?     a
    ir                     @   s  d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ g dZG dd deeZe
d	d
G dd dZe
d	d
G dd dZG dd dZG dd dZdd Zdd Zdd Zdd Zdd Zdd Zdd  Zed!krd dlZzd dlZW n ey(   Y n0 G d"d# d#ejZ e!e j"d$krXe j"d$ Z#ndZ#zPe e#Z$e j"d%d D ]Z%e$&e% qte'd&e$j(d' e$)  e'd(e$j(d' W n e*y   Y n0 dS ))    N)Enum)
cmp_to_key)	dataclass)Dict)StatsSortKeyFunctionProfileStatsProfilec                   @   s8   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
d ZdS )r   )callsncalls)
cumulativecumtime)filenamemodulelinenamenflpcallsstdname)timetottimec                 G   s@   |d }t | |}||_|dd  D ]}|| j|< q&||_|S Nr      )str__new___value__value2member_map_Z_all_values)clsvaluesvalueobjZother_value r!   /usr/lib64/python3.9/pstats.pyr   /   s    zSortKey.__new__N)__name__
__module____qualname__ZCALLSZ
CUMULATIVEZFILENAMEZLINENAMEZNFLZPCALLSZSTDNAMEZTIMEr   r!   r!   r!   r"   r   $   s   r   T)Zunsafe_hashc                   @   sF   e Zd ZU eed< eed< eed< eed< eed< eed< eed< dS )	r   r   r   percall_tottimer   percall_cumtime	file_nameline_numberN)r#   r$   r%   int__annotations__floatr   r!   r!   r!   r"   r   9   s   
r   c                   @   s&   e Zd ZU eed< eeef ed< dS )r	   total_ttfunc_profilesN)r#   r$   r%   r-   r,   r   r   r   r!   r!   r!   r"   r	   C   s   
r	   c                   @   s   e Zd ZddddZdd Zdd Zd	d
 Zdd Zdd ZddddddddddddddZ	dd Z
dd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd8d2d3Zd4d5 Zd6d7 ZdS )9r   N)streamc                G   sF   |pt j| _t|sd }n|d }|dd  }| | | j|  d S r   )sysstdoutr0   leninitadd)selfr0   argsargr!   r!   r"   __init__k   s    
zStats.__init__c                 C   s   d | _ g | _d | _d| _d| _d| _d| _t | _i | _	i | _
| | z|   W n6 ty   td| jrv| jd nd | jd  Y n0 d S )Nr   zInvalid timing data %s file)all_calleesfilesfcn_listr.   total_calls
prim_callsmax_name_lenset	top_levelstatssort_arg_dict
load_statsget_top_level_stats	Exceptionprintr0   )r6   r8   r!   r!   r"   r4   u   s(    
z
Stats.initc                 C   s   |d u ri | _ d S t|trt|d}t|| _ W d    n1 sH0    Y  z"t|}t	|j
d | }W n   Y n0 |g| _n t|dr|  |j | _ i |_ | j std| j|f d S )Nrbz    create_statsz.Cannot create or construct a %r object from %r)rF   
isinstancer   openmarshalloadosstatr   ctimest_mtimer?   hasattrrM   	TypeError	__class__)r6   r8   fZ
file_statsr!   r!   r"   rH      s*    
*


zStats.load_statsc                 C   s   | j  D ]p\}\}}}}}|  j|7  _|  j|7  _|  j|7  _d|v rZ| j| tt|| j	kr
tt|| _	q
d S )N)Zjprofil