idAddlZddlmZddlmZddlmZGddeZedd DZ ed d DZ Gd d e Z dS)N)inspect)util) operatorsceZdZdS)UnevaluatableErrorN)__name__ __module__ __qualname__M/opt/cloudlinux/venv/lib/python3.11/site-packages/sqlalchemy/orm/evaluator.pyrrsDr rc#@K|]}tt|VdSNgetattrr.0ops r rs@  Irr ) addmulsubdivmodtruedivltlenegtgeeqc#@K|]}tt|VdSrrrs rrr&s@    Ir      r ) like_op notlike_opilike_op notilike_op between_opin_opnotin_op endswith_op concat_opcReZdZd dZdZdZdZdZdZdZ d Z d Z d Z d Z dS)EvaluatorCompilerNc||_dSr) target_cls)selfr0s r__init__zEvaluatorCompiler.__init__7s $r ct|d|jzd}|s$tdt|jz||S)Nzvisit_%szCannot evaluate %s)r__visit_name__rtyper )r1clausemeths rprocesszEvaluatorCompiler.process:sVtZ&*??FF $$tF||'<< tF||r c6||jSr)r8elementr1r6s rvisit_groupingz EvaluatorCompiler.visit_groupingBs||FN+++r cdS)NcdSrr objs rz.EvaluatorCompiler.visit_null..F4r r r;s r visit_nullzEvaluatorCompiler.visit_nullE r cdS)NcdS)NFr r?s rrAz/EvaluatorCompiler.visit_false..Is5r r r;s r visit_falsezEvaluatorCompiler.visit_falseHs    r cdS)NcdS)NTr r?s rrAz.EvaluatorCompiler.visit_true..LrBr r r;s r visit_truezEvaluatorCompiler.visit_trueKrDr cd|jvrX|jd}|jr1t|j|jst d|jz|j|j}nS|j}|jr3|t|jjvrtj d|znt d|ztj |fdS)N parentmapperz2Can't evaluate criteria against alternate class %szEvaluating non-mapped column expression '%s' onto ORM instances; this is a deprecated use case. Please make use of the actual mapped columns in ORM-evaluated UPDATE / DELETE expressions.zCannot evaluate column: %sc|Srr )r@get_corresponding_attrs rrAz0EvaluatorCompiler.visit_column..is11#66r ) _annotationsr0 issubclassclass_r_columntopropertykeyr column_attrsrwarnoperator attrgetter)r1r6rLrSrNs @r visit_columnzEvaluatorCompiler.visit_columnNs V0 0 0!.~>L z!4(( )H")*08.evaluateosW $.99L(L--E$#tt'85D=HH 4ur c<D]}||}|s|dSdSdSr[r )r@r]r^r_s rr`z4EvaluatorCompiler.visit_clauselist..evaluate|sH$.%%L(L--E % =#'44$uu%tr z+Cannot evaluate clauselist with operator %s) listmapr8clausesrVror_and_r)r1r6r`r_s @rvisit_clauselistz"EvaluatorCompiler.visit_clauselistks#dlFN;;<< ?im + +      _  . .      %=O r cJtt|j|j|jg\|jt jurfd}nRt jurfd}n=tvrfd}n,tdt|j d|j|S)Nc4||kSrr r@ eval_left eval_rights rr`z0EvaluatorCompiler.visit_binary..evaluate y~~C88r c4||kSrr rjs rr`z0EvaluatorCompiler.visit_binary..evaluatermr cx|}|}||dS||Srr )r@left_val right_valrkrlrVs rr`z0EvaluatorCompiler.visit_binary..evaluatesO$9S>>&JsOO #y'84x # 3@@@r Cannot evaluate  with operator ) rbrcr8leftrightrVris_isnot _straight_opsrr5r )r1r6r`rkrlrVs @@@r visit_binaryzEvaluatorCompiler.visit_binarys $  v{FL9 : :! !  :? y} $ $ 9 9 9 9 9 9 9 ( ( 9 9 9 9 9 9 9 & & A A A A A A A A%$<<(((&//; r c||j|jtjurfd}|St dt |jd|j)Nc(|}|dS| Srr )r@r^ eval_inners rr`z/EvaluatorCompiler.visit_unary..evaluates"" 3=4 y r rrrs)r8r:rVrinvrr5r )r1r6r`r|s @r visit_unaryzEvaluatorCompiler.visit_unarysw\\&.11 ?im + + ! ! ! ! ! O  F||$$$foo 7   r cT|jr|n|jfdS)NcSrr )r@vals rrAz3EvaluatorCompiler.visit_bindparam..s3r )callabler^)r1r6rs @rvisit_bindparamz!EvaluatorCompiler.visit_bindparams1 ? //##CC,Cr r)r r r r2r8r<rCrGrJrXrgryr~rr r rr.r.6s%%%%,,,   !!!   777:B>   r r.) rVrrsqlr Exceptionrsetrx_notimplemented_opsobjectr.r r rrs          &c         JJJJJJJJJJr