
    AF[iU                       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       yy)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      r1t        j                  d      dk(  r	 ddlm}   |         t	        d       t        j                  d       y# t
        $ r}t	        d|        Y d}~2d}~ww xY w)	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     c/var/www/html/chatbot/moweb-chatbot/venv/lib/python3.12/site-packages/gradio/cli/commands/reload.py_handle_interruptr      sm     
yy#$3G)HF)R	A.H23 HHQK  	A;A3?@@	As   A 	A>&A99A>c                   t        |       }t        j                  |      }|j                         r$|j	                  t        j
                               }n|}t        |j                  |j                  z        j                  t        j                  j                  d      }t        t        j                  t                    j                  }d}d}	g }
t        |      j!                         r!|r|
j#                  |       |d| dz  }|	dz  }	|j                  }t        |      j!                         r$|
j#                  |       |	dk(  r|dz  }|d| dz  }t        j
                         j%                         }t        |      j!                         rA||
vr=	 |j	                  |       d}|r|sn$|
j#                  |       |	dk(  r|dz  }|d| dz  }|xs g D ]4  }t        |      |
vs|
j#                  |       |	dk(  r|dz  }|d| dz  }6 t)        |d
z          t*        j                  j-                  dt        j.                                |||
D cg c]  }t        |       c}fS # t&        $ r d	}Y w xY wc c}w )N.z	Watching:r   z ''   ,TF
)r   r   abspathis_absoluterelative_tocwdstrparentstemreplacer   pathsepinspectgetfilegradiostripappendabsolute
ValueErrorr   r   insertgetcwd)	demo_pathadditional_watch_dirswatch_libraryoriginal_pathabs_original_pathrelpathmodule_namegradio_foldermessagemessage_change_countwatching_dirs
abs_parentabs_current	is_subdirwdss                   r   _setup_configr>   +   sU   
 OMm4  "++DHHJ7gnnw||34<<RWW[[#NK0188MGM
=!m]+Ra((!"))J
:Z(1$sNGR
|1%%((*%%'K
;K}$D	%%k2I ]  -#q(3K=**G#)r "8=(  $#q(3B4qz!G" 
'D. HHOOAryy{#)M+JqCF+JJJ-  	I	, ,Ks   I+ I<+I98I9c           	     6   t        j                   t         j                  d        t        j                   t         j                  d        t        | ||      \  }}}t	        t
        j                  dj                  |      ||t        |      |      }dt
        j                  v rt
        j                  d   |d<   t        j                  t        j                  d|g|      }	|	j                         	 |	j                          y y # t        t         f$ r Y y w xY w)Nc                    t               S Nr   _signum_frames     r   <lambda>zmain.<locals>.<lambda>q   s
    9J9L     c                    t               S rA   rB   rC   s     r   rF   zmain.<locals>.<lambda>r   s
    :K:M rG   r   )GRADIO_WATCH_DIRSGRADIO_WATCH_MODULE_NAMEGRADIO_WATCH_DEMO_NAMEGRADIO_WATCH_DEMO_PATHGRADIO_WATCH_ENCODINGr   z-u)env)signalSIGINTSIGTERMr>   dictr   environjoinr   
subprocessPopenr   
executablepollwaitKeyboardInterruptOSError)
r.   	demo_name
watch_dirsencodingr0   r4   r#   watch_sourcesenv_varspopens
             r   mainrb   j   s     MM&--!LM
MM&.."MN (5:}($K} 


((=1!,("4y&H RZZ'')zz2D'E#$	t$E zz|	JJL  "7+ 		s   4D DD__main__)NF)r.   r   r/   list[str] | Noner0   bool) Nzutf-8F)
r.   r   r\   r   r]   rd   r^   r   r0   re   )__doc__
__future__r   r%   r   rO   rU   r   	threadingpathlibr   typerrichr   r'   r   localreload_threadr   r>   rb   __name__run rG   r   <module>rr      s    #  	   
      	!" /3<K<K+<K <KB #'%%% !% 	%
 %P zEIIdO rG   