Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
python3-trilio-fusepy / usr / lib / python3.6 / site-packages / __pycache__ / fuse.cpython-36.opt-1.pyc
Size: Mime:
3

~‹^֣ã=@sz
ddlmZmZmZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
ddlmZmZmZddlmZddlmZyddlmZWnek
r°d	d
„ZYnXyeWnek
rÒeZYnXejdƒZe
ƒZeƒZedkr"ddlZej d
krej!Z"ej#Z$nej%Z"ej&Z$edks8ej'dƒrLGdd„dej(ƒZ)nGdd„dej(ƒZ)Gdd„dej(ƒZ*Gdd„dej(ƒZ+ej,j-dƒZ.e.sFedkrÎej/e
dƒej0ƒZ1e
dƒpÊe
dƒpÊe
dƒZ.nxedkr>yddl2Z3Wnek
rddl4Z3YnXdd„Z5e5e3j6ddƒZ.e.rFe.dej d
kr4d nd!7Z.ne
dƒZ.e.sVe7d"ƒ‚n
ej/e.ƒZ8edkrze9e8d#ƒrzd$Zed|kröd&Z:ej%Z;ej<Z=ej<Z>ej&Z?ej@ZAej!ZBej%ZCej&ZDejEejFejGejGejHejIƒejJejFej&ƒZKejEejFejGejGejHejIƒejJej&ƒZLedkr–d'e;fd(eAfd)ej@fd*ej#fd+eDfd,e?fd-e;fd.e)fd/e)fd0e)fd1e)fd2eBfd3ej!fd4ej%fd5ej%fd6ej%fd7ej%fd8ej!fge+_Mn\d'e;fd*ej&fd(eAfd)ej@fd+eDfd,e?fd-e;fd.e)fd/e)fd0e)fd2eBfd3ej!fd4ej%fg
e+_Mned9krìd:Z:ejNZ;ejNZ=ejNZ>ejOZ?ejOZAejPZBejFZCejOZDejEejFejGejGejHejIƒejJejFƒZKejEejFejGejGejHejIƒejJƒZLed;krîd'e;fd*ej<fd)ej<fd(eAfd+eDfd,e?fd<ejFfd-e;fd2eBfd4ejQfd3ejQfd.e)fd/e)fd0e)fge+_Mqøed=krd'e;fd>ej<fd?ej<fd@ej<fd*ej<fd(eAfd)ej<fd+eDfd,e?fd-e;fdAej<fdBej<fd2eBfdCej<fd.e)fdDej<fd/e)fdEej<fd0e)fdFej<fd4ejQfd3ejQfdGej<fdHej<fdIej<fdJej<fdKej<fdLej<fdMej<fdNej<fdOej<fdPej<fdQej<fdRej<fdSej<fdTej<fg$e+_MqøedUkr‚d'e;fd*ejNfd(eAfd)ejOfd+eDfd,e?fd-e;fdVejRfd2eBfd4ejQfd3ejPfd.e)fd/e)fd0e)fge+_MqøedWks–edXkrüd'e;fd*ej<fd)ej<fd(eAfd+eDfd,e?fdYejOfd-e;fd2eBfd4ejQfd3ejQfd.e)fd/e)fd0e)fge+_MnìedZkrtd'e;fd*ej<fd(eAfd)ejOfd+eDfd,e?fd-e;fd[ej<fd2eBfd4ejFfdVejFfd3ejQfd.e)fd/e)fd0e)fge+_Mntd'e;fd[ejRfd\ej<fd(eAfd)ejOfd+eDfd,e?fd-e;fdVejRfd2eBfd4ejQfd3ejPfd.e)fd/e)fd0e)fd*ejNfge+_Mnedksej'dƒrìedkrd]nd^Z:ejOZ;e$Z=e$Z>ejOZ?ejOZAejPZBejFZCejOZDejEejFejGejGejHejIƒejJejFƒZKejEejFejGejGejHejIƒejJƒZLd'e;fd*ejNfd(eAfd)ejRfd+eDfd,e?fd-e;fd2eBfd.e)fd/e)fd0e)fd4ejFfd3ejPfd1e)fge+_MneSd_eƒ‚ed%k	rjej#Z=ej#Z>ejEejFejGejGejHejIƒejJejFƒZKejEejFejGejGejHejIƒejJƒZLGd`da„daej(ƒZTn<edk	s€ej'dƒ	r”Gdbda„daej(ƒZTnGdcda„daej(ƒZTedk	s¼ej'dƒ	rÐGddde„deej(ƒZUnGdfde„deej(ƒZUGdgdh„dhej(ƒZVejHeVƒe8jW_XGdidj„djej(ƒZYd}dldm„ZZd~dndo„Z[dpdq„ZWdrds„Z\Gdtdu„due]ƒZ^Gdvdw„dwe_ƒZ`Gdxdy„dye_ƒZaGdzd{„d{ƒZbdS)é)Úprint_functionÚabsolute_importÚdivisionN)Úfind_library)ÚmachineÚsystem)ÚsignalÚSIGINTÚSIG_DFL)ÚS_IFDIR)Ú	print_exc)Úpartialcs&‡‡‡fdd„}ˆ|_ˆ|_ˆ|_|S)Ncs ˆjƒ}|j|ƒˆˆ||ŽS)N)ÚcopyÚupdate)ZfargsZ	fkeywordsZnewkeywords)ÚargsÚfuncÚkeywords©ú/usr/lib/python3.6/fuse.pyÚnewfunc$s
zpartial.<locals>.newfunc)rrr)rrrrr)rrrrr
#s
r
ÚfuseZWindowslÿÿZCYGWINc@seZdZdefdefgZdS)Ú
c_timespecÚtv_secÚtv_nsecN)Ú__name__Ú
__module__Ú__qualname__Ú
c_win_longÚ_fields_rrrrrHsrc@s eZdZdejfdejfgZdS)rrrN)rrrÚctypesÚc_longrrrrrrKsc@seZdZdefdefgZdS)Ú	c_utimbufÚactimeÚmodtimeN)rrrrrrrrrr!Nsr!c@seZdZdS)Úc_statN)rrrrrrrr$Qsr$ZFUSE_LIBRARY_PATHÚDarwinZiconvZfuse4xZosxfusecCsld\}}zJy0tj||dtjtjBƒ}ttj||ƒdƒ}Wntk
rNYnXWd|dk	rftj|ƒX|S)Nr)NN)ÚregÚOpenKeyZKEY_READZKEY_WOW64_32KEYÚstrZQueryValueExZWindowsErrorZCloseKey)ZrootkeyZkeynameZvalnameÚkeyÚvalrrrÚ
Reg32GetValueas
r+zSOFTWARE\WinFspZ
InstallDirzbin\winfsp-%s.dllZx64Zx86zUnable to find libfuseZmacfuse_versionúDarwin-MacFuseÚFreeBSDé-Úst_devÚst_modeÚst_nlinkÚst_inoÚst_uidÚst_gidÚst_rdevZst_atimespecZst_mtimespecZst_ctimespecZst_birthtimespecÚst_sizeÚ	st_blocksÚ
st_blksizeZst_flagsZst_genZ	st_lspareZ	st_qspareZLinuxé_Zx86_64Z__pad0ZmipsZ__pad1_1Z__pad1_2Z__pad1_3Z__pad2_1Z__pad2_2Z__pad3Z__pad4Z__pad5Z__pad6Z__pad7_1Z__pad7_2Z__pad7_3Z__pad7_4Z__pad7_5Z__pad7_6Z__pad7_7Z__pad7_8Z__pad7_9Z	__pad7_10Z	__pad7_11Z	__pad7_12Z	__pad7_13Z	__pad7_14ZppcZ__pad2Zppc64Zppc64leZ__padZaarch64Z__pad1Z__st_inoéé†z%s is not supported.c
@sLeZdZdefdefdefdefdefdefdejfdejfd	ejfg	Zd
S)Ú	c_statvfsÚf_bavailÚf_bfreeÚf_blocksÚf_favailÚf_ffreeÚf_filesÚf_bsizeÚf_flagÚf_frsizeN)rrrÚc_fsblkcnt_tÚc_fsfilcnt_trÚc_ulongrrrrrr<jsr<c@sReZdZdefdefdefdefdefdefdefdefd	efd
efdefgZdS)
r<rCrEr?r>r=rBrAr@Úf_fsidrDÚ	f_namemaxN)rrrÚc_win_ulongrFrGrrrrrr<vsc@s\eZdZdejfdejfdefdefdefdefdefdefd	ejfd
ejfdejfgZdS)
r<rCrEr?r>r=rBrAr@rIrDrJN)rrrrrHrFrGrrrrrr<„sc
@s`eZdZdejfdejfdejfdejdfdejdfdejdfdejd	fd
ejfdejfg	ZdS)
Úfuse_file_infoÚflagsÚfh_oldÚ	writepageÚ	direct_ioéÚ
keep_cacheÚflushÚpaddingéÚfhÚ
lock_ownerN)rrrrÚc_intÚc_uintÚc_uint64rrrrrrL”s



rLc@steZdZdejfdejfdejfdejdfdejdfdejdfdejdfd	ejdfd
ejdfdejfd
ejfgZdS)rLrMrNrOrPrQrRrSZnonseekableZ
flock_releaserTérVrWN)	rrrrrXrHrYrZrrrrrrL s





c@s2eZdZdejfdefdefdefdejfgZdS)Úfuse_contextrÚuidÚgidÚpidÚprivate_dataN)	rrrrÚc_voidpÚc_uid_tÚc_gid_tÚc_pid_trrrrrr\®s
r\c3@seZdZdejejejejeƒƒfdejejejejej	ƒej
ƒfdejfdejejejee
ƒfdejejejeƒfdejejejƒfdejejejƒfdejejejejƒfd	ejejejejƒfd
ejejejejƒfdejejejeƒfdejejejeeƒfd
ejejejeƒfdejfdejejejejeƒƒfdejejejejej	ƒej
eejeƒƒfdejejejejej	ƒej
eejeƒƒfdejejejejeƒƒfdejejejejeƒƒfdejejejejeƒƒfdejejejejejeƒƒfdefdefdejejejejej	ƒej
ƒfdejejejejƒfdejejejejeƒƒfdejejejejejejejejejeƒeƒeejeƒƒfdejejejejeƒƒfdejejejejejeƒƒfdejejejƒfdejejejƒfd ejejejejƒfd!ejejejeejeƒƒfd"ejejejeejeƒƒfd#ejejejejeƒejeƒƒfd$ejejejejeƒejejƒfd%ejejejejeƒƒfd&ejejejej
ejejƒƒfd'ejd(fd)ejd(fd*ejd(fd+ejd,fd-ejejejejejejeƒejejƒfg+Zd.S)/Úfuse_operationsÚgetattrÚreadlinkZgetdirÚmknodÚmkdirÚunlinkÚrmdirÚsymlinkÚrenameÚlinkÚchmodÚchownÚtruncateÚutimeÚopenÚreadÚwriteÚstatfsrSÚreleaseÚfsyncÚsetxattrÚgetxattrÚ	listxattrÚremovexattrÚopendirÚreaddirÚ
releasedirÚfsyncdirÚinitÚdestroyÚaccessÚcreateÚ	ftruncateÚfgetattrÚlockÚutimensÚbmapZflag_nullpath_okrQZflag_nopathZflag_utime_omit_okZ
flag_reservedrUÚioctlN)rrrrÚ	CFUNCTYPErXÚc_char_pÚPOINTERr$Úc_byteÚc_size_traÚc_mode_tÚc_dev_trbrcÚc_off_trLr<Ú
setxattr_tÚ
getxattr_tr!Úc_ulonglongrYÚc_void_prrrrrre¹s¶





reFcCs(|r|jd|jS|j|jdSdS)Né
é	geÍÍAiʚ;)rr)ZtsÚuse_nsrrrÚtime_of_timespec;sršcCsŽxˆ|jƒD]|\}}|d	krpt||ddƒ}|dkr4q
|rPtt|ƒd
ƒ\|_|_q†t|ƒ|_t||jdƒ|_q
t||ƒr
t|||ƒq
WdS)NÚst_atimeÚst_mtimeÚst_ctimeÚst_birthtimeÚspecr—r˜geÍÍA)r›rœrržiʚ;)ÚitemsrfÚdivmodÚintrrÚhasattrÚsetattr)ÚstÚattrsr™r)r*ZtimespecrrrÚset_st_attrsAs

r§cCstjƒ}|j}|j|j|jfS)zReturns a (uid, gid, pid) tuple)Ú_libfuseÚfuse_get_contextÚcontentsr]r^r_)ZctxpZctxrrrr©Qsr©cCs tjtjƒjjƒ}tj|ƒdS)a
    This will shutdown the FUSE mount and cause the call to FUSE(...) to
    return, similar to sending SIGINT to the process.

    Flags the native FUSE session as terminated and will cause any running FUSE
    event loops to exit on the next opportunity. (see fuse.c::fuse_exit)
    N)rr–r¨r©rªrÚ	fuse_exit)Zfuse_ptrrrrr«Ysr«cseZdZ‡fdd„Z‡ZS)ÚFuseOSErrorcstt|ƒj|tj|ƒƒdS)N)Úsuperr¬Ú__init__ÚosÚstrerror)ÚselfÚerrno)Ú	__class__rrr®fszFuseOSError.__init__)rrrr®Ú
__classcell__rr)r³rr¬esr¬c@sfeZdZdZd`Zdad
d„Zedd
„ƒZedd„ƒZdd„Z	dd„Z
dd„Zdd„Zdd„Z
dd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Zd:d;„Zd<d=„Zd>d?„Z d@dA„Z!dBdC„Z"dDdE„Z#dFdG„Z$dHdI„Z%dJdK„Z&dLdM„Z'dNdO„Z(dPdQ„Z)dRdS„Z*dTdU„Z+dVdW„Z,dXdY„Z-dZd[„Z.d\S)bÚFUSEz«
    This class is the lower level interface and should not be subclassed under
    normal use. Its methods are called by fuse.

    Assumes API version 2.6 or later.
    Ú
foregroundú-fÚdebugú-dÚ	nothreadsú-sFúutf-8csÒ||_||_ˆ|_d|_t|ddƒ|_|js8tjdtƒdg}|j	‡fdd„|j
Dƒƒˆjd|jj
ƒ|jd	ƒ|jd
j|jfˆŽƒƒ|j|ƒ‡fdd„|Dƒ}tjt|ƒ|Ž}tƒ}x|tjD]r}	|	dd
…\}
}|
}|dkrò|dd…}t||dƒ}
|
dkr
qÆt|dƒr,|t|jt||
ƒƒƒ}
t||
|
ƒqÆWytttƒ}Wntk
rdt}YnXtjt|ƒ|tj |ƒtj!|ƒdƒ}ytt|ƒWntk
r¬YnX|`|jrÀ|j‚|rÎt"|ƒ‚dS)zÒ
        Setting raw_fi to True will cause FUSE to pass the fuse_file_info
        class as is to Operations, instead of just the fh field.

        This gives you access to direct_io, keep_cache, etc.
        Nr™Fz¹Time as floating point seconds for utimens is deprecated!
To enable time as nanoseconds set the property "use_ns" to True in your operations class or set your fusepy requirements to <4.rc3s"|]\}}ˆj|dƒr|VqdS)FN)Úpop)Ú.0ÚargÚflag)Úkwargsrrú	<genexpr>’sz FUSE.__init__.<locals>.<genexpr>Zfsnamez-oú,csg|]}|jˆƒ‘qSr)Úencode)r¾r¿)Úencodingrrú
<listcomp>šsz!FUSE.__init__.<locals>.<listcomp>ér…r†rQZargtypes)r…r†)#Ú
operationsÚraw_firÅÚ_FUSE__critical_exceptionrfr™ÚwarningsÚwarnÚDeprecationWarningÚextendÚOPTIONSÚ
setdefaultr³rÚappendÚjoinÚ_normalize_fuse_optionsrrŒÚlenrerr£r
Ú_wrapperr¤rr	r
Ú
ValueErrorr¨Zfuse_main_realZpointerÚsizeofÚRuntimeError)r±rÈZ
mountpointrÉrÅrÁrÚargvZfuse_opsZentÚnameZ	prototypeZ
check_namer*Zold_handlerÚerrr)rÅrÁrr®xs\




z
FUSE.__init__cksBx<|jƒD]0\}}t|tƒr,|dkr:|Vq
d||fVq
WdS)NTz%s=%s)r Ú
isinstanceÚbool)Zkargsr)ÚvaluerrrrÓÉs

zFUSE._normalize_fuse_optionscOsyÂ|jdkr|||ŽpdSy|||Žp(dStk
r–}zR|jdkrhtjd|jt|ƒ|jdd|jStjd|j|jddtjSWYdd}~Xn*tk
r¾tjd|jddtjSXWnDt	k
r}z&|t
_tjd	|jddt
ƒtjSd}~XnXdS)
z%Decorator for the methods that followrrz2FUSE operation %s raised a %s, returning errno %s.T)Úexc_infozSFUSE operation %s raised an OSError with negative errno %s, returning errno.EINVAL.NzBUncaught exception from FUSE operation %s, returning errno.EINVAL.z=Uncaught critical exception from FUSE operation %s, aborting.)rÚOSErrorr²Úlogr¸ÚtypeÚerrorZEINVALÚ	ExceptionÚ
BaseExceptionr±rÊZcriticalr«ÚEFAULT)rrrÁÚerrrrÕÒs4

z
FUSE._wrappercCs|dkrdS|j|jƒS)N)ÚdecoderÅ)r±ÚpathrrrÚ_decode_optional_pathýszFUSE._decode_optional_pathcCs|j||dƒS)N)r†)r±réÚbufrrrrfszFUSE.getattrcCsH|jd|j|jƒƒj|jƒ}tj|d|d…ƒ}tj||t|ƒƒdS)NrgrQr)rÈrèrÅrÄrÚcreate_string_bufferÚmemmoverÔ)r±rérëÚbufsizeÚretÚdatarrrrgs
z
FUSE.readlinkcCs|jd|j|jƒ||ƒS)Nrh)rÈrèrÅ)r±réÚmodeÚdevrrrrhsz
FUSE.mknodcCs|jd|j|jƒ|ƒS)Nri)rÈrèrÅ)r±rérñrrrrisz
FUSE.mkdircCs|jd|j|jƒƒS)Nrj)rÈrèrÅ)r±rérrrrjszFUSE.unlinkcCs|jd|j|jƒƒS)Nrk)rÈrèrÅ)r±rérrrrksz
FUSE.rmdircCs|jd|j|jƒ|j|jƒƒS)z?creates a symlink `target -> source` (e.g. ln -s source target)rl)rÈrèrÅ)r±ÚsourceÚtargetrrrrlszFUSE.symlinkcCs|jd|j|jƒ|j|jƒƒS)Nrm)rÈrèrÅ)r±ÚoldÚnewrrrrm$szFUSE.renamecCs|jd|j|jƒ|j|jƒƒS)z>creates a hard link `target -> source` (e.g. ln source target)rn)rÈrèrÅ)r±rórôrrrrn(sz	FUSE.linkcCs|jd|j|jƒ|ƒS)Nro)rÈrèrÅ)r±rérñrrrro.sz
FUSE.chmodcCsDt|dƒjdkrd}t|dƒjdkr,d}|jd|j|jƒ||ƒS)NrQrrpéÿÿÿÿr÷)rbrÞrcrÈrèrÅ)r±rér]r^rrrrp1s
z
FUSE.chowncCs|jd|j|jƒ|ƒS)Nrq)rÈrèrÅ)r±réÚlengthrrrrq:sz
FUSE.truncatecCsD|j}|jr"|jd|j|jƒ|ƒS|jd|j|jƒ|jƒ|_dSdS)Nrsr)rªrÉrÈrèrÅrMrV)r±réÚfipÚfirrrrs=s
z	FUSE.openc	CsP|jr|j}n|jj}|jd|j|ƒ|||ƒ}|s6dSt|ƒ}tj|||ƒ|S)Nrtr)rÉrªrVrÈrêrÔrrí)	r±rérëÚsizeÚoffsetrùrVrïÚretsizerrrrtGsz	FUSE.readcCs:tj||ƒ}|jr|j}n|jj}|jd|j|ƒ|||ƒS)Nru)rÚ	string_atrÉrªrVrÈrê)r±rérërûrürùrðrVrrrruZsz
FUSE.writecCsJ|j}|jd|j|jƒƒ}x*|jƒD]\}}t||ƒr$t|||ƒq$WdS)Nrvr)rªrÈrèrÅr r£r¤)r±rérëZstvr¦r)r*rrrrves
zFUSE.statfscCs*|jr|j}n|jj}|jd|j|ƒ|ƒS)NrS)rÉrªrVrÈrê)r±rérùrVrrrrSnsz
FUSE.flushcCs*|jr|j}n|jj}|jd|j|ƒ|ƒS)Nrw)rÉrªrVrÈrê)r±rérùrVrrrrwvszFUSE.releasecCs,|jr|j}n|jj}|jd|j|ƒ||ƒS)Nrx)rÉrªrVrÈrê)r±réÚdatasyncrùrVrrrrx~s
z
FUSE.fsynccGs0|jd|j|jƒ|j|jƒtj||ƒ|f|žŽS)Nry)rÈrèrÅrrþ)r±rérÚrÞrûÚoptionsrrrrry‡s
z
FUSE.setxattrc	Gsb|jd|j|jƒ|j|jƒf|žŽ}t|ƒ}|s4|S||krDtjStj||ƒ}tj|||ƒ|S)Nrz)	rÈrèrÅrÔr²ÚERANGErrìrí)	r±rérÚrÞrûrrïrýrërrrrzŒsz
FUSE.getxattrcCs„|jd|j|jƒƒpd}dj|ƒj|jƒ}t|ƒdkrF|dj|jƒ7}t|ƒ}|sV|S||krftjStj	||ƒ}tj
|||ƒ|S)Nr{Úúr)rÈrèrÅrÒrÄrÔr²rrrìrí)r±réZnamebufrûr¦rïrýrërrrr{ŸszFUSE.listxattrcCs|jd|j|jƒ|j|jƒƒS)Nr|)rÈrèrÅ)r±rérÚrrrr|³szFUSE.removexattrcCs|jd|j|jƒƒ|j_dS)Nr}r)rÈrèrÅrªrV)r±rérùrrrr}·szFUSE.opendirc
Csˆx‚|jd|j|ƒ|jjƒD]f}t|tƒr:|dd}}}n*|\}}	}|	r`tƒ}t||	|jdnd}|||j	|j
ƒ||ƒdkrPqWdS)Nr~r)r™)rÈrêrªrVrÜÚ
basestringr$r§r™rÄrÅ)
r±rérëZfillerrürùÚitemrÚr¥r¦rrrr~¾s

zFUSE.readdircCs|jd|j|ƒ|jjƒS)Nr)rÈrêrªrV)r±rérùrrrrÒszFUSE.releasedircCs|jd|j|ƒ||jjƒS)Nr€)rÈrêrªrV)r±rérÿrùrrrr€×sz
FUSE.fsyncdircCs|jddƒS)Nrú/)rÈ)r±ZconnrrrrÜsz	FUSE.initcCs|jddƒS)Nr‚r)rÈ)r±r`rrrr‚ßszFUSE.destroycCs|jd|j|jƒ|ƒS)Nrƒ)rÈrèrÅ)r±réÚamoderrrrƒâszFUSE.accesscCs@|j}|j|jƒ}|jr(|jd|||ƒS|jd||ƒ|_dSdS)Nr„r)rªrèrÅrÉrÈrV)r±rérñrùrúrrrr„åszFUSE.createcCs,|jr|j}n|jj}|jd|j|ƒ||ƒS)Nrq)rÉrªrVrÈrê)r±rérørùrVrrrr…ïs
zFUSE.ftruncatecCsbtj|dtjtƒƒ|j}|s$|}n|jr2|j}n|jj}|jd|j|ƒ|ƒ}t	|||j
ddS)Nrrf)r™)rZmemsetr×r$rªrÉrVrÈrêr§r™)r±rérërùr¥rVr¦rrrr†øsz
FUSE.fgetattrcCs.|jr|j}n|jj}|jd|j|ƒ|||ƒS)Nr‡)rÉrªrVrÈrê)r±rérùÚcmdr‡rVrrrr‡s
z	FUSE.lockcCsL|r2t|jj|jd}t|jj|jd}||f}nd}|jd|j|jƒ|ƒS)N)r™rˆ)ršrªr"r™r#rÈrèrÅ)r±rérëZatimeÚmtimeÚtimesrrrrˆs
zFUSE.utimenscCs|jd|j|jƒ||ƒS)Nr‰)rÈrèrÅ)r±réZ	blocksizeÚidxrrrr‰sz	FUSE.bmapcCs4|jr|j}n|jj}|jd|j|jƒ|||||ƒS)NrŠ)rÉrªrVrÈrèrÅ)r±rérr¿rùrMrðrVrrrrŠs
z
FUSE.ioctlN©r¶r·©r¸r¹©rºr»)rr
r)Fr¼)/rrrÚ__doc__rÏr®ÚstaticmethodrÓrÕrêrfrgrhrirjrkrlrmrnrorprqrsrtrurvrSrwrxryrzr{r|r}r~rr€rr‚rƒr„r…r†r‡rˆr‰rŠrrrrrµjsZ
Q	+
	
		
		
rµc@s4eZdZdZdd„Zdd„ZdZdd„Zd	d
„ZdHdd„Z	d
d„Z
dd„Zdd„Zdd„Z
dIdd„ZdJdd„Zdd„Zdd„Zdd„Zd d!„ZdZd"d#„Zd$d%„Zd&d'„Zd(d)„Zd*d+„Zd,d-„Zd.d/„Zd0d1„Zd2d3„Zd4d5„Zd6d7„Zd8d9„Z dKd:d;„Z!d<d=„Z"d>d?„Z#dLd@dA„Z$dBdC„Z%dMdDdE„Z&dFdG„Z'dS)NÚ
Operationsa!
    This class should be subclassed and passed as an argument to FUSE on
    initialization. All operations should raise a FuseOSError exception on
    error.

    When in doubt of what an operation should do, check the FUSE header file
    or the corresponding system call man page.
    cGs"t||ƒsttjƒ‚t||ƒ|ŽS)N)r£r¬r²rærf)r±ÚoprrrrÚ__call__1s

zOperations.__call__cCsdS)Nrr)r±rérrrrrƒ6szOperations.accessNcCsttjƒ‚dS)N)r¬r²ÚEROFS)r±rérñrrrro;szOperations.chmodcCsttjƒ‚dS)N)r¬r²r)r±rér]r^rrrrp>szOperations.chowncCsttjƒ‚dS)zß
        When raw_fi is False (default case), fi is None and create should
        return a numerical file handle.

        When raw_fi is True the file handle should be set directly by create
        and return 0.
        N)r¬r²r)r±rérñrúrrrr„As	zOperations.createcCsdS)z2Called on filesystem destruction. Path is always /Nr)r±rérrrr‚LszOperations.destroycCsdS)Nrr)r±rérVrrrrSQszOperations.flushcCsdS)Nrr)r±rérÿrVrrrrxTszOperations.fsynccCsdS)Nrr)r±rérÿrVrrrr€WszOperations.fsyncdircCs"|dkrttjƒ‚ttdBddS)aw
        Returns a dictionary with keys identical to the stat C structure of
        stat(2).

        st_atime, st_mtime and st_ctime should be floats.

        NOTE: There is an incompatibility between Linux and Mac OS X
        concerning st_nlink of directories. Mac OS X counts all files inside
        the directory, while Linux counts only the subdirectories.
        riírÇ)r0r1)r¬r²ÚENOENTÚdictr)r±rérVrrrrfZs
zOperations.getattrrcCsttƒ‚dS)N)r¬ÚENOTSUP)r±rérÚÚpositionrrrrzjszOperations.getxattrcCsdS)z•
        Called on filesystem initialization. (Path is always /)

        Use it instead of __init__ if you start threads on initialization.
        Nr)r±rérrrrmszOperations.initcCsttjƒ‚dS)N)r¬r²ZENOTTY)r±rérr¿rùrMrðrrrrŠvszOperations.ioctlcCsttjƒ‚dS)z>creates a hard link `target -> source` (e.g. ln source target)N)r¬r²r)r±rôrórrrrnyszOperations.linkcCsgS)Nr)r±rérrrr{~szOperations.listxattrcCsttjƒ‚dS)N)r¬r²r)r±rérñrrrriƒszOperations.mkdircCsttjƒ‚dS)N)r¬r²r)r±rérñròrrrrh†szOperations.mknodcCsdS)zü
        When raw_fi is False (default case), open should return a numerical
        file handle.

        When raw_fi is True the signature of open becomes:
            open(self, path, fi)

        and the file handle should be set directly.
        rr)r±rérMrrrrs‰szOperations.opencCsdS)z Returns a numerical file handle.rr)r±rérrrr}–szOperations.opendircCsttjƒ‚dS)z/Returns a string containing the data requested.N)r¬r²ZEIO)r±rérûrürVrrrrt›szOperations.readcCsddgS)z†
        Can return either a list of names, or a list of (name, attrs, offset)
        tuples. attrs is a dict as in getattr.
        Ú.z..r)r±rérVrrrr~ szOperations.readdircCsttjƒ‚dS)N)r¬r²r)r±rérrrrg¨szOperations.readlinkcCsdS)Nrr)r±rérVrrrrw«szOperations.releasecCsdS)Nrr)r±rérVrrrr®szOperations.releasedircCsttƒ‚dS)N)r¬r)r±rérÚrrrr|±szOperations.removexattrcCsttjƒ‚dS)N)r¬r²r)r±rõrörrrrm´szOperations.renamecCsttjƒ‚dS)N)r¬r²r)r±rérrrrk·szOperations.rmdircCsttƒ‚dS)N)r¬r)r±rérÚrÞrrrrrryºszOperations.setxattrcCsiS)zÂ
        Returns a dictionary with keys identical to the statvfs C structure of
        statvfs(3).

        On Mac OS X f_bsize and f_frsize must be a power of 2
        (minimum 512).
        r)r±rérrrrv½s	zOperations.statfscCsttjƒ‚dS)z?creates a symlink `target -> source` (e.g. ln -s source target)N)r¬r²r)r±rôrórrrrlÈszOperations.symlinkcCsttjƒ‚dS)N)r¬r²r)r±rérørVrrrrqÍszOperations.truncatecCsttjƒ‚dS)N)r¬r²r)r±rérrrrjÐszOperations.unlinkcCsdS)z:Times is a (atime, mtime) tuple. If None use current time.rr)r±rér
rrrrˆÓszOperations.utimenscCsttjƒ‚dS)N)r¬r²r)r±rérðrürVrrrruØszOperations.write)N)N)r)r)N)N)(rrrrrrƒr‰rorpr„r‚rSrxr€rfrzrrŠrnr{r‡rirhrsr}rtr~rgrwrr|rmrkryrvrlrqrjrˆrurrrrr'sJ


	



rc@seZdZejdƒZdd„ZdS)ÚLoggingMixInzfuse.log-mixincGs€|jjd||t|ƒƒd}zJyt||ƒ|f|žŽ}|Stk
r`}zt|ƒ}‚WYdd}~XnXWd|jjd|t|ƒƒXdS)Nz-> %s %s %sz[Unhandled Exception]z<- %s %s)rár¸Úreprrfràr()r±rrérrïrçrrrrßszLoggingMixIn.__call__N)rrrÚloggingÚ	getLoggerrárrrrrrÜs
r)r%r,r-)F)F)cZ
__future__rrrrr²rr¯rËZctypes.utilrÚplatformrrrr	r
ÚstatrÚ	tracebackrÚ	functoolsr
ÚImportErrorrÚ	NameErrorr(rráZ_systemZ_machineÚsysÚmaxsizeZc_int64rrZrKZc_int32Zc_uint32Ú
startswithZ	Structurerr!r$ÚenvironÚgetZ
_libfuse_pathZCDLLÚRTLD_GLOBALZ	_libiconvÚ_winregr&Úwinregr+ÚHKEY_LOCAL_MACHINEÚEnvironmentErrorr¨r£rr‘rHrFrGrcZc_uint16rr’rdrbr‹rXrŒrrŽrr“r”rr•rYZ
c_longlongr Zc_ushortÚNotImplementedErrorr<rLr\r©Zrestypereršr§r«ràr¬ÚobjectrµrrrrrrÚ<module>sN


















@6