ž ¬ÿfYc@s}dZddlZddlZddlZddlZddlZddlZddlZddddddgZGd d„de ƒZ iZ gZ dd d d„Zdd d„ZddTd d„Zdd„Zdd„Zd dd„Zejdd…dkrdd„Zn dd„Zdd„ZGdd„deƒZGdd„deƒZGdd„deƒZGdd „d eƒZGd!d"„d"eƒZeZGd#d$„d$eƒZGd%d&„d&eƒZ e Z!Gd'd(„d(eƒZ"Gd)d*„d*eƒZ#Gd+d,„d,eƒZ$Gd-d.„d.eƒZ%d/d0„Z&ej'jd1ƒrTe&ƒnej'jd2ƒr"ed3ƒr‹ed3ded3ƒƒned4ƒr°ed4ded4ƒƒned5ƒrÕed5de#d5ƒƒned6ƒrúed6ded6ƒƒned7ƒr"ed7ded7ƒƒq"nejdd…dkrÜGd8d9„d9eƒZ(gZ iZ ed:e(ƒej)j*ej'jd;d<ƒd=ƒZ+xKd>d?d@dAdBdCe+fD]+Z,ee,ƒrªee,dee,ƒƒqªqªWnejdDkreGdEdF„dFeƒZ-GdGdH„dHeƒZ.edIde.dIƒdUƒed>de.d>ƒdVƒedFde.dJƒdWƒnejdd…dKkr»edBƒr»gZ iZ edLdedMdBdNgƒdXƒndOej'krWej'dOj/ej0ƒZ1e1j2ƒxXe1D]PZ3e3dPkrôee3dYƒZ4e4d dkrDee3dee3ƒdZƒqDqôqôWdZ3[3[1ndQdR„Z5e6dSkrye5ƒndS([u?Interfaces for launching and remotely controlling Web browsers.iNuErroruopenuopen_newu open_new_tabugeturegistercBs|EeZdZdS(uErrorN(u__name__u __module__u __qualname__(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuErrorsicCsU||gt|jƒ<|dkr2tj|ƒn|dkrQtjd|ƒndS(u9Register a browser connector and, optionally, connection.iN(u _browsersuloweru _tryorderuappenduinsert(unameuklassuinstanceuupdate_tryorder((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuregisters   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( uCReturn a browser launcher instance appropriate for the environment.u%siu&Niu!could not locate runnable browseriÿÿÿÿiÿÿÿÿ( uNoneu _tryorderushlexusplituBackgroundBrowseruGenericBrowseru _browsersuloweruKeyErroru _synthesizeuError(uusingu alternativesubrowserucommand((u//opt/alt/python33/lib64/python3.3/webbrowser.pyugets$      cCs:x3tD]+}t|ƒ}|j|||ƒrdSqWdS(NTF(u _tryorderugetuopenuTrueuFalse(uurlunewu autoraiseunameubrowser((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen;s   cCs t|dƒS(Ni(uopen(uurl((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen_newBscCs t|dƒS(Ni(uopen(uurl((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu open_new_tabEscCsð|jƒd}t|ƒs&ddgStjj|ƒ}yt|jƒ}Wntk rjddgSYnX|d}|ræ|jƒ|jkræddl }|j |ƒ}||_ tjj|ƒ|_t |d||ƒd|gSddgS(u¾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]. iiN( usplitu _iscommanduNoneuosupathubasenameu _browsersuloweruKeyErrorucopyunameuregister(ubrowseruupdate_tryorderucmdunameucommandu controllerucopy((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu _synthesizeIs"        u _synthesizeiuwincCs`|jƒ}tjj|ƒr1|jdƒr1dSx(dD] }tjj||ƒr8dSq8WdS(Nu.exeu.bat(u.exeu.batT(u.exeu.batF(uloweruosupathuisfileuendswithuTrueuFalse(ucmduext((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu _isexecutablejs ! u _isexecutablecCsZtjj|ƒrVtj|ƒtj}|tj@sO|tj@sO|tj@rVdSndS(NTF( uosupathuisfileustatuST_MODEuS_IXUSRuS_IXGRPuS_IXOTHuTrueuFalse(ucmdumode((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu _isexecutabless 'cCsrt|ƒrdStjjdƒ}|s,dSx?|jtjƒD]+}tjj ||ƒ}t|ƒr?dSq?WdS(uSReturn True if cmd is executable or can be found on the executable search path.uPATHTF( u _isexecutableuTrueuosuenvironugetuFalseusplitupathsepupathujoin(ucmdupathuduexe((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu _iscommandzs  u _iscommandcBs\|EeZdZdZdgZddd„Zdddd„Zd d „Zd d „Z d S(u BaseBrowseru3Parent class for all browsers. Do not use directly.u%sucCs||_||_dS(N(unameubasename(uselfuname((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu__init__s uBaseBrowser.__init__icCs t‚dS(N(uNotImplementedError(uselfuurlunewu autoraise((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen”suBaseBrowser.opencCs|j|dƒS(Ni(uopen(uselfuurl((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen_new—suBaseBrowser.open_newcCs|j|dƒS(Ni(uopen(uselfuurl((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu open_new_tabšsuBaseBrowser.open_new_tabNT( u__name__u __module__u __qualname__u__doc__uargsu__init__uTrueuopenuopen_newu open_new_tab(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu BaseBrowser‹s   u BaseBrowsercBs8|EeZdZdZdd„Zdddd„ZdS( uGenericBrowseruVClass for all browsers started with a command and without remote functionality.cCsct|tƒr'||_dg|_n |d|_|dd…|_tjj|jƒ|_dS(Nu%sii(u isinstanceustrunameuargsuosupathubasename(uselfuname((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu__init__¢s   uGenericBrowser.__init__ic s’|jg‡fdd†|jDƒ}yOtjdd…dkrTtj|ƒ}ntj|ddƒ}|jƒ SWntk rdSYnXdS(Ncs"g|]}|jdˆƒ‘qS(u%s(ureplace(u.0uarg(uurl(u//opt/alt/python33/lib64/python3.3/webbrowser.pyu ­s u'GenericBrowser.open..iuwinu close_fdsTF( unameuargsusysuplatformu subprocessuPopenuTrueuwaituOSErroruFalse(uselfuurlunewu autoraiseucmdlineup((uurlu//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen¬s uGenericBrowser.openNT(u__name__u __module__u __qualname__u__doc__u__init__uTrueuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuGenericBrowseržs uGenericBrowsercBs,|EeZdZdZdddd„ZdS(uBackgroundBrowseruHClass for all browsers which are to be started in the background.ic sÊ|jg‡fdd†|jDƒ}y‡tjdd…dkrTtj|ƒ}nHttddƒ}|sttddƒ}ntj|dd d|ƒ}|j ƒdkSWnt k rÅd SYnXdS( Ncs"g|]}|jdˆƒ‘qS(u%s(ureplace(u.0uarg(uurl(u//opt/alt/python33/lib64/python3.3/webbrowser.pyu ¾s u*BackgroundBrowser.open..iuwinusetsidusetpgrpu close_fdsu preexec_fnTF( unameuargsusysuplatformu subprocessuPopenugetattruosuNoneuTrueupolluOSErroruFalse(uselfuurlunewu autoraiseucmdlineupusetsid((uurlu//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen½s uBackgroundBrowser.openNT(u__name__u __module__u __qualname__u__doc__uTrueuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuBackgroundBrowser¹suBackgroundBrowsercBsh|EeZdZdZd Zd Zd Z ddgZ d Z d Z d Z dd„Zdd dd„Zd S( u UnixBrowseru=Parent class for all Unix browsers with remote functionality.u%actionu%sc Cs&g}|rC|jrCt|ƒ}|j|}|rC|g}qCn|jg||}|sf|jrrtj}nd}tj|ddd|d|j rŸ|p¢dd|ddƒ}|rñy|j dƒ} | SWq"tj k rídSYq"Xn1|jr|j ƒdkrdSdSn |j ƒ SdS( Nu close_fdsustdinustdoutustderrustart_new_sessioniTF(u raise_optsuintunameu backgroundu subprocessuDEVNULLuNoneuPopenuTrueuredirect_stdoutuwaituTimeoutExpiredupolluFalse( uselfuargsuremoteu autoraiseu raise_optuoptucmdlineuinoutupurc((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu_invokeÞs0      uUnixBrowser._invokeicsû|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( NiiiuBad 'new' parameter to open(); uexpected 0, 1, or 2, got %scs.g|]$}|jdˆƒjdˆƒ‘qS(u%su%action(ureplace(u.0uarg(uactionuurl(u//opt/alt/python33/lib64/python3.3/webbrowser.pyu s u$UnixBrowser.open..cSsg|]}|r|‘qS(((u.0uarg((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu s cs"g|]}|jdˆƒ‘qS(u%s(ureplace(u.0uarg(uurl(u//opt/alt/python33/lib64/python3.3/webbrowser.pyu s TF( u remote_actionuremote_action_newwinuremote_action_newtabuNoneuErroru remote_argsu_invokeuTrueuargsuFalse(uselfuurlunewu autoraiseuargsusuccess((uactionuurlu//opt/alt/python33/lib64/python3.3/webbrowser.pyuopens$        uUnixBrowser.openNFT(u__name__u __module__u __qualname__u__doc__uNoneu raise_optsuFalseu backgrounduTrueuredirect_stdoutu remote_argsu remote_actionuremote_action_newwinuremote_action_newtabu_invokeuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu UnixBrowserÍs  #u UnixBrowsercBsJ|EeZdZdZddgZddgZdZdZdZd Z d S( uMozillau-Launcher class for Mozilla/Netscape browsers.u-noraiseu-raiseu-remoteuopenURL(%s%action)uu ,new-windowu,new-tabNT( u__name__u __module__u __qualname__u__doc__u raise_optsu remote_argsu remote_actionuremote_action_newwinuremote_action_newtabuTrueu background(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuMozillas  uMozillacBsD|EeZdZdZddgZddgZdZdZd Z dS( uGaleonu,Launcher class for Galeon/Epiphany browsers.u-noraiseuu%actionu%su-nu-wNT( u__name__u __module__u __qualname__u__doc__u raise_optsu remote_argsu remote_actionuremote_action_newwinuTrueu background(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuGaleon(s   uGaleoncBs>|EeZdZdZddgZdZdZdZdZ dS(uChromeu)Launcher class for Google Chrome browser.u%actionu%suu --new-windowNT( u__name__u __module__u __qualname__u__doc__u remote_argsu remote_actionuremote_action_newwinuremote_action_newtabuTrueu background(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuChrome2s  uChromecBsJ|EeZdZdZddgZddgZdZdZdZd Z dS( uOperau!Launcher class for Opera browser.u-noraiseuu-remoteuopenURL(%s%action)u ,new-windowu ,new-pageNT( u__name__u __module__u __qualname__u__doc__u raise_optsu remote_argsu remote_actionuremote_action_newwinuremote_action_newtabuTrueu background(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuOpera>s  uOperacBsD|EeZdZdZddgZdZdZdZdZ dZ dS( uElinksu#Launcher class for Elinks browsers.u-remoteuopenURL(%s%action)uu ,new-windowu,new-tabNF( u__name__u __module__u __qualname__u__doc__u remote_argsu remote_actionuremote_action_newwinuremote_action_newtabuFalseu backgrounduredirect_stdout(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuElinksIs uElinkscBs,|EeZdZdZdddd„ZdS(u Konqueroru±Controller for the KDE File Manager (kfm, or Konqueror). See the output of ``kfmclient --commands`` for more information on the Konqueror remote-control interface. ic"Cst|dkrd}nd}tj}ttddƒ}|sQttddƒ}ny4tjd||gddd|d |d |ƒ}Wntk r™YnX|jƒdSy:tjd d |gddd|d |d |d |ƒ}Wntk röYnX|j ƒdkr dSy:tjdd|gddd|d |d |d |ƒ}Wntk r_dSYnX|j ƒdkSdS(NiunewTabuopenURLusetsidusetpgrpu kfmclientu close_fdsustdinustdoutustderru konqueroru--silentu preexec_fnukfmu-dTF( u subprocessuDEVNULLugetattruosuNoneuPopenuTrueuOSErroruwaitupolluFalse(uselfuurlunewu autoraiseuactionudevnullusetsidup((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen^s@               uKonqueror.openNT(u__name__u __module__u __qualname__u__doc__uTrueuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu KonquerorWsu KonquerorcBs>|EeZdZdd„Zdd„Zdd dd„ZdS( uGrailc Csddl}ddl}ddl}ddl}tjj|jƒdƒ}|jtj ƒƒd}tjj||dƒ}|j|ƒ}|s–dS|j|j |j ƒ} xa|D]Y} y| j | ƒWn;|jk r ytj| ƒWntk rYnXYqµX| SqµWdS(Niu .grail-unixu-*(uglobupwdusocketutempfileuosupathujoinu gettempdirugetpwuidugetuiduNoneuAF_UNIXu SOCK_STREAMuconnectuerroruunlinkuIOError( uselfuglobupwdusocketutempfileutempdiruuserufilenameumaybesusufn((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu_find_grail_rc”s*        uGrail._find_grail_rccCs1|jƒ}|sdS|j|ƒ|jƒdS(Nii(u_find_grail_rcusenduclose(uselfuactionus((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu_remote®s    u Grail._remoteicCs3|r|jd|ƒ}n|jd|ƒ}|S(NuLOADNEW uLOAD (u_remote(uselfuurlunewu autoraiseuok((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopen¶su Grail.openNT(u__name__u __module__u __qualname__u_find_grail_rcu_remoteuTrueuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuGrails  uGrailc Csdtdƒr%tddtdƒƒndtjkrYtdƒrYtddtdƒƒndtjkrtdƒrtddtdƒƒndtjkrÁtdƒrÁtdttdƒƒntdƒrætddtdƒƒnx3dD]+}t|ƒrít|dt|ƒƒqíqíWtdƒrAtdttdƒƒn%tdƒrftdttdƒƒnx3dD]+}t|ƒrmt|dt|ƒƒqmqmWtdƒrÁtddtdƒƒnx3dD]+}t|ƒrÈt|dt |ƒƒqÈqÈWtdƒrtddt dƒƒntdƒrAtddtdƒƒntdƒr`tdt dƒndS( Nuxdg-openuGNOME_DESKTOP_SESSION_IDu gvfs-openu gnome-openuKDE_FULL_SESSIONu kfmclientu x-www-browserumozilla-firefoxufirefoxumozilla-firebirdufirebirdu iceweaseluiceapeu seamonkeyumozillaunetscapeukfmu konquerorugaleonuepiphanyu skipstoneu google-chromeuchromeuchromiumuchromium-browseruoperaumosaicugrail( umozilla-firefoxufirefoxumozilla-firebirdufirebirdu iceweaseluiceapeu seamonkeyumozillaunetscape(ugaleonuepiphany(u google-chromeuchromeuchromiumuchromium-browser( u _iscommanduregisteruNoneuBackgroundBrowseruosuenvironu KonqueroruMozillauGaleonuChromeuOperauGrail(ubrowser((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuregister_X_browsersÅsD              uregister_X_browsersuDISPLAYuTERMu www-browserulinksuelinksulynxuw3mcBs&|EeZdZdddd„ZdS(uWindowsDefaultic Cs2ytj|ƒWntk r)dSYnXdSdS(NFT(uosu startfileu WindowsErroruFalseuTrue(uselfuurlunewu autoraise((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopens   uWindowsDefault.openNT(u__name__u __module__u __qualname__uTrueuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuWindowsDefaultsuWindowsDefaultuwindows-defaultu PROGRAMFILESuC:\Program FilesuInternet Explorer\IEXPLORE.EXEufirefoxufirebirdu seamonkeyumozillaunetscapeuoperaudarwincBs8|EeZdZdZdd„Zdddd„ZdS( uMacOSXu{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(uname(uselfuname((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu__init__DsuMacOSX.__init__ic Cs÷d|kst‚d|kr+d|}ntt|ƒƒ}|jdkred|jddƒ}nR|jdkr}d }nd |d }d |jddƒ}d |j||f}tjddƒ}|dkrÙdS|j |ƒ|j ƒ}| S(Nu'u:ufile:udefaultuopen location "%s"u"u%22uOmniWebuu toWindow %diu OpenURL "%s"u‰tell application "%s" activate %s %s end tellu osascriptuwF( uAssertionErroruintuboolunameureplaceuosupopenuNoneuFalseuwriteuclose( uselfuurlunewu autoraiseuscriptutoWindowucmduosapipeurc((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopenGs"      u MacOSX.openNT(u__name__u __module__u __qualname__u__doc__u__init__uTrueuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuMacOSX:s  uMacOSXcBs2|EeZdZdd„Zdddd„ZdS(uMacOSXOSAScriptcCs ||_dS(N(u_name(uselfuname((u//opt/alt/python33/lib64/python3.3/webbrowser.pyu__init__isuMacOSXOSAScript.__init__icCs‡|jdkr(d|jddƒ}nd|j|jddƒf}tjddƒ}|dkridS|j|ƒ|jƒ}| S( Nudefaultuopen location "%s"u"u%22už tell application "%s" activate open location "%s" end u osascriptuwF(u_nameureplaceuosupopenuNoneuFalseuwriteuclose(uselfuurlunewu autoraiseuscriptuosapipeurc((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuopenls   uMacOSXOSAScript.openNT(u__name__u __module__u __qualname__u__init__uTrueuopen(u __locals__((u//opt/alt/python33/lib64/python3.3/webbrowser.pyuMacOSXOSAScripths uMacOSXOSAScriptusafariudefaultuos2u os2netscapeustartu%suBROWSERuc CsEddl}dtjd}y)|jtjdd…dƒ\}}Wn[|jk r£}z8t|dtjƒt|dtjƒtjdƒWYdd}~XnXd}x>|D]6\}}|dkrÒd}q±|dkr±d}q±q±Wt|ƒdkr t|dtjƒtjdƒn|d}t||ƒtd ƒdS( NiuDUsage: %s [-n | -t] url -n: open new window -t: open new tabiuntdufileu-nu-tiu( ugetoptusysuargvuerroruprintustderruexitulenuopen( ugetoptuusageuoptsuargsumsgunew_winuouauurl((u//opt/alt/python33/lib64/python3.3/webbrowser.pyumain¦s( )     umainu__main__Tiÿÿÿÿiÿÿÿÿiÿÿÿÿiÿÿÿÿiÿÿÿÿiÿÿÿÿ(7u__doc__uiouosushlexusysustatu subprocessutimeu__all__u ExceptionuErroru _browsersu _tryorderuNoneuregisterugetuTrueuopenuopen_newu open_new_tabu _synthesizeuplatformu _isexecutableu _iscommanduobjectu BaseBrowseruGenericBrowseruBackgroundBrowseru UnixBrowseruMozillauNetscapeuGaleonuChromeuChromiumuOperauElinksu KonqueroruGrailuregister_X_browsersuenvironuWindowsDefaultupathujoinuiexploreubrowseruMacOSXuMacOSXOSAScriptusplitupathsepu _userchoicesureverseucmdlineucmdumainu__name__(((u//opt/alt/python33/lib64/python3.3/webbrowser.pyus¨            N    95 >           .%    #