U
vf+ @ s d dl Z d dlZd dlZd dlZd dlZddlmZ ddlmZ ddlm Z e j
dkrhd dlZdd Z
nd dlZd d Z
e j
d
krejZnG dd dejZG d
d deZdZdd Zdadd Zdd ZdddZdd Zdd ZdS ) N )__version_verifier_modules__)ffiplatform)VerificationError) r c C s t jjd d S N) importlib machineryEXTENSION_SUFFIXES r r @/opt/alt/python38/lib64/python3.8/site-packages/cffi/verifier.py_extension_suffixes s r
c C s dd t D S )Nc S s g | ]\}}}|t jkr|qS r )impC_EXTENSION).0suffix_typer r r
s
z'_extension_suffixes..)r Zget_suffixesr r r r r
s r c s e Zd Z fddZ ZS )NativeIOc s( t |tr|d}tt| | d S )Nascii)
isinstanceunicodeencodesuperr write)selfs __class__r r r s
zNativeIO.write)__name__
__module____qualname__r
__classcell__r r r r r s r c @ sz e Zd ZdddZd ddZd d
Zdd Zd
d Zdd Zdd Z dd Z
dd Zdd Zd!ddZ
dd Zdd ZdS )"VerifierN F.cc K sz |j jrtd|j jf || _|| _|s4t|}t||}
|
| | _| j | | | _
| ||
| _|rz|rxt
dnddtjd d t||g|j }tjdkr|d}tt|dd d d @ }|d
d}tt|dd d d @ }|d
d}d|| jj||f }t d }|p4t | _tj| j|| | _tj| j|| | _ || _!d| _"d| _#d S )NzKfeature not supported with ffi.verify(), but only with ffi.set_source(): %sz)can't specify both 'modulename' and 'tag' z%d.%d r zutf-8r l 0xLr 0z_cffi_%s_%s%s%sF)$_parserZ_uses_new_featurer ffipreambler flatten_locate_engine_class_vengineZpatch_extension_kwdsflagsmake_relative_tokwds TypeErrorjoinsysversion_infor Z_cdefsourcesr hexbinasciicrc32lstriprstripZ
_class_key_get_so_suffixes_caller_dir_pycachetmpdirospathsourcefilenamemodulefilenameext_package_has_source_has_module)r r. r/ rA
modulenamerF tagforce_generic_engineZsource_extensionr3 relative_tor5 Zflattened_kwdsZ
vengine_classkeyZk1Zk2r r r r __init__ sT
zVerifier.__init__c C s8 | j j& | jr |dkr td| | W 5 Q R X dS )zkWrite the C source code. It is produced in 'self.sourcefilename',
which can be tweaked beforehand.Nzsource code already written)r. _lockrG r
_write_sourcer filer r r write_sourceI s
zVerifier.write_sourcec C s<