§
    ÷yIfÜ  ã                  óx   — d 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
  G d„ dej        ¦  «        Zdd„ZdS )zELooks for try/except statements with too much code in the try clause.é    )Úannotations)ÚTYPE_CHECKING)Únodes)Úcheckers)ÚPyLinterc                  óB   — e Zd ZdZdZddiZddddd	d
œffZdd„Zdd„ZdS )ÚBroadTryClauseCheckerzáChecks for try clauses with too many lines.

    According to PEP 8, ``try`` clauses shall contain the absolute minimum
    amount of code. This checker enforces a maximum number of statements within
    ``try`` clauses.
    Úbroad_try_clauseÚW0717)z%sútoo-many-try-statementsz(Try clause contains too many statements.zmax-try-statementsé   Úintz<int>z4Maximum number of statements allowed in a try clause)ÚdefaultÚtypeÚmetavarÚhelpÚnodeú;nodes.For | nodes.If | nodes.Try | nodes.While | nodes.WithÚreturnc                óê   — t          |j        ¦  «        }|j        D ]V}t          |t          j        t          j        t          j        t          j        f¦  «        r||                      |¦  «        z  }ŒW|S ©N)	ÚlenÚbodyÚ
isinstancer   ÚForÚIfÚWhileÚWithÚ_count_statements)Úselfr   Ústatement_countÚ	body_nodes       úV/var/www/piapp/venv/lib/python3.11/site-packages/pylint/extensions/broad_try_clause.pyr   z'BroadTryClauseChecker._count_statements1   sg   € õ ˜dœi™.œ.ˆàœð 	Eð 	EˆIÝ˜)¥e¤iµ´½5¼;ÍÌ
Ð%SÑTÔTð EØ 4×#9Ò#9¸)Ñ#DÔ#DÑD�øàÐó    ú	nodes.TryÚNonec                óÈ   — |                       |¦  «        }|| j        j        j        k    r7d|› d| j        j        j        › �}|                      d|j        ||¬¦  «         d S d S )Nztry clause contains z statements, expected at most r   )r   Úargs)r   ÚlinterÚconfigÚmax_try_statementsÚadd_messageÚlineno)r    r   Útry_clause_statementsÚmsgs       r#   Ú	visit_tryzBroadTryClauseChecker.visit_try<   s—   € Ø $× 6Ò 6°tÑ <Ô <ÐØ  4¤;Ô#5Ô#HÒHÐHðAÐ'<ð Að AØœÔ+Ô>ðAð Að ð ×ÒØ)¨4¬;¸TÈð ñ ô ð ð ð ð IÐHr$   N)r   r   r   r   )r   r%   r   r&   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚmsgsÚoptionsr   r0   © r$   r#   r	   r	      sƒ   € € € € € ðð ð €Dàð 
ð€Dð !àØØ"ØNð	ð ð	
ð
€Gð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	r$   r	   r)   r   r   r&   c                óJ   — |                       t          | ¦  «        ¦  «         d S r   )Úregister_checkerr	   )r)   s    r#   Úregisterr;   H   s%   € Ø
×ÒÕ1°&Ñ9Ô9Ñ:Ô:Ð:Ð:Ð:r$   N)r)   r   r   r&   )r4   Ú
__future__r   Útypingr   Úastroidr   Úpylintr   Úpylint.lintr   ÚBaseCheckerr	   r;   r8   r$   r#   ú<module>rB      s¼   ðð
 LÐ Kà "Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð àð %Ø$Ð$Ð$Ð$Ð$Ð$ð2ð 2ð 2ð 2ð 2˜HÔ0ñ 2ô 2ð 2ðj;ð ;ð ;ð ;ð ;ð ;r$   