a
    RG5du                     @   s,   d dl mZ d dlmZ d dlZdd ZdS )    )Basic)pprintNc              
      sh   d\d\d\}d\}d\}}d\} dfdd		 	f
d
d| dS )z6Traverse a tree asking a user which branch to choose. )z[0;31mz[1;31m)z[0;32mz[1;32m)z[0;33mz[1;33m)z[0;34mz[1;34m)z[0;35mz[1;35m)z[0;36mz[1;36mz[0mc                     s   t dtt|    d S )N )printjoinmapstr)args)END W/var/www/html/django/DPS/env/lib/python3.9/site-packages/sympy/interactive/traversal.pycprint   s    z%interactive_traversal.<locals>.cprintc           	         sN  |dkrt   	d|d t   t|  t  t| trh| jrP|  }q| jr`|  }q| j}nt	| dr|t
| }n| S t|}|s| S t|D ]2\}}	d|dt|	 t| t   q|dkrd}nd	|d  }ztd
| }W n  ty   | }t   Y n40 |dkrd	d|  	d 	d 	d 	d | |}n|dv rt| }n|dkr|d |d }n|dkr|d |d }n|dkrЈt||d }nzzt|}W n, ty   	d|  | |}Y nB0 |dk s||kr8	d|  | |}n|| |d }|S )Nr   zCurrent expression (stage z):__iter__[z]    0z0-%dzYour choice [%s,f,l,r,d,?]: ?z.%s - select subexpression with the given indexz"f - select the first subexpressionz!l - select the last subexpressionz!r - select a random subexpressionz	d - done
)dr   flrz$Choice must be a number in %s range
zChoice must be in %s range
)r   r   
isinstancer   is_Addas_ordered_termsis_Mulas_ordered_factorsr	   hasattrlistlen	enumeratetypeinputEOFErrorrandomchoiceint
ValueError)	exprstager	   n_argsiargchoicesr%   result
ZBCYANZBGREENZBLUEZBREDZBYELLOWr
   ZGREENZRED_interactive_traversalr   r   r   r0      sv    













z5interactive_traversal.<locals>._interactive_traversalr   r   )r(   ZYELLOWZBBLUEZMAGENTAZBMAGENTAZCYANr   r/   r   interactive_traversal   s    Kr1   )sympy.core.basicr   sympy.printingr   r$   r1   r   r   r   r   <module>   s   