K i0^XdZddlZddlZddlmZmZddlZdadZddl m Z ddl m Z ddl mZgd Zd ad5d Zd Zd ZdZdZee Zdeej1d<eDcic] }|e| c}Zej5deDeded<eded<ded<dZdZeDcic] }|e| c}Zej5deDdZdZee Z de e j1d<e Dcic] }|e| c}Z!e!j5de Dede!d<ede!d<de!d<ddd d!d"d#d$d%d&d'd( Z"d)d*d+d,d-d.d/d0d1d2d3d4d5 Z#d6Z$d7Z%d8Z&d9Z'd:Z(d;Z)d<Z*iZ+iZ,d=D] Z-e$e-e+e-<d>D] Z-e(e-e,e-<d?D] Z.e%e.e+e.<e/d@Dcgc] }e0| c}D]Z1e&e1e+e1<e)e1e,e1<dAD]Z2e'e2e+e2<e*e2e,e2<idBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfZ3dgZ4dhZ5diZ6djZ7dkZ8dlZ9dmZ:dnZ;idoe7doe4doe8dofdofdpe7dpe4dpe8dpfdpfdqe7dqe5dqe9dqfdqfdre7dre5dre9drfdrfdse7dte4dse8dse6dsfdsfdue7dte4due8due6dufdufdvedwdxedydzed{d|ed}d~eddeddeddeddeddedwededfdfdedwededfdfe7dqe7dqe9dqfedfe7dre7dre9drfedfe7dqe5dqe7dqfedfe7dre5dre7drfedfe7dededfed4feddededfedfededededd ZdZ?dZ@edededdZAdZBeBdeBdeBdeBdeBdeBdeBdeBdeBdeBdeBdeBdeBdeBdeBddZCiddddddddedëfddedūfddedǫfddɓdd˓dd͓ddϓddѓddӓddedիfdded׫r"edثred׫ed׫zedثzndfddedګr*edګr"edثredګedګzedثzndfddedܫfZDd݄ZEided߫deddeddedxr dedzdeddeddeddedxrededzdeddeddeddeddeddeddeddeddedideddeddeddeddedd edܫd ed d ed deddeddddeddeddeddeddeddedededed ed!ed"ed#ed"ed#ed$ed%ed&edyed{d' ZFd6d(ZGd7d)ZHd*ZIeJjee/eLd+eLd,ee/eLd-eLd.zZMd/ZNd0ZOd1ZPd2ZQd8d3ZRd8d4ZSycc}wcc}wcc}wcc}w(9z=Symbolic primitives + unicode/ASCII abstraction for pretty.pyN)ascii_lowercaseascii_uppercasecd tj|S#t$rtd|zz aYywxYw)z Get a unicode character by name or, None if not found. This exists because older versions of Python use older unicode databases. zNo '%s' in unicodedata N) unicodedatalookupKeyErrorunicode_warnings)names l/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/printing/pretty/pretty_symbology.pyUr s; !!$'' 84??s //)split_super_sub)greeks)sympy_deprecation_warning) greek_unicodesubsupxsymvobjhobj pretty_symbol annotated center_padcenterFcl|tS|r!trtjtdat}|a|S)z8Set whether pretty-printer should use unicode by defaultr) _use_unicoder warningswarn)flaguse_unicode_prevs r pretty_use_unicoder!)s9 |   &'#L cttjdd}|yg}|tj z }|t j z }|D]}|y |j |tdy#t$rYywxYw)z>See if unicode output is available and leverage it if possibleencodingNT) getattrsysstdoutrvalues atoms_tableencodeUnicodeEncodeErrorr!)r$symbolsss r pretty_try_use_unicoder.9sszz:t4HG }##%%G {!!##G  9   HHX  t "   sA88 BBc.tdddt|S)Nzv The sympy.printing.pretty.pretty_symbology.xstr() function is deprecated. Use str() instead. z1.7z$deprecated-pretty-printing-functions)deprecated_since_versionactive_deprecations_target)rstr)argss r xstrr4Xs# "'#I  :r"c:td|jzS)NzGREEK SMALL LETTER %sr upperls r r:dsa'!'')34r"c:td|jzS)NzGREEK CAPITAL LETTER %sr6r8s r r:r:esa)AGGI56r"lamdalambdac#dK|](}|dj|ddzt|f*ywrNr7G.0Ls r rFms.IaadjjlQqrU*AaD1I.0LamdaLambdauςvarsigmac:td|jzSNzMATHEMATICAL BOLD SMALL %sr6r8s r r:r:usa,qwwy89r"c:td|jzS)NzMATHEMATICAL BOLD CAPITAL %sr6r8s r r:r:vsa.:;r"c#6K|]}|t|fywN)BrCs r rFrFys7!Q!I7sc:td|jzSrLr6r8s r r:r:|sq- 9:r"c:td|jzS)NzMATHEMATICAL BOLD CAPITAL %sr6r8s r r:r:}sq01779<=r"c#dK|](}|dj|ddzt|f*ywr?rArCs r rFrFs.S11Q4::r"brevect|dS)Nŭrrs r r:r:rr"acutect|dS)Núrrs r r:r:}Q(DEr"gravect|dS)Ǹrrs r r:r:rr"tildect|dS)Nũrrs r r:r:rr"hatct|dS)Nûrrs r r:r:]1&GHr"barct|dS)Nu̅rrs r r:r:s]1&>?r"vecct|dS)Nu⃗rrs r r:r:rr"primec |dzSNu′rs r r:r:s q}r"prmc |dzSrrrs r r:r:s Q{]r"normcd|zdzS)Nu‖rrs r r:r:s023MMr"avgcd|zdzS)Nu⟨u⟩rrs r r:r:s:1<=ccr"cd|zdzSN|rrs r r:r:(*+>>r"cd|zdzSrrrs r r:r:rr")absmagc,tdt|zS)Nz %s UPPER HOOKrrs r r:r:1_y67r"c,tdt|zS)Nz%s UPPER CORNERrrs r r:r:1&489r"c,tdt|zS)Nz%s MIDDLE PIECErrs r r:r:rr"c,tdt|zS)Nz %s EXTENSIONrrs r r:r:s1^io56r"c,tdt|zS)Nz %s LOWER HOOKrrs r r:r:rr"c,tdt|zS)Nz%s LOWER CORNERrrs r r:r:rr"c,tdt|zS)Nz%s TOPrrs r r:r:s1X $/0r"c,tdt|zS)Nz %s BOTTOMrrs r r:r:s1[9T?23r"rnrorprqrrrtrsrzBOX DRAWINGS LIGHT VERTICALTeez$BOX DRAWINGS LIGHT UP AND HORIZONTALUpTackz&BOX DRAWINGS LIGHT DOWN AND HORIZONTALzcorner_up_centre(_extzLEFT PARENTHESIS EXTENSIONz)_extzRIGHT PARENTHESIS EXTENSIONz (_lower_hookzLEFT PARENTHESIS LOWER HOOKz )_lower_hookzRIGHT PARENTHESIS LOWER HOOKz (_upper_hookzLEFT PARENTHESIS UPPER HOOKz )_upper_hookzRIGHT PARENTHESIS UPPER HOOKz LEFT FLOORz RIGHT FLOORz LEFT CEILINGz RIGHT CEILINGrvzTOP HALF INTEGRALzBOTTOM HALF INTEGRAL_OVERLINEzN-ARY SUMMATIONzBOX DRAWINGS LIGHT HORIZONTALzLOW LINE) lfloorrfloorlceilrceilrvrurlr/\)rrrrn)rrrro))rprprprp))rqrqrqrq))rrrrrr))rrrrrs)rr)rr)z | z /z/ rlrr)rnrorprqrrrsrrrrvrlrrrc|dkr tdtrt}nt}||}dx}x}x}}t |t s|}n5t |dt r |d} |d}n|} | d} | d}| d}| d}||}||}||}||dzdk(r|dz }n|}|dk(r|Sg} |dz dz} |dz | dzz } | |gz } | |g| zz } | |g| zz } | |g| zz } | |gz } | S#t $rYnwxYw)zVConstruct spatial object of given length. return: [] of equal-length strings rzLength should be greater than 0Nr@) ValueErrorr _xobj_unicode _xobj_ascii isinstancetuple IndexError) rlength_xobjvinfoc1topbotmidextvlongresnextnmids r xobjrDsr {:;; $KEBsS eU # eAh &!HEqBEAh (C(C(C z  { {  QJ1  aKF { C QJ?D QJ$q& DC5LCC5:CC5:CC5:CC5LC J?   s*C C('C(c8djt||S)zBConstruct vertical object of a given height see: xobj  joinr)rheights r rrs 99d4( **r"c8djt||S)zCConstruct horizontal object of a given width see: xobj rr)rwidths r rrs 77Du% ''r"z SQUARE ROOTz CUBE ROOTz FOURTH ROOT)rrctd|zS)NzVULGAR FRACTION %s)r )txts r r:r:s'#-.r"zONE HALFz ONE THIRDz TWO THIRDSz ONE QUARTERzTHREE QUARTERSz ONE FIFTHz TWO FIFTHSz THREE FIFTHSz FOUR FIFTHSz ONE SIXTHz FIVE SIXTHSz ONE EIGHTHz THREE EIGHTHSz FIVE EIGHTHSz SEVEN EIGHTHS))r@r)r@r)rr)r@r)rr)r@)rr)rr)rr)r@)rr)r@)rr)rr)rz==)rmrm)rr)rrz<=zLESS-THAN OR EQUAL TOz>=zGREATER-THAN OR EQUAL TOz!=z NOT EQUAL TO:=)rr+=)rr-=)rr*=)rr/=)rr%=)rr*z DOT OPERATORz-->zEM DASHzBLACK RIGHT-POINTING TRIANGLEz==>zBOX DRAWINGS DOUBLE HORIZONTAL.z RING OPERATORc4t|}tr|dS|dS)zget symbology for a 'character'r@r)_xsymr)symops r rrs sB!u !u r"Exp1zSCRIPT SMALL EPizGREEK SMALL LETTER PIInfinityINFINITYNegativeInfinity ImaginaryUnitzDOUBLE-STRUCK ITALIC SMALL IEmptySetz EMPTY SETNaturalszDOUBLE-STRUCK CAPITAL N Naturals0zSUBSCRIPT ZEROIntegerszDOUBLE-STRUCK CAPITAL Z RationalszDOUBLE-STRUCK CAPITAL QRealszDOUBLE-STRUCK CAPITAL R ComplexeszDOUBLE-STRUCK CAPITAL CUniversez$MATHEMATICAL DOUBLE-STRUCK CAPITAL UIdentityMatrixz$MATHEMATICAL DOUBLE-STRUCK CAPITAL I ZeroMatrixz%MATHEMATICAL DOUBLE-STRUCK DIGIT ZERO OneMatrixz$MATHEMATICAL DOUBLE-STRUCK DIGIT ONE DifferentialzDOUBLE-STRUCK ITALIC SMALL DUnionUNION ElementOfz ELEMENT OFSmallElementOfzSMALL ELEMENT OFSymmetricDifference INCREMENT Intersection INTERSECTIONRingMultiplicationzMULTIPLICATION SIGN TensorProductzN-ARY CIRCLED TIMES OPERATORDotszHORIZONTAL ELLIPSISzModifier Letter Low Ring EmptySequenceSuperscriptPluszSUPERSCRIPT PLUS SIGNSuperscriptMinuszSUPERSCRIPT MINUSDaggerDAGGERDegreez DEGREE SIGNAndz LOGICAL ANDOrz LOGICAL ORzNOT SIGNNORNANDXORzLEFT RIGHT DOUBLE ARROWz#LEFT RIGHT DOUBLE ARROW WITH STROKEzRIGHTWARDS ARROWzRIGHTWARDS ARROW FROM BARzRIGHTWARDS ARROW WITH STROKE) NotNorNandXorEquivNotEquivImplies NotImpliesArrow ArrowFromBarNotArrow Tautology Contradictionctr-|"|dk(r|jddk(r tdSt|S||St d)z'return pretty representation of an atomrimaginary_unitjzDOUBLE-STRUCK ITALIC SMALL Jz only unicode)r _settingsr r)r ) atom_namedefaultprinters r pretty_atomrJsS  9#?GDUDUVfDgknDn34 4y) )  N~&&r"c  ts|St|\}}} fd  ||}d}||t}|||t}nd}|^|r,|ddj |Dcgc] } || c}zz }|r,|ddj |Dcgc] } || c}zz }|Sdj |} dj |} dj || | gScc}wcc}w)z(return pretty representation of a symbolc |rtj|}ntj|}||Sttj ddD]]}|j j|s#t|t|kDs;t ||dt| |cS|r&dj|Dcgc] }t| c}S|Scc}w)Nct|SrOlen)ks r r:z2pretty_symbol..translate..8s SVr"T)keyreverser) greek_bold_unicodegetrsorted modifier_dictkeyslowerendswithrOr bold_unicode)r- bold_namegGrQc translates r r^z pretty_symbol..translate1s #''*B""1%B >I-,,.OTR OCwwy!!#&3q6#c(?$S))AjCyM9*MNN O 77Q7LO78 88sCcg}|D]I}|j|}|# dj|Dcgc]}|| c}}|j |K|Scc}w#ttf$rYywxYw)Nr)rTr TypeErrorr append)r9mappingresultr-prettyr]s r pretty_listz"pretty_symbol..pretty_listCs{ "A[[^F~ WW!%7L J) +J &!!&!!r"ruͯu⃐u⃰c$t|tvS)z,Check whether symbol is a unicode modifier. )ord_remove_combining)r s r is_combiningrvs s8( ((r"cHt|dzdz}|d|}||d}||z|zS)a Returns a string with accent inserted on the middle character. Useful to put combining accents on symbol names, including multi-character names. Parameters ========== string : string The string to place the accent in. accent : string The combining accent to insert References ========== .. [1] https://en.wikipedia.org/wiki/Combining_character .. [2] https://en.wikipedia.org/wiki/Combining_Diacritical_Marks rr@NrN)stringaccentmidpoint firstpart secondparts r rrs?.6{a!#Hy!I "J v  **r"c>t|jtS)zxUnicode combining symbols (modifiers) are not ever displayed as separate symbols and thus should not be counted )rOr^ru)lines r line_widthrs t~~/0 11r"c&td|DS)av Checks whether a string is subscriptable in unicode or not. Parameters ========== subscript: the string which needs to be checked Examples ======== >>> from sympy.printing.pretty.pretty_symbology import is_subscriptable_in_unicode >>> is_subscriptable_in_unicode('abc') False >>> is_subscriptable_in_unicode('123') True c3,K|] }|tvywrO)r)rD characters r rFz.is_subscriptable_in_unicode..s;IyC;s)all) subscripts r is_subscriptable_in_unicoders& ;; ;;r"c\||kDr td||z }|dz}||z }||z}||z}||fS)z Return the padding strings necessary to center a string of wstring characters wide in a wtarget wide space. The line_width wstring should always be less or equal to wtarget or else a ValueError will be raised. znot enough space for stringr)r)wstringwtargetfillcharwdeltawleftwrightleftrights r rrsR677 w F aKE e^F e D v E ;r"c\tt|||\}}dj|||gS)zhReturn a centered string of length determined by `line_width` that uses `fillchar` for padding. r)rrr)rxrrrrs r rrs1Z/AKD% 77D&%( ))r"rO)NN)F)rg)T__doc__r&rrxrrrr r sympy.printing.conventionsrsympy.core.alphabetsrsympy.utilities.exceptionsr__all__rr!r.r4grBlist greek_lettersindexrupdatebrPrZgbGBgreek_bold_lettersrSrrLSUBGSUBDSUBSSUBLSUPDSUPSSUPrrr9glranger2dr-rVHUPCUPMIDEXTHLOCLOTOPBOTrrrrrrootVFfracr rr)rJrrdictfromkeysrtrurvrrrrr)rEr9is000r rs C 3 7'@ 0   > 56V /6 m!!(+,#00QAaD0 I=II(0 h'0 h@ j:;!01A1Q41 777;=&\9@%++H56(::!a1g:S@RSS,W58,W58!J:                  ! " !     $LK;9M=; A !WCF A !WCF 1B2hCG ) $Q#a& $A !WCF !WCF A !WCF !WCF F I I   A   @  > > E E > H ? H $  "!0 M12 c34 ? >7 >899679030s3xS3s8=sC 0 s3xS3s8=sC 0 s3xS3s8=sC 0s3xS3s8=sC0s4y#c(CHc#hH#N0s4y#c(CHc#hH#N0A;<0 ADE0 AFG0 :;0 A;<0 A;" #  E23I,12Y " E . / . / - . 56 . /0 - ./ 59  :# .C?# $/ 66 q!126 q!896q} 6 q}F#* 2E 6q!?@6q~6q!:;6q!:; 4 !:; !12 36q!:;6q!:;6  q!:;!6"q!:;#6$q!GH%6&q!GH'6(q!HI)6*q!GH+6,q!?@-6. qz/60q162q!34364q~566q0768 q196:q!67;6<q!?@=6> q!67?6@q!;