o
    jgu                     @   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 S/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/interactive/traversal.pycprint   s   z%interactive_traversal.<locals>.cprintc           	         sP  |dkrt   	d|d t   t|  t  t| tr4| jr(|  }n| jr0|  }n| j}nt	| dr>t
| }n| S t|}|sH| S t|D ]\}}	d|dt|	 t| t   qL|dkrmd}nd	|d  }ztd
| }W n ty   | }t   Y |S w |dkr	d|  	d 	d 	d 	d | |}|S |dv r| }|S |dkrȈ|d |d }|S |dkr׈|d |d }|S |dkrt||d }|S zt|}W n ty   	d|  | |}Y |S w |dk s||kr	d|  | |}|S || |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
BCYANBGREENBLUEBREDBYELLOWr
   GREENRED_interactive_traversalr   r   r   r7      s   




!





z5interactive_traversal.<locals>._interactive_traversalr   r   )r(   YELLOWBBLUEMAGENTABMAGENTACYANr   r/   r   interactive_traversal   s   
Kr=   )sympy.core.basicr   sympy.printingr   r$   r=   r   r   r   r   <module>   s    