Viewing File: /opt/alt/python38/lib64/python3.8/site-packages/cffi/__pycache__/model.cpython-38.pyc

U

ل=^T@sddlZddlZddlmZddlmZmZmZdZdZ	dZ
ddZGd	d
d
eZ
Gddde
ZGd
ddeZeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZGdddeZeeZdd ZeeZGd!d"d"eZGd#d$d$eZeed%dZGd&d'd'e
ZGd(d)d)eZ Gd*d+d+e Z!Gd,d-d-e Z"Gd.d/d/eZ#d<d0d1Z$d=d2d3Z%eZ&e'Z(d4d5Z)d6d7Z*d8d9Z+d:d;Z,dS)>N)
allocate_lock)	CDefErrorVerificationErrorVerificationMissingcCs@|t@rd|}|t@r(d|}|t@r<d|}|S)Nz const z
 volatile z __restrict )Q_CONSTlstrip
Q_VOLATILE
Q_RESTRICT)qualsreplace_withr	/model.pyqualifysrc@sPeZdZdZdZdddZddZd	d
ZddZdd
dZ	ddZ
ddZdS)BaseTypeByIdentityFa C filercCs|j}|ddkst|}|rT|dr@d|kr@d|}n|ddkrTd|}t||}|d|}d	|krtd
||f|S)N&r*z&[(%s)rz[( $z-cannot generate '%s' in %s: unknown type name)	c_name_with_markercountAssertionErrorstrip
startswithrreplacer_get_c_name)selfrcontextr
resultrrr
get_c_names"


zBaseTypeByIdentity.get_c_namecCs|jddS)Nrr)rrr!rrrr /szBaseTypeByIdentity._get_c_namecCsd|kS)Nrr r%rrr
has_c_name2szBaseTypeByIdentity.has_c_namecCsdSNFrr%rrris_integer_type5sz"BaseTypeByIdentity.is_integer_typecCsNz|j|}Wn:tk
rH|||}|j||}||ksDtYnX|SN)_cached_btypesKeyErrorbuild_backend_type
setdefaultr)r!ffi
finishlist	can_delayBTypeZBType2rrrget_cached_btype8sz#BaseTypeByIdentity.get_cached_btypecCsd|fS)Nz<%s>r&r%rrr__repr__AszBaseTypeByIdentity.__repr__csfddjDS)Ncsg|]}|t|fqSr)getattr).0namer%rr
<listcomp>Esz1BaseTypeByIdentity._get_items.<locals>.<listcomp>)_attrs_r%rr%r
_get_itemsDszBaseTypeByIdentity._get_itemsN)rrr)F)__name__
__module____qualname__
is_array_typeis_raw_functionr$r r'r)r3r4r:rrrrrs

	rc@s$eZdZddZddZddZdS)BaseTypecCs|j|jko||kSr*)	__class__r:r!otherrrr__eq__JszBaseType.__eq__cCs
||kSr*rrBrrr__ne__NszBaseType.__ne__cCst|jt|fSr*)hashrAtupler:r%rrr__hash__QszBaseType.__hash__N)r;r<r=rDrErHrrrrr@Hsr@c@s eZdZdZddZddZdS)VoidTypercCs
d|_dS)Nzvoid&)rr%rrr__init__XszVoidType.__init__cCst||dS)NZ
new_void_typeglobal_cacher!r/r0rrrr-[szVoidType.build_backend_typeNr;r<r=r9rJr-rrrrrIUsrIc@seZdZddZdS)BasePrimitiveTypecCsdSr(rr%rrris_complex_typebsz!BasePrimitiveType.is_complex_typeN)r;r<r=rPrrrrrOasrOc4@seZdZdZdddddddddddddddddddddddddddddddddddddddddddddddddddd3ZddZd	d
ZddZd
dZddZ	ddZ
dS)
PrimitiveTyper7cifj)3charZshortintlongz	long longzsigned charz
unsigned charzunsigned shortunsigned int
unsigned longzunsigned long longfloatZdoublezlong doublezfloat _Complexzdouble _ComplexZ_BoolZwchar_tZchar16_tZchar32_tZint8_tZuint8_tZint16_tZuint16_tZint32_tZuint32_tZint64_tZuint64_tZint_least8_tZ
uint_least8_tZ
int_least16_tZuint_least16_tZ
int_least32_tZuint_least32_tZ
int_least64_tZuint_least64_tZint_fast8_tZuint_fast8_tZint_fast16_tZ
uint_fast16_tZint_fast32_tZ
uint_fast32_tZint_fast64_tZ
uint_fast64_tZintptr_tZ	uintptr_tZintmax_tZ	uintmax_tZ	ptrdiff_tZsize_tZssize_tcCs"||jkst||_|d|_dSNr)ALL_PRIMITIVE_TYPESrr7rr!r7rrrrJszPrimitiveType.__init__cCs|j|jdkS)NrSr^r7r%rrris_char_typeszPrimitiveType.is_char_typecCs|j|jdkS)NrTr`r%rrrr)szPrimitiveType.is_integer_typecCs|j|jdkS)NrUr`r%rrr
is_float_typeszPrimitiveType.is_float_typecCs|j|jdkS)NrVr`r%rrrrPszPrimitiveType.is_complex_typecCst||d|jS)NZnew_primitive_type)rLr7rMrrrr-sz PrimitiveType.build_backend_typeN)r;r<r=r9r^rJrar)rbrPr-rrrrrQfsv7rQc@s(eZdZdZddZddZddZdS)	UnknownIntegerTyperRcCs||_|d|_dSr]r7rr_rrrrJszUnknownIntegerType.__init__cCsdS)NTrr%rrrr)sz"UnknownIntegerType.is_integer_typecCstd|jdS)Nz4integer type '%s' can only be used after compilationNotImplementedErrorr7rMrrrr-sz%UnknownIntegerType.build_backend_typeN)r;r<r=r9rJr)r-rrrrrcsrcc@s eZdZdZddZddZdS)UnknownFloatTyperRcCs||_|d|_dSr]rdr_rrrrJszUnknownFloatType.__init__cCstd|jdS)Nz2float type '%s' can only be used after compilationrerMrrrr-sz#UnknownFloatType.build_backend_typeNrNrrrrrgsrgc@seZdZdZdddZdS)BaseFunctionType)argsr#ellipsisabiNcCs||_||_||_||_dd|jD}|jr8|d|p@dg}|jd|f}|dk	r||dd|d|dd}|jjd||_dS)	NcSsg|]}|qSrr&)r6argrrrr8sz-BaseFunctionType.__init__.<locals>.<listcomp>...Zvoidz, rrr)	rir#rjrkappend
_base_patternjoinrr)r!rir#rjrkZreprargsrrrrrJs

 zBaseFunctionType.__init__)Nr;r<r=r9rJrrrrrhsrhc@s$eZdZdZdZddZddZdS)RawFunctionTypez(&)(%s)TcCstd|fdS)NzPcannot render the type %r: it is a function type, not a pointer-to-function type)rrMrrrr-sz"RawFunctionType.build_backend_typecCst|j|j|j|jSr*)FunctionPtrTyperir#rjrkr%rrras_function_pointersz#RawFunctionType.as_function_pointerN)r;r<r=ror?r-rtrrrrrrsrrc@s eZdZdZddZddZdS)rsz(*&)(%s)cCs|j||}g}|jD]}||||qd}|jdkrh|jshz|jjf}Wntk
rfYnXt	||dt
|||jf|S)NrZ	__stdcallZnew_function_type)r#r3rirnrkrj_backendZFFI_STDCALLAttributeErrorrLrG)r!r/r0r#ritpZabi_argsrrrr-s$

z"FunctionPtrType.build_backend_typecCst|j|j|j|jSr*)rrrir#rjrkr%rrras_raw_functionszFunctionPtrType.as_raw_functionN)r;r<r=ror-rxrrrrrssrsc@s"eZdZdZdddZddZdS)	PointerType)totyper
rcCs>||_||_t|d}|jr*d|f}|jd||_dS)Nz *&rr)rzr
rr>r
rr)r!rzr
ZextrarrrrJs
zPointerType.__init__cCs |jj||dd}t||d|S)NT)r1new_pointer_type)rzr3rL)r!r/r0ZBItemrrrr-szPointerType.build_backend_typeN)rrNrrrrrys
rycCs
t|tSr*)ryr	)rzrrrConstPointerTypesr|c@seZdZdZdddZdS)NamedPointerType)rzr7rcCs"t|||||_|d|_dSr])ryrJr7r)r!rzr7r
rrrrJszNamedPointerType.__init__N)rrqrrrrr}sr}c@s,eZdZdZdZddZddZddZd	S)
	ArrayType)itemlengthTcCsF||_||_|dkrd}n|dkr(d}nd|}|jjd||_dS)Nz&[]rmz
&[/*...*/]z&[%s]r)rrrr)r!rrZbracketsrrrrJ)szArrayType.__init__cCst|j|Sr*)r~r)r!Z	newlengthrrrresolve_length6szArrayType.resolve_lengthcCsJ|jdkrtd|f|j||t|j||}t||d||jS)Nrmz)cannot render the type %r: unknown lengthZnew_array_type)rrrr3ryrL)r!r/r0ZBPtrItemrrrr-9s
zArrayType.build_backend_typeN)r;r<r=r9r>rJrr-rrrrr~%s

r~rWc@s,eZdZdZdZddZddZddZdS)	StructOrUnionOrEnumrRNcCs$|jpd|j|jf}|d|_dS)Nz%s %sr)	forcenamekindr7rr_rrrbuild_c_name_with_markerHsz,StructOrUnionOrEnum.build_c_name_with_markercCs||_|dSr*)rr)r!rrrrforce_the_nameLsz"StructOrUnionOrEnum.force_the_namecCs|jdst|jddS)Nr)rendswithrr%rrrget_official_namePsz%StructOrUnionOrEnum.get_official_name)r;r<r=r9rrrrrrrrrDs
rc@sjeZdZdZdZdZdZdddZddZdd	d
Z	ddZ
dd
dZddZddZ
ddZddZdS)
StructOrUnionNrFcCs*||_||_||_||_||_|dSr*)r7fldnamesfldtypes
fldbitsizefldqualsr)r!r7rrrrrrrrJ[szStructOrUnion.__init__ccs>|jdk	r:t|j|jD] \}}|dkrt|tr|VqdS)Nr)rzipr
isinstancer)r!r7typerrranonymous_struct_fieldscs
z%StructOrUnion.anonymous_struct_fieldsTccs||j}|dkrdt|j}t|j|j|j|D]F\}}}}|dkrht|trh|rh|D]
}|VqZq0||||fVq0dS)N)rr)	rlenrrrrrr
enumfields)r!Zexpand_anonymous_struct_unionrr7rbitsizer
r#rrrris

zStructOrUnion.enumfieldsc	Cszg}g}g}g}|D]4\}}}}||||||||qt||_t||_t||_t||_dSr*)rrnrGrrrr)	r!namestypesZbitsizesrr7rrr
rrr
force_flattenws





zStructOrUnion.force_flattencCs$t||||}|s ||||Sr*)rr3finish_backend_type)r!r/r0r1r2rrrr3s
zStructOrUnion.get_cached_btypecs2|jr$|jdkr td|jfdSj|}d|_|jdkrBn|jdkrfdd|jD}tt|j||j	}d}|j
r|j
dkrd}n
d|j
f}jj|||d	d	f|npg}|j\}}}	}
t
t|jD]"}||}|j|}
t|
tr|
jd
kr|
j}t||\}}|dkrT|d|j|j|pLdf|
|}
|jd||
f|j|dd|_|
}t|
tr|
jdkr|dkstn8|}||kr|d
|j|j|pd||f||qtt|j||j	|}j||||	|
d|_dS)Nrz(recursive structure declaration for '%s'rcsg|]}|qSr)r3)r6rwr/r0rrr8sz5StructOrUnion.finish_backend_type.<locals>.<listcomp>r)rrrmzfield '%s.%s' has a bogus size?z{}z=field '%s.%s' is declared as %d bytes, but is really %d bytes)	completedrfr7r+rfixedlayoutlistrrrpackedruZcomplete_struct_or_unionrangerrr~rrr3divmodsizeof_verification_errorrrrn)r!r/r0r2rZlstextra_flagsZfieldofsZ	fieldsizeZ	totalsizeZtotalalignmentrTZfsizeZftypeZ	BItemTypeZnlenZnrestZ
BFieldTypeZ	bitemsizerrrrs











z!StructOrUnion.finish_backend_typecCst|dSr*)r)r!msgrrrrsz!StructOrUnion._verification_errorcCs |jr|jdkrt|dSr*)partialrrr r%rrrcheck_not_partialszStructOrUnion.check_not_partialcCs.|||t||d|j||dS)Nznew_%s_typekey)rrnrLrrrMrrrr-s
z StructOrUnion.build_backend_type)N)T)F)r;r<r=rrrrrJrrrr3rrrr-rrrrrUs


?rc@seZdZdZdS)
StructTypestructNr;r<r=rrrrrrsrc@seZdZdZdS)	UnionTypeunionNrrrrrrsrc@sBeZdZdZdZdZdddZddZdd	Zd
dZ	dd
Z
dS)EnumTypeenumFNcCs$||_||_||_||_|dSr*)r7enumerators
enumvaluesbaseinttyper)r!r7rrrrrrrJs
zEnumType.__init__cCs4t|||jdkr0|}d|dd|_dS)Nrr_)rrrrr)r!rr7rrrrs
zEnumType.force_the_namecCs|jr|jst|dSr*)rpartial_resolvedrr r%rrrrszEnumType.check_not_partialc
Cs4||||}t||d||j|j||dS)NZ
new_enum_typer)rbuild_baseinttyperLrrr)r!r/r0Z
base_btyperrrr-szEnumType.build_backend_typec
CsJ|jdk	r|j||S|jr4t|j}t|j}nDddl}ztWntk
r\YnX|	d|
d}}|dkrd}td}td}nd}td}td}|||}	|||}
||	}||
}|dd	|d>kr|dd	||>kr|	S|dd	|d>kr6|dd	||>kr6|
St
d
|
dS)NrzU%r has no values explicitly defined; guessing that it is equivalent to 'unsigned int'rrXrYrZr[rrz=%s values don't all fit into either 'long' or 'unsigned long')rr3rminmaxwarningsZ__warningregistry__clear	NameErrorwarnr rQrr)
r!r/r0Zsmallest_valueZ
largest_valuerZsignZ
candidate1Z
candidate2Zbtype1Zbtype2Zsize1Zsize2rrrrsH




zEnumType.build_baseinttype)N)r;r<r=rrrrJrrr-rrrrrrs
rcCs2|dkrd|}t|ddd}||d|_|S)Nz$%sunknown_type)rroriginr7Z
structnamerwrrrr-s
rcCs(|dkrd|}t|ddd}t||S)Nz$$%s)rr}rrrrunknown_ptr_type5src
CsRt|tjrtSt4tt|ds2tt|_	t|j	W5QRSQRXdS)N__typecache)
rr
ModuleType_typecache_cffi_backendglobal_lockhasattrrweakrefWeakValueDictionaryr)Zbackendrrr
get_typecache?src

Os|d||f}|rtz|j|WStk
r8YnXzt|j||}Wn4tk
r}ztd|||fW5d}~XYnX|j}t@||}	|	dkr|||<|W5QRS|	W5QRSW5QRXdS)Nrz
%s: %r: %s)	poprZ
_typecacher,r5rurfrget)
Zsrctyper/funcnamerikwdsrresecacheZres1rrrrLJs"$
rLcCstd|d|S)N?r{rK)r/r2rrr
pointer_cacheasrcCs@|jr<t|jdtkr<d||jdff|jdd|_dS)Nrz%s: %sr)rirstr)rr7rrrattach_exception_infodsr)N)N)-rrlockrerrorrrrr	rrrobjectrr@rIZ	void_typerOrQrcrgrhrrrsryZ
voidp_typer|Zconst_voidp_typer}r~Zchar_array_typerrrrrrrrrrrrLrrrrrr<module>sN
/
	L	
G


Back to Directory File Manager