§
    0›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m	Z	m
Z
 ddlmZmZ ddlmZmZ ddlmZ dd	lmZ dd
lmZmZ ddlmZ e	rddlmZ e                     d„ ej        D ¦   «         ¦  «        Zdd„Z  G d„ d¦  «        Z!dS )zSummary reportingé    )ÚannotationsN)ÚIterable)ÚIOÚTYPE_CHECKINGÚAny)ÚConfigErrorÚNoDataError)Úhuman_sorted_itemsÚplural)ÚFileReporter)Úget_analysis_to_report)ÚAnalysisÚNumbers)ÚTMorfs)ÚCoveragec                ó"   — i | ]}|d v¯|d|› �“ŒS )z.,/-ú\© )Ú.0Úchars     úN/home/lighthouse/health/venv/lib64/python3.11/site-packages/coverage/report.pyú
<dictcomp>r      s*   € ÐLÐLÐL˜4¸ÀVÐ9KÐ9K€Tˆ;�ˆ;ˆ;Ð9KÐ9KÐ9Kó    ÚtextÚstrÚreturnc                ó6   — |                       t          ¦  «        S )zEPrefix all characters meaningful in markdown tables with backslashes.)Ú	translateÚMARKDOWN_ESCAPES)r   s    r   Úescape_markdownr       s   € à�>Š>Õ*Ñ+Ô+Ð+r   c                  óT   — e Zd ZdZd#d„Zd$d	„Zd%d„Zd&d„Zd&d„Zd'd(d„Z	d)d„Z
d*d"„ZdS )+ÚSummaryReporterz*A reporter for writing the summary report.Úcoverager   r   ÚNonec                óh  — || _         | j         j        | _        |                     ¦   «                              ¦   «         | _        d | _        | j        j        pd| _        | j        dvrt          d| j        ›�¦  «        ‚g | _	        d| _
        d| _        t          | j        j        ¬¦  «        | _        d S )Nr   >   r   ÚtotalÚmarkdownzUnknown report format choice: r   )Ú	precision)r#   ÚconfigÚget_dataÚhas_arcsÚbranchesÚoutfileÚformatÚoutput_formatr   Úfr_analysesÚskipped_countÚempty_countr   r(   r&   )Úselfr#   s     r   Ú__init__zSummaryReporter.__init__$   s©   € Ø ˆŒØ”mÔ*ˆŒØ ×)Ò)Ñ+Ô+×4Ò4Ñ6Ô6ˆŒØ'+ˆŒØ!œ[Ô/Ð9°6ˆÔØÔÐ%BÐBÐBÝÐU¸tÔ?QÐUÐUÑVÔVÐVØ@BˆÔØˆÔØˆÔÝ t¤{Ô'<Ð=Ñ=Ô=ˆŒ
ˆ
ˆ
r   Úliner   c                ó¤   — | j         €J ‚| j                              |                     ¦   «         ¦  «         | j                              d¦  «         dS )z-Write a line to the output, adding a newline.Nú
)r-   ÚwriteÚrstrip)r3   r5   s     r   r8   zSummaryReporter.write1   sJ   € àŒ|Ð'Ð'Ð'ØŒ×Ò˜4Ÿ;š;™=œ=Ñ)Ô)Ð)ØŒ×Ò˜4Ñ Ô Ð Ð Ð r   ÚitemsúIterable[str]c                óV   — |                       d                     |¦  «        ¦  «         dS )z)Write a list of strings, joined together.Ú N)r8   Újoin)r3   r:   s     r   Úwrite_itemszSummaryReporter.write_items7   s$   € à�
Š
�2—7’7˜5‘>”>Ñ"Ô"Ð"Ð"Ð"r   Úheaderú	list[str]Úlines_valuesúlist[list[Any]]Ú
total_lineú	list[Any]Ú	end_linesc           	     ó„  ‡‡
‡‡— t          d„ |D ¦   «         dgz   ¦  «        dz   Št          t          |‰                     d¦  «                 ¦  «        dz   t          d¦  «        ¦  «        dz   Št          ‰gˆfd„|D ¦   «         z   ¦  «        Št          dd	d	d	d	d
d¬¦  «        Š
ˆ
ˆˆfd„‰D ¦   «         }d                     |¦  «        }dt          |¦  «        z  }|                      |¦  «         |                      |¦  «         ‰
                     t          dd¬¦  «        ¦  «         |D ]3}|                      ˆ
ˆˆfd„t          ‰|¦  «        D ¦   «         ¦  «         Œ4|r|                      |¦  «         |                      ˆ
ˆˆfd„t          ‰|¦  «        D ¦   «         ¦  «         |D ]}	|                      |	¦  «         ŒdS )a:  Internal method that prints report data in text format.

        `header` is a list with captions.
        `lines_values` is list of lists of sortable values.
        `total_line` is a list with values of the total line.
        `end_lines` is a list of ending lines with information about skipped files.

        c                ó8   — g | ]}t          |d          ¦  «        ‘ŒS )r   )Úlen©r   r5   s     r   ú
<listcomp>z/SummaryReporter.report_text.<locals>.<listcomp>K   s"   € Ð>Ð>Ð>¨�˜D œG™œÐ>Ð>Ð>r   é   é   ÚCoveré   z Coverc                óf   •— g | ]-}t          |‰                     d ¦  «                 ¦  «        dz   ‘Œ.S )rN   rO   )rI   Úindex)r   r5   r@   s     €r   rK   z/SummaryReporter.report_text.<locals>.<listcomp>M   s7   ø€ Ð]Ð]Ð]È�s 4¨¯ª°WÑ(=Ô(=Ô#>Ñ?Ô?À!ÑCÐ]Ð]Ð]r   z{:{name_len}}z{:>7}z{:>{n}}z{:>10}©ÚNameÚStmtsÚMissÚBranchÚBrPartrN   ÚMissingc                óL   •— g | ] }‰|                               |‰‰¬ ¦  «        ‘Œ!S ©©Úname_lenÚn©r.   ©r   ÚitemÚformatsÚmax_nÚmax_names     €€€r   rK   z/SummaryReporter.report_text.<locals>.<listcomp>W   ó3   ø€ ÐbÐbÐbÐSW˜ œ×,Ò,¨T¸HÈÐ,ÑNÔNÐbÐbÐbr   r=   ú-z{:>{n}}%z   {:9})rN   rX   c              3  óz   •K  — | ]5\  }}‰|                               t          |¦  «        ‰‰d z
  ¬¦  «        V — Œ6dS ©rM   r[   N©r.   r   ©r   r`   Úvaluera   rb   rc   s      €€€r   ú	<genexpr>z.SummaryReporter.report_text.<locals>.<genexpr>h   s_   øè è € ð ð á#˜˜eð ˜D”M×(Ò(­¨U©¬¸hÈ%ÐRSÉ)Ð(ÑTÔTðð ð ð ð ð r   c              3  óz   •K  — | ]5\  }}‰|                               t          |¦  «        ‰‰d z
  ¬¦  «        V — Œ6dS rg   rh   ri   s      €€€r   rk   z.SummaryReporter.report_text.<locals>.<genexpr>s   s^   øè è € ð ð á�D˜%ð ˜”×$Ò$¥S¨¡Z¤Z¸(ÀeÈaÁiÐ$ÑPÔPðð ð ð ð ð r   N)	ÚmaxrI   rQ   Údictr>   r8   Úupdater?   Úzip)r3   r@   rB   rD   rF   Úheader_itemsÚ
header_strÚruleÚvaluesÚend_linera   rb   rc   s    `        @@@r   Úreport_textzSummaryReporter.report_text;   s\  øøøø€ õ  Ð>Ð>°Ð>Ñ>Ô>À!ÀÑDÑEÔEÈÑIˆÝ•C˜
 6§<¢<°Ñ#8Ô#8Ô9Ñ:Ô:¸QÑ>ÅÀHÁÄÑNÔNÐQRÑRˆÝ�U�GÐ]Ð]Ð]Ð]ÐP\Ð]Ñ]Ô]Ñ]Ñ^Ô^ˆÝØ ØØØØØØð
ñ 
ô 
ˆð cÐbÐbÐbÐbÐbÐ[aÐbÑbÔbˆØ—W’W˜\Ñ*Ô*ˆ
Ø•S˜‘_”_Ñ$ˆð 	�
Š
�:ÑÔÐØ�
Š
�4ÑÔÐð 	�ŠÝØ Ø!ðñ ô ñ	
ô 	
ð 	
ð #ð 	ð 	ˆFØ×Òðð ð ð ð ð å'*¨6°6Ñ':Ô':ðñ ô ñô ð ð ð ð 	Ø�JŠJ�tÑÔÐà×Òðð ð ð ð ð å#& v¨zÑ#:Ô#:ðñ ô ñ	
ô 	
ð 	
ð "ð 	!ð 	!ˆHØ�JŠJ�xÑ Ô Ð Ð ð	!ð 	!r   c           	     óŠ  ‡‡‡— t          d„ |D ¦   «         d¬¦  «        Št          ‰t          d¦  «        ¦  «        dz   Št          ddddddd	¬
¦  «        Št          t          ||                     d¦  «                 ¦  «        dz   t          d¦  «        ¦  «        Šˆˆˆfd„|D ¦   «         }d                     |¦  «        }dd                     d                     t          |d         ¦  «        dz
  d¦  «        gd„ |dd…         D ¦   «         z   ¦  «        z   }|                      |¦  «         |                      |¦  «         |D ]V}‰                     t          d¬¦  «        ¦  «         |                      ˆˆˆfd„t          ||¦  «        D ¦   «         ¦  «         ŒW‰                     t          dd¬¦  «        ¦  «         g }	t          ||¦  «        D ]B\  }
}|dk    r|}n|
dk    rd|› d�}nd|› d�}|	‰|
          
                    |‰‰¬¦  «        z  }	ŒC|                      |	¦  «         |D ]}|                      |¦  «         ŒdS )aT  Internal method that prints report data in markdown format.

        `header` is a list with captions.
        `lines_values` is a sorted list of lists containing coverage information.
        `total_line` is a list with values of the total line.
        `end_lines` is a list of ending lines with information about skipped files.

        c              3  óZ   K  — | ]&}t          t          |d          ¦  «        ¦  «        V — Œ'dS )r   N)rI   r    rJ   s     r   rk   z2SummaryReporter.report_markdown.<locals>.<genexpr>�   s6   è è € ÐOÐO¸$��O¨D°¬GÑ4Ô4Ñ5Ô5ÐOÐOÐOÐOÐOÐOr   r   )Údefaultz	**TOTAL**rM   z| {:{name_len}}|z{:>9} |z	{:>{n}} |z{:>10} |rR   rN   é   z Cover c                óL   •— g | ] }‰|                               |‰‰¬ ¦  «        ‘Œ!S rZ   r^   r_   s     €€€r   rK   z3SummaryReporter.report_markdown.<locals>.<listcomp>™   rd   r   r=   ú|ú z- |re   c                óZ   — g | ](}d                       t          |¦  «        dz
  d¦  «        ‘Œ)S )z-: |rM   re   )ÚrjustrI   )r   r`   s     r   rK   z3SummaryReporter.report_markdown.<locals>.<listcomp>�   s0   € ÐMÐMÐM°Dˆv�|Š|�C ™IœI¨™M¨3Ñ/Ô/ÐMÐMÐMr   Nz
{:>{n}}% |)rN   c              3  ó”   •K  — | ]B\  }}‰|                               t          t          |¦  «        ¦  «        ‰‰d z
  ¬¦  «        V — ŒCdS rg   )r.   r    r   ri   s      €€€r   rk   z2SummaryReporter.report_markdown.<locals>.<genexpr>¬   sp   øè è € ð ð ñ $˜˜eð ˜D”M×(Ò(Ý'­¨E©
¬
Ñ3Ô3¸hÈ%ÐRSÉ)ð )ñ ô ðð ð ð ð ð r   z|{:{name_len}} |)rS   rN   z **z%**z**r[   )rm   rI   rn   rQ   r>   r   r8   ro   r?   rp   r.   )r3   r@   rB   rD   rF   rq   rr   Úrule_strrt   Útotal_line_itemsr`   rj   Úinsertru   ra   rb   rc   s                 @@@r   Úreport_markdownzSummaryReporter.report_markdown|   sê  øøø€ õ" ÐOÐOÀ,ÐOÑOÔOÐYZÐ[Ñ[Ô[ˆÝ�x¥ [Ñ!1Ô!1Ñ2Ô2°QÑ6ˆÝØ#ØØØØØØð
ñ 
ô 
ˆõ •C˜
 6§<¢<°Ñ#8Ô#8Ô9Ñ:Ô:¸QÑ>ÅÀIÁÄÑOÔOˆØbÐbÐbÐbÐbÐbÐ[aÐbÑbÔbˆØ—W’W˜\Ñ*Ô*ˆ
Ø˜ŸšØ�[Š[�˜\¨!œ_Ñ-Ô-°Ñ1°3Ñ7Ô7Ð8ØMÐM¸LÈÈÈÔ<LÐMÑMÔMñNñ
ô 
ñ 
ˆð 	�
Š
�:ÑÔÐØ�
Š
�8ÑÔÐð #ð 	ð 	ˆFØ�NŠNÝØ&ðñ ô ñô ð ð
 ×Òðð ð ð ð ð õ (+¨6°6Ñ':Ô':ð	ñ ô ñô ð ð ð 	�ŠÝØ'Ø!ðñ ô ñ	
ô 	
ð 	
ð ')ÐÝ˜v zÑ2Ô2ð 	Yð 	Y‰KˆD�%Ø˜Š{ˆ{Ø��Ø˜’�Ø)˜uÐ)Ð)Ð)��à(˜u˜˜˜�Ø ¨¤× 4Ò 4°VÀhÐRWÐ 4Ñ XÔ XÑXÐÐØ×ÒÐ)Ñ*Ô*Ð*à!ð 	!ð 	!ˆHØ�JŠJ�xÑ Ô Ð Ð ð	!ð 	!r   NÚmorfsr   r-   úIO[str] | NoneÚfloatc                óÐ  — |pt           j        | _        | j                             ¦   «                              | j        j        ¦  «         t          | j        |¦  «        D ]\  }}|  	                    ||¦  «         Œ| j
        j        s| j        st          d¦  «        ‚| j        dk    r |                      | j
        j        ¦  «         n|                      ¦   «          | j
        j        S )zŒWrites a report summarizing coverage statistics per module.

        `outfile` is a text-mode file object to write the summary to.

        zNo data to report.r&   )ÚsysÚstdoutr-   r#   r*   Úset_query_contextsr)   Úreport_contextsr   Úreport_one_filer&   Ún_filesr1   r	   r/   r8   Úpc_covered_strÚtabular_reportÚ
pc_covered)r3   r…   r-   ÚfrÚanalysiss        r   ÚreportzSummaryReporter.reportÉ   sÜ   € ð Ð,¥#¤*ˆŒàŒ×ÒÑ Ô ×3Ò3°D´KÔ4OÑPÔPÐPÝ2°4´=À%ÑHÔHð 	/ð 	/‰LˆB�Ø× Ò   XÑ.Ô.Ð.Ð.àŒzÔ!ð 	4¨$Ô*<ð 	4ÝÐ2Ñ3Ô3Ð3àÔ Ò(Ð(Ø�JŠJ�t”zÔ0Ñ1Ô1Ð1Ð1à×ÒÑ!Ô!Ð!àŒzÔ$Ð$r   c                óŽ  ‡— g d¢}| j         r|ddgz  }|dgz  }| j        j        r|dgz  }t          dddd	¬
¦  «        }| j         r$|                     t          dd¬¦  «        ¦  «         g }| j        D ]–\  }}|j        }|                     ¦   «         |j        |j	        g}| j         r||j
        |j        gz  }||j        gz  }| j        j        r||                     d¬¦  «        gz  }||j        gz  }|                     |¦  «         Œ—| j        j        pd                     ¦   «         }d}	|d         dk    rd}	|dd…         }n|d         dk    r
|dd…         }|                     |¦  «        Š‰€t'          d| j        j        ›�¦  «        ‚|dk    rt)          ||	¬¦  «        }n|                     ˆfd„|	¬¦  «         d| j        j        | j        j	        g}
| j         r|
| j        j
        | j        j        gz  }
|
| j        j        gz  }
| j        j        r|
dgz  }
g }| j        j        r3| j        r,|                     dt1          | j        d¦  «        › d�¦  «         | j        j        r3| j        r,|                     dt1          | j        d¦  «        › d�¦  «         | j        d k    r| j        }n| j        } ||||
|¦  «         dS )!zWrites tabular report formats.)rS   rT   rU   rV   rW   rN   rX   r   rM   rO   éÿÿÿÿ)ÚnameÚstmtsÚmissÚcoveré   é   )ÚbranchÚbrpartT)r,   r—   Fre   Nú+zInvalid sorting option: )Úreversec                ó$   •— | ‰         | d         fS )Nr   r   )r5   Úsort_idxs    €r   ú<lambda>z0SummaryReporter.tabular_report.<locals>.<lambda>
  s   ø€  $ x¤.°$°q´'Ð!:€ r   )Úkeyr    ÚTOTALr=   r7   Úfilez" skipped due to complete coverage.z
empty filez	 skipped.r'   )r,   r)   Úshow_missingrn   ro   r0   ÚnumbersÚrelative_filenameÚn_statementsÚ	n_missingÚ
n_branchesÚn_partial_branchesr�   Úmissing_formattedr‘   ÚappendÚsortÚlowerÚgetr   r
   r&   Úskip_coveredr1   r   Ú
skip_emptyr2   r/   r„   rv   )r3   r@   Úcolumn_orderrB   r’   r“   ÚnumsÚargsÚsort_optionr    rD   rF   Ú	formatterr¢   s                @r   r�   zSummaryReporter.tabular_reportß   so  ø€ ð +Ð*Ð*ˆØŒ=ð 	+Ø�x Ð*Ñ*ˆFØ�7�)ÑˆØŒ;Ô#ð 	"Ø�y�kÑ!ˆFå ¨!°!¸2Ð>Ñ>Ô>ˆØŒ=ð 	:Ø×Ò¥¨A°aÐ 8Ñ 8Ô 8Ñ9Ô9Ð9ð ˆà Ô,ð 		&ð 		&‰LˆB�ØÔ#ˆDØ×(Ò(Ñ*Ô*¨DÔ,=¸t¼~ÐNˆDØŒ}ð CØ˜œ¨$Ô*AÐBÑB�Ø�TÔ(Ð)Ñ)ˆDØŒ{Ô'ð DØ˜×3Ò3¸TÐ3ÑBÔBÐCÑC�Ø�T”_Ð%Ñ%ˆDØ×Ò Ñ%Ô%Ð%Ð%ð ”{Ô'Ð1¨6×8Ò8Ñ:Ô:ˆØˆØ�qŒ>˜SÒ Ð ØˆGØ% a b bœ/ˆKˆKØ˜Œ^˜sÒ"Ð"Ø% a b bœ/ˆKØ×#Ò# KÑ0Ô0ˆØÐÝÐM¸¼Ô9IÐMÐMÑNÔNÐNØ˜&Ò Ð Ý-¨lÀGÐLÑLÔLˆLˆLà×ÒØ:Ð:Ð:Ð:Øð ñ ô ð ð ˜tœzÔ6¸¼
Ô8LÐMˆ
ØŒ=ð 	QØ˜4œ:Ô0°$´*Ô2OÐPÑPˆJØ�t”zÔ0Ð1Ñ1ˆ
ØŒ;Ô#ð 	Ø˜2˜$ÑˆJð ˆ	ØŒ;Ô#ð 	¨Ô(:ð 	Ø×ÒØ[•V˜DÔ.°Ñ7Ô7Ð[Ð[Ð[ñô ð ð Œ;Ô!ð 	U dÔ&6ð 	UØ×ÒÐS¥&¨Ô)9¸<Ñ"HÔ"HÐSÐSÐSÑTÔTÐTàÔ Ò+Ð+ØÔ,ˆIˆIàÔ(ˆIØˆ	�&˜,¨
°IÑ>Ô>Ð>Ð>Ð>r   r’   r   r“   r   c                ó.  — |j         }| xj        |z  c_        |j        dk    }|j        dk    }| j        j        r|r|r| xj        dz  c_        dS | j        j        r|j        dk    r| xj	        dz  c_	        dS | j
                             ||f¦  «         dS )z4Report on just one file, the callback from report().r   rM   N)r¨   r&   r«   r­   r)   r³   r1   r´   rª   r2   r0   r¯   )r3   r’   r“   r¶   Úno_missing_linesÚno_missing_branchess         r   r�   zSummaryReporter.report_one_file%  sÁ   € àÔˆØˆ
Œ
�dÑˆ
Œ
à œN¨aÒ/ÐØ#Ô6¸!Ò;ÐØŒ;Ô#ð 	4Ð(8ð 	4Ð=Pð 	4àÐÔ !Ñ#ÐÔÐÐØŒ[Ô#ð 	4¨Ô(9¸QÒ(>Ð(>àÐÔ Ñ!ÐÔÐÐàÔ×#Ò# R¨ NÑ3Ô3Ð3Ð3Ð3r   )r#   r   r   r$   )r5   r   r   r$   )r:   r;   r   r$   )
r@   rA   rB   rC   rD   rE   rF   rA   r   r$   )N)r…   r   r-   r†   r   r‡   )r   r$   )r’   r   r“   r   r   r$   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r4   r8   r?   rv   r„   r”   r�   r�   r   r   r   r"   r"   !   sÊ   € € € € € Ø4Ð4ð>ð >ð >ð >ð!ð !ð !ð !ð#ð #ð #ð #ð?!ð ?!ð ?!ð ?!ðBK!ð K!ð K!ð K!ðZ%ð %ð %ð %ð %ð,D?ð D?ð D?ð D?ðL4ð 4ð 4ð 4ð 4ð 4r   r"   )r   r   r   r   )"rÀ   Ú
__future__r   Ústringr‰   Úcollections.abcr   Útypingr   r   r   Úcoverage.exceptionsr   r	   Úcoverage.miscr
   r   Úcoverage.pluginr   Úcoverage.report_corer   Úcoverage.resultsr   r   Úcoverage.typesr   r#   r   r   Ú	maketransÚpunctuationr   r    r"   r   r   r   ú<module>rÍ      sq  ðð Ð à "Ð "Ð "Ð "Ð "Ð "à €€€Ø 
€
€
€
Ø $Ð $Ð $Ð $Ð $Ð $Ø )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )Ð )à 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø (Ð (Ð (Ð (Ð (Ð (Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ø !Ð !Ð !Ð !Ð !Ð !àð "Ø!Ð!Ð!Ð!Ð!Ð!à—=’=ØLÐL 6Ô#5ÐLÑLÔLñô Ð ð
,ð ,ð ,ð ,ð
R4ð R4ð R4ð R4ð R4ñ R4ô R4ð R4ð R4ð R4r   