
    wgu                     *    d dl mZ d dlmZ d dlZd Zy)    )Basic)pprintNc           
         	
 d\  	d\  d\  }
d\  }d\  }}d\  }dfd	
f
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                  \    t        dj                  t        t        |             z          y )N )printjoinmapstr)argsENDs    `/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/interactive/traversal.pycprintz%interactive_traversal.<locals>.cprint   s    bggc#tn%+,    c                 n  
 |dkD  r
t                 d|d       t        	       t        |        t               t        | t              rG| j                  r| j                         }nD| j                  r| j                         }n'| j                  }nt        | d      rt        |       }n| S t        |      }|s| S t        |      D ]3  \  }} d
|dt        |      	       t        |       t                5 |dk(  rd}nd	|dz
  z  }	 t        d
|z        }|dk(  r; d|z          d        d        d        d        | |      }|S |dv r| }|S |dk(  r |d   |dz         }|S |dk(  r |d   |dz         }|S |dk(  r! t        j                   |      |dz         }|S 	 t#        |      }|dk  s||k\  r d|z          | |      }|S  ||   |dz         }|S # t$        $ r  d|z          | |      }Y |S w xY w# t&        $ r | }t                Y |S w xY w)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 in %s range
z$Choice must be a number in %s range
)r   r   
isinstancer   is_Addas_ordered_termsis_Mulas_ordered_factorsr   hasattrlistlen	enumeratetypeinputrandomchoiceint
ValueErrorEOFError)exprstager   n_argsiargchoicesr(   resultBCYANBGREENBLUEBREDBYELLOWr   GREENRED_interactive_traversalr   s            r   r:   z5interactive_traversal.<locals>._interactive_traversal   s   19G+WeS$Getc
dE"{{,,...0yyT:&:DKTKo 	FAs5#vq%tT#YL3KG	
 Q;G
+G#	Q9GCDF
 }sL  s@As?@s?@sL)/e<. - 9$* ) 3/QC& % 3/R%!)D" ! 3/d0CUQYO Q [F zVv%5t%Cg%MN!7e!D  "8Veai!P " A4BWLN3D%@F A1  	FGB G	s$   H 9G6 6HHH43H4r    )r,   YELLOWBBLUEMAGENTABMAGENTACYANr3   r4   r5   r6   r7   r   r8   r9   r:   r   s         @@@@@@@@@@r   interactive_traversalrA      sc     +IC.ME60OFG,KD%2GX,KD%
C-I IV "$**r   )sympy.core.basicr   sympy.printingr   r'   rA   r;   r   r   <module>rD      s    " ! Y+r   