관리-도구
편집 파일: vengine_cpy.cpython-39.opt-1.pyc
a �����`8�����������������������@���s@���d�dl�Z�d�dlZddlmZ�ddlmZ�G�dd��de�ZdZdS�)�����N����)�model��VerificationErrorc�������������������@���s��e�Zd�ZdZdZdd��Zdd��Zdd��Zd d ��Zdndd �Z dd��Z dd��Zdd��Zdodd�Z dd��Zdd��Zdd��Zdd��Zdd ��Zd!d"��Zd#d$��Zd%d&��Zd'd(��ZeZeZeZeZeZd)d*��Zd+d,��Zd-d.��ZeZd/d0��Z eZ!d1d2��Z"d3d4��Z#d5d6��Z$d7d8��Z%eZ&d9d:��Z'd;d<��Z(d=d>��Z)d?d@��Z*dAdB��Z+dCdD��Z,dEdF��Z-dGdH��Z.eZ/dIdJ��Z0dKdL��Z1dMdN��Z2dOdP��Z3dpdSdT�Z4dUdV��Z5dWdX��Z6eZ7eZ8eZ9dqdYdZ�Z:d[d\��Z;drd^d_�Z<eZ=eZ>d`da��Z?dbdc��Z@ddde��ZAeZBeZCeZDeZEdfdg��ZFdhdi��ZGeZHeZIdjdk��ZJdldm��ZKdS�)s�VCPythonEngine�xTc�����������������C���s���||�_�|j|�_i�|�_i�|�_d�S��N)�verifier�ffi�_struct_pending_verification�_types_of_builtin_functions)�selfr �����r����6/usr/lib64/python3.9/site-packages/cffi/vengine_cpy.py�__init__ ���s����zVCPythonEngine.__init__c�����������������C���s���d�S�r���r���)r ����kwdsr���r���r����patch_extension_kwds���s����z#VCPythonEngine.patch_extension_kwdsc�����������������C���sP���zt��||�\}}}W�n�ty*���Y�d�S�0�|d�ur<|����|d�|vrLd�S�|S��Nr���)�imp�find_module�ImportError�close)r ���Zmodule_name�pathZso_suffixes�f�filenameZdescrr���r���r���r������s����zVCPythonEngine.find_modulec�����������������C���s���i�|�_�|��d��d�S�)NZcollecttype)� _typesdict� _generate�r ���r���r���r���� collect_types$���s����zVCPythonEngine.collect_types��c�����������������C���s���|�j��|d���d�S�)N� )Z_f�write)r ���Zwhatr���r���r����_prnt(���s����zVCPythonEngine._prntc�����������������C���s ���|�j�|�S�r���)r���)r ����typer���r���r����_gettypenum+���s����zVCPythonEngine._gettypenumc�����������������C���s8���t�|tj�r|jdkr4||�jvr4t|�j�}||�j|<�d�S�)N�long double)� isinstancer���� PrimitiveType�namer����len)r ����tpZnumr���r���r����_do_collect_type/���s������ zVCPythonEngine._do_collect_typec�����������������C���s���|������ddg|�_|�j}|t��|���||�jj��|���|��d��|�����|���|d��|��d��|d��|d��|d��|���|�j���}|�jd�}|d ��|���|d ��|d��|d|���|d ��|d��|d��|d��|d��|���|d��|d|���|d��|d��|d��|d��|d��|d|f���|d��|d��|d��|d��|d��|���|d��|���|d��|d|���|d��|d��|d|���|d��|d ��|d!|f���|d ��|d"��|d��|���|d#��d�S�)$Nz ((void)lib,0)�declz&static PyMethodDef _cffi_methods[] = {�methodz3 {"_cffi_setup", _cffi_setup, METH_VARARGS, NULL},z) {NULL, NULL, 0, NULL} /* Sentinel */z};Fz#if PY_MAJOR_VERSION >= 3z.static struct PyModuleDef _cffi_module_def = {z PyModuleDef_HEAD_INIT,z "%s",z NULL,z -1,z _cffi_methods,z NULL, NULL, NULL, NULLZPyMODINIT_FUNCzPyInit_%s(void)�{z PyObject *lib;z+ lib = PyModule_Create(&_cffi_module_def);z if (lib == NULL)� return NULL;z# if (%s < 0 || _cffi_init() < 0) {z Py_DECREF(lib);� }z return lib;�}z#elsezinit%s(void)z+ lib = Py_InitModule("%s", _cffi_methods);z return;z! if (%s < 0 || _cffi_init() < 0)z return;z#endif) r����_chained_list_constantsr"����cffimod_headerr ���Zpreambler����_generate_setup_custom�get_module_name)r ����prnt�modnameZ constantsr���r���r����write_source_to_f6���st���� z VCPythonEngine.write_source_to_fNc�������������� ������s���t�����z�ttd�rt���}z�z6ttd�r<|d�ur<t�|��t���j����jj ��W�n<�t y��}�z$d�jj |f�}t|��W�Y�d�}~n d�}~0�0�W�ttd�r�t�|��nttd�r�t�|��0�W�t�����n t�����0��� �d��tdd���j���D�����fdd�tt���D��}tt�jj|��}G�����fdd �d t�������}��|t|��rpd d�l}|�d�j�������j �d|d ���j�_�j�_|S�)N�getdlopenflags�setdlopenflagszimporting %r: %sZloadingc�����������������S���s���g�|�]\}}||f�qS�r���r���)�.0�key�valuer���r���r���� <listcomp>����s����z/VCPythonEngine.load_library.<locals>.<listcomp>c��������������������s���g�|�]}��|��qS�r���r����r;����i)� revmappingr���r���r>������������c�����������������������s&���e�Zd�Z�Z�jZg�Z��fdd�ZdS�)z/VCPythonEngine.load_library.<locals>.FFILibraryc��������������������s�����j�t|�j��S�r���)� _cffi_dir�list�__dict__r���)� FFILibraryr���r����__dir__����s����z7VCPythonEngine.load_library.<locals>.FFILibrary.__dir__N)�__name__� __module__�__qualname__Z_cffi_python_moduler ���Z _cffi_ffirC���rG���r���)rF����moduler ���r���r���rF�������s���rF���r���z0reimporting %r might overwrite older definitionsZloaded��library)r����acquire_lock�hasattr�sysr9���r:���Zload_dynamicr ���r5���Zmodulefilenamer���r����release_lock�_load�dictr����items�ranger)���rD����mapr ����_get_cached_btype�objectZ_cffi_setup�warnings�warnZ_cffi_original_ffir���Z_cffi_types_of_builtin_funcs)r ����flagsZprevious_flags�e�error�lstrM���rY���r���)rF���rK���rA���r ���r����load_library����sF���� � � ��zVCPythonEngine.load_libraryc�����������������C���s$���dd��|�j�jj���D��}|����|S�)Nc�����������������S���s���g�|�]\}\}}||f�qS�r���r���)r;���r<���r*���Zqualr���r���r���r>�������rB���z4VCPythonEngine._get_declarations.<locals>.<listcomp>)r ���Z_parserZ _declarationsrT����sort)r ���r^���r���r���r����_get_declarations����s �����z VCPythonEngine._get_declarationsc�����������������C���s����|�����D�]�\}}|�dd�\}}zt|�d||f��}W�n�tyT���td|���Y�n0�z|||��W�q�ty��}�zt�||����W�Y�d�}~qd�}~0�0�qd�S�)N� r���z_generate_cpy_%s_%sznot implemented in verify(): %r)ra����split�getattr�AttributeErrorr���� Exceptionr����attach_exception_info)r ���� step_namer(���r*����kind�realnamer-���r\���r���r���r���r�������s������ zVCPythonEngine._generatec����������� ������K���s����|�����D�]v\}}|�dd�\}}t|�d||f��}z||||fi�|���W�q�ty|�} �zt�| |����W�Y�d�} ~ qd�} ~ 0�0�qd�S�)Nrb���r���z _%s_cpy_%s)ra���rc���rd���rf���r���rg���) r ���rK���rh���r���r(���r*���ri���rj���r-���r\���r���r���r���rR�������s����zVCPythonEngine._loadc�����������������C���s���d�S�r���r����r ���r*���r(���r���r���r����_generate_nothing����s����z VCPythonEngine._generate_nothingc�����������������K���s���d�S�r���r����r ���r*���r(���rK���r���r���r���r����_loaded_noop����s����zVCPythonEngine._loaded_noopc�����������������C���s*��d}t�|tj�rT|���r2|jdkr2d}d|j�}nd|�d�|j�dd�f�}d}n�t�|tj�rt|��||||��d�S�t�|tj tj f�r�|��d ||��|�|f���|��d |���d�S�t�|tj �r�d|�d��}d|��|��}d }nt|��|��d||||f���|��d||�d�|f���|��d |���d�S�)Nr����_BoolZ_cffi_to_c_intz, %sz(%s)_cffi_to_c_%srb����_z-1z6 if (_cffi_to_c((char *)&%s, _cffi_type(%d), %s) < 0)z %s;z(%s)_cffi_to_c_pointerz, _cffi_type(%d)ZNULLz %s = %s(%s%s);z' if (%s == (%s)%s && PyErr_Occurred()))r&���r���r'����is_integer_typer(���� get_c_name�replace�PointerType�"_convert_funcarg_to_c_ptr_or_array� StructOrUnion�EnumTyper"���r$����FunctionPtrType�NotImplementedError)r ���r*����fromvar�tovar�errcodeZextraargZ converterZerrvaluer���r���r����_convert_funcarg_to_c����s<���� ����z$VCPythonEngine._convert_funcarg_to_cc�����������������C���s.���t�|tj�r*|�d��|�d��|�d��d�S�)NzPy_ssize_t datasizez-struct _cffi_freeme_s *large_args_free = NULLzIif (large_args_free != NULL) _cffi_free_array_arguments(large_args_free);)r&���r���rt����add)r ���r*���� localvars� freelinesr���r���r����_extra_local_variables��s���� z%VCPythonEngine._extra_local_variablesc�����������������C���s~���|���d��|���d|��|�||f���|���d��|���d|f���|���d|��|�||f���|���d��|���d|���|���d��d�S�) Nz1 datasize = _cffi_prepare_pointer_call_argument(z( _cffi_type(%d), %s, (char **)&%s);z if (datasize != 0) {zE %s = ((size_t)datasize) <= 640 ? alloca((size_t)datasize) : NULL;zF if (_cffi_convert_array_argument(_cffi_type(%d), %s, (char **)&%s,z, datasize, &large_args_free) < 0)z %s;r0���)r"���r$���)r ���r*���rz���r{���r|���r���r���r���ru�����s���� � �� z1VCPythonEngine._convert_funcarg_to_c_ptr_or_arrayc�����������������C���s��t�|tj�r`|���r,|jdkr,d||jf�S�|jdkrLd|j�dd�|f�S�d||��|�f�S�n�t�|tjtjf�r�d||��|�f�S�t�|tj �r�d||��t�|j ��f�S�t�|tj�r�|jd�u�r�t d |���|f���d ||��|�f�S�t�|tj��rd||��|�f�S�t|��d�S�)Nro���z_cffi_from_c_int(%s, %s)r%���z_cffi_from_c_%s(%s)rb���rp���z/_cffi_from_c_deref((char *)&%s, _cffi_type(%d))z0_cffi_from_c_pointer((char *)%s, _cffi_type(%d))z!'%s' is used as %s, but is opaquez0_cffi_from_c_struct((char *)&%s, _cffi_type(%d)))r&���r���r'���rq���r(���rs���r$���rt���rx���� ArrayType�itemrv����fldnames� TypeError�_get_c_namerw���ry���)r ���r*����var�contextr���r���r����_convert_expr_from_c*��s:���� � �� � � �z#VCPythonEngine._convert_expr_from_cc�����������������C���s8���|j�r|��|��n"|jD�]}|��|��q|��|j��d�S�r���)�ellipsisr+����args�result)r ���r*���r(���r#���r���r���r����"_generate_cpy_function_collecttypeQ��s ���� z1VCPythonEngine._generate_cpy_function_collecttypec�������������� ���C���s���|j�r|��d||��d�S�|�j}t|j�}|dkr6d}n|dkrDd}nd}|d��|d||f���|d ��d |�}t|j�D�] \}}|d|�d|�|����qzt��} t��} |jD�]}|��|| | ��q�t | �D�]}|d|f���q�t |jtj ��sd }d|�}|d|j�d|����|d��nd}t|j�dk�r�tt|j��} | D�]}|d|����q@|���|dd|�|d�dd��| D���f���|d��|���t|j�D�](\}}|��|d|�d|�d��|����q�|d��|d��|d||d�dd��tt|j��D���f���|d ��|d!��|���|d"��|dk�r.|d#��|�rn|d$|��|jd%d&����| D�]}|d'|����qP|d(��n(| D�]}|d'|����qr|d)��|d*��|d+��|���d�S�),NFr���Znoargr���Zarg0r�����static PyObject *z(_cffi_f_%s(PyObject *self, PyObject *%s)r.���zargument of %s� %s;z x%dz result = zresult of %sz resultz PyObject *pyresult;r���z PyObject *arg%d;z+ if (!PyArg_ParseTuple(args, "%s:%s", %s))�Oz, c�����������������S���s���g�|�]}d�|��qS�)z&arg%dr���r?���r���r���r���r>������rB���z>VCPythonEngine._generate_cpy_function_decl.<locals>.<listcomp>r/���zarg%d�x%dzreturn NULLz Py_BEGIN_ALLOW_THREADSz _cffi_restore_errno();z { %s%s(%s); }c�����������������S���s���g�|�]}d�|��qS�)r����r���r?���r���r���r���r>������rB���z _cffi_save_errno();z Py_END_ALLOW_THREADS� (void)self; /* unused */� (void)noarg; /* unused */z pyresult = %s;r����zresult typez z return pyresult;z Py_INCREF(Py_None);z return Py_None;r1���)r�����_generate_cpy_constr"���r)���r����� enumeraterr����setr�����sortedr&���r����r���ZVoidTyperU����joinr}���r����)r ���r*���r(���r6����numargs�argnamer����r@���r#���r���r����r,���Zresult_code�rngZfreeliner���r���r����_generate_cpy_function_decl\��s����� �� � � z*VCPythonEngine._generate_cpy_function_declc�����������������C���sL���|j�r d�S�t|j�}|dkr"d}n|dkr0d}nd}|��d|||f���d�S�)Nr���ZMETH_NOARGSr���ZMETH_OZMETH_VARARGSz {"%s", _cffi_f_%s, %s, NULL},)r����r)���r����r"���)r ���r*���r(���r�����methr���r���r����_generate_cpy_function_method���s���� z,VCPythonEngine._generate_cpy_function_methodc�����������������C���s.���|j�r d�S�t||�}t|||��||�j|<�d�S�r���)r����rd����setattrr���)r ���r*���r(���rK���rM����funcr���r���r����_loaded_cpy_function���s ���� z#VCPythonEngine._loaded_cpy_functionc�����������������C���s���|���|d|��d�S��N�struct��_generate_struct_or_union_declrk���r���r���r����_generate_cpy_struct_decl���s����z(VCPythonEngine._generate_cpy_struct_declc�����������������C���s���|���|d|��d�S�r������ _generate_struct_or_union_methodrk���r���r���r����_generate_cpy_struct_method���s����z*VCPythonEngine._generate_cpy_struct_methodc�����������������C���s���|���|d||��d�S�r������_loading_struct_or_union�r ���r*���r(���rK���r���r���r����_loading_cpy_struct���s����z"VCPythonEngine._loading_cpy_structc�����������������K���s���|���|��d�S�r�����_loaded_struct_or_unionrm���r���r���r����_loaded_cpy_struct���s����z!VCPythonEngine._loaded_cpy_structc�����������������C���s���|���|d|��d�S��N�unionr����rk���r���r���r����_generate_cpy_union_decl���s����z'VCPythonEngine._generate_cpy_union_declc�����������������C���s���|���|d|��d�S�r����r����rk���r���r���r����_generate_cpy_union_method���s����z)VCPythonEngine._generate_cpy_union_methodc�����������������C���s���|���|d||��d�S�r����r����r����r���r���r����_loading_cpy_union���s����z!VCPythonEngine._loading_cpy_unionc�����������������K���s���|���|��d�S�r���r����rm���r���r���r����_loaded_cpy_union���s����z VCPythonEngine._loaded_cpy_unionc����������� ������C���s��|j�d�u�rd�S�d||f�}d||f�}d||f����}|�j}|d||f���|d��|d��|d��|���D�]�\}} } }t| tj�r�| ���s�| dkr�|d |���qlz$|d | jdd|�|d �|f���W�ql�t y��}�z|dt |����W�Y�d�}~qld�}~0�0�ql|d��|d��|d|f���|d��|d|���|d��|d|���|d��|���D�]h\}} } }| dk�rn�qT|d||f���t| tj��r�| jd�u��r�|d| � �����n|d||f����qT|d��|d��|d��|d��|d��|d��|d|f���|d��|���d�S�) Nz_cffi_check_%s_%s�_cffi_layout_%s_%s�%s %szstatic void %s(%s *p)r.���z8 /* only to generate compile-time warnings or errors */z (void)p;r���z (void)((p->%s) << 1);z { %s = &p->%s; (void)tmp; }z*tmpzfield %r)Zqualsz /* %s */r1���r����z#%s(PyObject *self, PyObject *noarg)z, struct _cffi_aligncheck { char x; %s y; };z static Py_ssize_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 };r����r����z' return _cffi_get_struct_layout(nums);z3 /* the next line is not executed, but compiled */z %s(0);)r�����stripr"���� enumfieldsr&���r���r'���rq���rr���r����strr�����lengthr����) r ���r*����prefixr(���Z checkfuncname�layoutfuncname�cnamer6����fname�ftype�fbitsize�fqualr\���r���r���r���r�������s`���� ���( z-VCPythonEngine._generate_struct_or_union_declc�����������������C���s0���|j�d�u�rd�S�d||f�}|��d||f���d�S�)Nr����z {"%s", %s, METH_NOARGS, NULL},)r����r"���)r ���r*���r����r(���r����r���r���r���r���� ��s���� �z/VCPythonEngine._generate_struct_or_union_methodc����������� ������C���s����|j�d�u�rd�S�d||f�}t||�}|��}t|tj�r�|jr�|d�}|d�} |dd�d��} |dd�d��}|����| ||| f|_nd||f����}||f|�j |<�d�S�)Nr����r���r�����������r����) r����rd���r&���r���rv����partialZ force_flattenZfixedlayoutr����r���) r ���r*���r����r(���rK���r�����function�layoutZ totalsizeZtotalalignmentZfieldofsZ fieldsizer����r���r���r���r������s���� z'VCPythonEngine._loading_struct_or_unionc����������� ������C���s���|j�d�u�rd�S�|�j�|��||�jv�r�dd��}|�j}|�|�}|�j�|�\}}||d�|�|�d��||d�|�|�d��d}|���D�]v\}} } }| dkr�q�|||�|�||�d|f���||d��dkr�|�| �}|||d��|�|�d |f���|d7�}q�d�S�) Nc�����������������S���s���|�|krt�d|||�f���d�S�)Nz'%s (we have %d, but C compiler says %d)r���)Z realvalueZ expectedvalue�msgr���r���r����check0��s������z5VCPythonEngine._loaded_struct_or_union.<locals>.checkr���zwrong total sizer���zwrong total alignmentr����zwrong offset for field %rzwrong size for field %r) r����r ���rW���r����pop�sizeofZalignofr����Zoffsetof) r ���r*���r����r ���ZBStructr����r����r@���r����r����r����r����ZBFieldr���r���r���r����)��s0���� � � z&VCPythonEngine._loaded_struct_or_unionc�����������������C���s.���t�|tj�r|��||d��n|��|d|��d�S��Nr���)r&���r���rw����_generate_cpy_enum_declr����rk���r���r���r����_generate_cpy_anonymous_declM��s����z+VCPythonEngine._generate_cpy_anonymous_declc�����������������C���s���t�|tj�s|��|d|��d�S�r����)r&���r���rw���r����rk���r���r���r����_generate_cpy_anonymous_methodS��s����z-VCPythonEngine._generate_cpy_anonymous_methodc�����������������C���s0���t�|tj�r|��|||��n|��|d||��d�S�r����)r&���r���rw����_loading_cpy_enumr����r����r���r���r����_loading_cpy_anonymousW��s����z%VCPythonEngine._loading_cpy_anonymousc�����������������K���s2���t�|tj�r$|�j|||fi�|���n |��|��d�S�r���)r&���r���rw����_loaded_cpy_enumr����rm���r���r���r����_loaded_cpy_anonymous]��s����z$VCPythonEngine._loaded_cpy_anonymous�constFc �����������������C���s`��|�j�} d||f�} | d| ���| d��| d��| d��|sT| d|pD|�d|����n�|d�urh|��||��|s�|dkr~d |�}n|}| d |f���| d|��|dd �f���n| d|���| d��| d��|�r | d��| d��| d|f���| d��| d��| d��| d��| d|���| d��| d��| d��| d|�j|����| d�|�j|<�| d��| ���d�S�)Nz_cffi_%s_%s�static int %s(PyObject *lib)r.���z PyObject *o;z int res;r����z ir�����&z i = (%s);z o = %s;r@���z variable typez! o = _cffi_from_c_int_const(%s);z if (o == NULL)� return -1;z {z PyObject *o1 = o;z8 o = Py_BuildValue("On", o1, (Py_ssize_t)sizeof(%s));z Py_DECREF(o1);z if (o == NULL)z return -1;r0���z- res = PyObject_SetAttrString(lib, "%s", o);z Py_DECREF(o);z if (res < 0)� return %s;�(lib)r1���)r"���rr����_check_int_constant_valuer����r2���)r ����is_intr(���r*����category�vartp�delayed�size_too�check_valuer6����funcnameZrealexprr���r���r���r����f��sP���� � �z"VCPythonEngine._generate_cpy_constc�����������������C���s&���t�|tj�o|���}|s"|��|��d�S�r���)r&���r���r'���rq���r+����r ���r*���r(���r����r���r���r����"_generate_cpy_constant_collecttype���s����z1VCPythonEngine._generate_cpy_constant_collecttypec�����������������C���s&���t�|tj�o|���}|��|||��d�S�r���)r&���r���r'���rq���r����r����r���r���r����_generate_cpy_constant_decl���s����z*VCPythonEngine._generate_cpy_constant_declc�����������������C���s����|�j�}|dkr"|d|||f���n|d|||f���|d��|d|���|d|���|d��|d|���|d ��|d ��|d|||f���|d��|d ��d�S�)Nr���z& if ((%s) > 0 || (long)(%s) != %dL) {z1 if ((%s) <= 0 || (unsigned long)(%s) != %dUL) {z char buf[64];z if ((%s) <= 0)z. snprintf(buf, 63, "%%ld", (long)(%s));z elsez7 snprintf(buf, 63, "%%lu", (unsigned long)(%s));z) PyErr_Format(_cffi_VerificationError,z6 "%s%s has the real value %s, not %s",z( "%s", "%s", buf, "%d");r����r0���)r"���)r ���r(���r=���Z err_prefixr6���r���r���r���r�������s,����� ���z(VCPythonEngine._check_int_constant_valuec�����������������C���s���|��dd�}d||f�S�)N�$Z___D_z _cffi_e_%s_%s)rs���)r ���r����r(���r���r���r����_enum_funcname���s����zVCPythonEngine._enum_funcname�enumc�����������������C���s����|j�r&|jD�]}|�jd|dd��qd�S�|��||�}|�j}|d|���|d��t|j|j�D�]\}}|��||d|���qZ|d|�jd����|d�|�jd<�|d ��|���d�S�) NTF)r����r����r.���z enum %s: r����r����r1���) r�����enumeratorsr����r����r"����zip� enumvaluesr����r2���)r ���r*���r(���r����� enumeratorr����r6���� enumvaluer���r���r���r�������s ���� �z&VCPythonEngine._generate_cpy_enum_declc��������������������s.���|j�r*��fdd�|jD��}t|�|_d|_d�S�)Nc��������������������s���g�|�]}t���|��qS�r���)rd���)r;���r�����rK���r���r���r>������s����z4VCPythonEngine._loading_cpy_enum.<locals>.<listcomp>T)r����r�����tupler����Zpartial_resolved)r ���r*���r(���rK���r����r���r����r���r�������s���� � z VCPythonEngine._loading_cpy_enumc�����������������C���s(���t�|j|j�D�]\}}t|||��qd�S�r���)r����r����r����r����)r ���r*���r(���rK���rM���r����r����r���r���r���r�������s����zVCPythonEngine._loaded_cpy_enumc�����������������C���s&���|dkrd�}n|}|�j�d||d��d�S�)Nz...T)r����)r����)r ���r*���r(���r����r���r���r����_generate_cpy_macro_decl���s����z'VCPythonEngine._generate_cpy_macro_declc�����������������C���s2���t�|tj�rt�|j�}n t�|�}|��|��d�S�r���)r&���r���r����rt���r����r+����r ���r*���r(���Ztp_ptrr���r���r����"_generate_cpy_variable_collecttype���s���� z1VCPythonEngine._generate_cpy_variable_collecttypec�����������������C���sR���t�|tj�r2t�|j�}|�jd||||���d��nt�|�}|�jd||dd��d�S�)NF)r����r����r����)r����)r&���r���r����rt���r����r�����length_is_unknownr����r���r���r����_generate_cpy_variable_decl���s����� z*VCPythonEngine._generate_cpy_variable_declc����������� ���������s����t�||�}t|tj�r�|���rn|\}}|�j�|j�}t||�j� |��\}} | dkrdt d||jf���|�|�}|jd�ur�|�j�|�} |�j� | |�}t|||��d�S�|��t||����fdd�}��fdd�}tt|�|t||���t|�j�|��d�S�)Nr���z/bad size: %r does not seem to be an array of %sc��������������������s�����d�S�r���r���rL����Zptrr���r����getter��s����z3VCPythonEngine._loaded_cpy_variable.<locals>.getterc��������������������s���|��d<�d�S�r���r���)rM���r=���r����r���r����setter ��s����z3VCPythonEngine._loaded_cpy_variable.<locals>.setter)rd���r&���r���r����r����r ���rW���r�����divmodr����r���Zresolve_lengthr�����castr�����delattrr#����propertyrC����append) r ���r*���r(���rK���rM���r=����sizeZ BItemTyper�����restZBArrayr����r����r���r����r����_loaded_cpy_variable��s0���� �� z#VCPythonEngine._loaded_cpy_variablec�����������������C���s4���|�j�}|d��|d��|d|�jd����|d��d�S�)Nz,static int _cffi_setup_custom(PyObject *lib)r.���r����Tr1���)r"���r2���)r ���r6���r���r���r���r4���'��s ����z%VCPythonEngine._generate_setup_custom)r���)N)Nr����NTFN)r���)r����)LrH���rI���rJ���Z _class_keyZ_gen_python_moduler���r���r���r���r"���r$���r+���r8���r_���ra���r���rR���rl���rn���r}���r����ru���r����Z!_generate_cpy_typedef_collecttypeZ_generate_cpy_typedef_declZ_generate_cpy_typedef_methodZ_loading_cpy_typedefZ_loaded_cpy_typedefr����r����r����Z_loading_cpy_functionr����Z _generate_cpy_struct_collecttyper����r����r����r����Z_generate_cpy_union_collecttyper����r����r����r����r����r����r����r����Z#_generate_cpy_anonymous_collecttyper����r����r����r����r����r����r����Z_generate_cpy_constant_methodZ_loading_cpy_constantZ_loaded_cpy_constantr����r����r����Z_generate_cpy_enum_collecttypeZ_generate_cpy_enum_methodr����r����r����Z_generate_cpy_macro_collecttypeZ_generate_cpy_macro_methodZ_loading_cpy_macroZ_loaded_cpy_macror����r����Z_generate_cpy_variable_methodZ_loading_cpy_variabler����r4���r���r���r���r���r��� ���s���� [ : $ P 3" ���� 0 "r���a�(�� #include <Python.h> #include <stddef.h> /* 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 #if PY_MAJOR_VERSION < 3 # undef PyCapsule_CheckExact # undef PyCapsule_GetPointer # define PyCapsule_CheckExact(capsule) (PyCObject_Check(capsule)) # define PyCapsule_GetPointer(capsule, name) \ (PyCObject_AsVoidPtr(capsule)) #endif #if PY_MAJOR_VERSION >= 3 # define PyInt_FromLong PyLong_FromLong #endif #define _cffi_from_c_double PyFloat_FromDouble #define _cffi_from_c_float PyFloat_FromDouble #define _cffi_from_c_long PyInt_FromLong #define _cffi_from_c_ulong PyLong_FromUnsignedLong #define _cffi_from_c_longlong PyLong_FromLongLong #define _cffi_from_c_ulonglong PyLong_FromUnsignedLongLong #define _cffi_from_c__Bool PyBool_FromLong #define _cffi_to_c_double PyFloat_AsDouble #define _cffi_to_c_float PyFloat_AsDouble #define _cffi_from_c_int_const(x) \ (((x) > 0) ? \ ((unsigned long long)(x) <= (unsigned long long)LONG_MAX) ? \ PyInt_FromLong((long)(x)) : \ PyLong_FromUnsignedLongLong((unsigned long long)(x)) : \ ((long long)(x) >= (long long)LONG_MIN) ? \ PyInt_FromLong((long)(x)) : \ PyLong_FromLongLong((long long)(x))) #define _cffi_from_c_int(x, type) \ (((type)-1) > 0 ? /* unsigned */ \ (sizeof(type) < sizeof(long) ? \ PyInt_FromLong((long)x) : \ sizeof(type) == sizeof(long) ? \ PyLong_FromUnsignedLong((unsigned long)x) : \ PyLong_FromUnsignedLongLong((unsigned long long)x)) : \ (sizeof(type) <= sizeof(long) ? \ PyInt_FromLong((long)x) : \ PyLong_FromLongLong((long long)x))) #define _cffi_to_c_int(o, type) \ ((type)( \ sizeof(type) == 1 ? (((type)-1) > 0 ? (type)_cffi_to_c_u8(o) \ : (type)_cffi_to_c_i8(o)) : \ sizeof(type) == 2 ? (((type)-1) > 0 ? (type)_cffi_to_c_u16(o) \ : (type)_cffi_to_c_i16(o)) : \ sizeof(type) == 4 ? (((type)-1) > 0 ? (type)_cffi_to_c_u32(o) \ : (type)_cffi_to_c_i32(o)) : \ sizeof(type) == 8 ? (((type)-1) > 0 ? (type)_cffi_to_c_u64(o) \ : (type)_cffi_to_c_i64(o)) : \ (Py_FatalError("unsupported size for type " #type), (type)0))) #define _cffi_to_c_i8 \ ((int(*)(PyObject *))_cffi_exports[1]) #define _cffi_to_c_u8 \ ((int(*)(PyObject *))_cffi_exports[2]) #define _cffi_to_c_i16 \ ((int(*)(PyObject *))_cffi_exports[3]) #define _cffi_to_c_u16 \ ((int(*)(PyObject *))_cffi_exports[4]) #define _cffi_to_c_i32 \ ((int(*)(PyObject *))_cffi_exports[5]) #define _cffi_to_c_u32 \ ((unsigned int(*)(PyObject *))_cffi_exports[6]) #define _cffi_to_c_i64 \ ((long long(*)(PyObject *))_cffi_exports[7]) #define _cffi_to_c_u64 \ ((unsigned long long(*)(PyObject *))_cffi_exports[8]) #define _cffi_to_c_char \ ((int(*)(PyObject *))_cffi_exports[9]) #define _cffi_from_c_pointer \ ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[10]) #define _cffi_to_c_pointer \ ((char *(*)(PyObject *, CTypeDescrObject *))_cffi_exports[11]) #define _cffi_get_struct_layout \ ((PyObject *(*)(Py_ssize_t[]))_cffi_exports[12]) #define _cffi_restore_errno \ ((void(*)(void))_cffi_exports[13]) #define _cffi_save_errno \ ((void(*)(void))_cffi_exports[14]) #define _cffi_from_c_char \ ((PyObject *(*)(char))_cffi_exports[15]) #define _cffi_from_c_deref \ ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[16]) #define _cffi_to_c \ ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[17]) #define _cffi_from_c_struct \ ((PyObject *(*)(char *, CTypeDescrObject *))_cffi_exports[18]) #define _cffi_to_c_wchar_t \ ((wchar_t(*)(PyObject *))_cffi_exports[19]) #define _cffi_from_c_wchar_t \ ((PyObject *(*)(wchar_t))_cffi_exports[20]) #define _cffi_to_c_long_double \ ((long double(*)(PyObject *))_cffi_exports[21]) #define _cffi_to_c__Bool \ ((_Bool(*)(PyObject *))_cffi_exports[22]) #define _cffi_prepare_pointer_call_argument \ ((Py_ssize_t(*)(CTypeDescrObject *, PyObject *, char **))_cffi_exports[23]) #define _cffi_convert_array_from_object \ ((int(*)(char *, CTypeDescrObject *, PyObject *))_cffi_exports[24]) #define _CFFI_NUM_EXPORTS 25 typedef struct _ctypedescr CTypeDescrObject; static void *_cffi_exports[_CFFI_NUM_EXPORTS]; static PyObject *_cffi_types, *_cffi_VerificationError; static int _cffi_setup_custom(PyObject *lib); /* forward */ static PyObject *_cffi_setup(PyObject *self, PyObject *args) { PyObject *library; int was_alive = (_cffi_types != NULL); (void)self; /* unused */ if (!PyArg_ParseTuple(args, "OOO", &_cffi_types, &_cffi_VerificationError, &library)) return NULL; Py_INCREF(_cffi_types); Py_INCREF(_cffi_VerificationError); if (_cffi_setup_custom(library) < 0) return NULL; return PyBool_FromLong(was_alive); } union _cffi_union_alignment_u { unsigned char m_char; unsigned short m_short; unsigned int m_int; unsigned long m_long; unsigned long long m_longlong; float m_float; double m_double; long double m_longdouble; }; struct _cffi_freeme_s { struct _cffi_freeme_s *next; union _cffi_union_alignment_u alignment; }; #ifdef __GNUC__ __attribute__((unused)) #endif static int _cffi_convert_array_argument(CTypeDescrObject *ctptr, PyObject *arg, char **output_data, Py_ssize_t datasize, struct _cffi_freeme_s **freeme) { char *p; if (datasize < 0) return -1; p = *output_data; if (p == NULL) { struct _cffi_freeme_s *fp = (struct _cffi_freeme_s *)PyObject_Malloc( offsetof(struct _cffi_freeme_s, alignment) + (size_t)datasize); if (fp == NULL) return -1; fp->next = *freeme; *freeme = fp; p = *output_data = (char *)&fp->alignment; } memset((void *)p, 0, (size_t)datasize); return _cffi_convert_array_from_object(p, ctptr, arg); } #ifdef __GNUC__ __attribute__((unused)) #endif static void _cffi_free_array_arguments(struct _cffi_freeme_s *freeme) { do { void *p = (void *)freeme; freeme = freeme->next; PyObject_Free(p); } while (freeme != NULL); } static int _cffi_init(void) { PyObject *module, *c_api_object = NULL; module = PyImport_ImportModule("_cffi_backend"); if (module == NULL) goto failure; c_api_object = PyObject_GetAttrString(module, "_C_API"); if (c_api_object == NULL) goto failure; if (!PyCapsule_CheckExact(c_api_object)) { PyErr_SetNone(PyExc_ImportError); goto failure; } memcpy(_cffi_exports, PyCapsule_GetPointer(c_api_object, "cffi"), _CFFI_NUM_EXPORTS * sizeof(void *)); Py_DECREF(module); Py_DECREF(c_api_object); return 0; failure: Py_XDECREF(module); Py_XDECREF(c_api_object); return -1; } #define _cffi_type(num) ((CTypeDescrObject *)PyList_GET_ITEM(_cffi_types, num)) /**********/ ) rP���r���r���r���r]���r���rX���r���r3���r���r���r���r����<module>���s���������+