³ò ©ËŽGc@sÕddkTddkTddkZdd+d„ƒYZdefd„ƒYZd„Zd„Zd efd „ƒYZd efd „ƒYZd efd„ƒYZ defd„ƒYZ de fd„ƒYZ de fd„ƒYZ de fd„ƒYZ de fd„ƒYZde fd„ƒYZde fd„ƒYZde fd„ƒYZde fd „ƒYZd!e fd"„ƒYZd#efd$„ƒYZd%efd&„ƒYZd'efd(„ƒYZd)efd*„ƒYZdS(,iÿÿÿÿ(t*NtSelectorcBs>eZd„Zd„Zd„Zd„Zd„Zd„ZRS(cCsdS(Ntselector((tself((spacman-3.29/src/Selector.pyttitle scCstdƒdS(NsMissing sel in Selector.(tabort(RtE((spacman-3.29/src/Selector.pytsel scCsÂt|dƒo‚ti|ƒ}|iƒx’|D]Z}|i|ƒ}t|dƒo(t|ƒdjo|i|ƒqŠq0|i|ƒq0Wn-|i|ƒoti|ƒ}n tƒ}|S(Nt __getitem__t__len__i( thasattrtcopytdeepcopytemptytselecttlentextendRtAND(RRtEstetF((spacman-3.29/src/Selector.pyR s  cCs…|i|ƒoti|ƒ}n_t|dƒoEt|dƒ o4tƒ}x1|D]}|i|i|ƒƒqTWn tƒ}|S(NRtattach(RR R R RRtselect2(RRRR((spacman-3.29/src/Selector.pyRs!  cCsz|i|ƒo ti|ƒ}|i|ƒnt|dƒo6t|dƒ o%x"|D]}|i||ƒqXWndS(NRR(RR R RR t reduceBase(RRRtE2R((spacman-3.29/src/Selector.pyR&s!cCs#tƒ}|i||ƒ|iƒS(N(RRtremoveDuplicates(RRR((spacman-3.29/src/Selector.pytreduce-s (t__name__t __module__RRRRRR(((spacman-3.29/src/Selector.pyRs     tUsernameSelectorcBseZd„Zd„ZRS(cCsdS(Nt Usernames((R((spacman-3.29/src/Selector.pyR4scCsz|idjo%|tdƒj o|tƒj p5|idjo-|idj o|itƒj odSndSdS(NtusernameRtcus-pop-ii(ttypetUsernameRt getusername(RR((spacman-3.29/src/Selector.pyR6s55(RRRR(((spacman-3.29/src/Selector.pyR3s cCst|d„ƒS(NcSsM|idjp=|idjp-|idjp|idjp |idjS(s SSH accesss Globus accesss add groupsadd users work space(R!(R((spacman-3.29/src/Selector.pyt=s(texists(R((spacman-3.29/src/Selector.pyt impliesAccess=scCs›tƒ}t|dƒo~t|dƒ omxj|D]^}|idjp|idjo"||ƒo|i|ƒqyn|it||ƒƒq1Wn|S(NRRtpackagetdepends(RR R!tappendRt getPackages(RRtPacsR((spacman-3.29/src/Selector.pyR*Bs !  tRemoteSelectorcBseZd„Zd„ZRS(cCsdS(NtRemotes((R((spacman-3.29/src/Selector.pyRLscCs=|idjp-|idjp|idjp |idjS(Nsremote installationspassive remote installationsremote packages remote group(R!(RR((spacman-3.29/src/Selector.pyRMs (RRRR(((spacman-3.29/src/Selector.pyR,Ks t ShellSelectorcBseZd„Zd„ZRS(cCsdS(NsShell Commands((R((spacman-3.29/src/Selector.pyRQscCs-|idjp|idjp |idjS(Ntshellsshell dialoguesuinstall shell command(R!(RR((spacman-3.29/src/Selector.pyRRs(RRRR(((spacman-3.29/src/Selector.pyR.Ps tQuestionSelectorcBseZd„Zd„ZRS(cCsdS(Nt Questions((R((spacman-3.29/src/Selector.pyRUscCsG|idjp7|idjo't|iƒdjo|iddjS(Ntchoicetcdiit?(R!Rtpath(RR((spacman-3.29/src/Selector.pyRVs(RRRR(((spacman-3.29/src/Selector.pyR0Ts t TypeSelectorcBs eZdZd„Zd„ZRS(tcCs|iS(N(R!(R((spacman-3.29/src/Selector.pyR\scCs|i|ijS(N(R!(RR((spacman-3.29/src/Selector.pyR]s(RRR!RR(((spacman-3.29/src/Selector.pyR6Zs tPackageSelectorcBs eZdZd„Zd„ZRS(R'cCs|iS(N(R!(R((spacman-3.29/src/Selector.pyRascCs |idjS(NtPackages(R(RR((spacman-3.29/src/Selector.pyRbs(RRR!RR(((spacman-3.29/src/Selector.pyR8_s tNewUserSelectorcBseZdZd„ZRS(sadd usercCsdS(NtAccounts((R((spacman-3.29/src/Selector.pyRfs(RRR!R(((spacman-3.29/src/Selector.pyR:dstRegistrySelectorcBseZdZd„ZRS(tregistercCsdS(NsRegistry Entries((R((spacman-3.29/src/Selector.pyRjs(RRR!R(((spacman-3.29/src/Selector.pyR<hstSSHAccessSelectorcBseZdZd„ZRS(s SSH accesscCsdS(Ns SSH access((R((spacman-3.29/src/Selector.pyRns(RRR!R(((spacman-3.29/src/Selector.pyR>lstGlobusAccessSelectorcBseZdZd„ZRS(s Globus accesscCsdS(Ns Globus access((R((spacman-3.29/src/Selector.pyRrs(RRR!R(((spacman-3.29/src/Selector.pyR?pstNewGroupSelectorcBseZdZd„ZRS(s add groupcCsdS(NtGroups((R((spacman-3.29/src/Selector.pyRvs(RRR!R(((spacman-3.29/src/Selector.pyR@tstUserChosenDirectorySelectorcBseZdZd„ZRS(schosen directorycCsdS(Ns Work Areas((R((spacman-3.29/src/Selector.pyRzs(RRR!R(((spacman-3.29/src/Selector.pyRBxstWorkSpaceSelectorcBseZdZd„ZRS(s work spacecCsdS(Ns Work Spaces((R((spacman-3.29/src/Selector.pyR~s(RRR!R(((spacman-3.29/src/Selector.pyRC|stContactSelectorcBseZdZd„ZRS(tcontactcCsdS(NtContacts((R((spacman-3.29/src/Selector.pyR‚s(RRR!R(((spacman-3.29/src/Selector.pyRD€stShellExecutedAsUserSelectorcBs/eZd„ZgZeƒZdZd„ZRS(cCs |idS(Ns shell commands(tuser(R((spacman-3.29/src/Selector.pyRŠstrootcCsù|idjo|iƒ|_n|idjoN|idjo't|iƒdjo|iiƒq|ii|iƒn|idjp|idjoP|i|ijp-t|iƒdjo|id|ijodSqõdSndSdS( NRR t-iR/sshell dialogueiÿÿÿÿi( R!tstrt currentUserRRt userstacktpopR)RH(RR((spacman-3.29/src/Selector.pyRs& @(RRRRMR#RLRHR(((spacman-3.29/src/Selector.pyRG‰s   tShellExecutedNotAsUserSelectorcBs?eZd„ZeƒZgZeieƒƒdZd„ZRS(cCsd|idS(Nsnon-s shell commands(RH(R((spacman-3.29/src/Selector.pyRŸsRIcCsI|idjo’|iƒdjoq¢|iƒdjo!|idjo d|_qžq¢|iƒdjo!|idjo d|_qžq¢|iƒ|_n|idjo|idjo't|iƒdjo|iiƒqÑ|idjo|ii|id ƒqÑ|idjoC|id djo|iidƒqÍ|ii|id ƒqÑ|idjoC|id djo|iidƒqÍ|ii|id ƒqÑ|ii|iƒn|id jp|id joP|i|ijo5t|iƒdjo|id |ijod SqEdSndSdS( NRRtnonrootRIsnon-rootR RJiiÿÿÿÿR/sshell dialoguei( R!RKRLRRRMRNR)RH(RR((spacman-3.29/src/Selector.pyR¥s>  & @( RRRR#RLRMR)RHR(((spacman-3.29/src/Selector.pyROžs   tUpdateAvailableSelectorcBseZd„Zd„ZRS(cCsdS(NtUpdates((R((spacman-3.29/src/Selector.pyRÇscCs)|idjo|iƒiSndSdS(NR9i(Rtupdt hasupdate(RR((spacman-3.29/src/Selector.pyRÉs(RRRR(((spacman-3.29/src/Selector.pyRQÆs tUpdateImpliedSelectorcBseZd„Zd„ZRS(cCsdS(NsUpdates Implied((R((spacman-3.29/src/Selector.pyRÎscCs3|idjp|idjo |iSndSdS(NR'R(i(R!t updateimplied(RR((spacman-3.29/src/Selector.pyRÐs  (RRRR(((spacman-3.29/src/Selector.pyRUÍs ((t EnvironmentR"tsocketRRR&R*R,R.R0R6R8R:R<R>R?R@RBRCRDRGRORQRU(((spacman-3.29/src/Selector.pyss.   +   (