§ |<ˆjˆãóÔ—dZddlmZddlZddlmZddlmZmZddl m Z ddl m Z m Z ddlmZerdd lmZejejejejjfZGd „d e ¦«Zdd„ZdS)z*Check for use of nested min/max functions.é)Ú annotationsN)Ú TYPE_CHECKING)ÚnodesÚobjects)Ú BaseChecker)Úonly_required_for_messagesÚ safe_infer)Ú INFERENCE)ÚPyLintercó|—eZdZdZdZdZddiZedd „¦«Zedd „¦«Z e d¦«dd„¦«Z dS)ÚNestedMinMaxCheckerzÇMultiple nested min/max calls on the same line will raise multiple messages. This behaviour is intended as it would slow down the checker to check for nested call with minimal benefits. )z builtins.minz builtins.maxÚnested_min_maxÚW3301)z@Do not use nested call of '%s'; it's possible to do '%s' insteadúnested-min-maxzHNested calls ``min(1, min(2, 3))`` can be rewritten as ``min(1, 2, 3)``.Únodeú nodes.NodeNGÚreturnÚboolcóÌ—t|tj¦«sdSt|j¦«}t|tj¦«o| ¦«|jvS)NF)Ú isinstancerÚCallr ÚfuncÚ FunctionDefÚqnameÚ FUNC_NAMES)ÚclsrÚinferreds úp/builddir/build/BUILD/cloudlinux-venv-1.0.12/venv/lib/python3.11/site-packages/pylint/checkers/nested_min_max.pyÚis_min_max_callz#NestedMinMaxChecker.is_min_max_call/sX€å˜$¥¤ Ñ+Ô+ð Ø�5å˜dœiÑ(Ô(ˆå �x¥Ô!2Ñ 3Ô 3ð 3Ø—’Ñ Ô  C¤NÐ2ð óú nodes.Callúlist[nodes.Call]có.‡‡—ˆˆfd„‰jD¦«S)Ncór•—g|]3}‰ |¦«r|jj‰jjk¯1|‘Œ4S©)rrÚname)Ú.0Úargrrs €€rú z;NestedMinMaxChecker.get_redundant_calls..<sNø€ð ð ð àØ×"Ò" 3Ñ'Ô'ð ð-0¬H¬M¸T¼Y¼^Ò,KÐ,Kð à,KÐ,KÐ,Kr )Úargs)rrs``rÚget_redundant_callsz'NestedMinMaxChecker.get_redundant_calls:s6øø€ð ð ð ð ð à”yð ñ ô ð r rÚNonecó —| |¦«sdS| |¦«}|sdStj|¦«}t|¦«dkr²t |j¦«D]u\}}t |tj¦«r!td„|jD¦«¦«rdS||vr1|jd|…|jz|j|dzd…z|_nŒv| |¦«}t|¦«dk°²t |j¦«D]³\}}t |tj ¦«s”t|¦«}t |tj tj tjgt¢R¦«rLtj|j¬¦«}||_|jd|…|gz|j|dz|…z|_Œ´| d||jj| ¦«ft.¬¦«dS)Nrc3óJK—|]}t|tj¦«V—ŒdS©N)rrÚ GeneratorExp)r'Úas rú z1NestedMinMaxChecker.visit_call..Ps@èè€ð7ð7Ø:;•J˜q¥%Ô"4Ñ5Ô5ð7ð7ð7ð7ð7ð7r é)Úlinenor)rr*Ú confidence)rr+ÚcopyÚlenÚ enumerater*rrrÚanyÚConstr ÚListÚTupleÚSetÚ DICT_TYPESÚStarredr4ÚvalueÚ add_messagerr&Ú as_stringr ) ÚselfrÚredundant_callsÚ fixed_nodeÚir(ÚidxrÚ splat_nodes rÚ visit_callzNestedMinMaxChecker.visit_callBsB€à×#Ò# DÑ)Ô)ð Ø ˆFà×2Ò2°4Ñ8Ô8ˆØð Ø ˆFå”Y˜t‘_”_ˆ Ý�/Ñ"Ô" QÒ&Ð&Ý# J¤OÑ4Ô4ð ð ‘��3õ˜c¥5¤:Ñ.Ô.ðµ3ð7ð7Ø?B¼xð7ñ7ô7ñ4ô4ðð�F�Fà˜/Ð)Ð)à"œ¨¨¨Ô+¨c¬hÑ6¸¼ÈÈQÉÈÈÔ9QÑQð”Oð�Eð *ð #×6Ò6°zÑBÔBˆOõ�/Ñ"Ô" QÒ&Ð&õ"" *¤/Ñ2Ô2ð ð ‰HˆC�ݘc¥5¤;Ñ/Ô/ð Ý% c™?œ?�ÝØ�uœz­5¬;½¼ ÐOÅJÐOÐOñôð õ"'¤°h´oÐ!FÑ!FÔ!F�JØ'*�JÔ$à"œ¨¨¨Ô-Ø%˜,ñ'à$œ/¨#°©'°C¨-Ô8ñ9ð”Oøð ×ÒØ ØØ”)”. *×"6Ò"6Ñ"8Ô"8Ð9Ý ð ñ ô ð ð ð r N)rrrr)rr!rr")rr!rr,) Ú__name__Ú __module__Ú __qualname__Ú__doc__rr&ÚmsgsÚ classmethodrr+rrIr%r rr r s¦€€€€€ððð 2€Jà €Dàð ð €Dðð ð ð ñ„[ð ðð ð ð ñ„[ð ð ÐÐ 0Ñ1Ô1ð- ð- ð- ñ2Ô1ð- ð- ð- r r Úlinterr rr,cóJ—| t|¦«¦«dSr/)Úregister_checkerr )rPs rÚregisterrSss%€Ø ×ÒÕ/°Ñ7Ô7Ñ8Ô8Ð8Ð8Ð8r )rPr rr,)rMÚ __future__rr6ÚtypingrÚastroidrrÚpylint.checkersrÚpylint.checkers.utilsrr Úpylint.interfacesr Ú pylint.lintr Ú DictValuesÚDictKeysÚ DictItemsÚ node_classesÚDictr>r rSr%r rúr`sðð 1Ð0à"Ð"Ð"Ð"Ð"Ð"à € € € Ø Ð Ð Ð Ð Ð à"Ð"Ð"Ð"Ð"Ð"Ð"Ð"à'Ð'Ð'Ð'Ð'Ð'ØHÐHÐHÐHÐHÐHÐHÐHØ'Ð'Ð'Ð'Ð'Ð'àð%Ø$Ð$Ð$Ð$Ð$Ð$ð ÔØ ÔØ ÔØ ÔÔð € ðS ðS ðS ðS ðS ˜+ñS ôS ðS ðl9ð9ð9ð9ð9ð9r