ó
    ÷Þ jO!  ã                  ó  • S r SSKJr  SSKrSSKrSSKrSSKJrJr  SSK	J
r
  SSKJr  SSKJrJrJr  SSKJr  \(       a  SS	KJr  SS
 jrSS jr          SS jr        SS jr          SS jr " S S5      rg)zLCOV reporting for coverage.py.é    )ÚannotationsN)ÚIOÚTYPE_CHECKING)ÚFileReporter)Úget_analysis_to_report)ÚAnalysisÚAnalysisNarrowerÚNumbers)ÚTMorfs)ÚCoveragec                ó`   • U R                  5       (       a  U $ SR                  S U  5       5      $ )a`  Make `text` safe to write as a field in a single LCOV record.

LCOV records are newline-delimited and the format has no escaping, so a
value carrying a newline (a legal character in a POSIX file name) would
spill into fabricated records. Replace any control characters, which can't
appear in a valid one-line field, and leave printable text untouched.
Ú c              3  óP   #   • U H  oR                  5       (       a  UOS v •  M     g7f)Ú?N)Úisprintable)Ú.0Úchs     ÚM/var/www/html/gaurav/venv/lib/python3.13/site-packages/coverage/lcovreport.pyÚ	<genexpr>Úlcov_field.<locals>.<genexpr>    s   é € ÐB¹T°rŸ™×)Ñ)‘2¨sÔ2ºTùs   ‚$&)r   Újoin)Útexts    r   Ú
lcov_fieldr      s-   € ð ×Ñ×ÑØˆØ�7‰7ÑB¹TÓBÓBÐBó    c                óÎ   • [         R                  " U R                  S5      SS9R                  5       n[        R
                  " U5      R                  S5      R                  S5      $ )z9Produce a hash of a source line for use in the LCOV file.zutf-8F)ÚusedforsecurityÚasciiÚ=)ÚhashlibÚmd5ÚencodeÚdigestÚbase64Ú	b64encodeÚdecodeÚrstrip)ÚlineÚhasheds     r   Ú	line_hashr)   #   sM   € ô �[Š[˜Ÿ™ WÓ-¸uÑE×LÑLÓN€FÜ×Ò˜FÓ#×*Ñ*¨7Ó3×:Ñ:¸3Ó?Ð?r   c           	     óŠ  • SnU HN  nU(       a  S[        X%S-
     5      -   n[        XPR                  ;  5      nUR                  SU SU U S35        MP     U R                  R
                  S:”  aS  UR                  SU R                  R
                   S35        UR                  SU R                  R                   S35        g	g	)
z0Emit line coverage records for an analyzed file.r   Ú,é   zDA:Ú
r   zLF:zLH:N)r)   ÚintÚmissingÚwriteÚnumbersÚn_statementsÚ
n_executed)ÚanalysisÚlinesÚsource_linesÚoutfileÚhash_suffixr'   Úhits          r   Ú
lcov_linesr:   /   s¿   € ð €KÛˆÞØ¤	¨,¸a±xÑ*@Ó AÑAˆKô �$×.Ñ.Ñ.Ó/ˆØ�‰˜˜D˜6  3 %¨ }°BÐ7Ö8ñ ð ×Ñ×$Ñ$ qÓ(Ø�‰˜˜H×,Ñ,×9Ñ9Ð:¸"Ð=Ô>Ø�‰˜˜H×,Ñ,×7Ñ7Ð8¸Ð;Õ<ð )r   c           
     óv  • U R                  5        Vs/ sH{  nUR                  S:X  d  M  UR                  (       d  M(  [        UR                  [        UR                  5      5      [        UR                  [        UR                  5      5      U4PM}     nnU(       d  g[        U5      nUR                  S U 5       5        UR                  5         SnSnU H°  u  p‰nUR                  UR                  5      n
U
R                  R                  S:X  a  M=  US-  n[        U
R                  R                  S:„  5      nX{-  n[        UR                  5      nUR!                  SU SU	 SU S35        UR!                  S	U SU S35        M²     UR!                  S
U S35        UR!                  SU S35        gs  snf )z4Emit function coverage records for an analyzed file.ÚfunctionNc              3  ó>   #   • U H  u    pUR                   v •  M     g 7f©N)r5   )r   Ú_Úrs      r   r   Ú!lcov_functions.<locals>.<genexpr>a   s   é € Ð:±	¡W Q¨˜Ÿž²	ùs   ‚r   r,   zFN:r+   r-   zFNDA:zFNF:zFNH:)Úcode_regionsÚkindr5   ÚminÚstartÚmaxr	   Úadd_regionsÚsortÚnarrowr1   r2   r.   r3   r   Únamer0   )ÚfrÚfile_analysisr7   ÚregionÚ	functionsÚnarrowerÚfunctions_foundÚfunctions_hitÚ
first_lineÚ	last_liner4   r9   rJ   s                r   Úlcov_functionsrT   D   s�  € ð, —o‘oÔ'óñ (ˆFØ�;‰;˜*Ñ$ó	
ð *0¯­ó	
Ü�—‘œc &§,¡,Ó/Ó0Ü�—‘œc &§,¡,Ó/Ó0Øó	
ñ
 (ð ð ö Øä Ó.€HØ×ÑÑ:±	Ó:Ô:à‡N�NÔØ€OØ€MÛ)2Ñ%ˆ
˜vð —?‘? 6§<¡<Ó0ˆØ×Ñ×(Ñ(¨AÓ-Ùà˜1ÑˆÜ�(×"Ñ"×-Ñ-°Ñ1Ó2ˆØÑˆä˜&Ÿ+™+Ó&ˆØ�‰˜˜J˜< q¨¨°1°T°F¸"Ð=Ô>Ø�‰˜˜c˜U ! D 6¨Ð,Ö-ñ *3ð ‡M�M�D˜Ð)¨Ð,Ô-Ø‡M�M�D˜˜ rÐ*Õ+ùòEs   “F6ªF6½AF6c                óä  • UR                  5       nUR                  5       nUR                  5       nU H¼  nXt;  a  M
  XG   u  p‰U	S:X  a(  [        XW   5      S:X  d   eXg    V
s/ sH  oªS4PM     nn
O.XW    V
s/ sH  oªS4PM     nn
UR	                  S Xg    5       5        UR                  S S9  U H:  u  p¬[        U R                  Xz5      5      nUR                  SU SU S	U S
35        M<     M¾     [        S UR                  5        5       5      nU[        S UR                  5        5       5      -
  nUS:”  a+  UR                  SU S
35        UR                  SU S
35        ggs  sn
f s  sn
f )z2Emit branch coverage records for an analyzed file.r   Ú-Ú1c              3  ó&   #   • U H  oS 4v •  M
     g7f)Ú0N© )r   Údsts     r   r   Úlcov_arcs.<locals>.<genexpr>—   s   é € ÐIÑ6H¨s c¥
Ò6Hùs   ‚c                ó   • U S   S:  U 4$ )Nr   rZ   )Úds    r   Ú<lambda>Úlcov_arcs.<locals>.<lambda>Ÿ   s   € ¨¨1©°©°1©r   )ÚkeyzBRDA:z,0,r+   r-   c              3  ó(   #   • U H	  u  pUv •  M     g 7fr>   rZ   ©r   ÚtÚks      r   r   r\   ¦   s   é € Ð2Ñ1‘D�A�aÒ1ùs   ‚c              3  ó,   #   • U H  u  pX-
  v •  M     g 7fr>   rZ   rc   s      r   r   r\   §   s   é € Ð<Ñ&;™d˜a�A–EÒ&;ùs   ‚zBRF:zBRH:N)Úbranch_statsÚexecuted_branch_arcsÚmissing_branch_arcsÚlenÚextendrH   r   Úarc_descriptionr0   ÚsumÚvalues)rK   r4   r5   r7   rg   Úexecuted_arcsÚmissing_arcsr'   r?   Útakenr[   Údestinationsr9   ÚbranchÚbrfÚbrhs                   r   Ú	lcov_arcsrv   y   sŽ  € ð ×(Ñ(Ó*€LØ×1Ñ1Ó3€MØ×/Ñ/Ó1€LãˆØÓ#Ùð
  Ñ%‰ˆà�A‹:ô �}Ñ*Ó+¨qÓ0Ð0Ð0Ø2>Ò2DÓEÑ2D¨3 #›JÑ2DˆLÐEˆLð
 3@Ò2EÓFÑ2E¨3 #›JÑ2EˆLÐFØ×ÑÑI°lÒ6HÓIÔIð 	×ÑÑ5ÐÑ6ã$‰HˆCÜ × 2Ñ 2°4Ó =Ó>ˆFØ�M‰M˜E $  s¨6¨(°!°C°5¸Ð;Ö<ó %ñ; ôD Ñ2˜L×/Ñ/Ô1Ó2Ó
2€CØ
”Ñ< l×&9Ñ&9Ô&;Ó<Ó<Ñ
<€CØ
ˆQƒwØ�‰˜˜S˜E �nÔ%Ø�‰˜˜S˜E �nÕ%ð ùò/ Fùò
 Gs   Á"E(Á7E-c                  óN   • \ rS rSrSrSrS	S jrS
S jr          SS jrSr	g)ÚLcovReporteré­   z-A reporter for writing LCOV coverage reports.zLCOV reportc                óŽ   • Xl         UR                  U l        [        U R                   R                  R                  5      U l        g r>   )ÚcoverageÚconfigr
   Ú	precisionÚtotal)Úselfr{   s     r   Ú__init__ÚLcovReporter.__init__²   s.   € Ø ŒØ—o‘oˆŒÜ˜TŸ]™]×1Ñ1×;Ñ;Ó<ˆ�
r   c                óæ  • U R                   R                  5         U=(       d    [        R                  n[	        U R                   U5       VVs/ sH  u  p4UR                  5       X44PM     nnnUR                  5         U H7  u  pcnU =R                  UR                  -  sl        U R                  XcXB5        M9     U R                  R                  =(       a    U R                  R                  $ s  snnf )z}Renders the full lcov report.

`morfs` is a list of modules or filenames

outfile is the file object to write the file into.
)r{   Úget_dataÚsysÚstdoutr   Úrelative_filenamerH   r~   r1   Ú	lcov_filer2   Ú
pc_covered)r   Úmorfsr7   rK   r4   Ú	to_reportÚfnames          r   ÚreportÚLcovReporter.report·   sÂ   € ð 	�‰×ÑÔ Ø×'œSŸZ™Zˆô
 !7°t·}±}ÀeÔ Lô
á L‘�ð ×!Ñ!Ó# RÓ2Ù Lð 	ñ 
ð 	�‰Ôã#,ÑˆE�xØ�JŠJ˜(×*Ñ*Ñ*�JØ�N‰N˜5 hÖ8ñ $-ð �z‰z×&Ñ&×@¨4¯:©:×+@Ñ+@Ð@ùó
s   ÁC-c                óÚ  • UR                   R                  S:X  a  U R                  R                  (       a  gUR	                  S[        U5       S35        [        UR                  5      nU R                  R                  (       a  UR                  5       R                  5       nO/ n[        X5Xd5        [        X#U5        UR                  (       a  [        X#XT5        UR	                  S5        g)zŽProduces the lcov data for a single file.

This currently supports both line and branch coverage,
however function coverage is not supported.
r   NzSF:r-   zend_of_record
)r1   r2   r|   Ú
skip_emptyr0   r   ÚsortedÚ
statementsÚlcov_line_checksumsÚsourceÚ
splitlinesr:   rT   Úhas_arcsrv   )r   Ú	rel_fnamerK   r4   r7   r5   r6   s          r   r‡   ÚLcovReporter.lcov_fileÏ   s­   € ð ×Ñ×(Ñ(¨AÓ-Ø�{‰{×%×%Øà�‰˜œJ yÓ1Ð2°"Ð5Ô6ä�x×*Ñ*Ó+ˆØ�;‰;×*×*ØŸ9™9›;×1Ñ1Ó3‰LàˆLä�8 LÔ:Ü�r WÔ-Ø××Ü�b EÔ3à�‰Ð'Õ(r   )r|   r{   r~   N)r{   r   ÚreturnÚNone)r‰   r   r7   úIO[str]r˜   Úfloat)
r–   ÚstrrK   r   r4   r   r7   rš   r˜   r™   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Úreport_typer€   rŒ   r‡   Ú__static_attributes__rZ   r   r   rx   rx   ­   sJ   † Ù7à€Kô=ô
Að0)àð)ð ð)ð ð	)ð
 ð)ð 
÷)r   rx   )r   rœ   r˜   rœ   )r'   rœ   r˜   rœ   )
r4   r   r5   ú	list[int]r6   z	list[str]r7   rš   r˜   r™   )rK   r   rL   r   r7   rš   r˜   r™   )
rK   r   r4   r   r5   r¤   r7   rš   r˜   r™   )r¡   Ú
__future__r   r#   r   r„   Útypingr   r   Úcoverage.pluginr   Úcoverage.report_corer   Úcoverage.resultsr   r	   r
   Úcoverage.typesr   r{   r   r   r)   r:   rT   rv   rx   rZ   r   r   Ú<module>r«      s×   ðñ &å "ã Û Û 
ß $å (Ý 7ß @Ñ @Ý !æÝ!ô
Cô	@ð=Øð=àð=ð ð=ð ð	=ð
 
ô=ð*2,Øð2,àð2,ð ð2,ð 
ô	2,ðj1&Øð1&àð1&ð ð1&ð ð	1&ð
 
ô1&÷h@)ò @)r   