K i@dZddlmZmZmZddlmZmZddlm Z m Z m Z ddl m Z mZddlmZmZmZmZmZmZmZmZddlmZdd lmZmZGd d ZGd d eZej>edZ ej>edZ ej>edZ ej>e dZ ej>e!dZ ej>edZ ej>edZ ej>edZ ej>edZ ej>edZ ej>edZ ej>edZ ej>edZ dZ"dZ#dZ$y)zj This module defines base class for handlers and some core handlers: ``Q.commutative`` and ``Q.is_true``. )QaskAppliedPredicate)BasicSymbol) _fuzzy_group fuzzy_andfuzzy_or)NaNNumber)And BooleanTrue BooleanFalse conjuncts EquivalentImpliesNotOr)sympy_deprecation_warning)CommutativePredicateIsTruePredicatec"eZdZdZfdZxZS) AskHandlerz.Base class that all Ask Handlers must inherit.cFtdddt||g|i|S)Nz The AskHandler system is deprecated. The AskHandler class should be replaced with the multipledispatch handler of Predicate z1.8zdeprecated-askhandler)deprecated_since_versionactive_deprecations_target)rsuper__new__)clsargskwargs __class__s g/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/assumptions/handlers/common.pyrzAskHandler.__new__s3! &+'>  ws4T4V44)__name__ __module__ __qualname____doc__r __classcell__)r#s@r$rrs8 5 5r%rcDeZdZdZedZedZedZeZy) CommonHandlerz5Defines some useful methods common to most Handlers. cyNTexpr assumptionss r$ AlwaysTruezCommonHandler.AlwaysTrue#r%cyNFr/r0s r$ AlwaysFalsezCommonHandler.AlwaysFalse'sr%cyNr/r0s r$ AlwaysNonezCommonHandler.AlwaysNone+r4r%N) r&r'r(r) staticmethodr3r7r:r r/r%r$r,r,sF? Cr%r,ct|}|j&|jxrtj||vStj||vrytj||vryy)z>Objects are expected to be commutative unless otherwise statedTF)ris_commutativer commutative)r1r2assumpss r$_r@4sj $G &""JAMM$,?+?7+JJ}}Tg% --   ( r%ch|jD]#}ttj||r#yy)NFT)r!rrr>)r1r2args r$r@r@@s0yy1==%{3 r%cyr.r/r0s r$r@r@G r%cyr.r/r0s r$r@r@KrDr%c|Sr9r/r0s r$r@r@Rs Kr%cyr.r/r0s r$r@r@VrDr%cyr6r/r0s r$r@r@Zs r%ct||Sr9rr0s r$r@r@^s t[ !!r%cd|jd}|jryt||}|dvr| Sy)Nrr2)TF)r! is_Symbolr)r1r2rBvalues r$r@r@bs8 ))A,C }}  -E yr%c\d}|jD]}t||}|dury|d}|S)NFrLTr!rr1r2resultrBps r$r@r@nsA Fyy  - 9 9F  Mr%c\d}|jD]}t||}|dury|d}|S)NTrLFrPrQs r$r@r@ysA Fyy  - : 9F  Mr%cB|j\}}t||z|SNrLrP)r1r2rSqs r$r@r@s" 99DAq rAv; //r%cj|j\}}t||}|yt||}|y||k(SrVrP)r1r2rSrWptqts r$r@r@s@ 99DAq QK (B z QK (B z 8Or%cHtfd|jDdS)zS Test for membership in a group with respect to the current operation. c3BK|]}t|ywr9rJ).0ar2keys r$ z$test_closed_group..s5aSV[ !5sT) quick_exit)rr!)r1r2r_s ``r$test_closed_grouprbs" 54995$ HHr%c,tfd|DS)Nc36K|]}t|ywr9rJr]queryr2s r$r`zask_all..6UUK 6)r r2queriess` r$ask_allrks 6g6 88r%c,tfd|DS)Nc36K|]}t|ywr9rJres r$r`zask_any..rgrh)r ris` r$ask_anyrns 6g6 88r%N)%r)sympy.assumptionsrrr sympy.corerrsympy.core.logicrr r sympy.core.numbersr r sympy.logic.boolalgr rrrrrrrsympy.utilities.exceptionsrpredicates.commonrrrr,registerr@boolrbrkrnr/r%r$rxs  76$>>*"""@E 5 5J*v& ' u%& v&'s#$ $ +&','(*+","#  "#'"0#0*%&H88r%