grthtrhthjhtyjytjytkergtrhtrjytjerhrfh3 ct„j1@ã @s:ddlZddlZdZddlmZmZmZddlm Z ddlm Z ddlmZ ddlm Z mZddlmZdd lmZee krˆed ee ƒ‚ejd krždd lmZe Zejd krÖejdkrÖeejƒjjdƒdƒdkrÖeZddlmZmZm Z!m"Z#d|dd„Z$d}dd„Z%iZ&dd„Z'ejd k�rXddlm(Z)ddlm*Z+iZ,dd„Z-e-j.�rpe'j.j/ddƒe-_.nejd k�rpddlm0Z)ddlm1Z1m2Z2m3Z3m4Z4m5Z5ddlm6Z6m7Z7ddlm8Z8d~d d!„Z9Gd"d#„d#e8ƒZ:e9e:d$ƒGd%d&„d&e8ƒZ;e9e;ƒGd'd(„d(e8ƒZe9e>ƒed-ƒed.ƒk�rHe=Z?e>Z@n0Gd/d0„d0e8ƒZ?e9e?ƒGd1d2„d2e8ƒZ@e9e@ƒGd3d4„d4e8ƒZAe9eAƒGd5d6„d6e8ƒZBe9eBƒGd7d8„d8e8ƒZCe1eCƒe1eBƒk�rÎeBZCed.ƒed9ƒk�rêe=ZDe>ZEn0Gd:d;„d;e8ƒZDe9eDƒGdd?„d?e8ƒZFeFeF_GeF_He9eFƒGd@dA„dAe8ƒZIeIeI_GeI_He9eIƒGdBdC„dCe8ƒZJeJeJ_GeJ_He9eJƒGdDdE„dEe8ƒZKe9eKd$ƒGdFdG„dGe8ƒZLeLZMe9eLƒGdHdI„dIe8ƒZNddJlmOZOmPZPmQZQGdKdL„dLe8ƒZRGdMdN„dNe8ƒZSdOdP„ZTddQdR„ZUdSdT„ZVdUdV„ZWGdWdX„dXeXƒZYGdYdZ„dZeYƒZZejd k�rŽGd[d\„d\eYƒZ[dd]lm\Z\m8Z8Gd^d_„d_e8ƒZ]Gd`da„daeYƒZ^Gdbdc„dceXƒZ_e_eYƒZ`e_eZƒZaejd k�rÊeZdddejbƒZcn,ejdek�rîeZdfejdddg…ƒZcneZdƒZcejd k�rJe_e[ƒZee_e^ƒZfejd k�r(eejgjhZhneejijhZhddhlmjZjmkZkd€didj„Zle1e@ƒe1eLƒk�rfe@Zme?Znn6e1e>ƒe1eLƒk�r‚e>Zme=Znne1eEƒe1eLƒk�rœeEZmeDZnddklmoZompZpmqZqmrZre'eLeLeLemƒeoƒZse'eLeLe?emƒepƒZtdldm„Zueue:eLe:e:ƒerƒZvdndo„Zweue:eLe?ƒeqƒZxd‚dqdr„ZyyddslmzZzWne{k �r:YnXeue:eLe?ƒezƒZ|d„dtdu„Z}ejd k�rrdvdw„Z~dxdy„Zddzl€m�Z�m‚Z‚eIZƒeFZ„xPe;e?e=eDgD]@Z…e1e…ƒdgk�r°e…Z†n&e1e…ƒd{k�rÄe…Z‡ne1e…ƒdk�r˜e…Zˆ�q˜WxPeeEgD]@Z…e1e…ƒdgk�re…Z‰n&e1e…ƒd{k�re…ZŠne1e…ƒdk�rêe…Z‹�qêW[…eTƒdS)…éNz1.1.0)ÚUnionÚ StructureÚArray)Ú_Pointer)ÚCFuncPtr)Ú __version__)Ú RTLD_LOCALÚ RTLD_GLOBAL)Ú ArgumentError)ÚcalcsizezVersion number mismatchÚnt)Ú FormatErrorÚposixÚdarwinÚ.é)ÚFUNCFLAG_CDECLÚFUNCFLAG_PYTHONAPIÚFUNCFLAG_USE_ERRNOÚFUNCFLAG_USE_LASTERRORcCs^t|tƒr6|dkrt|ƒd}t|}|ƒ}||_|St|tƒrRt|}|ƒ}|St|ƒ‚dS)Né)Ú isinstanceÚbytesÚlenÚc_charÚvalueÚintÚ TypeError)ÚinitÚsizeÚbuftypeÚbuf©r"ú'/usr/lib64/python3.6/ctypes/__init__.pyÚcreate_string_buffer/s   r$cCs t||ƒS)N)r$)rrr"r"r#Úc_bufferAsr%c sŽt‰|jddƒrˆtO‰|jddƒr,ˆtO‰|r@td|jƒƒ‚ytˆˆˆfStk rˆG‡‡‡fdd„dtƒ}|tˆˆˆf<|SXdS)NÚ use_errnoFÚuse_last_errorz!unexpected keyword argument(s) %scseZdZ”Z”Z”ZdS)z CFUNCTYPE..CFunctionTypeN)Ú__name__Ú __module__Ú __qualname__Ú _argtypes_Ú _restype_Ú_flags_r")ÚargtypesÚflagsÚrestyper"r#Ú CFunctionTypecsr1) Ú_FUNCFLAG_CDECLÚpopÚ_FUNCFLAG_USE_ERRNOÚ_FUNCFLAG_USE_LASTERRORÚ ValueErrorÚkeysÚ_c_functype_cacheÚKeyErrorÚ _CFuncPtr)r0r.Úkwr1r")r.r/r0r#Ú CFUNCTYPEIs  r<)Ú LoadLibrary)ÚFUNCFLAG_STDCALLc sŽt‰|jddƒrˆtO‰|jddƒr,ˆtO‰|r@td|jƒƒ‚ytˆˆˆfStk rˆG‡‡‡fdd„dtƒ}|tˆˆˆf<|SXdS)Nr&Fr'z!unexpected keyword argument(s) %scseZdZ”Z”Z”ZdS)z$WINFUNCTYPE..WinFunctionTypeN)r(r)r*r+r,r-r")r.r/r0r"r#ÚWinFunctionType{sr?) Ú_FUNCFLAG_STDCALLr3r4r5r6r7Ú_win_functype_cacher9r:)r0r.r;r?r")r.r/r0r#Ú WINFUNCTYPEos  rB)Údlopen)ÚsizeofÚbyrefÚ addressofÚ alignmentÚresize)Ú get_errnoÚ set_errno)Ú _SimpleCDatacCsJddlm}|dkr|j}t|ƒ||ƒ}}||krFtd|||fƒ‚dS)Nr)r z"sizeof(%s) wrong: %d instead of %d)Ústructr Ú_type_rDÚ SystemError)ÚtypÚtypecoder ZactualZrequiredr"r"r#Ú _check_size‹s rQcs eZdZdZ‡fdd„Z‡ZS)Ú py_objectÚOc s.y tƒjƒStk r(dt|ƒjSXdS)Nz %s())ÚsuperÚ__repr__r6Útyper()Úself)Ú __class__r"r#rU™s zpy_object.__repr__)r(r)r*rMrUÚ __classcell__r"r")rXr#rR—srRÚPc@seZdZdZdS)Úc_shortÚhN)r(r)r*rMr"r"r"r#r[ sr[c@seZdZdZdS)Úc_ushortÚHN)r(r)r*rMr"r"r"r#r]¤sr]c@seZdZdZdS)Úc_longÚlN)r(r)r*rMr"r"r"r#r_¨sr_c@seZdZdZdS)Úc_ulongÚLN)r(r)r*rMr"r"r"r#ra¬sraÚir`c@seZdZdZdS)Úc_intrcN)r(r)r*rMr"r"r"r#rdµsrdc@seZdZdZdS)Úc_uintÚIN)r(r)r*rMr"r"r"r#re¹srec@seZdZdZdS)Úc_floatÚfN)r(r)r*rMr"r"r"r#rg½srgc@seZdZdZdS)Úc_doubleÚdN)r(r)r*rMr"r"r"r#riÁsric@seZdZdZdS)Ú c_longdoubleÚgN)r(r)r*rMr"r"r"r#rkÅsrkÚqc@seZdZdZdS)Ú c_longlongrmN)r(r)r*rMr"r"r"r#rnÏsrnc@seZdZdZdS)Ú c_ulonglongÚQN)r(r)r*rMr"r"r"r#roÓsroc@seZdZdZdS)Úc_ubyteÚBN)r(r)r*rMr"r"r"r#rqÚsrqc@seZdZdZdS)Úc_byteÚbN)r(r)r*rMr"r"r"r#rsásrsc@seZdZdZdS)rÚcN)r(r)r*rMr"r"r"r#ræsrc@seZdZdZdd„ZdS)Úc_char_pÚzcCsd|jjtj|ƒjfS)Nz%s(%s))rXr(Úc_void_pÚ from_bufferr)rWr"r"r#rUíszc_char_p.__repr__N)r(r)r*rMrUr"r"r"r#rvësrvc@seZdZdZdS)rxrZN)r(r)r*rMr"r"r"r#rxñsrxc@seZdZdZdS)Úc_boolú?N)r(r)r*rMr"r"r"r#rzösrz)ÚPOINTERÚpointerÚ_pointer_type_cachec@seZdZdZdd„ZdS)Ú c_wchar_pÚZcCsd|jjtj|ƒjfS)Nz%s(%s))rXr(rxryr)rWr"r"r#rUýszc_wchar_p.__repr__N)r(r)r*rMrUr"r"r"r#rûsrc@seZdZdZdS)Úc_wcharÚuN)r(r)r*rMr"r"r"r#r�sr�cCsFtjƒtjƒtjdkr"tjƒtjtt ƒ_t jtt ƒ_t td<dS)Nr ) r~Úclearr8Ú_osÚnamerArZ from_paramr|r�rvrrxr"r"r"r#Ú _reset_caches   r†cCs^t|tƒr6|dkrt|ƒd}t|}|ƒ}||_|St|tƒrRt|}|ƒ}|St|ƒ‚dS)Nr)rÚstrrr�rrr)rrr r!r"r"r#Úcreate_unicode_buffers   rˆcCsLtj|dƒdk rtdƒ‚t|ƒtkr,tdƒ‚|j|ƒ|t|<tt|ƒ=dS)Nz%This type already exists in the cachezWhat's this???)r~ÚgetÚ RuntimeErrorÚidZset_type)r}Úclsr"r"r#ÚSetPointerType"s  r�cCs||S)Nr")rOrr"r"r#ÚARRAY,srŽc@sJeZdZeZeZdZdZdZ e dddfdd„Z dd„Z d d „Z d d „ZdS) ÚCDLLzrNFcsb|ˆ_ˆj‰|rˆtO‰|r$ˆtO‰G‡‡fdd„dtƒ}|ˆ_|dkrXtˆj|ƒˆ_n|ˆ_dS)NcseZdZ”Z”jZdS)zCDLL.__init__.._FuncPtrN)r(r)r*r-Ú_func_restype_r,r")r/rWr"r#Ú_FuncPtrQsr‘)Ú_nameÚ _func_flags_r4r5r:r‘Ú_dlopenÚ_handle)rWr…ÚmodeZhandler&r'r‘r")r/rWr#Ú__init__Gsz CDLL.__init__cCs8d|jj|j|jtjdd@t|ƒtjdd@fS)Nz<%s '%s', handle %x at %#x>ér)rXr(r’r•Ú_sysÚmaxsizer‹)rWr"r"r#rU[s z CDLL.__repr__cCs6|jdƒr|jdƒrt|ƒ‚|j|ƒ}t|||ƒ|S)NÚ__)Ú startswithÚendswithÚAttributeErrorÚ __getitem__Úsetattr)rWr…Úfuncr"r"r#Ú __getattr__as   zCDLL.__getattr__cCs"|j||fƒ}t|tƒs||_|S)N)r‘rrr()rWZname_or_ordinalr¡r"r"r#rŸhs zCDLL.__getitem__)r(r)r*r2r“rdr�r’r•r‘Ú DEFAULT_MODEr—rUr¢rŸr"r"r"r#r�2s r�c@seZdZeeBZdS)ÚPyDLLN)r(r)r*r2Ú_FUNCFLAG_PYTHONAPIr“r"r"r"r#r¤nsr¤c@seZdZeZdS)ÚWinDLLN)r(r)r*r@r“r"r"r"r#r¦wsr¦)Ú_check_HRESULTrKc@seZdZdZeZdS)ÚHRESULTr`N)r(r)r*rMr§Z_check_retval_r"r"r"r#r¨€s r¨c@seZdZeZeZdS)ÚOleDLLN)r(r)r*r@r“r¨r�r"r"r"r#r©�sr©c@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) Ú LibraryLoadercCs ||_dS)N)Ú_dlltype)rWZdlltyper"r"r#r——szLibraryLoader.__init__cCs.|ddkrt|ƒ‚|j|ƒ}t|||ƒ|S)NrÚ_)ržr«r )rWr…Zdllr"r"r#r¢šs    zLibraryLoader.__getattr__cCs t||ƒS)N)Úgetattr)rWr…r"r"r#rŸ¡szLibraryLoader.__getitem__cCs |j|ƒS)N)r«)rWr…r"r"r#r=¤szLibraryLoader.LoadLibraryN)r(r)r*r—r¢rŸr=r"r"r"r#rª–srªz python dllÚcygwinzlibpython%d.%d.dllr˜)Úget_last_errorÚset_last_errorcCs0|dkrtƒ}|dkr"t|ƒjƒ}td|d|ƒS)N)Ú GetLastErrorr ÚstripÚOSError)ÚcodeZdescrr"r"r#ÚWinError¼s  rµ)Ú _memmove_addrÚ _memset_addrÚ_string_at_addrÚ _cast_addrcsG‡‡fdd„dtƒ}|S)NcseZdZ”Z”ZeeBZdS)z!PYFUNCTYPE..CFunctionTypeN)r(r)r*r+r,r2r¥r-r")r.r0r"r#r1Øsr1)r:)r0r.r1r")r.r0r#Ú PYFUNCTYPE×srºcCs t|||ƒS)N)Ú_cast)ÚobjrOr"r"r#Úcastßsr½rcCs t||ƒS)N)Ú _string_at)Úptrrr"r"r#Ú string_atãsrÀ)Ú_wstring_at_addrcCs t||ƒS)N)Ú _wstring_at)r¿rr"r"r#Ú wstring_atïsrÃc Cs@ytdtƒtƒdgƒ}Wntk r,dSX|j|||ƒSdS)Nzcomtypes.server.inprocserverÚ*iïþûi€)Ú __import__ÚglobalsÚlocalsÚ ImportErrorÚDllGetClassObject)ZrclsidZriidZppvÚccomr"r"r#rÉ÷s rÉc Cs6ytdtƒtƒdgƒ}Wntk r,dSX|jƒS)Nzcomtypes.server.inprocserverrÄr)rÅrÆrÇrÈÚDllCanUnloadNow)rÊr"r"r#rËÿs rË)ÚBigEndianStructureÚLittleEndianStructureé)N)N)N)N)NNéÿÿÿÿ)rÏrÏ)rÏ)ŒÚosr„Úsysr™rZ_ctypesrrrrrr:Z_ctypes_versionrr r rLr Z _calcsizeÚ Exceptionr…r r£ÚplatformrÚunameÚreleaseÚsplitrr2rr¥rr4rr5r$r%r8r<r=r”r>r@rArBÚ__doc__ÚreplacerCrDrErFrGrHrIrJrKrQrRr[r]r_rardrergrirkrnrorqZ __ctype_le__Z __ctype_be__rsrrvrxZc_voidprzr|r}r~rr�r†rˆr�rŽÚobjectr�r¤r¦r§r¨r©rªZcdllZpydllZ dllhandleZ pythonapiÚ version_infoZwindllZoledllZkernel32r±Zcoredllr¯r°rµZc_size_tZ c_ssize_tr¶r·r¸r¹ZmemmoveZmemsetrºr»r½r¾rÀrÁrÈrÂrÃrÉrËZctypes._endianrÌrÍZc_int8Zc_uint8ZkindZc_int16Zc_int32Zc_int64Zc_uint16Zc_uint32Zc_uint64r"r"r"r#Ús6          !              <