U e5dã@stddlZddlmZddlmZddddgZGdd„deƒZGd d„deƒZd d „Z Gd d„dƒZ Gd d„dƒZ dS)éN)ÚBytesIO©ÚwrapsÚErrorÚPackerÚUnpackerÚConversionErrorc@s$eZdZdd„Zdd„Zdd„ZdS)rcCs ||_dS©N)Úmsg)Úselfr ©r ú/usr/lib64/python3.8/xdrlib.pyÚ__init__szError.__init__cCs t|jƒSr )Úreprr ©r r r r Ú__repr__szError.__repr__cCs t|jƒSr )Ústrr rr r r Ú__str__sz Error.__str__N)Ú__name__Ú __module__Ú __qualname__rrrr r r r rs c@s eZdZdS)rN)rrrr r r r r scstˆƒ‡fdd„ƒ}|S)Nc sFz ˆ||ƒWStjk r@}zt|jdƒd‚W5d}~XYnXdS©Nr)ÚstructÚerrorrÚargs)r ÚvalueÚe©Úfunctionr r Úresult&s z&raise_conversion_error..resultr)rrr rr Úraise_conversion_error#sr c@s¤eZdZdd„Zdd„Zdd„ZeZedd„ƒZed d „ƒZ e Z d d „Z d d„Z e Z edd„ƒZedd„ƒZdd„ZeZdd„ZeZeZdd„Zdd„Zdd„ZdS)rcCs | ¡dSr ©Úresetrr r r r2szPacker.__init__cCs tƒ|_dSr )rÚ _Packer__bufrr r r r"5sz Packer.resetcCs |j ¡Sr )r#Úgetvaluerr r r Ú get_buffer8szPacker.get_buffercCs|j t d|¡¡dS)Nú>L©r#ÚwriterZpack©r Úxr r r Ú pack_uint=szPacker.pack_uintcCs|j t d|¡¡dS)Nú>lr'r)r r r Úpack_intAszPacker.pack_intcCs"|r|j d¡n |j d¡dS)Nss)r#r(r)r r r Ú pack_boolGszPacker.pack_boolc Cs z| |d?d@¡Wn8ttjfk rN}zt|jdƒd‚W5d}~XYnXz| |d@¡Wn8ttjfk rš}zt|jdƒd‚W5d}~XYnXdS)Né lÿÿr)r+Ú TypeErrorrrrr)r r*rr r r Ú pack_uhyperKs"zPacker.pack_uhypercCs|j t d|¡¡dS)Nú>fr'r)r r r Ú pack_floatWszPacker.pack_floatcCs|j t d|¡¡dS)Nú>dr'r)r r r Ú pack_double[szPacker.pack_doublecCsP|dkrtdƒ‚|d|…}|ddd}||t|ƒd}|j |¡dS)Nrú fstring size must be nonnegativeééó)Ú ValueErrorÚlenr#r()r ÚnÚsÚdatar r r Ú pack_fstring_s  zPacker.pack_fstringcCs"t|ƒ}| |¡| ||¡dSr )r;r+r?)r r=r<r r r Ú pack_stringis zPacker.pack_stringcCs*|D]}| d¡||ƒq| d¡dS)Nér)r+)r ÚlistÚ pack_itemÚitemr r r Ú pack_listqs  zPacker.pack_listcCs*t|ƒ|krtdƒ‚|D] }||ƒqdS)Nzwrong array size)r;r:)r r<rBrCrDr r r Ú pack_farrayws zPacker.pack_farraycCs$t|ƒ}| |¡| |||¡dSr )r;r+rF)r rBrCr<r r r Ú pack_array}s zPacker.pack_arrayN)rrrrr"r%Zget_bufr r+r-Z pack_enumr.r1Z pack_hyperr3r5r?Z pack_fopaquer@Z pack_opaqueZ pack_bytesrErFrGr r r r r/s0     c@s¬eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z e Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„ZeZdd„ZeZeZdd „Zd!d"„Zd#d$„Zd%S)&rcCs| |¡dSr r!©r r>r r r r‡szUnpacker.__init__cCs||_d|_dSr)Ú_Unpacker__bufÚ_Unpacker__posrHr r r r"ŠszUnpacker.resetcCs|jSr ©rJrr r r Ú get_positionŽszUnpacker.get_positioncCs ||_dSr rK)r Zpositionr r r Ú set_position‘szUnpacker.set_positioncCs|jSr )rIrr r r r%”szUnpacker.get_buffercCs|jt|jƒkrtdƒ‚dS)Nzunextracted data remains)rJr;rIrrr r r Údone—sz Unpacker.donecCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nr8r&r©rJrIr;ÚEOFErrorrZunpack©r ÚiÚjr>r r r Ú unpack_uint›s  zUnpacker.unpack_uintcCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nr8r,rrOrQr r r Ú unpack_int£s  zUnpacker.unpack_intcCs t| ¡ƒSr )ÚboolrUrr r r Ú unpack_bool­szUnpacker.unpack_boolcCs | ¡}| ¡}t|ƒd>|BS)Nr/)rTÚint)r ÚhiÚlor r r Ú unpack_uhyper°szUnpacker.unpack_uhypercCs| ¡}|dkr|d}|S)Nll)r[r)r r r Ú unpack_hyperµszUnpacker.unpack_hypercCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nr8r2rrOrQr r r Ú unpack_float»s  zUnpacker.unpack_floatcCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nér4rrOrQr r r Ú unpack_doubleÃs  zUnpacker.unpack_doublecCsT|dkrtdƒ‚|j}||ddd}|t|jƒkr|dkr,td|fƒ‚|ƒ}| |¡q|S)NrrAz0 or 1 expected, got %r)rTrÚappend)r Ú unpack_itemrBr*rDr r r Ú unpack_listÞs zUnpacker.unpack_listcCs"g}t|ƒD]}| |ƒ¡q |Sr )Úrangerb)r r<rcrBrRr r r Ú unpack_farrayés zUnpacker.unpack_farraycCs| ¡}| ||¡Sr )rTrf)r rcr<r r r Ú unpack_arrayïszUnpacker.unpack_arrayN)rrrrr"rLrMr%rNrTrUZ unpack_enumrWr[r\r]r_r`Zunpack_fopaqueraZ unpack_opaqueZ unpack_bytesrdrfrgr r r r r„s,  ) rÚiorÚ functoolsrÚ__all__Ú Exceptionrrr rrr r r r Ús    U