HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/env/lib/python3.10/site-packages/cffi/__pycache__/vengine_gen.cpython-310.pyc
o

%we<h�@sHddlZddlZddlZddlmZddlmZGdd�de�ZdZ	dS)�N�)�model��VerificationErrorc@s�eZdZdZdZdd�Zdd�Zdd�Zd	d
�ZdZdd
�Z	dd�Z
d[dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZeZeZeZdd�ZeZdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Z d5d6�Z!d7d8�Z"d9d:�Z#	<	;d\d=d>�Z$d?d@�Z%eZ&d]dAdB�Z'dCdD�Z(dEdF�Z)dGdH�Z*dIdJ�Z+d^dLdM�Z,d^dNdO�Z-dPdQ�Z.dRdS�Z/eZ0dTdU�Z1dVdW�Z2eZ3dXdY�Z4d;S)_�VGenericEngine�gFcCs||_|j|_g|_i|_dS�N)�verifier�ffi�export_symbols�_struct_pending_verification)�selfr	�r�I/home/arjun/projects/env/lib/python3.10/site-packages/cffi/vengine_gen.py�__init__s
zVGenericEngine.__init__cCs|�d|j�dS)Nr)�
setdefaultr)r
�kwdsrrr�patch_extension_kwdssz#VGenericEngine.patch_extension_kwdscCsT|D]%}||}|durtj}|D]}tj�||�}tj�|�r&|SqqdSr)�sys�path�os�join�isfile)r
�module_namer�so_suffixes�	so_suffix�basename�dirname�filenamerrr�find_modules���zVGenericEngine.find_modulecC�dSrr�r
rrr�
collect_types%�zVGenericEngine.collect_types�cCs|j�|d�dS)N�
)�_f�write)r
�whatrrr�_prnt(�zVGenericEngine._prntcCsd|j}|t�||jj�|�d�tjdkr0tjdkrd}nd}|j��}|d||f�dSdS)N�decl�win32���PyInit_�initzvoid %s%s(void) { }
)	r)�cffimod_headerr	�preamble�	_generater�platform�version_info�get_module_name)r
�prnt�prefix�modnamerrr�write_source_to_f+s



�z VGenericEngine.write_source_to_frcsj�jj}tj�tj�jj�}|�||����	�d�G���fdd�dt
j���d�}�j	�d|d�|S)N�loadingcs&eZdZ�Z�jZgZ�fdd�ZdS)z/VGenericEngine.load_library.<locals>.FFILibrarycs�jSr)�	_cffi_dirr!)�
FFILibraryrr�__dir__Tsz7VGenericEngine.load_library.<locals>.FFILibrary.__dir__N)�__name__�
__module__�__qualname__�_cffi_generic_moduler
�	_cffi_ffir<r>r�r=�moduler
rrr=Ps
r=r$�loaded��library)r
�_backendrrr�curdirr	�modulefilename�load_library�_load�types�
ModuleType)r
�flags�backendrrHrrDrrLAszVGenericEngine.load_librarycCs$dd�|jjj��D�}|��|S)NcSsg|]
\}\}}||f�qSrr)�.0�key�tp�qualrrr�
<listcomp>^sz4VGenericEngine._get_declarations.<locals>.<listcomp>)r
�_parser�
_declarations�items�sort)r
�lstrrr�_get_declarations]s
�z VGenericEngine._get_declarationscCs�|��D]?\}}|�dd�\}}zt|d||f�}Wn
ty(td|��wz|||�WqtyC}zt�||��d}~wwdS)N� rz_generate_gen_%s_%sznot implemented in verify(): %r)r\�split�getattr�AttributeErrorr�	Exceptionr�attach_exception_info)r
�	step_name�namerT�kind�realname�method�errrr3cs&������zVGenericEngine._generatec
Ksv|��D]4\}}|�dd�\}}t|d||f�}z||||fi|��Wqty8}	zt�|	|��d}	~	wwdS)Nr]rz
_%s_gen_%s)r\r^r_rarrb)
r
rErcrrdrTrerfrgrhrrrrMrs���zVGenericEngine._loadcCr rr�r
rTrdrrr�_generate_nothing|r#z VGenericEngine._generate_nothingcKr rr�r
rTrdrErrrr�_loaded_noopr#zVGenericEngine._loaded_noopcs�t|tj�sJ�|jr|�d||�dS|j}t|j�}g}t|j�D]\}}d}t|tj	�r1d}|�
d||f�q#d|��fdd�t|j|�D�}	|j}
t|
tj	�rb|	�
d|
�d	���tj}
d
�|	�phd}	d|}|j�
|�|jr||jd
}nd}d|||	f}
d|�||
�|
���|d�t|jtj	�r�d}nt|jtj�s�d}nd}|d||d
�|�f�|d�|�dS)NFr$�*z%sx%dzargument of %scs g|]\}}|�d|���qS)z %s)�
get_c_name)rR�type�arg��contextrrrV�s�z>VGenericEngine._generate_gen_function_decl.<locals>.<listcomp>rz *rz, �void�
_cffi_f_%sr]z	 %s%s(%s)zresult of %s�{z*r = zreturn z  %s%s(%s);�})�
isinstancer�FunctionPtrType�ellipsis�_generate_gen_constr)�len�args�	enumerate�
StructOrUnion�append�zip�result�insertrn�	void_typerr�abi�VoidType)r
rTrdr7�numargs�argnames�iro�indirection�arglist�tpresult�wrappernamer��funcdecl�result_coderrqr�_generate_gen_function_decl�sL


�
z*VGenericEngine._generate_gen_function_declcCsdt|tj�sJ�|jr|�d|||�}n�g}|}tdd�|jD��s)t|jtj�r�g}t	|j�D]\}	}
t|
tj�rFt�
|
�}
|�|	|
f�|�|
�q0|j}t|tj�ry|jdurct
d|��f��t�
|�}|�d|�|�dd|f�tj}t�t|�||j�}|j�|�}d|}
|�||
�}|D]\}	}
|�||	|
|�}q�t|||�t|�j�|�dS)NFcss�|]	}t|tj�VqdSr)rwrr~)rR�typrrr�	<genexpr>�s�z6VGenericEngine._loaded_gen_function.<locals>.<genexpr>z*'%s' is used as result type, but is opaquerr�rt)rwrrxry�_load_constant�anyr|r�r~r}�PointerTyper�fldtypes�	TypeError�_get_c_namer�r��tupler
�_get_cached_btype�
load_function�_make_struct_wrapper�setattrror<)r
rTrdrErH�newfunction�indirections�base_tp�
indirect_argsr�r��indirect_result�BFuncr�rrr�_loaded_gen_function�sJ�

��

�
�z#VGenericEngine._loaded_gen_functioncsP|jj�|j�|���dkr|j����fdd�}n	����fdd�}||_|S)Nr�cs"����}�|g|�R�|dS�Nr)�new)r|�res)�BTyper
�oldfuncrr�newfunc�s
z4VGenericEngine._make_struct_wrapper.<locals>.newfunccs6|d�����|��f|�dd�}�|�S)Nr)�newp)r|)r�rQr�r�rrr��s.)r
rIr��_cffi_base_type)r
r�r�rTr�r�r)r�rQr
r�r�rr��sz#VGenericEngine._make_struct_wrappercC� ||jksJ�|�|d|�dS�N�struct�rd�_generate_struct_or_union_declrirrr�_generate_gen_struct_decl��z(VGenericEngine._generate_gen_struct_declcC�|�|d||�dSr���_loading_struct_or_union�r
rTrdrErrr�_loading_gen_struct�r*z"VGenericEngine._loading_gen_structcK�|�|�dSr��_loaded_struct_or_unionrkrrr�_loaded_gen_struct��z!VGenericEngine._loaded_gen_structcCr��N�unionr�rirrr�_generate_gen_union_decl�r�z'VGenericEngine._generate_gen_union_declcCr�r�r�r�rrr�_loading_gen_unionr*z!VGenericEngine._loading_gen_unioncKr�rr�rkrrr�_loaded_gen_unionr�z VGenericEngine._loaded_gen_unionc
Cs�|jdurdSd||f}d||f}d||f��}|j}|d||f�|d�|d�|d�|��D]G\}}	}
}t|	tj�rF|	��sJ|
dkrQ|d	|�q6z|d
|	jdd||d
�|f�Wq6t	y}}z|dt
|��WYd}~q6d}~ww|d�|j�|�|d|f�|d�|d|�|d�|d|�|d�|��D]/\}}	}
}|
dkr�q�|d||f�t|	tj
�r�|	jdur�|d|	���q�|d||f�q�|d�|d�|d�|d�|d|f�|d�|�dS)Nz_cffi_check_%s_%s�_cffi_layout_%s_%s�%s %szstatic void %s(%s *p)ruz8  /* only to generate compile-time warnings or errors */z
  (void)p;rz  (void)((p->%s) << 1);z  { %s = &p->%s; (void)tmp; }z*tmpzfield %r)�qualsz
  /* %s */rvzintptr_t %s(intptr_t i)z,  struct _cffi_aligncheck { char x; %s y; };z  static intptr_t nums[] = {z    sizeof(%s),z)    offsetof(struct _cffi_aligncheck, y),z    offsetof(%s, %s),z    0,  /* %s */z    sizeof(((%s *)0)->%s),z    -1z  };z  return nums[i];z3  /* the next line is not executed, but compiled */z  %s(0);)�fldnames�stripr)�
enumfieldsrwr�
PrimitiveType�is_integer_typernr�strrr�	ArrayType�lengthr�)
r
rTr8rd�
checkfuncname�layoutfuncname�cnamer7�fname�ftype�fbitsize�fqualrhrrrr�s^
����
z-VGenericEngine._generate_struct_or_union_declcCs
|jdurdSd||f}|j�d�d}|�||�}g}d}		||	�}
|
dkr)n
|�|
�|	d7}	q t|tj�rt|jrt|d}|d}|ddd�}
|ddd�}|�	�t
|
�t
|�krht
|j�kskJ�J�|
|||f|_dSd||f��}||f|j
|<dS)	Nr�zintptr_t(*)(intptr_t)rTr�r.r�)r�r
�_typeof_lockedr�rrwrr~�partial�
force_flattenr{�fixedlayoutr�r)r
rTr8rdrEr�r��function�layout�num�x�	totalsize�totalalignment�fieldofs�	fieldsizer�rrrr�7s.


�*z'VGenericEngine._loading_struct_or_unionc
Cs|jdurdS|j�|�||jvr�dd�}|j}|�|�}|j�|�\}}||d|�|�d�||d|�|�d�d}|��D];\}}	}
}|
dkrMqB||||�||�d|f�||ddkry|�|	�}|||d|�|�d	|f�|d7}qB|t	|�ks�J�dSdS)
NcSs||kr
td|||f��dS)Nz'%s (we have %d, but C compiler says %d)r)�	realvalue�
expectedvalue�msgrrr�checkZs���z5VGenericEngine._loaded_struct_or_union.<locals>.checkrzwrong total sizerzwrong total alignmentr�zwrong offset for field %rzwrong size for field %r)
r�r
r�r�pop�sizeof�alignofr��offsetofr{)
r
rTr�r
�BStructr�r�r�r�r�r�r��BFieldrrrr�Ss4


�
�
�z&VGenericEngine._loaded_struct_or_unioncCs0t|tj�r|�||d�dS|�|d|�dS�Nr$)rwr�EnumType�_generate_gen_enum_declr�rirrr�_generate_gen_anonymous_declusz+VGenericEngine._generate_gen_anonymous_declcCs4t|tj�r|�|||d�dS|�|d||�dSr�)rwrr��_loading_gen_enumr�r�rrr�_loading_gen_anonymous{sz%VGenericEngine._loading_gen_anonymouscKs4t|tj�r|j|||fi|��dS|�|�dSr)rwrr��_loaded_gen_enumr�rkrrr�_loaded_gen_anonymous�sz$VGenericEngine._loaded_gen_anonymousN�constc
CsB|j}d||f}|j�|�|dur6|sJ�|dksJ�|d|�|d�|�||�|d�|d�nf|r[|dks>J�|d|�|d�|d|f�|d	|f�|d�nA|dusaJ�|dusgJ�|d
krnd}nd}d}	|dkr�t|tj�r�d
}	d}||�d|	|f|��|d�|d||f�|d�|�dS)Nz_cffi_%s_%sr��int %s(char *out_error)ru�  return 0;rvzint %s(long long *out_value)z  *out_value = (long long)(%s);z  return (%s) <= 0;�var�&r$zconst *z %s%s(void)z  return (%s%s);)r)rr�_check_int_constant_valuerwrr~rn)
r
�is_intrdrT�category�check_valuer7�funcname�	ampersand�extrarrrrz�s@


z"VGenericEngine._generate_gen_constcCs&t|tj�o	|��}|�|||�dSr)rwrr�r�rz)r
rTrdr�rrr�_generate_gen_constant_decl�sz*VGenericEngine._generate_gen_constant_declcCsd|}|dur|sJ�|�||�|}|S|rZ|j�d�d}|j�d�d}	|�|	|�}
|j�|�}|
|�}t|d�}|dkrX|sX|j�d�d}
|dd|j�|
�>7}|S|dus`J�d}t|tj	�rld	|}|j�|�
||��d}	|�|	|�}
|
�}t|tj	�r�|d}|S)
Nz_cffi_const_%sz
long long*rzint(*)(long long*)z	long longr�z	(*)(void)rm)�_load_known_int_constantr
r�r�r��intr�rwrr~rn)r
r�rTrdrEr�r��valuer�r�r��p�negative�	BLongLong�fntypeextrarrrr��s6��zVGenericEngine._load_constantcCsDt|tj�o	|��}|�||||�}t|||�t|�j�|�dSr)	rwrr�r�r�r�ror<r)r
rTrdrErHr�rrrr�_loaded_gen_constant�sz#VGenericEngine._loaded_gen_constantcCs�|j}|dkr|d|||f�n	|d|||f�|d�|d|�|d|�|d�|d|�|d	�|d
|dd�|f�|d�|d
�dS)Nrz&  if ((%s) > 0 || (long)(%s) != %dL) {z1  if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z    char buf[64];z    if ((%s) <= 0)z)        sprintf(buf, "%%ld", (long)(%s));z    elsez2        sprintf(buf, "%%lu", (unsigned long)(%s));z:    sprintf(out_error, "%s has the real value %s, not %s",z            "%s", buf, "%d");�dz    return -1;z  })r))r
rdrr7rrrr��s&
���z(VGenericEngine._check_int_constant_valuecCsr|j�d�d}|j�d�d}|�||�}|j�|d�}||�dkr7|j�|�}tjdkr3t|d�}t|��dS)Nzchar[]rz
int(*)(char*)�r-zutf-8)	r
r�r�r��stringrr5r�r)r
rEr�r�r�r�r�errorrrrr�s

�z'VGenericEngine._load_known_int_constantcCs|�dd�}d||fS)N�$�___D_z
_cffi_e_%s_%s)�replace)r
r8rdrrr�_enum_funcname�szVGenericEngine._enum_funcname�enumcCs�|jr|jD]}|�d|�qdS|�||�}|j�|�|j}|d|�|d�t|j|j�D]
\}}|�	||�q1|d�|d�|�dS)NTr�rur�rv)
r��enumeratorsrzrrrr)r��
enumvaluesr�)r
rTrdr8�
enumeratorr�r7�	enumvaluerrrr��s

z&VGenericEngine._generate_gen_enum_declcsN�jr���fdd��jD�}t|��_d�_dS��||�}���|�dS)Ncsg|]
}��d�|���qS)T)r�)rRr�rEr
rTrrrVs�z4VGenericEngine._loading_gen_enum.<locals>.<listcomp>T)r�rr�r�partial_resolvedrr)r
rTrdrEr8rr�rrrr�s�

z VGenericEngine._loading_gen_enumcCs8t|j|j�D]\}}t|||�t|�j�|�qdSr)r�rrr�ror<r)r
rTrdrErHrrrrrr�s�zVGenericEngine._loaded_gen_enumcCs&|dkrd}n|}|jd||d�dS�Nz...T)r�)rz)r
rTrdr�rrr�_generate_gen_macro_decl sz'VGenericEngine._generate_gen_macro_declcCsF|dkrd}n|}|jd||||d�}t|||�t|�j�|�dSr)r�r�ror<r)r
rTrdrErHr�rrrr�_loaded_gen_macro)s�z VGenericEngine._loaded_gen_macrocCs�t|tj�r<|��r-|j}d|f}|j�|�|d|�|d�|d|f�|d�t�|j�}|�	d||�dSt�|�}|j	d||dd�dS)	N�_cffi_sizeof_%szsize_t %s(void)ruz  return sizeof(%s);rvFr�)r�)
rwrr��length_is_unknownr)rrr��itemrz)r
rTrdr7r��tp_ptrrrr�_generate_gen_variable_decl6s

z*VGenericEngine._generate_gen_variable_declcs\t|tj�rt|��rDd|f}|j�d�d}|�||�}|�}|j�|j�}	t	||j�
|	��\}
}|dkr?td||jf��|�|
�}t�
|j�}|�d|||�}
|jdurd|j�|�}|j�||
�}
t|||
�t|�j�|�dSd|}|j�|�d|��d}|�||�}|���fdd	�}�fd
d�}tt|�|t||��t|�j�|�dS)Nrzsize_t(*)(void)rz/bad size: %r does not seem to be an array of %sFz_cffi_var_%sz
*(*)(void)cs�dSr�rrG��ptrrr�gettergsz3VGenericEngine._loaded_gen_variable.<locals>.gettercs|�d<dSr�r)rHrr rr�setterisz3VGenericEngine._loaded_gen_variable.<locals>.setter)rwrr�rr
r�r�r�r�divmodr�r�resolve_lengthr�r�r��castr�ror<rrn�property)r
rTrdrErHr�r�r��size�	BItemTyper��restrr�BArrayr"r#rr r�_loaded_gen_variableHs>
��

z#VGenericEngine._loaded_gen_variable)r$)r)Nr�Nr)r)5r?r@rA�
_class_key�_gen_python_modulerrrr"r)r:rLr\r3rMrjrl�_generate_gen_typedef_decl�_loading_gen_typedef�_loaded_gen_typedefr��_loading_gen_functionr�r�r�r�r�r�r�r�r�r�r�r�r�r�rzr��_loading_gen_constantr�rr�rrr�r�r�r�_loading_gen_macrorr�_loading_gen_variabler,rrrrrsj



-$1"	
�%
	



rad
#include <stdio.h>
#include <stddef.h>
#include <stdarg.h>
#include <errno.h>
#include <sys/types.h>   /* XXX for ssize_t on some platforms */

/* this block of #ifs should be kept exactly identical between
   c/_cffi_backend.c, cffi/vengine_cpy.py, cffi/vengine_gen.py
   and cffi/_cffi_include.h */
#if defined(_MSC_VER)
# include <malloc.h>   /* for alloca() */
# if _MSC_VER < 1600   /* MSVC < 2010 */
   typedef __int8 int8_t;
   typedef __int16 int16_t;
   typedef __int32 int32_t;
   typedef __int64 int64_t;
   typedef unsigned __int8 uint8_t;
   typedef unsigned __int16 uint16_t;
   typedef unsigned __int32 uint32_t;
   typedef unsigned __int64 uint64_t;
   typedef __int8 int_least8_t;
   typedef __int16 int_least16_t;
   typedef __int32 int_least32_t;
   typedef __int64 int_least64_t;
   typedef unsigned __int8 uint_least8_t;
   typedef unsigned __int16 uint_least16_t;
   typedef unsigned __int32 uint_least32_t;
   typedef unsigned __int64 uint_least64_t;
   typedef __int8 int_fast8_t;
   typedef __int16 int_fast16_t;
   typedef __int32 int_fast32_t;
   typedef __int64 int_fast64_t;
   typedef unsigned __int8 uint_fast8_t;
   typedef unsigned __int16 uint_fast16_t;
   typedef unsigned __int32 uint_fast32_t;
   typedef unsigned __int64 uint_fast64_t;
   typedef __int64 intmax_t;
   typedef unsigned __int64 uintmax_t;
# else
#  include <stdint.h>
# endif
# if _MSC_VER < 1800   /* MSVC < 2013 */
#  ifndef __cplusplus
    typedef unsigned char _Bool;
#  endif
# endif
#else
# include <stdint.h>
# if (defined (__SVR4) && defined (__sun)) || defined(_AIX) || defined(__hpux)
#  include <alloca.h>
# endif
#endif
)
rrrNr$rrr�objectrr1rrrr�<module>sg