o
    2g\                     @  s\   d dl mZ d dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
mZ dddZdddZdS )    )annotationsN)defaultdict)Iterator)DataDrivenTestCaseDataFileCollectorDataFileFixparse_test_datatestcaser   actual	list[str]incremental_stepintreturnNonec                C  s@   | j rd S | j}t|tsJ t| ||dD ]}|| qd S )N)r   )xfailparent
isinstancer   _iter_fixesenqueue_fix)r	   r
   r   	collectorfix r   M/home/garg/my-data/venv/lib/python3.10/site-packages/mypy/test/update_data.pyupdate_testcase_output
   s   r   Iterator[DataFileFix]c                c  sP   t t}|D ]+}td|}|r2|d}t|d}|d}|d}	|||f ||	f qt| j| j	}
t
dd |
D ry|
D ]1}|dk rP|jd	ks\|dkrv|jd	| krvt| j|j d
 | j|j d
 |dg|j  dV  qEd S |
D ]}|jdkr|j}d}n|jdkr|j}d|j }nq{g }t|d
dD ]j\}}|||f}td|}|r|d |d }|r|r|dnd}t|D ]7\}\}}	|dkr|ndt| }|t|d
 k}|d  }|rdnd}|| | d| d|	 |  qq|| qt| j|j d
 | j|j d
 |dg|j  dV  q{d S )NzT^(?P<filename>[^:]+):(?P<lineno>\d+): (?P<severity>error|note|warning): (?P<msg>.+)$filenamelinenoseveritymsgc                 s  s    | ]
}t d |jV  qdS )z^out\d*$N)rematchid).0	test_itemr   r   r   	<genexpr>(   s    z_iter_fixes.<locals>.<genexpr>   out    )r   
end_linenolinescasemainfileztmp/)startz((?P<indent>\s+)(?P<comment># [EWN]: .+)$indentz  r    z \z# z: )r   listr   r    groupr   appendr   datanameanyr!   r   lineend_linetrimmed_newlinesarg	enumerategetsearchr.   lenupper)r	   r
   r   reports_by_line
error_linecomment_matchr   r   r   r   
test_itemsr#   source_lines	file_path	fix_linessource_linereportsr/   jout_lis_lastseverity_charcontinuationr   r   r   r      sp   




$
r   )r	   r   r
   r   r   r   r   r   )r	   r   r
   r   r   r   r   r   )
__future__r   r   collectionsr   typingr   mypy.test.datar   r   r   r   r   r   r   r   r   r   <module>   s    
