;i ddlmZddlZddlZddlmZmZejdkrPdejvs e eddr:ej e ej de_ ej e ej de_ ddlZddlZddlZddlZddlZddlZddlZdd lmZdd lmZdd lmZmZmZerdd lmZddlZdd lm Z m!Z!ddl"m#Z#m$Z$m%Z%ededZ&ededZ'ej(dZ)da*d.dZ+Gddej,Z-GddZ.ede.dZ/Gddej,Z0Gdd e d!Z1de.fd/d+Z2dd,ge.fd0d-Z3dS)1) annotationsN)TypeVarcastwin32z pythonw.exefrozenFw)ThreadingMixIn) TYPE_CHECKINGWSGIRequestHandler WSGIServer make_server)WSGIApplication) TypedDictUnpack)abspathis_app is_local_urlWRHT_coT)bound covariantWST_co pywebviewreturnintcV tjdd}tjtjtj5} |d|f|cdddS#t $r+td|zYdddwxYw#1swxYwY)NTii localhostzPort %s is in use) randomrandintsocketAF_INET SOCK_STREAMbindOSErrorloggerwarning)portsocks @C:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\webview/http.py_get_random_portr+*s ~dE** ]6>6+= > > $  ;-...            2T9:::                  s6BA'B''BBBBB#&B#ceZdZddZdS)ThreadedAdapterhandlerrrNonec|jrGddt}||jd<Gddtt}t |j|j|fd|i|j}|dS)NceZdZdZdS))ThreadedAdapter.run..QuietHandlercdSN)args_s r* log_requestz5ThreadedAdapter.run..QuietHandler.log_request=sDN)__name__ __module__ __qualname__r8r5r9r* QuietHandlerr2<s#r9r= handler_classceZdZdS)*ThreadedAdapter.run..ThreadAdapterN)r:r;r<r5r9r* ThreadAdapterr@Bs Dr9rA server_class) quietr optionsr r rhostr( serve_forever)selfr.r=rAservers r*runzThreadedAdapter.run9s : 9     1   -9DL )     NJ    Ity'  8E IM   r9Nr.rrr/r:r;r<rIr5r9r*r-r-8s(r9r-cJeZdZddZe ddd ZeddZdS) BottleServerrr/cd|_d|_d|_i|_d|_t t j|_dS)N/F) root_pathrunningaddress js_callbackjs_api_endpointstruuiduuid1uidrGs r*__init__zBottleServer.__init__Ls@  #tz||$$r9Nurls list[str] http_port int | Nonekeyfilecertfile$tuple[str, str | None, BottleServer]c" ddlm d|D}| t|dkr |d d}nZd|D}t|dkrtj|nd}|Ktjt|stj|}t d|z|t|nd _ t d j ztj d j fd } d  d  fd } |t|nd _ |p t# _|r?|r=t' j_t)d |t)d|nt*t-j fdd _ jd _|r|rdnd} | d jd  _||_ jd j _ j| fS)Nr)_statec0g|]}t||Sr5)r.0us r* z-BottleServer.start_server..Zs#---a6!99----r9.cbg|],}t||dd-S)#r)rsplitres r*rhz-BottleServer.start_server..as1KKKa<??K!''#,,q/KKKr9zComon path for local URLs: %szHTTP server root path: %sz/js_api/cdtjjd<dtjjd<dtjjd<tjtjjd}|dj vr.tj j |d|St d |dzdS) N*zAccess-Control-Allow-OriginzPUT, GET, POST, DELETE, OPTIONSzAccess-Control-Allow-Methodsz.js_apijsIL'(EF5'(FGS'(FGz&."5":":"<"<"C"CG"L"LMM;&"444:&Ef&8e&Ed&K&KLLLLL!PSWX]S^!^_____r9rOz /c jsdStjddtjddtjddtj|jS) Nz Cache-Controlz#no-cache, no-store, must-revalidatePragmazno-cacheExpiresr)root)rProrp set_header static_file)filerHs r*assetz(BottleServer.start_server..assetzsw'2**?z+BottleServer.start_server..s+6:V[FSZOH[r9T)targetdaemonhttpshttpz ://127.0.0.1:zjs_api/)webviewrclenospath commonpathisdirrdirnamer&rrProBottlepostrXrouter+r(SSLWSGIRefServersetattrr- threadingThreadthreadstartrQrR common_pathrT)clsr[r]r_r`appsr local_urlsrzrprotocolrcrrHrs @@@@r* start_serverzBottleServer.start_serverTs #"""""--4--- t99q==q'CKKKK4KKKJ(>77$AA6;AAA%$*N!G!G6:!G!G~{F22r9boolc|jSr4)rQrYs r* is_runningzBottleServer.is_runnings |r9rr/)NN) r[r\r]r^r_r/r`r/rra)rr)r:r;r<rZ classmethodrpropertyrr5r9r*rMrMKsv%%%%\`F3F3F3F3[F3PXr9rM ServerTypeceZdZddZdS)rr.rrr/cl ddl ddlmm}m}Gfdd}t t jd|}t tjd|}dj vr |j j krG fdd |}tj}|jj|j j|||_|jjd j_jj_t,jjrt-jj jdS#t6$rjwxYw) Nrr c&eZdZddZdfd ZdS) *SSLWSGIRefServer.run..FixedHandlerrrUc|jdS)Nr)client_addressrYs r*address_stringz9SSLWSGIRefServer.run..FixedHandler.address_strings*1--r9r/c0js j|i|SdSr4)rCr8)r6kwr rGs r*r8z6SSLWSGIRefServer.run..FixedHandler.log_requests3zG9-94F2FFFGGr9N)rrUr)r:r;r<rr8)r rGsr* FixedHandlerrsU . . . . G G G G G G G G Gr9rr>rB:ceZdZjZdS)(SSLWSGIRefServer.run..server_clsN)r:r;r<AF_INET6address_family)r!sr* server_clsrs%+_NNNr9rT) server_side)r!wsgiref.simple_serverr r rrrrDgetrrErr"ssl SSLContextload_cert_chainrrr(srv wrap_socket server_portrrexistsunlinkrFKeyboardInterrupt server_close) rGr.r rr handler_clsr ssl_contextr r!s ` @@r*rIzSSLWSGIRefServer.runs UUUUUUUUUU G G G G G G G G- G G G7DL$4$4_l$S$STT &$,"2"2>:"N"NOO $)  (FN::5555555555n&& ##D$;T=STTT;ty$)Wj+VV%11$(/t1TTH( 7>>$0 1 1 . Id, - - -  H " " $ $ $ $ $     H ! ! # # #  s 3F%F3NrJrKr5r9r*rrs(!!!!!!r9rc$eZdZUded<ded<dS) ServerArgsr/r_r`N)r:r;r<__annotations__r5r9r*rrs"MMMNNNNNr9r)totalr[r\r]r^rHtype[ServerType] server_argsUnpack[ServerArgs]rac 6||nt}|j||fi|Sr4)rMr)r[r]rHrs r*rrs/ )VV|F 6 tY > >+ > >>r9ric >td|||d|\}}a||tfS)N)r[r]rHr5)r global_server)r]r[rHrrRrs r*start_global_serverrsB+7+ Yv++9D++'G[- K ..r9)rr) r[r\r]r^rHrrrrra) r]r^r[r\rHrrrrra)4 __future__rrsystypingrrplatform executablegetattrstderropendevnullstdoutrrloggingrr!rrrV socketserverr r rr r r wsgiref.typesrrotyping_extensionsrrutilrrrrr getLoggerr&rr+ ServerAdapterr-rMrrrrrr5r9r*rs"""""" <7  ? ?773PXZ_C`C` ? zT"*c**  zT"*c**    '''''' MMMMMMMMMM.------ ////////////////// ')#5 F F F t < < <  ; ' '     f*&TTTTTTTTnW\ F F F """""v+"""J%!+?????!e+ / / / / / / /r9