
    \h7                     H    S SK Jr  S SKJr  S SKJr  S SKJr   " S S5      rg)    )S)Symbol)sympify)Integerc                   (   \ rS rSrSrSu  rrrrS r	S r
S rS rS rS	 rS
 rS rS rS r\	S 5       r\" \\5      r\" \\5      r\" \\5      r\" \\5      r\" \5      rS r\S 5       rS rS rS r\	S 5       r \	S 5       r!\	S 5       r"S r#Sr$g)PlotInterval   z
    )NNNNc                    ^  U 4S jnU$ )Nc                    > U R                   U R                  U R                  U R                  4 H  nUb  M  [	        S5      e   T" U /UQ70 UD6$ )NzPlotInterval is incomplete.)_v_v_min_v_max_v_steps
ValueError)selfargskwargsgfs       _/var/www/auris/envauris/lib/python3.13/site-packages/sympy/plotting/pygletplot/plot_interval.pycheck,PlotInterval.require_all_args.<locals>.check   sO    ggt{{DKKG9$%BCC H T+D+F++     )r   r   s   ` r   require_all_argsPlotInterval.require_all_args   s    	,
 r   c                    [        U5      S:X  a  [        US   [        5      (       a  U R                  US   5        g [        US   [        5      (       a   [        US   5      nO/[        US   [        [        45      (       a  US   nO[        S5      e[        U[        [        45      (       a  [        U5      S:  a  Sn[        U5      e[        U5      n[        U5      S:  a4  US   b  [        US   [        5      (       a  UR                  S5      U l        [        U5      S;   aS  UR                  S5      U l        UR                  S5      U l        [        U5      S:X  a  UR                  S5      U l        g g [        U5      S:X  a  UR                  S5      U l        g g ! [         a    Sn[        X!S   -  5      ef = f)N   r   zCould not interpret string %s.zNot an interval.   z9PlotInterval must be a tuple or list of length 4 or less.)      )len
isinstancer   	fill_fromstreval	TypeErrorr   tuplelistr   popvv_minv_maxv_steps)r   r   s_eval_errorf_errors       r   __init__PlotInterval.__init__   sv   t9>$q'<00tAw'DGS))?Q=D DGeT]33Aw !344$..#d)a-QGW%%Dzt9q=d1goDGV1L1LXXa[DFt9!DJ!DJ4yA~#xx{ Y!^88A;DL ' ! ?#CL$\!W%=>>?s   F" "F?c                     U R                   $ N)r   r   s    r   get_vPlotInterval.get_v2   s    wwr   c                 f    Uc  S U l         g [        U[        5      (       d  [        S5      eXl         g )Nzv must be a SymPy Symbol.)r   r#   r   r   )r   r+   s     r   set_vPlotInterval.set_v5   s/    9DG!V$$899r   c                     U R                   $ r4   )r   r5   s    r   	get_v_minPlotInterval.get_v_min=       {{r   c                     Uc  S U l         g  [        U5      U l         [        U R                   R                  5       5        g ! [         a    [        S5      ef = f)Nz+v_min could not be interpreted as a number.)r   r   floatevalfr'   r   )r   r,   s     r   	set_v_minPlotInterval.set_v_min@   T    =DK	L!%.DK$++##%& 	LJKK	L   3A Ac                     U R                   $ r4   )r   r5   s    r   	get_v_maxPlotInterval.get_v_maxJ   r>   r   c                     Uc  S U l         g  [        U5      U l         [        U R                   R                  5       5        g ! [         a    [        S5      ef = f)Nz+v_max could not be interpreted as a number.)r   r   r@   rA   r'   r   )r   r-   s     r   	set_v_maxPlotInterval.set_v_maxM   rD   rE   c                     U R                   $ r4   )r   r5   s    r   get_v_stepsPlotInterval.get_v_stepsW   s    }}r   c                     Uc  S U l         g [        U[        5      (       a  [        U5      nO [        U[        5      (       d  [	        S5      eU[
        R                  ::  a  [	        S5      eXl         g )Nz(v_steps must be an int or SymPy Integer.zv_steps must be positive.)r   r#   intr   r   r   Zero)r   r.   s     r   set_v_stepsPlotInterval.set_v_stepsZ   s^    ? DMgs##g&GGW--GHHaff899r   c                      U R                   S-   $ )Nr   )r.   r5   s    r   	get_v_lenPlotInterval.get_v_lenf   s    ||ar   c                     UR                   b  UR                   U l         UR                  b  UR                  U l        UR                  b  UR                  U l        UR                  b  UR                  U l        g g r4   )r+   r,   r-   r.   )r   bs     r   r$   PlotInterval.fill_fromp   sZ    33?SSDF77DJ77DJ99 99DL !r   c                      [        U 5      S:X  a  [        U S   [        5      (       a  U S   $  [        U 6 $ ! [         a     gf = f)zL
Returns a PlotInterval if args can be interpreted
as such, otherwise None.
r   r   N)r"   r#   r   r   )r   s    r   	try_parsePlotInterval.try_parsez   sJ     t9>ja,??7N	&& 		s   6 
AAc                     SR                  [        U R                  5      [        U R                  5      [        U R                  5      [        U R
                  5      /5      $ )N,)joinr%   r+   r,   r-   r.   r5   s    r   	_str_basePlotInterval._str_base   sB    xxTVVc$**oTZZ#dll*;= > 	>r   c                 (    SU R                  5       -  $ )z?
A string representing the interval in class constructor form.
zPlotInterval(%s)r`   r5   s    r   __repr__PlotInterval.__repr__   s     "T^^%566r   c                 (    SU R                  5       -  $ )z2
A string representing the interval in list form.
z[%s]rc   r5   s    r   __str__PlotInterval.__str__   s     )**r   c                     g r4   r   r5   s    r   assert_completePlotInterval.assert_complete   s    r   c              #      #    U R                   U R                  -
  U R                  -  n[        U R                  S-   5       H"  nU R                  U[	        U5      -  -   nUv   M$     g7f)z=
Yields v_steps+1 SymPy numbers ranging from
v_min to v_max.
r   N)r-   r,   r.   ranger   )r   dias       r   vrangePlotInterval.vrange   sU      ZZ$**$4t||a'(A

a'!*n-AG )s   A&A(c              #     #    U R                   U R                  -
  U R                  -  nU R                  U[        R                  -  -   n[        U R                  5       H(  nU R                  U[        US-   5      -  -   nX$4v   UnM*     g7f)zd
Yields v_steps pairs of SymPy numbers ranging from
(v_min, v_min + step) to (v_max - step, v_max).
r   N)r-   r,   r.   r   rQ   rm   r   )r   rn   rp   ro   rX   s        r   vrange2PlotInterval.vrange2   sr      ZZ$**$4JJ!aff*%t||$A

a'!a%.01A$JA %s   B	Bc              #   p   #    U R                  5        H  n[        UR                  5       5      v   M      g 7fr4   )rq   r@   rA   )r   ro   s     r   frangePlotInterval.frange   s&     A	"" s   46)r   r   r   r   r+   r-   r,   r.   N)%__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r1   r6   r9   r<   rB   rG   rJ   rM   rR   rU   propertyr+   r,   r-   r.   v_lenr$   staticmethodr[   r`   rd   rg   rj   rq   rt   rw   __static_attributes__r   r   r   r   r      s   #9 B'<LL
      	AY	*EY	*E{K0GYE% 
 
>7+     
 
#r   r   N)	sympy.core.singletonr   sympy.core.symbolr   sympy.core.sympifyr   sympy.core.numbersr   r   r   r   r   <module>r      s    " $ & &n# n#r   