bg?dZddlmZddlmZddlmZddlmZddl m Z ddl m Z erddl mZGd d eZddZdS)z:Check for use of dictionary mutation after initialization.) annotations) TYPE_CHECKING)nodes) BaseChecker)only_required_for_messages)HIGH)PyLintercDeZdZdZddiZedd dZd S) DictInitMutateCheckerdict-init-mutateC3401)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.AssignreturnNonecTt|jtjsdS|jd}t |jdkst|tjsdS|}|r2t|tjrt |jdkrdS|jd}t|tj sdS|j}t|tj sdS|j |j kr| d|tdSdS)z Detect dictionary mutation immediately after initialization. At this time, detecting nested mutation is not supported. Nrr )r confidence) isinstancevaluerDicttargetslen AssignName next_siblingAssign SubscriptNamename add_messager)selfr dict_name first_siblingsibling_target sibling_names s/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/extensions/dict_init_mutate.py visit_assignz"DictInitMutateChecker.visit_assigns!$*ej11  FLO t|   ! !Iu?O)P)P ! F))++  mU\:: =())Q.. F&.q1.%/::  F%+ , 33  F    . .   /dt  L L L L L / .N)rrrr)__name__ __module__ __qualname__rmsgsrr'r(r&r r s[ D  D  233MMM43MMMr(r linterr rrcJ|t|dS)N)register_checkerr )r.s r&registerr1As% 1&99:::::r(N)r.r rr)__doc__ __future__rtypingrastroidrpylint.checkersrpylint.checkers.utilsrpylint.interfacesrpylint.lint.pylinterr r r1r-r(r&r:s A@"""""" ''''''<<<<<<"""""".------*M*M*M*M*MK*M*M*MZ;;;;;;r(