grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 þ“qcDUã@sàdZddlZddlZddlZddlZddlZddddddgZGd d„deƒZiZ gZ dd d d„Z dd d„Z dd dd„Z dd„Zdd„Zd dd„ZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd „d eƒZGd!d"„d"eƒZeZGd#d$„d$eƒZGd%d&„d&eƒZGd'd(„d(eƒZGd)d*„d*eƒZd+d,„Zej j d-ƒr eƒej j d.ƒrÔej!d/ƒr@e d/ded/ƒƒej!d0ƒree d0ded0ƒƒej!d1ƒrŠe d1ded1ƒƒej!d2ƒr¯e d2ded2ƒƒej!d3ƒrÔe d3ded3ƒƒej"dd4…d5kr‹Gd6d7„d7eƒZ#gZ iZ e d8e#ƒej$j%ej j d9d:ƒd;ƒZ&xHd<d=d>d?d@dAe&fD]+Z'ej!e'ƒr\e e'dee'ƒƒq\Wej"dBkr*GdCdD„dDeƒZ(GdEdF„dFeƒZ)e dGde)dGƒdOƒe d<de)d<ƒdPƒe dHde)dHƒdQƒe dDde)dIƒdRƒdJej kr½ej dJj*ej+ƒZ,e,j-ƒxRe,D]JZ.e.dKkrcee.dSƒZ/e/d dkrce e.dee.ƒdTƒqcWdZ.[.[,dLdM„Z0e1dNkrÜe0ƒdS)Uz?Interfaces for launching and remotely controlling Web browsers.éNÚErrorÚopenÚopen_newÚ open_new_tabÚgetÚregisterc@seZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©r r ú//opt/alt/python35/lib64/python3.5/webbrowser.pyr s écCsR||gt|jƒ<|dkr2tj|ƒn|dkrNtjd|ƒdS)z9Register a browser connector and, optionally, connection.rN)Ú _browsersÚlowerÚ _tryorderÚappendÚinsert)ÚnameÚklassÚinstanceÚupdate_tryorderr r r rs   c Csó|dk r|g}nt}xÂ|D]º}d|krwtj|ƒ}|ddkrjt|dd…ƒSt|ƒSq%yt|jƒ}Wntk r«t|ƒ}YnX|ddk rÄ|dS|ddk r%|dƒSq%Wt dƒ‚dS) zCReturn a browser launcher instance appropriate for the environment.Nz%sr ú&rz!could not locate runnable browseréÿÿÿÿr) rÚshlexÚsplitÚBackgroundBrowserÚGenericBrowserrrÚKeyErrorÚ _synthesizer)ZusingZ alternativesÚbrowserÚcommandr r r rs$      TcCs:x3tD]+}t|ƒ}|j|||ƒrdSqWdS)NTF)rrr)ÚurlÚnewÚ autoraiserrr r r r9s   cCs t|dƒS)Nr )r)r!r r r r@scCs t|dƒS)Né)r)r!r r r rCsc Csó|jƒd}tj|ƒs)ddgStjj|ƒ}yt|jƒ}Wntk rmddgSYnX|d}|ré|jƒ|jkréddl }|j |ƒ}||_ tjj|ƒ|_t |d||ƒd|gSddgS)a¾Attempt to synthesize a controller base on existing controllers. This is useful to create a controller when a user specifies a path to an entry in the BROWSER environment variable -- we can copy a general controller to operate using a specific installation of the desired browser in this way. If we can't create a controller in this way, or if there is no executable for the requested browser, return [None, None]. rNr ) rÚshutilÚwhichÚosÚpathÚbasenamerrrÚcopyrr)rrÚcmdrr Z controllerr*r r r rGs"       rc@sXeZdZdZdgZddd„Zdddd „Zd d „Zd d „ZdS)Ú BaseBrowserz3Parent class for all browsers. Do not use directly.z%sÚcCs||_||_dS)N)rr))Úselfrr r r Ú__init__ns zBaseBrowser.__init__rTcCs t‚dS)N)ÚNotImplementedError)r.r!r"r#r r r rrszBaseBrowser.opencCs|j|dƒS)Nr )r)r.r!r r r ruszBaseBrowser.open_newcCs|j|dƒS)Nr$)r)r.r!r r r rxszBaseBrowser.open_new_tabN) rr r Ú__doc__Úargsr/rrrr r r r r,is   r,c@s4eZdZdZdd„Zdddd„ZdS) rzVClass for all browsers started with a command and without remote functionality.cCsct|tƒr'||_dg|_n |d|_|dd…|_tjj|jƒ|_dS)Nz%srr )Ú isinstanceÚstrrr2r'r(r))r.rr r r r/€s   zGenericBrowser.__init__rTc s’|jg‡fdd†|jDƒ}yOtjdd…dkrTtj|ƒ}ntj|ddƒ}|jƒ SWntk r�dSYnXdS)Ncs"g|]}|jdˆƒ‘qS)z%s)Úreplace)Ú.0Úarg)r!r r ú ‹s z'GenericBrowser.open..éÚwinÚ close_fdsTF)rr2ÚsysÚplatformÚ subprocessÚPopenÚwaitÚOSError)r.r!r"r#ÚcmdlineÚpr )r!r rŠs zGenericBrowser.openN)rr r r1r/rr r r r r|s  rc@s(eZdZdZdddd„ZdS)rzHClass for all browsers which are to be started in the background.rTc s�|jg‡fdd†|jDƒ}yZtjdd…dkrTtj|ƒ}ntj|ddddƒ}|jƒdkSWntk r˜dSYnXdS) Ncs"g|]}|jdˆƒ‘qS)z%s)r5)r6r7)r!r r r8œs z*BackgroundBrowser.open..r9r:r;TÚstart_new_sessionF)rr2r<r=r>r?ÚpollrA)r.r!r"r#rBrCr )r!r r›s  zBackgroundBrowser.openN)rr r r1rr r r r r—s rc@sdeZdZdZdZdZdZddgZdZdZ dZ dd„Z d dd d „Z dS) Ú UnixBrowserz=Parent class for all Unix browsers with remote functionality.NFTz%actionz%sc Cs g}|r=|jr=t|ƒ}|j|}|r=|g}|jg||}|s`|jrltj}nd}tj|ddd|d|jr™|pœdd|ddƒ}|rëy|jdƒ} | SWqtj k rçdSYqXn1|jr|j ƒdkr dSdSn |jƒ SdS) Nr;TÚstdinÚstdoutÚstderrrDéF) Ú raise_optsÚintrÚ backgroundr>ÚDEVNULLr?Úredirect_stdoutr@ZTimeoutExpiredrE) r.r2Zremoter#Z raise_optZoptrBZinoutrCÚrcr r r Ú_invokeºs0       zUnixBrowser._invokercsû|dkr|j‰n_|dkr0|j‰nG|dkrc|jdkrW|j‰qw|j‰ntdd|ƒ‚‡‡fdd†|jDƒ}dd„|Dƒ}|j|d |ƒ}|só‡fd d†|jDƒ}|j|d d ƒSd SdS) Nrr r$zBad 'new' parameter to open(); zexpected 0, 1, or 2, got %scs.g|]$}|jdˆƒjdˆƒ‘qS)z%sz%action)r5)r6r7)Úactionr!r r r8ës z$UnixBrowser.open..cSsg|]}|r|‘qSr r )r6r7r r r r8ís Tcs"g|]}|jdˆƒ‘qS)z%s)r5)r6r7)r!r r r8ñs F)Ú remote_actionÚremote_action_newwinÚremote_action_newtabrÚ remote_argsrQr2)r.r!r"r#r2Zsuccessr )rRr!r rÝs$        zUnixBrowser.open) rr r r1rKrMrOrVrSrTrUrQrr r r r rF©s   #rFc@s:eZdZdZddgZdZdZdZdZdS) ÚMozillaz$Launcher class for Mozilla browsers.z%actionz%sr-z -new-windowz-new-tabTN) rr r r1rVrSrTrUrMr r r r rW÷s  rWc@sFeZdZdZddgZddgZdZdZdZd Z d S) ÚNetscapez$Launcher class for Netscape browser.z-noraisez-raisez-remotezopenURL(%s%action)r-z ,new-windowz,new-tabTN) rr r r1rKrVrSrTrUrMr r r r rXs   rXc@s@eZdZdZddgZddgZdZdZdZd S) ÚGaleonz,Launcher class for Galeon/Epiphany browsers.z-noraiser-z%actionz%sz-nz-wTN) rr r r1rKrVrSrTrMr r r r rY s   rYc@s:eZdZdZddgZdZdZdZdZdS)ÚChromez)Launcher class for Google Chrome browser.z%actionz%sr-z --new-windowTN) rr r r1rVrSrTrUrMr r r r rZs  rZc@sFeZdZdZddgZddgZdZdZdZdZ d S) ÚOperaz!Launcher class for Opera browser.z-noraiser-z-remotezopenURL(%s%action)z ,new-windowz ,new-pageTN) rr r r1rKrVrSrTrUrMr r r r r["s   r[c@s@eZdZdZddgZdZdZdZdZdZ dS) ÚElinksz#Launcher class for Elinks browsers.z-remotezopenURL(%s%action)r-z ,new-windowz,new-tabFN) rr r r1rVrSrTrUrMrOr r r r r\-s  r\c@s(eZdZdZdddd„ZdS)Ú Konquerorz±Controller for the KDE File Manager (kfm, or Konqueror). See the output of ``kfmclient --commands`` for more information on the Konqueror remote-control interface. rTc"CsG|dkrd}nd}tj}y4tjd||gddd|d|d |ƒ}Wntk rlYnX|jƒdSy:tjd d |gddd|d|d |d dƒ}Wntk rÉYnX|jƒdkràdSy:tjd d|gddd|d|d |d dƒ}Wntk r2dSYnX|jƒdkSdS)Nr$ZnewTabZopenURLÚ kfmclientr;TrGrHrIÚ konquerorz--silentrDÚkfmz-dF)r>rNr?rAr@rE)r.r!r"r#rRÚdevnullrCr r r rBs:               zKonqueror.openN)rr r r1rr r r r r];s r]c@s:eZdZdd„Zdd„Zdddd„Zd S) ÚGrailc Csddl}ddl}ddl}ddl}tjj|jƒdƒ}|jtj ƒƒd}tjj||dƒ}|j|ƒ}|s–dS|j|j |j ƒ} x^|D]V} y| j | ƒWn8t k rytj| ƒWnt k rYnXYqµX| SqµWdS)Nrz .grail-unixz-*)ÚglobÚpwdÚsocketÚtempfiler'r(ÚjoinZ gettempdirÚgetpwuidÚgetuidZAF_UNIXZ SOCK_STREAMZconnectrAÚunlink) r.rcrdrerfZtempdirÚuserÚfilenameZmaybesÚsÚfnr r r Ú_find_grail_rcss*         zGrail._find_grail_rccCs1|jƒ}|sdS|j|ƒ|jƒdS)Nrr )roÚsendÚclose)r.rRrmr r r Ú_remote�s    z Grail._remoterTcCs3|r|jd|ƒ}n|jd|ƒ}|S)NzLOADNEW zLOAD )rr)r.r!r"r#Úokr r r r•sz Grail.openN)rr r rorrrr r r r rbos   rbcCs�tjdƒr%tddtdƒƒdtjkrYtjdƒrYtddtdƒƒdtjkr�tjdƒr�tddtdƒƒdtjkrÁtjdƒrÁtdttdƒƒtjdƒrætddtdƒƒx3dD]+}tj|ƒrít|dt|ƒƒqíWx3dD]+}tj|ƒr#t|dt|ƒƒq#Wtjdƒrztdttdƒƒn%tjdƒrŸtdttdƒƒx3dD]+}tj|ƒr¦t|dt |ƒƒq¦Wtjdƒrútddtdƒƒx3d D]+}tj|ƒrt|dt |ƒƒqWtjdƒrUtddt dƒƒtjdƒrztddtdƒƒtjdƒr™tdt dƒdS)!Nzxdg-openZGNOME_DESKTOP_SESSION_IDz gvfs-openz gnome-openZKDE_FULL_SESSIONr^z x-www-browserÚfirefoxÚ iceweaselÚiceapeÚ seamonkeyúmozilla-firefoxúmozilla-firebirdÚfirebirdÚmozillaÚnetscaper`r_ÚgaleonÚepiphanyZ skipstoneú google-chromeÚchromeÚchromiumúchromium-browserÚoperaZmosaicZgrail)rtrurvrw)rxryrzr{r|)r}r~)rr€r�r‚) r%r&rrr'Úenvironr]rWrXrYrZr[rb)rr r r Úregister_X_browsers¤sH    r…ZDISPLAYZTERMz www-browserZlinksZelinksZlynxZw3mr9r:c@s"eZdZdddd„ZdS)ÚWindowsDefaultrTc Cs2ytj|ƒWntk r)dSYnXdSdS)NFT)r'Z startfilerA)r.r!r"r#r r r rÿs   zWindowsDefault.openN)rr r rr r r r r†þs r†zwindows-defaultZ PROGRAMFILESzC:\Program FileszInternet Explorer\IEXPLORE.EXErtrzrwr{r|rƒÚdarwinc@s4eZdZdZdd„Zdddd„ZdS) ÚMacOSXa{Launcher class for Aqua browsers on Mac OS X Optionally specify a browser name on instantiation. Note that this will not work for Aqua browsers if the user has moved the application package after installation. If no browser is specified, the default browser, as specified in the Internet System Preferences panel, will be used. cCs ||_dS)N)r)r.rr r r r/'szMacOSX.__init__rTc Csâd|krd|}tt|ƒƒ}|jdkrPd|jddƒ}nR|jdkrhd}nd |d }d |jddƒ}d |j||f}tjd dƒ}|dkrÄdS|j|ƒ|jƒ}| S)Nú:zfile:Údefaultzopen location "%s"ú"z%22ZOmniWebr-z toWindow %dr z OpenURL "%s"z‰tell application "%s" activate %s %s end tellÚ osascriptÚwF)rLÚboolrr5r'ÚpopenÚwriterq) r.r!r"r#ÚscriptZtoWindowr+ÚosapiperPr r r r*s       z MacOSX.openN)rr r r1r/rr r r r rˆs  rˆc@s.eZdZdd„Zdddd„ZdS)ÚMacOSXOSAScriptcCs ||_dS)N)Ú_name)r.rr r r r/LszMacOSXOSAScript.__init__rTcCs‡|jdkr(d|jddƒ}nd|j|jddƒf}tjddƒ}|dkridS|j|ƒ|jƒ}| S) NrŠzopen location "%s"r‹z%22zž tell application "%s" activate open location "%s" end rŒr�F)r”r5r'r�r�rq)r.r!r"r#r‘r’rPr r r rOs   zMacOSXOSAScript.openN)rr r r/rr r r r r“Ks  r“Zsafarir€rŠZBROWSERr-c Cs?ddl}dtjd}y)|jtjdd…dƒ\}}Wn[|jk r£}z8t|dtjƒt|dtjƒtjdƒWYdd}~XnXd}x;|D]3\}}|dkrÒd}q±|dkr±d}q±Wt|ƒdkrt|dtjƒtjdƒ|d}t||ƒtd ƒdS) NrzDUsage: %s [-n | -t] url -n: open new window -t: open new tabr ZntdÚfilez-nz-tr$ú) Úgetoptr<ÚargvÚerrorÚprintrIÚexitÚlenr) r—ZusageZoptsr2ÚmsgZnew_winÚoÚar!r r r Úmains( )      r Ú__main__rrrrrr)2r1r'rr%r<r>Ú__all__Ú ExceptionrrrrrrrrrÚobjectr,rrrFrWrXrYrZZChromiumr[r\r]rbr…r„r&r=r†r(rgZiexplorerrˆr“rÚpathsepZ _userchoicesÚreverserBr+r rr r r r Ús”       "N     45 B   .