
    \h                     T    S SK rS SKrSSKJr  SSKJr  Sr " S S\\5      rS r	S	 r
g)
    N   )ReprPrinter)
StrPrinter)AddInfinityIntegerMulNegativeInfinityPowc                   B   ^  \ rS rSrSrSU 4S jjrS rS rS rSr	U =r
$ )	PythonPrinter
   zFA printer which converts an expression into its Python interpretation.c                    > [         TU ]  U5        / U l        / U l        [         H(  nSU-  n[        [        U5      n[        [        X45        M*     g )Nz	_print_%s)	super__init__symbols	functionsSTRPRINTgetattrr   setattrr   )selfsettingsnamef_namef	__class__s        M/var/www/auris/envauris/lib/python3.13/site-packages/sympy/printing/python.pyr   PythonPrinter.__init__   sJ    " D 4'F
F+AM6-     c                     UR                   R                  n[        [        U5      (       d*  X R                  ;  a  U R                  R                  U5        [        R                  " X5      $ N)func__name__hasattrsympyr   appendr   _print_Function)r   exprr"   s      r   r'   PythonPrinter._print_Function   sJ    yy!!ud##NN(BNN!!$'))$55r   c                     U R                  U5      nX R                  ;  a  U R                  R                  U5        [        R                  " X5      $ r!   )_strr   r&   r   _print_Symbol)r   r(   symbols      r   r,   PythonPrinter._print_Symbol    s<    4%LL'''33r   c                     [        S5      e)Nz*Modules in the expression are unacceptable)
ValueError)r   r(   s     r   _print_modulePythonPrinter._print_module&   s    EFFr   )r   r   r!   )r#   
__module____qualname____firstlineno____doc__r   r'   r,   r1   __static_attributes____classcell__)r   s   @r   r   r   
   s!    P
.64G Gr   r   c                 j   [        U5      nUR                  U 5      nSn0 nUR                   H  nSU;   a;  UR                  SS5      R                  SS5      nXu[        R
                  " U5      '   OUn[        R                  " U5      (       aT   US-  nXrR                  ;  a=  XrR                  ;  a.  [        R
                  " U5      U[        R
                  " U5      '   OMS  XGS-   U-   S-   -  nM     UR                   H  nUn	[        R                  " U	5      (       aT   U	S-  n	XR                  ;  a=  XR                  ;  a.  [        R                  " U	5      U[        R                  " U5      '   OMS  XIS-   U-   S-   -  nM     U(       a  U R                  U5      nUSUR                  U5      -   -  nU$ )	zrReturn Python interpretation of passed expression
(can be passed to the exec() function without any modifications) {}_z = Symbol('z')
z = Function('ze = )r   doprintr   replacer%   Symbolkw	iskeywordr   Functionsubsr+   )
r(   r   printerexprpresult	renamings
symbolnamenewsymbolnamefunctionnamenewfunctionnames
             r   pythonrM   *   s    H%GOOD!EFIoo
*&..sB7??RHM2?ell:./&M <<&&$!8%->->>',||M'B ell"$ %  	.0:=GG# &&  ))&<<((3&#??:'/@/@@).)H enn$& '  	$44|CgMM * 		)$
fw||E***FMr   c                 .    [        [        U 40 UD65        g)z!Print output of python() functionN)printrM   )r(   r   s     r   print_pythonrP   Z   s    	&
"
"#r   )keywordrA   r%   reprr   strr   r   r   rM   rP    r   r   <module>rU      s5        LGK G@-`$r   