K i.tddlmZddlmZmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZdd lmZgd ZGd d eZGd deZGdde ZGdde ZdZdZdZdZdZdZej:j=ddZej:jAee_y)) Derivative)UndefinedFunction AppliedUndef)Symbol) init_printing) LatexPrinter) PrettyPrinter) center_accent) StrPrinter) PRECEDENCE)vprint vsstrreprvsprintvpprintvlatexinit_vprintingceZdZdZdZdZy)VectorStrPrinterz'String Printer for vector expressions. cddlm}|jtt fd|j Dt t|jdtzrPt|jdj}t|j D]\}}||jz }|Stj|S)Nrdynamicsymbolsc3(K|] }|k( ywN.0its c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/physics/vector/printing.py z5VectorStrPrinter._print_Derivative..s1Q!V1)sympy.physics.vector.functionsr_tboolsum variables isinstancetypeargsrstrfunc enumerate_strr doprint)selferolrvrs @r_print_Derivativez"VectorStrPrinter._print_DerivativesA    1Q[[11 24q ?,=> ?QVVAY^^$B!!++. *1n))) *I<''* *cddlm}|j}tt |t r,t j|jd|zdS|jjd|j|jdzzS)Nrrz(%s)z, ) r"rr#r'r(rr r.replacer+__name__ stringifyr))r/r0rrs r_print_Functionz VectorStrPrinter._print_FunctionsjA    d1g0 1<''*226A:rB Bvv$..*F!FFFr4N)r8 __module__ __qualname____doc__r3r:rr4rrrs1 +Gr4rceZdZdZdZy)VectorStrReprPrinterz+String repr printer for vector expressions.ct|Sr)repr)r/ss r _print_strzVectorStrReprPrinter._print_str(s Awr4N)r8r;r<r=rCrr4rr?r?&s 5r4r?c.eZdZdZdfd ZfdZxZS)VectorLatexPrinterz&Latex Printer for vector expressions. cddlm}|jj}|j}t |d|zr/t t|tst|d|z||St t|tr^|j|fk(rNt|}|2|j|td}|j|}|d|dSt|A|St|E||S)Nrr_print_Powz^{})r"rr+r8r#hasattrr'r(rgetattrr)r parenthesizer parenthesize_supersuper_printr:)r/exprexprr+rbase __class__s rr:z"VectorLatexPrinter._print_Function/sAyy!!    D)d* + tDz#4 5274T!124= = T $5 6DII!.QsCQ^^s-BCs  c3(K|] }|k( ywrrrs rr z7VectorLatexPrinter._print_Derivative..Rs-1Q-r!_z\dot{%s}z \ddot{%s}z \dddot{%s}z \ddddot{%s})r"rdoitr'rr.r#rPatomsrr&allrNr3lenr:split) r/der_exprrrPredsymstest1test2dotsrR base_splitrrSs @rr3z$VectorLatexPrinter._print_DerivativeEsEA==?(J/% X(>> >   }}jj&!!CcCCC---- E7,X6 64y##D)ZZQ' !} 19%D QY$&D QY 4'D QY!D(D7,X6 6 z?a  C*Q-' 'D r4r)r8r;r<r=r:r3 __classcell__rSs@rrErE,s06,""r4rEc,eZdZdZfdZfdZxZS)VectorPrettyPrinterz)Pretty Printer for vectorialexpressions. cddlm}|j}d}tt |j }t |dkDr<|d|k(r|j|dz }nt |%|St |dkDr?QD(7,U3 3((4E u}}  !7,U3 3 A:7,U3 3,,32 4 NN  K1e_ #s"  # iLO{U2 2O *!I,q/4;GHAiL r4cddlm}|j}|j}|j}|j }|j t|}t|tr||fk(st|-|S|S)Nrr) r"rr#r+r)r8 _print_Symbolrr'rrNr:) r/r0rrr+r) func_namerzrSs rr:z#VectorPrettyPrinter._print_FunctionskA   vvvvMM ""6)#454!23!7*1- - r4)r8r;r<r=r3r:rirjs@rrlrljs3.`  r4rlc Tt|fi|}ddl}|dk7r||_t|yy)aJFunction for printing of expressions generated in the sympy.physics vector package. Extends SymPy's StrPrinter, takes the same setting accepted by SymPy's :func:`~.sstr`, and is equivalent to ``print(sstr(foo))``. Parameters ========== expr : valid SymPy object SymPy expression to print. settings : args Same as the settings accepted by SymPy's sstr(). Examples ======== >>> from sympy.physics.vector import vprint, dynamicsymbols >>> u1 = dynamicsymbols('u1') >>> print(u1) u1(t) >>> vprint(u1) u1 rNNone)rbuiltinsrXprint)rPsettingsoutstrrs rr r s16T &X &F&  f  r4c :t|}|j|S)a Function for displaying expression representation's with vector printing enabled. Parameters ========== expr : valid SymPy object SymPy expression to print. settings : args Same as the settings accepted by SymPy's sstrrepr(). )r?r.)rPrps rrrs X&A 99T?r4c :t|}|j|S)aFunction for displaying expressions generated in the sympy.physics vector package. Returns the output of vprint() as a string. Parameters ========== expr : valid SymPy object SymPy expression to print settings : args Same as the settings accepted by SymPy's sstr(). Examples ======== >>> from sympy.physics.vector import vsprint, dynamicsymbols >>> u1, u2 = dynamicsymbols('u1 u2') >>> u2d = dynamicsymbols('u2', level=1) >>> print("%s = %s" % (u1, u2 + u2d)) u1(t) = u2(t) + Derivative(u2(t), t) >>> print("%s = %s" % (vsprint(u1), vsprint(u2 + u2d))) u1 = u2 + u2' )rr.)rPrstring_printers rrrs6&h/N  ! !$ ''r4c t|}|jd}ddlm}||} |j |||S#||wxYw)aFunction for pretty printing of expressions generated in the sympy.physics vector package. Mainly used for expressions not inside a vector; the output of running scripts and generating equations of motion. Takes the same options as SymPy's :func:`~.pretty_print`; see that function for more information. Parameters ========== expr : valid SymPy object SymPy expression to pretty print settings : args Same as those accepted by SymPy's pretty_print. use_unicoder)pretty_use_unicode)rl _settings&sympy.printing.pretty.pretty_symbologyrr.)rPrpprruflags rrrsN& X &B ,,}-KI { +E"zz$5!5!s A A c :t|}|j|S)aFunction for printing latex representation of sympy.physics.vector objects. For latex representation of Vectors, Dyadics, and dynamicsymbols. Takes the same options as SymPy's :func:`~.latex`; see that function for more information; Parameters ========== expr : valid SymPy object SymPy expression to represent in LaTeX form settings : args Same as latex() Examples ======== >>> from sympy.physics.vector import vlatex, ReferenceFrame, dynamicsymbols >>> N = ReferenceFrame('N') >>> q1, q2 = dynamicsymbols('q1 q2') >>> q1d, q2d = dynamicsymbols('q1 q2', 1) >>> q1dd, q2dd = dynamicsymbols('q1 q2', 2) >>> vlatex(N.x + N.y) '\\mathbf{\\hat{n}_x} + \\mathbf{\\hat{n}_y}' >>> vlatex(q1 + q2) 'q_{1} + q_{2}' >>> vlatex(q1d) '\\dot{q}_{1}' >>> vlatex(q1 * q2d) 'q_{1} \\dot{q}_{2}' >>> vlatex(q1dd * q1 / q1d) '\\frac{q_{1} \\ddot{q}_{1}}{\\dot{q}_{1}}' )rEr.)rPr latex_printers rrr"s H'x0M   &&r4c Pt|d<t|d<t|d<tdi|y)aInitializes time derivative printing for all SymPy objects, i.e. any functions of time will be displayed in a more compact notation. The main benefit of this is for printing of time derivatives; instead of displaying as ``Derivative(f(t),t)``, it will display ``f'``. This is only actually needed for when derivatives are present and are not in a physics.vector.Vector or physics.vector.Dyadic object. This function is a light wrapper to :func:`~.init_printing`. Any keyword arguments for it are valid here. {0} Examples ======== >>> from sympy import Function, symbols >>> t, x = symbols('t, x') >>> omega = Function('omega') >>> omega(x).diff() Derivative(omega(x), x) >>> omega(t).diff() Derivative(omega(t), t) Now use the string printer: >>> from sympy.physics.vector import init_vprinting >>> init_vprinting(pretty_print=False) >>> omega(x).diff() Derivative(omega(x), x) >>> omega(t).diff() omega' str_printerpretty_printerrNr)rrrr)kwargss rrrKs/B&F=&F $F?Fr4zExamples ========N)!sympy.core.functionrrrsympy.core.symbolrsympy.interactive.printingrsympy.printing.latexrsympy.printing.pretty.prettyr rr sympy.printing.strr sympy.printing.precedencer __all__rr?rErlr rrrrrr=raparamsformatrr4rrs*?$4-6@)0 GzG.+ ;;|@-@F F"(>"D&'R$N    $ $%= >q A'//66v>r4