§
    ÷yIfI  ã                  ó†   — d Z ddlmZ ddl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  G d	„ d
e¦  «        Zdd„ZdS )z:Check for use of dictionary mutation after initialization.é    )Úannotations)ÚTYPE_CHECKING)Únodes)ÚBaseChecker)Úonly_required_for_messages)ÚHIGH)ÚPyLinterc                  óD   — e Zd ZdZddiZ ed¦  «        d
d„¦   «         Zd	S )ÚDictInitMutateCheckerúdict-init-mutateÚC3401)z>Declare all known key/values when initializing the dictionary.r   zXDictionaries can be initialized with a single statement using dictionary literal syntax.Únodeúnodes.AssignÚreturnÚNonec                óT  — t          |j        t          j        ¦  «        sdS |j        d         }t          |j        ¦  «        dk    st          |t          j        ¦  «        sdS |                     ¦   «         }|r2t          |t          j        ¦  «        rt          |j        ¦  «        dk    rdS |j        d         }t          |t          j	        ¦  «        sdS |j        }t          |t          j
        ¦  «        sdS |j        |j        k    r|                      d|t          ¬¦  «         dS dS )z‘
        Detect dictionary mutation immediately after initialization.

        At this time, detecting nested mutation is not supported.
        Nr   é   r   )r   Ú
confidence)Ú
isinstanceÚvaluer   ÚDictÚtargetsÚlenÚ
AssignNameÚnext_siblingÚAssignÚ	SubscriptÚNameÚnameÚadd_messager   )Úselfr   Ú	dict_nameÚfirst_siblingÚsibling_targetÚsibling_names         úV/var/www/piapp/venv/lib/python3.11/site-packages/pylint/extensions/dict_init_mutate.pyÚvisit_assignz"DictInitMutateChecker.visit_assign   s!  € õ ˜$œ*¥e¤jÑ1Ô1ð 	ØˆFà”L ”Oˆ	ÝˆtŒ|ÑÔ Ò!Ð!­°I½uÔ?OÑ)PÔ)PÐ!ØˆFà×)Ò)Ñ+Ô+ˆàð	å˜m­U¬\Ñ:Ô:ð	õ �=Ô(Ñ)Ô)¨QÒ.Ð.àˆFà&Ô.¨qÔ1ˆÝ˜.­%¬/Ñ:Ô:ð 	ØˆFà%Ô+ˆÝ˜,­¬
Ñ3Ô3ð 	ØˆFàÔ 	¤Ò.Ð.Ø×ÒÐ/°dÅtÐÑLÔLÐLÐLÐLð /Ð.ó    N)r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r   Úmsgsr   r'   © r(   r&   r   r      s[   € € € € € Ø€Dàð 
ð€Dð  ÐÐ 2Ñ3Ô3ðMð Mð Mñ 4Ô3ðMð Mð Mr(   r   Úlinterr	   r   r   c                óJ   — |                       t          | ¦  «        ¦  «         d S )N)Úregister_checkerr   )r.   s    r&   Úregisterr1   A   s%   € Ø
×ÒÕ1°&Ñ9Ô9Ñ:Ô:Ð:Ð:Ð:r(   N)r.   r	   r   r   )Ú__doc__Ú
__future__r   Útypingr   Úastroidr   Úpylint.checkersr   Úpylint.checkers.utilsr   Úpylint.interfacesr   Úpylint.lint.pylinterr	   r   r1   r-   r(   r&   ú<module>r:      så   ðð
 AÐ @Ø "Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø <Ð <Ð <Ð <Ð <Ð <Ø "Ð "Ð "Ð "Ð "Ð "àð .Ø-Ð-Ð-Ð-Ð-Ð-ð*Mð *Mð *Mð *Mð *M˜Kñ *Mô *Mð *MðZ;ð ;ð ;ð ;ð ;ð ;r(   