Spade
Mini Shell
| Directory:~$ /proc/self/root/usr/lib64/python2.7/site-packages/cffi/ |
| [Home] [System Details] [Kill Me] |
�
p�Wc@s7ddlZddlZddlZddlZddlZddlmZddlmZejdkr�ddl Z
d�ZnddlZd�Zejdkr�ej
Zndejfd ��YZd
�Zdefd��YZeZd
�Zdad�Zd�Zded�Zd�Zd�ZdS(i����Ni(t__version_verifier_modules__(tffiplatformicCstjjS(N(t importlibt machinerytEXTENSION_SUFFIXES(((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyt_extension_suffixes
scCs5gtj�D]$\}}}|tjkr
|^q
S(N(timptget_suffixestC_EXTENSION(tsuffixt_ttype((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRstNativeIOcBseZd�ZRS(cCs;t|t�r!|jd�}ntt|�j|�dS(Ntascii(t
isinstancetunicodetencodetsuperRtwrite(tselfts((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRs(t__name__t
__module__R(((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRscCs:tjdkr6yddl}Wq6tk
r2q6XndS(Ntwin32i����(tsystplatformt
setuptoolstImportError(R((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyt_hack_at_distutilss
tVerifierc Bs�eZddddedddd�Zdd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
dd�Zd
�Zd�ZRS(ts.ccKs|jjr+tjd|jjf��n||_||_|sUtj|�}nt||�}
|
|�|_|jj |�| |_
|j||
�|_|r�|r�t
d��q�n�djtjd
t||g|j�}tjdkr |jd�}nttj|ddd��d@�}|jd �jd
�}ttj|ddd��d@�}|jd�jd
�}d
||jj||f}t�d}|p�t�|_tjj|j||�|_
tjj|j||�|_!||_"t#|_$t#|_%dS(NsKfeature not supported with
ffi.verify(), but only with ffi.set_source(): %ss)can't specify both
'modulename' and
'tag'tisutf-8iiI����t0xtLit0s_cffi_%s_%s%s%s(i(&t_parsert_uses_new_featureRtVerificationErrortffitpreambletflattent_locate_engine_classt_venginetpatch_extension_kwdstflagstmake_relative_totkwdst TypeErrortjoinRtversionRt_cdefsourcestversion_infoRthextbinasciitcrc32tlstriptrstript
_class_keyt_get_so_suffixest_caller_dir_pycachettmpdirtostpathtsourcefilenametmodulefilenametext_packagetFalset_has_sourcet_has_module(RR&R'R<t
modulenameRAttagtforce_generic_enginetsource_extensionR,trelative_toR.tflattened_kwdst
vengine_classtkeytk1tk2R ((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyt__init__)sD
&&
cCsK|jj�9|jr4|dkr4tjd��n|j|�WdQXdS(skWrite
the C source code. It is produced in 'self.sourcefilename',
which can be tweaked beforehand.ssource code already
writtenN(R&t_lockRCtNoneRR%t
_write_source(Rtfile((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pytwrite_sourceQs
cCsR|jj�@|jr(tjd��n|js>|j�n|j�WdQXdS(s�Write
the C source code (if not done already) and compile it.
This produces a dynamic link library in
'self.modulefilename'.smodule already
compiledN(R&RPRDRR%RCRRt_compile_module(R((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pytcompile_moduleZs
cCsc|jj�Q|jsO|j�|jsO|js?|j�n|j�qOn|j�SWdQXdS(s"Get
a C module from this Verifier instance.
Returns an instance of a FFILibrary class that behaves like the
objects returned by ffi.dlopen(), but that delegates all
operations to the C module. If necessary, the C code is written
and compiled first.
N(R&RPRDt_locate_moduleRCRRRUt
_load_library(R((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pytload_libraryds
cCsZtjj|j�}|jdd�d}|jd�rVttd�rV|d
}n|S(Nt.iit_dtgettotalrefcounti����(R=R>tbasenameR@tsplittendswiththasattrR(RR]((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pytget_module_namets
cCspt�|js<|jj�|js3|j�nWdQXntj|j�}|j�}tj |||j
�S(N(RRCR&RPRRRtmaybe_relative_pathR?Rat
get_extensionR.(Rt
sourcenametmodname((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRcs
cCs
|jjS(N(R*t_gen_python_module(R((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pytgenerates_python_module�scCs�|r�tjj|�r�tjj|�}|j�}x�tjD]|}||kr@||}t|ttf�s�t d|f��ng|D]}tjj
||�^q�}|||<q@q@Wn|S(Ns&keyword '%s' should
be a list or
tuple(R=R>tdirnametcopyRtLIST_OF_FILE_NAMESRtlistttupleR/R0(RR.RIRhRLtlsttfn((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyR-�s
(cCs�tjj|j�s�|jr^yt|jdddg�}Wntk
rQdSX|j}nd}|j j
|j�|t��}|dkr�dS||_n|j j
�t|_dS(Nt__doc__(R=R>tisfileR@RAt
__import__RQRt__path__R*tfind_moduleRaR:t
collect_typestTrueRD(RtpkgR>tfilename((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRW�s
cCs.||j_z|jj�Wd|j`XdS(N(R*t_ftwrite_source_to_f(RRS((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyt_write_source_to�scCs�|dk r|j|�n�t�}|j|�|j�}tjj|j�r�t|jd��}|j �|k}WdQXnt
}|r�t|j�t|jd��}|j|�WdQXnt
|_
dS(Ntrtw(RQRzRtgetvalueR=R>texistsR?topentreadRut_ensure_dirRRC(RRStftsource_datatfpt
needs_written((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRR�s
cCs�tjj|j�}tj||j��}ytj||j�}Wnt k
r_t
}nX|s�t|j�tj
||j�nt|_dS(N(R=R>RhR?RtcompileRctsamefileR@tOSErrorRBR�tshutiltmoveRuRD(RR<toutputfilenametsame((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRU�s
cCs3|jdk r"|jj|j�S|jj�SdS(N(R,RQR*RY(R((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyRX�sN(RRRQRBRORTRVRYRaRcRgR-RWRzRRRURX(((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyR's &
cCs�trt}n|srdtjkr-t}qryddl}Wntk
rVd}nX|j|k rrt}qrn|r�ddlm}|j Sddlm
}|jSdS(Nt__pypy__i����t?i(tvengine_gen(tvengine_cpy(t_FORCE_GENERIC_ENGINERuRtbuiltin_module_namest
_cffi_backendRt_backendRR�tVGenericEngineR�tVCPythonEngine(R&RGR�R�R�((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyR)�s
cCsftr
tStjjd�}|r&|Stjd�jj}tjj tjj
tjj|�d��S(NtCFFI_TMPDIRit__pycache__(t_TMPDIRR=tenvirontgetRt _getframetf_codetco_filenameR>tabspathR0Rh(tresultRw((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyR;�s!cCs
|adS(s:Set the temporary directory to use instead of
__pycache__.N(R�(Rh((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyt
set_tmpdir sc Cs�|pt�}ytj|�}Wntk
r6dSX|rFd}nt�dj�}x�|D]|}|j�jd�r`|j�j|�s�|j�jd�r`y
tjtj j
||��Wq�tk
r�q�Xq`q`Wtj j
|d�g}x�|D]|}ybx[tj|�D]J}tj j
||�}tj j|�rU|j|�qtj|�qWWq�tk
rzq�Xq�WdS(s}Clean up the temporary directory by removing all
files in it
called `_cffi_*.{c,so}` as well as the `build`
subdirectory.Ns.cit_cffi_tbuild(
R;R=tlistdirR�R:tlowert
startswithR_tunlinkR>R0tisdirtappend(R<tkeep_sotfilelistR Rnt clean_dirtdir((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pytcleanup_tmpdirs2
*
cCs:t�}|s6tjdkr*dg}q6dg}n|S(NRs.pyds.so(RRR(tsuffixes((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyR:-s cCs5ytjtjj|��Wntk
r0nXdS(N(R=tmakedirsR>RhR�(Rw((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyR�8s
(ii(i(RR=R5R�tioRRRR3timportlib.machineryRRRtStringIORtBytesIORtobjectRRBR�R)RQR�R;R�R�R:R�(((s3/usr/lib64/python2.7/site-packages/cffi/verifier.pyt<module>s(< �