bg ddlmZddlmZddlmZddlmZddlm Z ddl m Z erddl m Z Gdd e ZddZdS)) annotations) zip_longest) TYPE_CHECKING)nodes) BaseChecker)HIGH)PyLinterc<eZdZdZdZdddZdZdd Zdd ZddZ dS)LambdaExpressionCheckerz2Check for unnecessary usage of lambda expressions.zlambda-expressions)z\Lambda expression assigned to a variable. Define a function using the "def" keyword instead.unnecessary-lambda-assignmentzvUsed when a lambda expression is assigned to variable rather than defining a standard function with the "def" keyword.)zILambda expression called directly. Execute the expression inline instead.unnecessary-direct-lambda-callz[Used when a lambda expression is directly called rather than executing its contents inline.)C3001C3002node nodes.AssignreturnNonect|jdtjrCt|jtjr$|d|jtdSt|jdtjrt|jtjtj frt|jdj |jj D]a\}}||dSt|tjr7t|tjr|d|t^dSdSdS)z5Check if lambda expression is assigned to a variable.rr r confidenceN) isinstancetargetsr AssignNamevalueLambda add_messagerTupleListrelts)selfrlhs_elemrhs_elems s/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/pylint/checkers/lambda_expressions.py visit_assignz$LambdaExpressionChecker.visit_assign(sb dl1ou'7 8 8 Z J > >     /Z        Q 5 5 * Jej1; ;  '2 Q$djo''  "(#x'7EEh(899jel??$$7%#'%!      nodes.NamedExprct|jtjrCt|jtjr&|d|jtdSdSdS)Nr r)rtargetrrrrrrr!rs r$visit_namedexprz'LambdaExpressionChecker.visit_namedexprHs{ dk5#3 4 4  J : :     /Z          r& nodes.Callct|jtjr|d|t dSdS)z.Check if lambda expression is called directly.r rN)rfuncrrrrr*s r$ visit_callz"LambdaExpressionChecker.visit_callRsR di . .    0        r&N)rrrr)rr'rr)rr,rr) __name__ __module__ __qualname____doc__namemsgsoptionsr%r+r/rr&r$r r sy<< D    DG@r&r linterr rrcJ|t|dS)N)register_checkerr )r7s r$registerr:\s% 3F;;<<<<rBs #"""""!!!!!! ''''''""""""%$$$$$$FFFFFkFFFR======r&