
    PiU                        d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlZddlmZ ddlZddlmZ  ej                    Zd Z	 	 dddZ	 	 	 	 dddZedk    r ej        e           dS dS )a  

Contains the functions that run when `gradio` is called from the command line. Specifically, allows

$ gradio app.py, to run app.py in reload mode where any changes in the app.py file or Gradio library reloads the demo.
$ gradio app.py my_demo, to use variable names other than "demo"
    )annotationsN)Path)print)utilsc                    t          j        d          rbt          j        d          dk    rJ	 ddlm}   |              t	          d           n)# t
          $ r}t	          d|            Y d}~nd}~ww xY wt          j        d           dS )	z<Handle interrupt signals and logout based on user preferenceGRADIO_VIBE_MODEGRADIO_AUTO_LOGOUTtruer   )logoutz

Logged out of Hugging Facez%

Error logging out of Hugging Face: N)osgetenvhuggingface_hubr   r   	Exceptionsysexit)r   es     n/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/gradio/cli/commands/reload.py_handle_interruptr      s     
y#$$ A3G)H)HF)R)R	A......FHHH23333 	A 	A 	A?A??@@@@@@@@	A HQKKKKKs   A 
A4A//A4F	demo_pathr   additional_watch_dirslist[str] | Nonewatch_libraryboolc                <   t          |           }t          j        |          }|                                r'|                    t          j                              }n|}t          |j        |j        z            	                    t          j        j        d          }t          t          j        t                              j        }d}d}	g }
t          |                                          r%|r#|
                    |           |d| dz  }|	dz  }	|j        }t          |                                          r)|
                    |           |	dk    r|dz  }|d| dz  }t          j                                                    }t          |                                          r]||
vrY	 |                    |           d}n# t&          $ r d	}Y nw xY w|r|sn)|
                    |           |	dk    r|dz  }|d| dz  }|pg D ]<}t          |          |
vr)|
                    |           |	dk    r|dz  }|d| dz  }=t)          |d
z              t*          j                            dt          j                               ||d |
D             fS )N.z	Watching:r   z ''   ,TF
c                ,    g | ]}t          |          S  )str).0ss     r   
<listcomp>z!_setup_config.<locals>.<listcomp>g   s    +J+J+JqCFF+J+J+J    )r   r   abspathis_absoluterelative_tocwdr"   parentstemreplacer   pathsepinspectgetfilegradiostripappendabsolute
ValueErrorr   r   insertgetcwd)r   r   r   original_pathabs_original_pathrelpathmodule_namegradio_foldermessagemessage_change_countwatching_dirs
abs_parentabs_current	is_subdirwds                  r   _setup_configrE   +   s   
 OOMm44  ""  ++DHJJ77gnw|344<<RW[#NNK00118MGM
=!! "m "]+++(((((!")J
: &Z(((1$$sNG%
%%%%(**%%''K
; +K}$D$D	%%k222II 	 	 	III	 	+] 	+  ---#q((3*K****G#)r " "88=((  $$$#q((3zBzzz!G	'D. HOOAry{{###)+J+JM+J+J+JJJs   3G GG utf-8	demo_namer"   
watch_dirsencodingc           	     @   t          j         t           j        d            t          j         t           j        d            t          | ||          \  }}}t	          t
          j        d                    |          ||t          |          |          }dt
          j        v rt
          j        d         |d<   t          j
        t          j        d|g|          }	|	                                /	 |	                                 d S # t          t           f$ r Y d S w xY wd S )Nc                    t                      S Nr   _signum_frames     r   <lambda>zmain.<locals>.<lambda>q   s    9J9L9L r&   c                    t                      S rM   rN   rO   s     r   rR   zmain.<locals>.<lambda>r   s    :K:M:M r&   r   )GRADIO_WATCH_DIRSGRADIO_WATCH_MODULE_NAMEGRADIO_WATCH_DEMO_NAMEGRADIO_WATCH_DEMO_PATHGRADIO_WATCH_ENCODINGr   z-u)env)signalSIGINTSIGTERMrE   dictr   environjoinr"   
subprocessPopenr   
executablepollwaitKeyboardInterruptOSError)
r   rH   rI   rJ   r   r<   r.   watch_sourcesenv_varspopens
             r   mainrj   j   s,    M&-!L!LMMM
M&."M"MNNN (5:}( ($K} 

((=11!,("4yy&  H RZ''')z2D'E#$	t$  E zz||	JJLLLLL!7+ 	 	 	DD	 s   0D DD__main__)NF)r   r   r   r   r   r   )rF   NrG   F)
r   r   rH   r"   rI   r   rJ   r"   r   r   )__doc__
__future__r   r0   r   rZ   r`   r   	threadingpathlibr   typerrichr   r2   r   localreload_threadr   rE   rj   __name__runr!   r&   r   <module>rv      s<    # " " " " "  				      



                        	!!  " /3<K <K <K <K <KB #'% % % % %P zEIdOOOOO r&   