관리-도구
편집 파일: model.cpython-39.opt-1.pyc
a �����`U����������������������@���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&e�'��Z(d4d5��Z)d6d7��Z*d8d9��Z+d:d;��Z,dS�)>�����N����)� allocate_lock)� CDefError�VerificationError�VerificationMissing��������c�����������������C���s@���|�t�@�rd|����}|�t@�r(d|����}|�t@�r<d|����}|S�)Nz const z volatile z __restrict )�Q_CONST�lstrip� Q_VOLATILE� Q_RESTRICT)�quals�replace_with��r����0/usr/lib64/python3.9/site-packages/cffi/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���sx���|�j�}|���}|rB|�d�r.d|v�r.d|�}n|d�dvrBd|�}t||�}|�d|�}d|v�rttd |����|f���|S�) N�*z&[�(%s)r���z[(� �&�$z-cannot generate '%s' in %s: unknown type name)�c_name_with_marker�strip� startswithr����replacer����_get_c_name)�selfr����contextr ����resultr���r���r���� get_c_name���s ���� ��zBaseTypeByIdentity.get_c_namec�����������������C���s���|�j��dd�S�)Nr���r���)r���r����r���r���r���r���r���/���s����zBaseTypeByIdentity._get_c_namec�����������������C���s���d|�����vS�)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���s@���z|j�|��}W�n,�ty:���|��||�}|j��|�|�}Y�n0�|S��N)�_cached_btypes�KeyError�build_backend_type� setdefault)r����ffi� finishlist� can_delay�BTypeZBType2r���r���r����get_cached_btype8���s����z#BaseTypeByIdentity.get_cached_btypec�����������������C���s���d|�����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�namer#���r���r���� <listcomp>E��������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'���r1���r2���r9���r���r���r���r���r������s��� r���c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)�BaseTypec�����������������C���s���|�j�|j�ko|����|���kS�r(���)� __class__r9����r����otherr���r���r����__eq__J���s�����zBaseType.__eq__c�����������������C���s ���|�|k�S�r(���r���rA���r���r���r����__ne__N���s����zBaseType.__ne__c�����������������C���s���t�|�jt|�����f�S�r(���)�hashr@����tupler9���r#���r���r���r����__hash__Q���s����zBaseType.__hash__N)r:���r;���r<���rC���rD���rG���r���r���r���r���r?���H���s���r?���c�������������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)�VoidTyper���c�����������������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�r:���r;���r<���r8���rJ���r+���r���r���r���r���rH���U���s���rH���c�������������������@���s���e�Zd�Zdd��ZdS�)�BasePrimitiveTypec�����������������C���s���dS�r&���r���r#���r���r���r����is_complex_typeb���s����z!BasePrimitiveType.is_complex_typeN)r:���r;���r<���rP���r���r���r���r���rO���a���s���rO���c����������������4���@���s����e�Zd�ZdZdddddddddddddddddddddddddddddddddddddddddddddddddddd�3Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dS�)� PrimitiveType�r5����c�i�f�j)3�charZshort�int�longz long longzsigned charz unsigned charzunsigned short�unsigned int� 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���||�_�|d�|�_d�S��Nr����r5���r����r���r5���r���r���r���rJ�������s����zPrimitiveType.__init__c�����������������C���s���|�j�|�j�dkS�)NrS�����ALL_PRIMITIVE_TYPESr5���r#���r���r���r����is_char_type����s����zPrimitiveType.is_char_typec�����������������C���s���|�j�|�j�dkS�)NrT���r`���r#���r���r���r���r'�������s����zPrimitiveType.is_integer_typec�����������������C���s���|�j�|�j�dkS�)NrU���r`���r#���r���r���r���� is_float_type����s����zPrimitiveType.is_float_typec�����������������C���s���|�j�|�j�dkS�)NrV���r`���r#���r���r���r���rP�������s����zPrimitiveType.is_complex_typec�����������������C���s���t�|�|d|�j�S�)NZnew_primitive_type)rL���r5���rM���r���r���r���r+�������s����z PrimitiveType.build_backend_typeN)r:���r;���r<���r8���ra���rJ���rb���r'���rc���rP���r+���r���r���r���r���rQ���f���sv����7rQ���c�������������������@���s(���e�Zd�ZdZdd��Zdd��Zdd��ZdS�) �UnknownIntegerTyperR���c�����������������C���s���||�_�|d�|�_d�S�r]���r^���r_���r���r���r���rJ�������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��NotImplementedErrorr5���rM���r���r���r���r+�������s�����z%UnknownIntegerType.build_backend_typeN)r:���r;���r<���r8���rJ���r'���r+���r���r���r���r���rd�������s���rd���c�������������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)�UnknownFloatTyperR���c�����������������C���s���||�_�|d�|�_d�S�r]���r^���r_���r���r���r���rJ�������s����zUnknownFloatType.__init__c�����������������C���s���t�d|�j���d�S�)Nz2float type '%s' can only be used after compilationre���rM���r���r���r���r+�������s�����z#UnknownFloatType.build_backend_typeNrN���r���r���r���r���rg�������s���rg���c�������������������@���s���e�Zd�ZdZddd�ZdS�)�BaseFunctionType)�argsr!����ellipsis�abiNc�����������������C���s����||�_�||�_||�_||�_dd��|�j�D��}|�jr8|�d��|p@dg}|�jd�|�f�}|d�ur||d�d��|�d�|dd����}|�jj�d|�|�_d�S�) Nc�����������������S���s���g�|�]}|�����qS�r���r$���)r4����argr���r���r���r6�������r7���z-BaseFunctionType.__init__.<locals>.<listcomp>�...Zvoidz, r���r���r���) ri���r!���rj���rk����append� _base_pattern�joinr���r���)r���ri���r!���rj���rk���Zreprargsr���r���r���r���rJ�������s���� �zBaseFunctionType.__init__)N�r:���r;���r<���r8���rJ���r���r���r���r���rh�������s���rh���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���rM���r���r���r���r+�������s�����z"RawFunctionType.build_backend_typec�����������������C���s���t�|�j|�j|�j|�j�S�r(���)�FunctionPtrTyperi���r!���rj���rk���r#���r���r���r����as_function_pointer����s����z#RawFunctionType.as_function_pointerN)r:���r;���r<���ro���r>���r+���rt���r���r���r���r���rr�������s���rr���c�������������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)rs���z(*&)(%s)c�����������������C���s����|�j��||�}g�}|�jD�]}|�|�||���qd}|�jdkrf|�jsfz|jjf}W�n�tyd���Y�n0�t |�|dt |�||�jg|�R���S�)Nr���Z __stdcallZnew_function_type)r!���r1���ri���rn���rk���rj����_backendZFFI_STDCALL�AttributeErrorrL���rF���)r���r-���r.���r!���ri����tpZabi_argsr���r���r���r+�������s ���� ��z"FunctionPtrType.build_backend_typec�����������������C���s���t�|�j|�j|�j|�j�S�r(���)rr���ri���r!���rj���rk���r#���r���r���r����as_raw_function��s����zFunctionPtrType.as_raw_functionN)r:���r;���r<���ro���r+���rx���r���r���r���r���rs�������s���rs���c�������������������@���s"���e�Zd�ZdZddd�Zdd��ZdS�) �PointerType)�totyper ���r���c�����������������C���s>���||�_�||�_t|d�}|jr*d|���f�}|j�d|�|�_d�S�)Nz *&r���r���)rz���r ���r���r=���r ���r���r���)r���rz���r ���Zextrar���r���r���rJ�����s���� zPointerType.__init__c�����������������C���s ���|�j�j||dd�}t|�|d|�S�)NT)r/����new_pointer_type)rz���r1���rL���)r���r-���r.���ZBItemr���r���r���r+�����s����zPointerType.build_backend_typeN)r���rN���r���r���r���r���ry�����s��� ry���c�����������������C���s ���t�|�t�S�r(���)ry���r ���)rz���r���r���r����ConstPointerType��s����r|���c�������������������@���s���e�Zd�ZdZddd�ZdS�)�NamedPointerType)rz���r5���r���c�����������������C���s"���t��|�||��||�_|d�|�_d�S�r]���)ry���rJ���r5���r���)r���rz���r5���r ���r���r���r���rJ�����s����zNamedPointerType.__init__N)r���rq���r���r���r���r���r}�����s���r}���c�������������������@���s4���e�Zd�ZdZdZdd��Zdd��Zdd��Zd d ��ZdS�)� ArrayType)�item�lengthTc�����������������C���sF���||�_�||�_|d�u�rd}n|dkr(d}nd|�}|�j�j�d|�|�_d�S�)Nz&[]rm���z &[/*...*/]z&[%s]r���)r���r����r���r���)r���r���r����Zbracketsr���r���r���rJ���)��s�����zArrayType.__init__c�����������������C���s���t�|�jt�S�r(���)� isinstancer�����strr#���r���r���r����length_is_unknown6��s����zArrayType.length_is_unknownc�����������������C���s���t�|�j|�S�r(���)r~���r���)r���Z newlengthr���r���r����resolve_length9��s����zArrayType.resolve_lengthc�����������������C���sH���|�����rtd|�f���|�j�||��t|�j��||�}t|�|d||�j�S�)Nz)cannot render the type %r: unknown lengthZnew_array_type)r����r���r���r1���ry���rL���r����)r���r-���r.���ZBPtrItemr���r���r���r+���<��s�����zArrayType.build_backend_typeN) r:���r;���r<���r8���r=���rJ���r����r����r+���r���r���r���r���r~���%��s��� r~���rW���c�������������������@���s,���e�Zd�ZdZdZdd��Zdd��Zdd��ZdS�) �StructOrUnionOrEnumrR���Nc�����������������C���s$���|�j�pd|�j|�jf�}|d�|�_d�S�)Nz%s %sr���)� forcename�kindr5���r���r_���r���r���r����build_c_name_with_markerK��s����z,StructOrUnionOrEnum.build_c_name_with_markerc�����������������C���s���||�_�|�����d�S�r(���)r����r����)r���r����r���r���r����force_the_nameO��s����z"StructOrUnionOrEnum.force_the_namec�����������������C���s���|�j�d�d��S�)N���rI���r#���r���r���r����get_official_nameS��s����z%StructOrUnionOrEnum.get_official_name)r:���r;���r<���r8���r����r����r����r����r���r���r���r���r����G��s ���r����c�������������������@���sj���e�Zd�ZdZdZdZdZddd�Zdd��Zdd d �Z dd��Z dd d�Zdd��Zdd��Z dd��Zdd��ZdS�)� StructOrUnionNr���Fc�����������������C���s*���||�_�||�_||�_||�_||�_|�����d�S�r(���)r5����fldnames�fldtypes� fldbitsize�fldqualsr����)r���r5���r����r����r����r����r���r���r���rJ���^��s����zStructOrUnion.__init__c�����������������c���s>���|�j�d�ur:t|�j|�j��D�] \}}|dkrt|t�r|V��qd�S�)Nr���)r�����zipr����r����r����)r���r5����typer���r���r����anonymous_struct_fieldsf��s���� z%StructOrUnion.anonymous_struct_fieldsTc�����������������c���s|���|�j�}|d�u�rdt|�j��}t|�j|�j|�j|�D�]F\}}}}|dkrht|t�rh|rh|���D�] }|V��qZq0||||fV��q0d�S�)N)r���r���) r�����lenr����r����r����r����r����r����� enumfields)r���Zexpand_anonymous_struct_unionr����r5���r�����bitsizer ���r!���r���r���r���r����l��s���� �� zStructOrUnion.enumfieldsc����������� ������C���sz���g�}g�}g�}g�}|�����D�]4\}}}}|�|��|�|��|�|��|�|��qt|�|�_t|�|�_t|�|�_t|�|�_d�S�r(���)r����rn���rF���r����r����r����r����) r����names�typesZbitsizesr����r5���r����r����r ���r���r���r���� force_flattenz��s���� zStructOrUnion.force_flattenc�����������������C���s$���t��|�|||�}|s |��||��|S�r(���)r����r1����finish_backend_type)r���r-���r.���r/���r0���r���r���r���r1������s���� �zStructOrUnion.get_cached_btypec��������������������s$��|�j�r$|�j�dkr td|�jf���d�S���j|��}d|�_�|�jd�u�rB�n�|�jd�u�r����fdd�|�jD��}tt|�j||�j ��}d}|�j r�|�j dkr�d}n d|�j f}��jj|||�d d g|�R�����n`g�}|�j\}}} } t t|�j��D��]}||�}|�j|�} t| t��r�| ����r�| j�����}t|���|��\}}|dk�rT|��d |�j|�j|��pLdf���| �|�} |�jd�|��| f�|�j|d�d����|�_| �����}t| t��r�| jd�u��r�n8���|�}||k�r�|��d|�j|�j|��p�d||f���|�|��q�tt|�j||�j |��}��j�|||�| | ��d|�_�d�S�) Nr���z(recursive structure declaration for '%s'r���c��������������������s���g�|�]}|�������qS�r���)r1���)r4���rw����r-���r.���r���r���r6������s����z5StructOrUnion.finish_backend_type.<locals>.<listcomp>r���)����r���r����zfield '%s.%s' has a bogus size?z{}z=field '%s.%s' is declared as %d bytes, but is really %d bytes)� completedrf���r5���r)���r�����fixedlayout�listr����r����r�����packedru���Zcomplete_struct_or_union�ranger����r����r~���r����r���r1����divmod�sizeof�_verification_errorr����r����rn���)r���r-���r.���r0���r����Zlst�extra_flagsZfieldofsZ fieldsizeZ totalsizeZtotalalignmentrT���ZfsizeZftypeZ BItemTypeZnlenZnrestZ BFieldTypeZ bitemsizer���r����r���r�������s|���� � � �� �� � ����z!StructOrUnion.finish_backend_typec�����������������C���s���t�|��d�S�r(���)r���)r����msgr���r���r���r�������s����z!StructOrUnion._verification_errorc�����������������C���s ���|�j�r|�jd�u�rt|������d�S�r(���)�partialr����r���r���r#���r���r���r����check_not_partial���s����zStructOrUnion.check_not_partialc�����������������C���s.���|������|�|���t|�|d|�j�|����|�d�S�)Nznew_%s_type��key)r����rn���rL���r����r����rM���r���r���r���r+������s ���� �z StructOrUnion.build_backend_type)N)T)F)r:���r;���r<���r����r����r����r����rJ���r����r����r����r1���r����r����r����r+���r���r���r���r���r����X��s��� ?r����c�������������������@���s���e�Zd�ZdZdS�)� StructType�structN�r:���r;���r<���r����r���r���r���r���r�������s���r����c�������������������@���s���e�Zd�ZdZdS�)� UnionType�unionNr����r���r���r���r���r�������s���r����c�������������������@���sB���e�Zd�ZdZdZdZddd�Zdd��Zdd ��Zd d��Z dd ��Z dS�)�EnumType�enumFNc�����������������C���s$���||�_�||�_||�_||�_|�����d�S�r(���)r5����enumerators� enumvalues�baseinttyper����)r���r5���r����r����r����r���r���r���rJ������s ����zEnumType.__init__c�����������������C���s4���t��|�|��|�jd�u�r0|����}d|�dd��|�_d�S�)Nr���r����_)r����r����r����r����r���)r���r����r5���r���r���r���r�������s���� zEnumType.force_the_namec�����������������C���s���|�j�r|�jst|������d�S�r(���)r�����partial_resolvedr���r���r#���r���r���r���r�������s����zEnumType.check_not_partialc�������������� ���C���s4���|������|��||�}t|�|d|����|�j|�j||�d�S�)NZ new_enum_typer����)r�����build_baseinttyperL���r����r����r����)r���r-���r.���Z base_btyper���r���r���r+������s�����zEnumType.build_backend_typec����������� ������C���sH��|�j�d�ur|�j��||�S�|�jr4t|�j�}t|�j�}nBdd�l}zt����W�n�tyZ���Y�n0�|� d|�� �����d�}}|dk�r�d}td�}td�}nd}td�}td�}|�||�} |�||�} |�| �}|�| �}|dd |�d�>�k�r|dd |�|�>�k��r| S�|dd |�d�>�k�r4|dd |�|�>�k��r4| S�t d |�� �����d�S�)Nr���zU%r has no values explicitly defined; guessing that it is equivalent to 'unsigned int'r���rX���rY���rZ���r[���r����r����z=%s values don't all fit into either 'long' or 'unsigned long')r����r1���r�����min�max�warningsZ__warningregistry__�clear� NameError�warnr���rQ���r����r���) r���r-���r.���Zsmallest_valueZ largest_valuer�����signZ candidate1Z candidate2Zbtype1Zbtype2Zsize1Zsize2r���r���r���r������sH���� � ���zEnumType.build_baseinttype)N)r:���r;���r<���r����r����r����rJ���r����r����r+���r����r���r���r���r���r�������s��� r����c�����������������C���s2���|d�u�rd|��}t�|d�d�d��}|�|���d|_|S�)Nz$%s�unknown_type)r����r�����origin�r5���Z structnamerw���r���r���r���r����0��s���� r����c�����������������C���s(���|d�u�rd|��}t�|d�d�d��}t||��S�)Nz$$%s)r����r}���r����r���r���r����unknown_ptr_type8��s����r����c�����������������C���s^���t�|�tj�rtS�t�6�tt|��d�s2t���t|��_ t|��j W��d�����S�1�sP0����Y��d�S�)N�__typecache) r����r����� ModuleType�_typecache_cffi_backend�global_lock�hasattrr�����weakref�WeakValueDictionaryr����)Zbackendr���r���r���� get_typecacheB��s����r����c����������� ��� ���O���s����|��d||f�}z|j|�W�S��ty.���Y�n0�zt|j|�|��}W�n6�tyz�}�ztd||�|f���W�Y�d�}~n d�}~0�0�|j}t�N�|�|�} | d�u�r�|||<�|W��d�����S�| W��d�����S�W�d�����n1�s�0����Y��d�S�)Nr����z %s: %r: %s)�popZ _typecacher*���r3���ru���rf���r�����get) Zsrctyper-����funcnameri����kwdsr�����res�e�cacheZres1r���r���r���rL���M��s ����( rL���c�����������������C���s���t�d|�d|�S�)N�?r{���rK���)r-���r0���r���r���r���� pointer_cached��s����r����c�����������������C���s@���|�j�r<t|�j�d��tu�r<d||�j�d�f�f|�j�dd����|�_�d�S�)Nr���z%s: %sr���)ri���r����r����)r����r5���r���r���r����attach_exception_infog��s����r����)N)N)-r����r�����lockr����errorr���r���r���r ���r���r���r����objectr���r?���rH���Z void_typerO���rQ���rd���rg���rh���rr���rs���ry���Z voidp_typer|���Zconst_voidp_typer}���r~���Zchar_array_typer����r����r����r����r����r����r����r����r����r����r����rL���r����r����r���r���r���r����<module>���sN��� / L � G