§
    öyIfÕ  ã                  óÞ   — d dl mZ d dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZmZmZmZ d dlmZmZ erd dlmZ dd„Z G d„ de	¦  «        Zej        ej        ej        ej        fZdd„Zdd„ZdS )é    )ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚLiteralÚcast)ÚBaseTokenChecker)Ú	ParagraphÚSectionÚTableÚText)ÚLinterStatsÚdiff_string)ÚPyLinterÚsectr
   Ústatsr   Ú	old_statsúLinterStats | NoneÚreturnÚNonec           	     ó  — |j         d         }|                      dt          t          |› d�¦  «        g¦  «        ¦  «         g d¢}dD ]š}t	          t
          d         |¦  «        }|j         |         }|rt          |dz  ¦  «        |z  nd}|r|j         |         nd}|rt          ||¦  «        nd}	||t          |¦  «        |�|d›nd	|rt          |¦  «        nd	|	r|	nd	gz  }Œ›|  	                    t          |d
d¬¦  «        ¦  «         dS )z5Calculate percentage of code / doc / comment / empty.Útotalr   z lines have been analyzed
)ÚtypeÚnumberú%ÚpreviousÚ
difference)ÚcodeÚ	docstringÚcommentÚemptyéd   Nz.2fÚNCé   é   )ÚchildrenÚcolsÚrheaders)Úcode_type_countÚinsertr	   r   r   r   Úfloatr   ÚstrÚappendr   )
r   r   r   Útotal_linesÚlinesÚ	node_typer   ÚpercentÚoldÚdiff_strs
             úO/var/www/piapp/venv/lib/python3.11/site-packages/pylint/checkers/raw_metrics.pyÚreport_raw_statsr4      sD  € ð Ô'¨Ô0€KØ‡K‚K�•9�d kÐ#NÐ#NÐ#NÑOÔOÐPÑQÔQÑRÔRÐRØ=Ð=Ð=€EØ>ð 
ð 
ˆ	Ý�Ð!HÔIÈ9ÑUÔUˆ	ØÔ% iÔ0ˆØ6AÐK•%˜ ™Ñ$Ô$ {Ñ2Ð2ÀtˆØ6?ÐIˆiÔ'¨	Ô2Ð2ÀTˆØ.1Ð;•;˜s EÑ*Ô*Ð*°tˆØØÝ�‰JŒJØ 'Ð 3ˆwÐÐÐ¸ØÐ%�C�‰HŒHˆH Ø Ð*ˆHˆH dð
ñ 	
ˆˆð 	‡K‚K•˜u¨1°qÐ9Ñ9Ô9Ñ:Ô:Ð:Ð:Ð:ó    c                  óF   — e Zd ZU dZdZdZi Zded<   ddeffZ	dd
„Z
dd„ZdS )ÚRawMetricsCheckerzýChecker that provides raw metrics instead of checking anything.

    Provides:
    * total number of lines
    * total number of code lines
    * total number of docstring lines
    * total number of comments lines
    * total number of empty lines
    Úmetrics© r   ÚmsgsÚRP0701zRaw metricsr   r   c                óB   — | j         j                             ¦   «          dS )zInit statistics.N)Úlinterr   Úreset_code_count)Úselfs    r3   ÚopenzRawMetricsChecker.open?   s   € àŒÔ×*Ò*Ñ,Ô,Ð,Ð,Ð,r5   Útokensúlist[tokenize.TokenInfo]c                ó  — d}t          |¦  «        }|t          |¦  «        k     rgt          ||¦  «        \  }}}| j        j        j        dxx         |z  cc<   | j        j        j        |xx         |z  cc<   |t          |¦  «        k     °edS dS )zUpdate stats.r   r   N)ÚlistÚlenÚget_typer=   r   r(   )r?   rA   ÚiÚlines_numberÚ	line_types        r3   Úprocess_tokensz RawMetricsChecker.process_tokensC   s˜   € àˆÝ�f‘”ˆØ•#�f‘+”+ŠoˆoÝ)1°&¸!Ñ)<Ô)<Ñ&ˆAˆ|˜YØŒKÔÔ-¨gÐ6Ð6Ô6¸,ÑFÐ6Ð6Ñ6ØŒKÔÔ-¨iÐ8Ð8Ô8¸LÑHÐ8Ð8Ñ8ð •#�f‘+”+Šoˆoˆoˆoˆoˆor5   N)r   r   )rA   rB   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚoptionsr:   Ú__annotations__r4   Úreportsr@   rJ   r9   r5   r3   r7   r7   +   sw   € € € € € € ðð ð €Dà€Gà€D€N€N€N�Nà˜-Ð)9Ð:Ð<€Gð-ð -ð -ð -ðIð Ið Ið Ið Ið Ir5   r7   rA   rB   Ústart_indexÚintúAtuple[int, int, Literal['code', 'docstring', 'comment', 'empty']]c                ó8  — |}| |         d         }|}d}|t          | ¦  «        k     r¤| |         d         d         |d         k    r†| |         d         }| |         d         }|€2|t          j        k    rd}n|t          j        k    rd}n|t          v rnd}|dz  }|t          | ¦  «        k     r| |         d         d         |d         k    °†|€d	}n4|t          | ¦  «        k     r!| |         d         t          j        k    r|dz  }||d         |d         z
  dz   |fS )
z7Return the line type : docstring, comment, code, empty.é   Nr   é   r   r   r   r$   r    )rE   ÚtokenizeÚSTRINGÚCOMMENTÚJUNKÚNEWLINE)rA   rS   rG   ÚstartÚposrI   Útok_types          r3   rF   rF   P   s4  € ð 	€AØ�1ŒI�aŒL€EØ
€CØ€IØ
�c�&‰kŒkŠ/ˆ/˜f Qœi¨œl¨1œo°°q´Ò9Ð9Ø˜!”9˜Q”<ˆØ�QŒi˜ŒlˆØÐØ�8œ?Ò*Ð*Ø'�	�	Ø�XÔ-Ò-Ð-Ø%�	�	Ø�TÐ!Ð!Øà"�	Ø	ˆQ‰ˆð �c�&‰kŒkŠ/ˆ/˜f Qœi¨œl¨1œo°°q´Ò9Ð9ð ÐØˆ	ˆ	Ø	
�S�‰[Œ[Šˆ˜V AœY qœ\­XÔ-=Ò=Ð=Ø	ˆQ‰ˆàˆc�!Œf�u˜Q”xÑ !Ñ# YÐ.Ð.r5   r=   r   c                óJ   — |                       t          | ¦  «        ¦  «         d S )N)Úregister_checkerr7   )r=   s    r3   Úregisterrc   m   s%   € Ø
×ÒÕ-¨fÑ5Ô5Ñ6Ô6Ð6Ð6Ð6r5   )r   r
   r   r   r   r   r   r   )rA   rB   rS   rT   r   rU   )r=   r   r   r   )Ú
__future__r   rY   Útypingr   r   r   r   Úpylint.checkersr   Úpylint.reporters.ureports.nodesr	   r
   r   r   Úpylint.utilsr   r   Úpylint.lintr   r4   r7   ÚNLÚINDENTr]   Ú	ENDMARKERr\   rF   rc   r9   r5   r3   ú<module>rm      sB  ðð
 #Ð "Ð "Ð "Ð "Ð "à €€€Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KÐ KØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1àð %Ø$Ð$Ð$Ð$Ð$Ð$ð;ð ;ð ;ð ;ð2Ið Ið Ið Ið IÐ(ñ Iô Ið IðD 	Œ�X”_ hÔ&6¸Ô8JÐK€ð/ð /ð /ð /ð:7ð 7ð 7ð 7ð 7ð 7r5   