
    PiB	                        d Z ddlm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mZmZ dZ ej        d          ZddZddZdS )z^
Defines helper methods useful for setting up ports, launching servers, and
creating tunnels.
    )annotationsN)Path)App)CERTIFICATE_PATHTunnelz(https://api.gradio.app/v3/tunnel-requestGRADIO_SHARE_SERVER_ADDRESS
local_hoststr
local_portintshare_tokenshare_server_address
str | Noneshare_server_tls_certificatereturnc                   |t           n|}|	 t          j        t          d          }|                                d         }|d         t          |d                   }}|d         }	t          t                    j        	                    dd           t          t          d	          5 }
|
                    |	           d d d            n# 1 swxY w Y   t          }nI# t          $ r}t          d
          |d }~ww xY w|                    d          \  }}t          |          }t          ||| |||          }|                                }|S )N   )timeoutr   hostportroot_caT)parentsexist_okwz0Could not get share link from Gradio API Server.:)r   httpxgetGRADIO_API_SERVERjsonr   r   r   parentmkdiropenwrite	ExceptionRuntimeErrorsplitr   start_tunnel)r	   r   r   r   r   responsepayloadremote_hostremote_portcertificatefetunneladdresss                 e/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/gradio/networking.pysetup_tunnelr2      s     ' 	$#! 
 #	y!2B???Hmmooa(G'.vGFO8L8LK!),K!"")//t/LLL&,, %$$$% % % % % % % % % % % % % % %+;(( 	 	 	B 	
 $8#=#=c#B#B [+&&$ F !!##GNs<   BC! ,CC! CC! C
C! !
D +C;;D urlboolc                j   	 t          d          D ]x}t          j                    5  t          j        d           t	          j        | dd          }d d d            n# 1 swxY w Y   |j        dv r dS t          j        d           yn(# t          t          j
        t          j        f$ r Y dS w xY wdS )	N   ignore   F)r   verify)   i  i.  i/  i3  Tg      ?)rangewarningscatch_warningsfilterwarningsr   headstatus_codetimesleepConnectionErrorConnectErrorTimeoutException)r3   _rs      r1   url_okrH   ?   s   q 	 	A(** = ='111JsAe<<<= = = = = = = = = = = = = = = !:::ttJu	 U/1GH   uu5s:   $B ,AB A"	"B %A"	&B 5B !B0/B0)r	   r
   r   r   r   r
   r   r   r   r   r   r
   )r3   r
   r   r4   )__doc__
__future__r   osrA   r<   pathlibr   r   gradio.routesr   gradio.tunnelingr   r   r   getenvr   r2   rH        r1   <module>rR      s    
 # " " " " " 				                5 5 5 5 5 5 5 5> 'bi(EFF & & & &R     rQ   