
    V.j                        d Z ddlmZ ddlZddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ dd	lmZ dd
lmZ erddlmZ  ee      Z G d d      Zy)z'Source file annotation for coverage.py.    )annotationsN)TYPE_CHECKING)flat_rootname)
ensure_dirisolate_module)FileReporter)get_analysis_to_report)Analysis)TMorfs)Coveragec                  r    e Zd ZdZddZ ej                  d      Z ej                  d      Zd	d
dZ	ddZ
y)AnnotateReportera  Generate annotated source files showing line coverage.

    This reporter creates annotated copies of the measured source files. Each
    .py file is copied as a .py,cover file, with a left-hand margin annotating
    each line::

        > def h(x):
        -     if 0:   #pragma: no cover
        -         pass
        >     if x == 1:
        !         a = 1
        >     else:
        >         a = 2

        > h(2)

    Executed lines use ">", lines not executed use "!", lines excluded from
    consideration use "-".

    c                V    || _         | j                   j                  | _        d | _        y N)coverageconfig	directory)selfr   s     SC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\coverage/annotate.py__init__zAnnotateReporter.__init__/   s!     mm**%)    z\s*(#|$)z\s*else\s*:\s*(#|$)Nc                    || _         | j                  j                          t        | j                  |      D ]  \  }}| j	                  ||        y)zIRun the report.

        See `coverage.report()` for arguments.

        N)r   r   get_datar	   annotate_file)r   morfsr   franalysiss        r   reportzAnnotateReporter.report7   sE     # 24==%HLBr8, Ir   c                J   t        |j                        }t        |j                        }t        |j                        }| j                  rrt        | j                         t        j                  j                  | j                  t        |j                                     }|j                  d      sJ |dd dz   }n|j                  }|dz  }t        |dd      5 }d	x}}	d
}
|j                         }t        |j!                  d
      d      D ]{  \  }}|t#        |      k  r$||   |k  r|dz  }|t#        |      k  r	||   |k  r|	t#        |      k  r$||	   |k  r|	dz  }	|	t#        |      k  r	||	   |k  r|t#        |      k  r ||   |k(  r|	t#        |      k\  xs ||	   |kD  }
| j$                  j'                  |      r|j)                  d       n| j*                  j'                  |      rO|	t#        |      k\  r|j)                  d       nj||   ||	   k(  r|j)                  d       nM|j)                  d       n;||v r|j)                  d       n%|
r|j)                  d       n|j)                  d       |j)                  |       ~ 	 ddd       y# 1 sw Y   yxY w)z]Annotate a single file.

        `fr` is the FileReporter for the file to annotate.

        _pyNz.pyz,coverwzutf-8)encodingr   T   )startz  z> z! z- )sorted
statementsmissingexcludedr   r   ospathjoinr   relative_filenameendswithfilenameopensource	enumerate
splitlineslenblank_rematchwriteelse_re)r   r   r   r'   r(   r)   	dest_filedestijcoveredr1   linenolines                 r   r   zAnnotateReporter.annotate_fileB   sK    H//0
))*(++,>>t~~&T^^]2CWCWCY5Z[I%%e,,,!#2.IIX	)S73tIAGYY[F )&*;*;D*A K K#j/)jmf.DFA #j/)jmf.D#g,&71:+>FA #g,&71:+>s:&:a=F+B3w</F71:3FG==&&t,JJt$\\''-CL(

4(#A'!*4

4(

4(x'JJt$JJt$JJt$

4 1 !L	 433s   A+J	1J;DJJ")r   r   returnNoner   )r   r   r   z
str | Noner@   rA   )r   r   r   r
   r@   rA   )__name__
__module____qualname____doc__r   recompiler5   r8   r   r    r   r   r   r      s9    **
 rzz+&Hbjj/0G	-/!r   r   )rE   
__future__r   r*   rF   typingr   coverage.filesr   coverage.miscr   r   coverage.pluginr   coverage.report_corer	   coverage.resultsr
   coverage.typesr   r   r   r   rH   r   r   <module>rQ      sD    . " 	 	   ( 4 ( 7 % !!BX! X!r   