Edit File: model.cpython-36.pyc
3 M��Z0T������������������@���s���d�dl�Z�d�dlZddlmZ�ddlmZmZmZ�dZdZ dZ dd��ZG�d d ��d e�Z G�dd��de �ZG�d d��de�Ze��ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�Zee�Zdd ��Zee�ZG�d!d"��d"e�ZG�d#d$��d$e�Zeed%�d�ZG�d&d'��d'e �ZG�d(d)��d)e�Z G�d*d+��d+e �Z!G�d,d-��d-e �Z"G�d.d/��d/e�Z#d<d0d1�Z$d=d2d3�Z%e��Z&ej'��Z(d4d5��Z)d6d7��Z*d8d9��Z+d:d;��Z,dS�)>�����N����)� allocate_lock)� CDefError�VerificationError�VerificationMissing��������c�������������C���s@���|�t�@�rd|j���}|�t@�r(d|j���}|�t@�r<d|j���}|S�)Nz const z volatile z __restrict )�Q_CONST�lstrip� Q_VOLATILE� Q_RESTRICT)�quals�replace_with��r����/usr/lib64/python3.6/model.py�qualify���s����r���c���������������@���sP���e�Zd�ZdZdZddd�Zdd��Zd d ��Zdd��Zdd d�Z dd��Z dd��ZdS�)�BaseTypeByIdentityF���a C filer���c�������������C���s����|�j�}|jd�dkst�|j��}|rT|jd�r@d|kr@d|�}n|d�dkrTd|�}t||�}|jd|�}d |kr�td |�j��|f���|S�)N�&r����*z&[z(%s)r���z[(� �$z-cannot generate '%s' in %s: unknown type name) �c_name_with_marker�count�AssertionError�strip� startswithr����replacer����_get_c_name)�selfr����contextr ����resultr���r���r���� get_c_name���s���� zBaseTypeByIdentity.get_c_namec�������������C���s���|�j�jdd�S�)Nr���r���)r���r���)r ���r���r���r���r���/���s����zBaseTypeByIdentity._get_c_namec�������������C���s���d|�j���kS�)Nr���)r���)r ���r���r���r���� has_c_name2���s����zBaseTypeByIdentity.has_c_namec�������������C���s���dS�)NFr���)r ���r���r���r����is_integer_type5���s����z"BaseTypeByIdentity.is_integer_typec�������������C���sN���y|j�|��}W�n:�tk rH���|�j||�}|j�j|�|�}||ksDt�Y�nX�|S�)N)�_cached_btypes�KeyError�build_backend_type� setdefaultr���)r ����ffi� finishlist� can_delay�BTypeZBType2r���r���r����get_cached_btype8���s����z#BaseTypeByIdentity.get_cached_btypec�������������C���s���d|�j���f�S�)Nz<%s>)r���)r ���r���r���r����__repr__A���s����zBaseTypeByIdentity.__repr__c����������������s�����fdd���j�D��S�)Nc����������������s���g�|�]}|t���|�f�qS�r���)�getattr)�.0�name)r ���r���r���� <listcomp>E���s����z1BaseTypeByIdentity._get_items.<locals>.<listcomp>)�_attrs_)r ���r���)r ���r���� _get_itemsD���s����zBaseTypeByIdentity._get_itemsN)r���r���r���)F)�__name__� __module__�__qualname__� is_array_type�is_raw_functionr#���r���r$���r%���r.���r/���r5���r���r���r���r���r������s��� r���c���������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�BaseTypec�������������C���s���|�j�|j�ko|�j��|j��kS�)N)� __class__r5���)r ����otherr���r���r����__eq__J���s����zBaseType.__eq__c�������������C���s ���|�|k�S�)Nr���)r ���r=���r���r���r����__ne__N���s����zBaseType.__ne__c�������������C���s���t�|�jt|�j���f�S�)N)�hashr<����tupler5���)r ���r���r���r����__hash__Q���s����zBaseType.__hash__N)r6���r7���r8���r>���r?���rB���r���r���r���r���r;���H���s���r;���c���������������@���s ���e�Zd�Zf�Zdd��Zdd��ZdS�)�VoidTypec�������������C���s ���d|�_�d�S�)Nzvoid&)r���)r ���r���r���r����__init__X���s����zVoidType.__init__c�������������C���s���t�|�|d�S�)NZ new_void_type)�global_cache)r ���r*���r+���r���r���r���r(���[���s����zVoidType.build_backend_typeN)r6���r7���r8���r4���rD���r(���r���r���r���r���rC���U���s���rC���c���������������@���s���e�Zd�Zdd��ZdS�)�BasePrimitiveTypec�������������C���s���dS�)NFr���)r ���r���r���r����is_complex_typeb���s����z!BasePrimitiveType.is_complex_typeN)r6���r7���r8���rG���r���r���r���r���rF���a���s���rF���c������������4���@���s����e�Zd�ZdZdddddddddddddddddddddddddddddddddddddddddddddddddddd�3Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dS�)� PrimitiveTyper2����c�i�f�j)3�charZshort�int�longz long longzsigned charz unsigned charzunsigned shortzunsigned intz unsigned longzunsigned long long�floatZdoublezlong doublezfloat _Complexzdouble _ComplexZ_BoolZwchar_tZchar16_tZchar32_tZint8_tZuint8_tZint16_tZuint16_tZint32_tZuint32_tZint64_tZuint64_tZint_least8_tZ uint_least8_tZ int_least16_tZuint_least16_tZ int_least32_tZuint_least32_tZ int_least64_tZuint_least64_tZint_fast8_tZuint_fast8_tZint_fast16_tZ uint_fast16_tZint_fast32_tZ uint_fast32_tZint_fast64_tZ uint_fast64_tZintptr_tZ uintptr_tZintmax_tZ uintmax_tZ ptrdiff_tZsize_tZssize_tc�������������C���s"���||�j�kst�||�_|d�|�_d�S�)Nr���)�ALL_PRIMITIVE_TYPESr���r2���r���)r ���r2���r���r���r���rD�������s����zPrimitiveType.__init__c�������������C���s���|�j�|�j�dkS�)NrI���)rQ���r2���)r ���r���r���r����is_char_type����s����zPrimitiveType.is_char_typec�������������C���s���|�j�|�j�dkS�)NrJ���)rQ���r2���)r ���r���r���r���r%�������s����zPrimitiveType.is_integer_typec�������������C���s���|�j�|�j�dkS�)NrK���)rQ���r2���)r ���r���r���r���� is_float_type����s����zPrimitiveType.is_float_typec�������������C���s���|�j�|�j�dkS�)NrL���)rQ���r2���)r ���r���r���r���rG�������s����zPrimitiveType.is_complex_typec�������������C���s���t�|�|d|�j�S�)NZnew_primitive_type)rE���r2���)r ���r*���r+���r���r���r���r(�������s����z PrimitiveType.build_backend_typeN)r2���)r6���r7���r8���r4���rQ���rD���rR���r%���rS���rG���r(���r���r���r���r���rH���f���st���rH���c���������������@���s(���e�Zd�Zd Zdd��Zdd��Zdd��ZdS�) �UnknownIntegerTyper2���c�������������C���s���||�_�|d�|�_d�S�)Nr���)r2���r���)r ���r2���r���r���r���rD�������s����zUnknownIntegerType.__init__c�������������C���s���dS�)NTr���)r ���r���r���r���r%�������s����z"UnknownIntegerType.is_integer_typec�������������C���s���t�d|�j���d�S�)Nz4integer type '%s' can only be used after compilation)�NotImplementedErrorr2���)r ���r*���r+���r���r���r���r(�������s����z%UnknownIntegerType.build_backend_typeN)r2���)r6���r7���r8���r4���rD���r%���r(���r���r���r���r���rT�������s���rT���c���������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)�UnknownFloatTyper2���c�������������C���s���||�_�|d�|�_d�S�)Nr���)r2���r���)r ���r2���r���r���r���rD�������s����zUnknownFloatType.__init__c�������������C���s���t�d|�j���d�S�)Nz2float type '%s' can only be used after compilation)rU���r2���)r ���r*���r+���r���r���r���r(�������s����z#UnknownFloatType.build_backend_typeN)r2���)r6���r7���r8���r4���rD���r(���r���r���r���r���rV�������s���rV���c���������������@���s���e�Zd�ZdZd dd�ZdS�) �BaseFunctionType�argsr"����ellipsis�abiNc�������������C���s����||�_�||�_||�_||�_dd��|�j�D��}|�jr8|jd��|p@dg}|�jdj|�f�}|d�k r||d�d��|�d�|dd����}|�jjjd|�|�_d�S�) Nc�������������S���s���g�|�]}|j����qS�r���)r���)r1����argr���r���r���r3�������s����z-BaseFunctionType.__init__.<locals>.<listcomp>z...�voidz, r���r���r���) rX���r"���rY���rZ����append� _base_pattern�joinr���r���)r ���rX���r"���rY���rZ���Zreprargsr���r���r���r���rD�������s���� zBaseFunctionType.__init__)rX���r"���rY���rZ���)N)r6���r7���r8���r4���rD���r���r���r���r���rW�������s���rW���c���������������@���s$���e�Zd�ZdZdZdd��Zdd��ZdS�)�RawFunctionTypez(&)(%s)Tc�������������C���s���t�d|�f���d�S�)NzPcannot render the type %r: it is a function type, not a pointer-to-function type)r���)r ���r*���r+���r���r���r���r(�������s����z"RawFunctionType.build_backend_typec�������������C���s���t�|�j|�j|�j|�j�S�)N)�FunctionPtrTyperX���r"���rY���rZ���)r ���r���r���r����as_function_pointer����s����z#RawFunctionType.as_function_pointerN)r6���r7���r8���r^���r:���r(���rb���r���r���r���r���r`�������s���r`���c���������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)ra���z(*&)(%s)c�������������C���s����|�j�j||�}g�}x |�jD�]}|j|j||���qW�f�}|�jdkrl|�jsly|jjf}W�n�tk rj���Y�nX�t |�|dt |�||�jf|���S�)NZ __stdcallZnew_function_type)r"���r.���rX���r]���rZ���rY����_backendZFFI_STDCALL�AttributeErrorrE���rA���)r ���r*���r+���r"���rX����tpZabi_argsr���r���r���r(�������s���� z"FunctionPtrType.build_backend_typec�������������C���s���t�|�j|�j|�j|�j�S�)N)r`���rX���r"���rY���rZ���)r ���r���r���r����as_raw_function��s����zFunctionPtrType.as_raw_functionN)r6���r7���r8���r^���r(���rf���r���r���r���r���ra�������s���ra���c���������������@���s"���e�Zd�Zd Zd dd�Zdd��ZdS�)�PointerType�totyper ���r���c�������������C���s>���||�_�||�_t|d�}|jr*d|j��f�}|jjd|�|�_d�S�)Nz *&z(%s)r���)rh���r ���r���r9���r ���r���r���)r ���rh���r ���Zextrar���r���r���rD�����s���� zPointerType.__init__c�������������C���s ���|�j�j||dd�}t|�|d|�S�)NT)r,����new_pointer_type)rh���r.���rE���)r ���r*���r+���ZBItemr���r���r���r(�����s����zPointerType.build_backend_typeN)rh���r ���)r���)r6���r7���r8���r4���rD���r(���r���r���r���r���rg�����s��� rg���c�������������C���s ���t�|�t�S�)N)rg���r ���)rh���r���r���r����ConstPointerType��s����rj���c���������������@���s���e�Zd�ZdZddd�ZdS�) �NamedPointerTyperh���r2���r���c�������������C���s"���t�j|�||��||�_|d�|�_d�S�)Nr���)rg���rD���r2���r���)r ���rh���r2���r ���r���r���r���rD�����s����zNamedPointerType.__init__N)rh���r2���)r���)r6���r7���r8���r4���rD���r���r���r���r���rk�����s���rk���c���������������@���s,���e�Zd�ZdZdZdd��Zdd��Zdd ��Zd S�)� ArrayType�item�lengthTc�������������C���sF���||�_�||�_|d�krd}n|dkr(d}nd|�}|�j�jjd|�|�_d�S�)Nz&[]z...z &[/*...*/]z&[%s]r���)rm���rn���r���r���)r ���rm���rn���Zbracketsr���r���r���rD���)��s����zArrayType.__init__c�������������C���s���t�|�j|�S�)N)rl���rm���)r ���Z newlengthr���r���r����resolve_length6��s����zArrayType.resolve_lengthc�������������C���sJ���|�j�dkrtd|�f���|�jj||��t|�j�j||�}t|�|d||�j��S�)Nz...z)cannot render the type %r: unknown lengthZnew_array_type)rn���r���rm���r.���rg���rE���)r ���r*���r+���ZBPtrItemr���r���r���r(���9��s���� zArrayType.build_backend_typeN)rm���rn���)r6���r7���r8���r4���r9���rD���ro���r(���r���r���r���r���rl���%��s ��� rl���rM���c���������������@���s,���e�Zd�Zd ZdZdd��Zdd��Zdd��ZdS�) �StructOrUnionOrEnumr2���Nc�������������C���s$���|�j�pd|�j|�jf�}|d�|�_d�S�)Nz%s %sr���)� forcename�kindr2���r���)r ���r2���r���r���r����build_c_name_with_markerH��s����z,StructOrUnionOrEnum.build_c_name_with_markerc�������������C���s���||�_�|�j���d�S�)N)rq���rs���)r ���rq���r���r���r����force_the_nameL��s����z"StructOrUnionOrEnum.force_the_namec�������������C���s���|�j�jd�st�|�j�d�d��S�)Nr���r������)r����endswithr���)r ���r���r���r����get_official_nameP��s����z%StructOrUnionOrEnum.get_official_name)r2���)r6���r7���r8���r4���rq���rs���rt���rw���r���r���r���r���rp���D��s ���rp���c���������������@���sj���e�Zd�ZdZdZdZdZddd�Zdd��Zdd d �Z dd��Z dd d�Zdd��Zdd��Z dd��Zdd��ZdS�)� StructOrUnionNr���Fc�������������C���s*���||�_�||�_||�_||�_||�_|�j���d�S�)N)r2����fldnames�fldtypes� fldbitsize�fldqualsrs���)r ���r2���ry���rz���r{���r|���r���r���r���rD���[��s����zStructOrUnion.__init__c�������������c���sB���|�j�d�k r>x2t|�j|�j��D�] \}}|dkrt|t�r|V��qW�d�S�)Nr���)rz����zipry���� isinstancerx���)r ���r2����typer���r���r����anonymous_struct_fieldsc��s���� z%StructOrUnion.anonymous_struct_fieldsTc�������������c���s����|�j�}|d�krdt|�j��}xbt|�j|�j|�j|�D�]J\}}}}|dkrnt|t�rn|rnx&|j��D�] }|V��q^W�q2||||fV��q2W�d�S�)Nr���r���)r���) r|����lenry���r}���rz���r{���r~���rx���� enumfields)r ���Zexpand_anonymous_struct_unionr|���r2���r����bitsizer ���r"���r���r���r���r����i��s����zStructOrUnion.enumfieldsc������� ������C���s~���g�}g�}g�}g�}x@|�j���D�]4\}}}}|j|��|j|��|j|��|j|��qW�t|�|�_t|�|�_t|�|�_t|�|�_d�S�)N)r����r]���rA���ry���rz���r{���r|���) r ����names�typesZbitsizesr|���r2���r���r����r ���r���r���r���� force_flattenw��s���� zStructOrUnion.force_flattenc�������������C���s$���t�j|�|||�}|s |�j||��|S�)N)rp���r.����finish_backend_type)r ���r*���r+���r,���r-���r���r���r���r.������s ���� zStructOrUnion.get_cached_btypec����������������s��|�j�r$|�j�dkr td|�jf���d�S���j|��}d|�_�|�jd�krB�n�|�jd�kr����fdd�|�jD��}tt|�j||�j ��}d}|�j r�d}��jj|||�dd |���ntg�}|�j\}}} } �x4t t|�j��D��] }||�}|�j|�} t| t�o�| jdk�rn| jj����}t|��j|��\}}|dk�r<|�jd |�j|�j|��p4d f���| j|�} |�jd�|��| f�|�j|d�d����|�_| j����}t| t��r�| jd�k�r�|dk�s�t�n8��j|�}||k�r�|�jd|�j|�j|��p�d ||f���|j|��q�W�tt|�j||�j |��}��jj|||�| | ��d|�_�d�S�)Nr���z(recursive structure declaration for '%s'r���c����������������s���g�|�]}|j������qS�r���)r.���)r1���re���)r*���r+���r���r���r3������s���z5StructOrUnion.finish_backend_type.<locals>.<listcomp>r�������z...zfield '%s.%s' has a bogus size?z{}z=field '%s.%s' is declared as %d bytes, but is really %d bytesru���ru���)� completedrU���r2���r&���rz����fixedlayout�listr}���ry���r{����packedrc���Zcomplete_struct_or_union�ranger����r~���rl���rn���rm���r.����divmod�sizeof�_verification_errorro���r���r]���)r ���r*���r+���r-���rz���ZlstZsflagsZfieldofsZ fieldsizeZ totalsizeZtotalalignmentrJ���ZfsizeZftypeZ BItemTypeZnlenZnrestZ BFieldTypeZ bitemsizer���)r*���r+���r���r�������s`���� z!StructOrUnion.finish_backend_typec�������������C���s���t�|��d�S�)N)r���)r ����msgr���r���r���r�������s����z!StructOrUnion._verification_errorc�������������C���s ���|�j�r|�jd�krt|�j����d�S�)N)�partialr����r���r���)r ���r���r���r����check_not_partial���s����zStructOrUnion.check_not_partialc�������������C���s.���|�j����|j|���t|�|d|�j�|�j��|�d�S�)Nznew_%s_type)�key)r����r]���rE���rr���rw���)r ���r*���r+���r���r���r���r(������s���� z StructOrUnion.build_backend_type)N)T)F)r6���r7���r8���r����r����r����r����rD���r����r����r����r.���r����r����r����r(���r���r���r���r���rx���U��s��� <rx���c���������������@���s���e�Zd�ZdZdS�)� StructType�structN)r6���r7���r8���rr���r���r���r���r���r�������s���r����c���������������@���s���e�Zd�ZdZdS�)� UnionType�unionN)r6���r7���r8���rr���r���r���r���r���r�������s���r����c���������������@���sB���e�Zd�ZdZdZdZddd�Zdd��Zdd ��Zd d��Z dd ��Z dS�)�EnumType�enumFNc�������������C���s$���||�_�||�_||�_||�_|�j���d�S�)N)r2����enumerators� enumvalues�baseinttypers���)r ���r2���r����r����r����r���r���r���rD������s ����zEnumType.__init__c�������������C���s4���t�j|�|��|�jd�kr0|�j��}d|jdd��|�_d�S�)Nr���r����_)rp���rt���rq���rw���r���)r ���rq���r2���r���r���r���rt������s���� zEnumType.force_the_namec�������������C���s���|�j�r|�j�rt|�j����d�S�)N)r�����partial_resolvedr���r���)r ���r���r���r���r�������s����zEnumType.check_not_partialc���������� ���C���s4���|�j����|�j||�}t|�|d|�j��|�j|�j||�d�S�)NZ new_enum_type)r����)r�����build_baseinttyperE���rw���r����r����)r ���r*���r+���Z base_btyper���r���r���r(������s����zEnumType.build_backend_typec������� ������C���sH��|�j�d�k r|�j�j||�S�|�jr4t|�j�}t|�j�}nDdd�l}ytj���W�n�tk r\���Y�nX�|j d|�j �����d�}}|dk�r�d}td�}td�}nd}td�}td�}|j||�} |j||�} |j| �}|j| �}|d d|�d�>�ko�|dd|�|�>�k��r| S�|dd|�d�>�k�r4|dd|�|�>�k��r4| S�t d |�j �����d�S�)Nr���zU%r has no values explicitly defined; guessing that it is equivalent to 'unsigned int'r���rN���rO���zunsigned intz unsigned longr����z=%s values don't all fit into either 'long' or 'unsigned long'ru���ru���)r����r.���r�����min�max�warningsZ__warningregistry__�clear� NameError�warnr���rH���r����r���) r ���r*���r+���Zsmallest_valueZ largest_valuer����ZsignZ candidate1Z candidate2Zbtype1Zbtype2Zsize1Zsize2r���r���r���r������s@���� zEnumType.build_baseinttype)N)r6���r7���r8���rr���r����r����rD���rt���r����r(���r����r���r���r���r���r�������s��� r����c�������������C���s2���|d�krd|��}t�|d�d�d��}|j|���d|_|S�)Nz$%s�unknown_type)r����rt����origin)r2���� structnamere���r���r���r���r����*��s���� r����c�������������C���s(���|d�krd|��}t�|d�d�d��}t||��S�)Nz$$%s)r����rk���)r2���r����re���r���r���r����unknown_ptr_type2��s����r����c���������� ���C���sF���t�|�tj�rtS�t�(�tt|��d�s2tj��t|��_ t|��j S�Q�R�X�d�S�)N�__typecache) r~���r����� ModuleType�_typecache_cffi_backend�global_lock�hasattrr����weakref�WeakValueDictionaryr����)Zbackendr���r���r���� get_typecache<��s����r����c������� ��� ���O���s����|j�d||f�}|�st�y |j|�S��tk r8���Y�nX�yt|j|�|��}W�n4�tk r��}�ztd||�|f���W�Y�d�d�}~X�nX�|j}t�(�|j|�} | d�kr�|||<�|S�| S�W�d�Q�R�X�d�S�)Nr����z %s: %r: %s) �popr���Z _typecacher'���r0���rc���rU���r�����get) Zsrctyper*����funcnamerX����kwdsr�����res�e�cacheZres1r���r���r���rE���G��s"���� $ rE���c�������������C���s���t�d|�d|�S�)N�?ri���)rE���)r*���r-���r���r���r���� pointer_cache^��s����r����c�������������C���s@���|�j�r<t|�j�d��tkr<d||�j�d�f�f|�j�dd����|�_�d�S�)Nr���z%s: %sr���)rX���r����str)r����r2���r���r���r����attach_exception_infoa��s����r����)N)N)-r����r�����lockr����errorr���r���r���r ���r���r���r����objectr���r;���rC���Z void_typerF���rH���rT���rV���rW���r`���ra���rg���Z voidp_typerj���Zconst_voidp_typerk���rl���Zchar_array_typerp���rx���r����r����r����r����r����r����r����r����r����rE���r����r����r���r���r���r����<module>���sN��� / L �G