Viewing File: /usr/lib64/python2.7/Demo/pdist/FSProxy.pyo

ó
V
Qc@sçdZddlZddlZddlZddlZddlZddlTddlZddlZdZej	ej
fZdd
d„ƒYZdeej
fd„ƒYZd	ejfd
„ƒYZd„ZedkrăeƒndS(sßFile System Proxy.

Provide an OS-neutral view on a file system, locally or remotely.
The functionality is geared towards implementing some sort of
rdist-like utility between a Mac and a UNIX system.

The module defines three classes:

FSProxyLocal  -- used for local access
FSProxyServer -- used on the server side of remote access
FSProxyClient -- used on the client side of remote access

The remote classes are instantiated with an IP address and an optional
verbosity flag.
i˙˙˙˙N(t*i˙tFSProxyLocalcBsŹeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
d	„Zd
„Zd+d„Zd+d„Zd+d
„Zd+d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd+d„Zd+d„Zd+d„Zd+d„Zd+d„Z d„Z!d+d„Z"d+d „Z#d+d!„Z$d+d"„Z%d+d#„Z&d$d%d&„Z'd'„Z(d$d(„Z)d)„Z*d*„Z+RS(,cCs#g|_dg|jƒ|_dS(Ns*.pyc(t	_dirstackt_readignoret_ignore(tself((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt__init__!s	cCsx|jr|jƒqWdS(N(Rtback(R((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt_close%scCsÁ|jdƒ}yt|ƒ}WnEtk
rf|jdƒ}yt|ƒ}Wqgtk
rbgSXnXg}xC|jƒ}|s†Pn|ddkrŁ|d }n|j|ƒqp|jƒ|S(Ntignoressynctree.ignorefilesi˙˙˙˙s
(t_hidetopentIOErrortreadlinetappendtclose(RtfiletfR	tline((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR)s&

	

cCs|ddkS(Nit.((Rtname((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt_hidden<scCsd|S(Ns.%s((RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR
?scCsÜt|ƒtkrdS|ddkr*dS|tkr:dS|j|ƒrMdStjj|ƒ\}}|sr|rvdStjj|ƒrŒdSdt|dƒj	dƒkrŽdSx'|j
D]}tj||ƒr¸dSq¸WdS(Nii˙˙˙˙t~ttrbii(tlent
maxnamelent	skipnamesRtostpathtsplittislinkRtreadRtfnmatch(RRtheadttailtign((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytvisibleBs&
cCs,|j|ƒs(tjdt|ƒ‚ndS(Nsprotected name %s(R%Rterrortrepr(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytcheckOscCs<|j|ƒtjj|ƒs8tjdt|ƒ‚ndS(Nsnot a plain file %s(R(RRtisfileR&R'(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt	checkfileSs
cCs
tjƒS(N(Rtgetcwd(R((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytpwdXscCsY|j|ƒtjƒ|jf}tj|ƒ|jj|ƒ|j|jƒ|_dS(N(R(RR+RtchdirRRR(RRtsave((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytcd[s


cCsO|jstjd‚n|jd\}}tj|ƒ|jd=||_dS(Nsempty directory stacki˙˙˙˙(RRR&R-R(RtdirR	((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRbs	

cCsD|r$|d„}t||ƒ}nt|j|ƒ}|jƒ|S(NcSstj||ƒS(N(R!(Rtpat((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytkeepls(tfilterR%tsort(RtfilesR1R2((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt_filterjs
cCs"tjtjƒ}|j||ƒS(N(RtlistdirtcurdirR6(RR1R5((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytlistsscCs7tjtjƒ}ttjj|ƒ}|j||ƒS(N(RR7R8R3RR)R6(RR1R5((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt	listfileswscCs7tjtjƒ}ttjj|ƒ}|j||ƒS(N(RR7R8R3RtisdirR6(RR1R5((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytlistsubdirs|scCs|j|ƒotjj|ƒS(N(R%RRtexists(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR=scCs|j|ƒotjj|ƒS(N(R%RRR;(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR;„scCs|j|ƒotjj|ƒS(N(R%RRR(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR‡scCs|j|ƒotjj|ƒS(N(R%RRR)(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR)ŠscCsa|j|ƒd}t|ƒ}tjƒ}x)|j|ƒ}|sGPn|j|ƒq.|jƒS(Niii (R*Rtmd5tnewR tupdatetdigest(RRt
BUFFERSIZERtsumtbuffer((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRCs
cCs|j|ƒtj|ƒtS(N(R*RtstattST_SIZE(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytsize™s
cCs'|j|ƒtjtj|ƒtƒS(N(R*ttimet	localtimeRREtST_MTIME(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytmtimes
cCsF|j|ƒtj|ƒt}tjtj|ƒtƒ}||fS(N(R*RRERFRHRIRJ(RRRGRK((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyREĄs
cCsK|j|ƒ}tj|ƒt}tjtj|ƒtƒ}|||fS(N(RCRRERFRHRIRJ(RRRCRGRK((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytinfo§scCsƒ|dkr|jƒ}ng}x[|D]S}y|j|||ƒfƒWq(tjtfk
rz|j|dfƒq(Xq(W|S(N(tNoneR:RRR&R(RtfunctionR9tresR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt_list­s
cCs|j|j|ƒS(N(RPRC(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytsumlist¸scCs|j|j|ƒS(N(RPRE(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytstatlistťscCs|j|j|ƒS(N(RPRK(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt	mtimelistžscCs|j|j|ƒS(N(RPRG(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytsizelistÁscCs|j|j|ƒS(N(RPRL(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytinfolistÄscCsg|dkr|jƒ}ni}x?|D]7}y||ƒ||<Wq(tjtfk
r^q(Xq(W|S(N(RMR:RR&R(RRNR9tdictR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt_dictÇs
cCs|j|j|ƒS(N(RVRC(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytsumdictŇscCs|j|j|ƒS(N(RVRG(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytsizedictŐscCs|j|j|ƒS(N(RVRK(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt	mtimedictŘscCs|j|j|ƒS(N(RVRE(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytstatdictŰscCs|j|j|ƒS(N(RWRL(RR9((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytinfodictŢsii˙˙˙˙cCss|j|ƒt|ƒ}|j|ƒ|dkr;d}n*|dkrV|jƒ}n|j|ƒ}|jƒ|S(Nit(R*RtseekR R(RRtoffsettlengthRtdata((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR ás

	
cCsŽ|j|ƒtjj|ƒrq|j|ƒ|d}ytj|ƒWntjk
r]nXtj||ƒnt|dƒ}|j	ƒdS(NRtw(
R(RRR=R*tunlinkR&trenameRR(RRtbnameR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pytcreateîs


cCsD|j|ƒt|dƒ}|j|ƒ|j|ƒ|jƒdS(Nsr+(R*RR^twriteR(RRRaR_R((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRgűs



cCs!|j|ƒtj|dƒdS(Ni˙(R(Rtmkdir(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRhs
cCs|j|ƒtj|ƒdS(N(R(Rtrmdir(RR((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRis
N(,t__name__t
__module__RRRRR
R%R(R*R,R/RRMR6R9R:R<R=R;RR)RCRGRKRERLRPRQRRRSRTRURWRXRYRZR[R\R RfRgRhRi(((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRsR						
																	
	
	t
FSProxyServercBs)eZejd„Zd„Zd„ZRS(cCs'tj|ƒtjj|||ƒdS(N(RRtservertServer(Rtaddresstverbose((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyR
s
cCs!tjj|ƒtj|ƒdS(N(RmRnRR(R((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRscCs.tjj|ƒx|jr)|jƒqWdS(N(RmRnt_serveRR(R((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRqs(RjRkRmtVERBOSERRRq(((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRls	t
FSProxyClientcBseZejd„ZRS(cCstjj|||ƒdS(N(tclienttClientR(RRoRp((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRs(RjRkRtRrR(((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyRsscCsdddl}ddl}|jdr>|j|jdƒ}nd}td|fƒ}|jƒdS(Ni˙˙˙˙iiR](tstringtsystargvtatoiRlt_serverloop(RvRwtporttproxy((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyttest!s
t__main__((t__doc__RmRtR>RR!RERHRR8tpardirRRRnRlRuRsR}Rj(((s*/usr/lib64/python2.7/Demo/pdist/FSProxy.pyt<module>s 
ě	
Back to Directory File Manager