YL i+2ddlZddlZddlZddlZddlZddlmZddlmZddlm Z ejdk\rddl Z dZ nddlZdZ ejd k\r ejZnGd d ej"ZGd d eZdZdZdadZdZddZdZdZy)N)__version_verifier_modules__) ffiplatform)VerificationError)rc<tjjddSN) importlib machineryEXTENSION_SUFFIXESS/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/cffi/verifier.py_extension_suffixesr s""55a88rctjDcgc]\}}}|tjk(r|c}}}Scc}}}wr )imp get_suffixes C_EXTENSION)suffix_types rrrsA.1.>.>.@,,?61d3??*, ,,s >rceZdZfdZxZS)NativeIOcnt|tr|jd}tt||y)Nascii) isinstanceunicodeencodesuperrwrite)selfs __class__s rr!zNativeIO.writes*!W%HHW% (D ' *r)__name__ __module__ __qualname__r! __classcell__)r$s@rrrs  + +rrcfeZdZ ddZddZdZdZdZdZdZ d Z d Z d Z dd Z d ZdZy)VerifierNc  |jjr"td|jj||_||_|st j | } t||} | ||_|jj| | |_ |j| | |_ |r|rtddjdtj ddzt"| g|j$z}tj dk\r|j'd}t)t+j,|dddd z}|j/d j1d }t)t+j,|d ddd z}|j/d j1d }d|d|jj2||}t5d}|xs t7|_t:j<j|j8||z|_t:j<j|j8||z|_ ||_!d|_"d|_#y)NzIfeature not supported with ffi.verify(), but only with ffi.set_source(): z)can't specify both 'modulename' and 'tag'z%d.%drzutf-8rl0xLr0_cffi_rF)$_parser_uses_new_featurerffipreamblerflatten_locate_engine_class_venginepatch_extension_kwdsflagsmake_relative_tokwds TypeErrorjoinsys version_infor _cdefsourcesrhexbinasciicrc32lstriprstrip _class_key_get_so_suffixes_caller_dir_pycachetmpdirospathsourcefilenamemodulefilename ext_package _has_source _has_module)r"r4r5rJ modulenamerOtagforce_generic_enginesource_extensionr: relative_tor<flattened_kwds vengine_classkeyk1k2rs r__init__zVerifier.__init__ s ;; ( (#/2{{/L/LOP P  (006N,S2FG %d+  **40 ))$ <  KLL++w)9)9"1)==;'9"../0C4'jj)X^^C1I.;>#q)!,   T "ws4F'G}HrcH|js;|jj5|js|jdddt j |j }|j}t j||fi|jS#1swYYxYwr ) rPr4r^r_rmaybe_relative_pathrMrt get_extensionr<)r" sourcenamemodnames rrwzVerifier.get_extensionws )''&&( )!44T5H5HI &&(((WJ JJ  ) )s BB!c.|jjSr )r8_gen_python_moduleres rgenerates_python_modulez Verifier.generates_python_modules}}///rc|rtjj|rtjj|}|j}tj D]c}||vs||}t |ttfstd|d|Dcgc]"}tjj||$}}|||<e|Scc}w)Nz keyword 'z' should be a list or tuple) rKrLdirnamecopyrLIST_OF_FILE_NAMESrlisttupler=r>)r"r<rVr~rYlstfns rr;zVerifier.make_relative_tos 277??;7ggook2G99;D"55 $$;s)C%cD%=9'+.)122?BC277<<4CCC #DI $ Ds'C ctjj|jsr|jr' t |jdddg}|j}nd}|jj|j|t}|y||_|jjd|_ y#t $rYywxYw)N__doc__T)rKrLisfilerNrO __import__ ImportError__path__r8 find_modulertrH collect_typesrQ)r"pkgrLfilenames rrhzVerifier._locate_modulesww~~d112$T%5%5tTI;OC||}}001E1E1G1A1CEH"*D  ##%#sB>> C  C c||j_ |jj|j`y#|j`wxYwr )r8_fwrite_source_to_fr`s r_write_source_tozVerifier._write_source_tos8  ! MM + + -    s :Ac ||j|yt}|j||j}tjj |j r4t|j d5}|j|k( }dddnd}rEt|j t|j d5}|j|dddd|_ y#1swYXxYw#1swYxYw)NrTw) rrgetvaluerKrLexistsrMopenread _ensure_dirr!rP)r"raf source_datafp needs_writtens rr_zVerifier._write_sources    ! !$ ' A  ! !! $**,Kww~~d112$--s3Cr)+k)A$BMCC!% D//0$--s3*rHH[)* $D CC**s?C. C:.C7:Dc~tjj|j}t j ||j } t j||j}|s5t|jtj||jd|_ y#t$rd}YLwxYw)NFT)rKrLr~rMrcompilerwsamefilerNOSErrorrshutilmoverQ)r"rJoutputfilenamesames rrdzVerifier._compile_modules!4!45$,,VT5G5G5IJ ''8K8KLD ++ , KK(;(; <  D s B.. B<;B<c|jsJ|j%|jj|jS|jjSr )rQr:r8rjres rrizVerifier._load_librarysG :: !==--djj9 9==--/ /r)NNNF.cNNr )r%r&r'r\rbrfrjrtrwr|r;rhrr_rdrir rrr*r*sN>B@E@D'!R%#( K0   &!$2  0rr*Fctrd}|s*dtjvrd}n ddl}|j |urd}|rddlm}|jSddlm }|jS#t$rd}YCwxYw)NT__pypy__r?r) vengine_gen) vengine_cpy) _FORCE_GENERIC_ENGINEr?builtin_module_names _cffi_backendr_backendrrVGenericEnginerVCPythonEngine)r4rTrrrs rr7r7su#  11 1#'  $$||=0'+$!)))!))) $ #  $sA A)(A)cftrtStjjd}|r|St j dj j}tjjtjjtjj|dS)N CFFI_TMPDIRr- __pycache__) _TMPDIRrKenvirongetr? _getframef_code co_filenamerLabspathr>r~)resultrs rrIrIst ZZ^^M *F  }}Q&&22H 77??277<<(A(* ++rc|ay)z:Set the temporary directory to use instead of __pycache__.N)r)r~s r set_tmpdirrs Grcn|xs t} tj|}|rd}nt dj }|D]}|j j ds#|j j|s |j jdsb tjtjj||tjj|dg}|D]} tj|D]h}tjj||}tjj|r|j|Ttj|jy#t$rYywxYw#t$rY]wxYw#t$rYwxYw)z}Clean up the temporary directory by removing all files in it called `_cffi_*.{c,so}` as well as the `build` subdirectory.Nrrr1build) rIrKlistdirrrHlower startswithrrunlinkrLr>isdirappend)rJkeep_sofilelistrr clean_dirdirs rcleanup_tmpdirrsj ,*,F::f%!#A&,,. 88:  * ##F+rxxz/B/B4/H  "'',,vr23 fg./I  jjo "WW\\#r*77==$$$R(IIbM  "       s6F *3FBF( FF F%$F%( F43F4cTt}|stjdk(rdg}|Sdg}|S)Nwin32z.pydz.so)rr?platform)suffixess rrHrH$s5"$H  <<7 "xH OwH Orctjj|}|r6tjj|stj|yyyr )rKrLr~rmakedirs)rr~s rrr/s9ggooh'Grww}}W- G.wr)NF)r?rKrCriorrrerrorrr@importlib.machineryr rrStringIOrBytesIOobjectr*rr7rrIrrrHrr rrrs%$$*$v9, t{{H+2::+z0vz0|*, + > r