o ­=?hã@stdZddlZddlmZddlmZgd¢ZGdd„deƒZGdd „d eƒZ d d „Z Gd d „d ƒZ Gdd„dƒZ dS)zRImplements (a subset of) Sun XDR -- eXternal Data Representation. See: RFC 1014 éN)ÚBytesIO©Úwraps)ÚErrorÚPackerÚUnpackerÚConversionErrorc@s(eZdZdZdd„Zdd„Zdd„ZdS) rzºException class for this module. Use: except xdrlib.Error as var: # var has the Error instance for the exception Public ivars: msg -- contains the message cCó ||_dS©N)Úmsg)Úselfr ©r ú-/opt/alt/python310/lib64/python3.10/xdrlib.pyÚ__init__ó zError.__init__cCó t|jƒSr )Úreprr ©r r r rÚ__repr__rzError.__repr__cCrr )Ústrr rr r rÚ__str__rz Error.__str__N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr r r rrs   rc@s eZdZdS)rN)rrrr r r rr srcstˆƒ‡fdd„ƒ}|S)z5 Wrap any raised struct.errors in a ConversionError. c s8zˆ||ƒWStjy}zt|jdƒd‚d}~ww©Nr)ÚstructÚerrorrÚargs)r ÚvalueÚe©Úfunctionr rÚresult&s  €ÿz&raise_conversion_error..resultr)r"r#r r!rÚraise_conversion_error#sr$c@s¨eZdZdZdd„Zdd„Zdd„ZeZedd „ƒZ ed d „ƒZ e Z d d „Z dd„Z e Zedd„ƒZedd„ƒZdd„ZeZdd„ZeZeZdd„Zdd„Zdd„ZdS)rz0Pack various data representations into a buffer.cCs | ¡dSr ©Úresetrr r rr2ó zPacker.__init__cCs tƒ|_dSr )rÚ _Packer__bufrr r rr&5r'z Packer.resetcCs |j ¡Sr )r(Úgetvaluerr r rÚ get_buffer8rzPacker.get_buffercCó|j t d|¡¡dS)Nú>L©r(ÚwriterZpack©r Úxr r rÚ pack_uint=ózPacker.pack_uintcCr+)Nú>lr-r/r r rÚpack_intAr2zPacker.pack_intcCs$|r |j d¡dS|j d¡dS)Nss)r(r.r/r r rÚ pack_boolGszPacker.pack_boolc CsŠz | |d?d@¡Wnttjfy"}zt|jdƒd‚d}~wwz | |d@¡WdSttjfyD}zt|jdƒd‚d}~ww)Né lÿÿr)r1Ú TypeErrorrrrr)r r0r r r rÚ pack_uhyperKs€ÿ€ÿzPacker.pack_uhypercCr+)Nú>fr-r/r r rÚ pack_floatWr2zPacker.pack_floatcCr+)Nú>dr-r/r r rÚ pack_double[r2zPacker.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 )rBr1rF)r rDrCr r rÚ pack_stringis zPacker.pack_stringcCs*|D] }| d¡||ƒq| d¡dS)Nér)r1)r ÚlistÚ pack_itemÚitemr r rÚ pack_listqs  zPacker.pack_listcCs*t|ƒ|kr tdƒ‚|D]}||ƒq dS)Nzwrong array size)rBrA)r rCrIrJrKr r rÚ pack_farrayws  ÿzPacker.pack_farraycCs$t|ƒ}| |¡| |||¡dSr )rBr1rM)r rIrJrCr r rÚ pack_array}s zPacker.pack_arrayN)rrrrrr&r*Zget_bufr$r1r4Z pack_enumr5r8Z pack_hyperr:r<rFZ pack_fopaquerGZ pack_opaqueZ pack_bytesrLrMrNr r r rr/s4      rc@s°eZdZdZdd„Zdd„Zdd„Zdd „Zd d „Zd d „Z dd„Z dd„Z e Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„ZeZdd„ZeZeZd d!„Zd"d#„Zd$d%„Zd&S)'rz;Unpacks various data representations from the given buffer.cCs| |¡dSr r%©r rEr r rr‡szUnpacker.__init__cCs||_d|_dSr)Ú_Unpacker__bufÚ_Unpacker__posrOr r rr&Šs zUnpacker.resetcCó|jSr ©rQrr r rÚ get_positionŽózUnpacker.get_positioncCr r rS)r Zpositionr r rÚ set_position‘rzUnpacker.set_positioncCrRr )rPrr r rr*”rUzUnpacker.get_buffercCs|jt|jƒkr tdƒ‚dS)Nzunextracted data remains)rQrBrPrrr r rÚdone—sÿz Unpacker.donecCóB|j}|d|_}|j||…}t|ƒdkrt‚t d|¡dS)Nr?r,r©rQrPrBÚEOFErrorrZunpack©r ÚiÚjrEr r rÚ unpack_uint›ó  zUnpacker.unpack_uintcCrX)Nr?r3rrYr[r r rÚ unpack_int£r_zUnpacker.unpack_intcCs t| ¡ƒSr )Úboolr`rr r rÚ unpack_bool­r'zUnpacker.unpack_boolcCs | ¡}| ¡}t|ƒd>|BS)Nr6)r^Úint)r ÚhiÚlor r rÚ unpack_uhyper°szUnpacker.unpack_uhypercCs| ¡}|dkr |d}|S)Nll)rfr/r r rÚ unpack_hyperµszUnpacker.unpack_hypercCrX)Nr?r9rrYr[r r rÚ unpack_float»r_zUnpacker.unpack_floatcCrX)Nér;rrYr[r r rÚ unpack_doubleÃr_zUnpacker.unpack_doublecCsT|dkrtdƒ‚|j}||ddd}|t|jƒkrt‚||_|j|||…S)Nrr=r>r?)rArQrBrPrZ)r rCr\r]r r rÚunpack_fstringËszUnpacker.unpack_fstringcCs| ¡}| |¡Sr )r^rk)r rCr r rÚ unpack_string×s zUnpacker.unpack_stringcCsBg} | ¡}|dkr |S|dkrtd|fƒ‚|ƒ}| |¡q)NrHrz0 or 1 expected, got %r)r^rÚappend)r Ú unpack_itemrIr0rKr r rÚ unpack_listÞsü úzUnpacker.unpack_listcCs"g}t|ƒD]}| |ƒ¡q|Sr )Úrangerm)r rCrnrIr\r r rÚ unpack_farrayés zUnpacker.unpack_farraycCs| ¡}| ||¡Sr )r^rq)r rnrCr r rÚ unpack_arrayïs zUnpacker.unpack_arrayN)rrrrrr&rTrVr*rWr^r`Z unpack_enumrbrfrgrhrjrkZunpack_fopaquerlZ unpack_opaqueZ unpack_bytesrorqrrr r r rr„s0  r) rrÚiorÚ functoolsrÚ__all__Ú Exceptionrrr$rrr r r rÚs   U