a ÕDOgã@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 cCs ||_dS©N)Úmsg)Úselfr ©r ú/usr/lib64/python3.9/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__Ú__doc__rrrr r r r rs rc@s eZdZdS)rN)rrrr r r r r srcstˆƒ‡fdd„ƒ}|S)z5 Wrap any raised struct.errors in a ConversionError. c sHz ˆ||ƒWStjyB}zt|jdƒd‚WYd}~n d}~00dS©Nr)ÚstructÚerrorrÚargs)r ÚvalueÚe©Úfunctionr r Úresult&s z&raise_conversion_error..resultr)rr r rr Ú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 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$ÚwriterÚpack©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@¡Wn:ttjfyP}zt|jdƒd‚WYd}~n d}~00z| |d@¡Wn:ttjfyž}zt|jdƒd‚WYd}~n d}~00dS)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-rA)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>rDrErFr r r Ú pack_farrayws zPacker.pack_farraycCs$t|ƒ}| |¡| |||¡dSr )r=r-rH)r rDrEr>r r r Ú pack_array}s zPacker.pack_arrayN)rrrrrr#r&Zget_bufr!r-r/Z pack_enumr0r3Z pack_hyperr5r7rAZ pack_fopaquerBZ pack_opaqueZ pack_bytesrGrHrIr r r r r/s2     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 r@r r r r‡szUnpacker.__init__cCs||_d|_dSr)Ú_Unpacker__bufÚ_Unpacker__posrJr r r r#ŠszUnpacker.resetcCs|jSr ©rLrr r r Ú get_positionŽszUnpacker.get_positioncCs ||_dSr rM)r Zpositionr r r Ú set_position‘szUnpacker.set_positioncCs|jSr )rKrr r r r&”szUnpacker.get_buffercCs|jt|jƒkrtdƒ‚dS)Nzunextracted data remains)rLr=rKrrr r r Údone—sz Unpacker.donecCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nr:r'r©rLrKr=ÚEOFErrorrÚunpack©r ÚiÚjr@r r r Ú unpack_uint›s  zUnpacker.unpack_uintcCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nr:r.rrQrTr r r Ú unpack_int£s  zUnpacker.unpack_intcCs t| ¡ƒSr )ÚboolrXrr r r Ú unpack_bool­szUnpacker.unpack_boolcCs | ¡}| ¡}t|ƒd>|BS)Nr1)rWÚ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)Nr:r4rrQrTr r r Ú unpack_float»s  zUnpacker.unpack_floatcCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nér6rrQrTr r r Ú unpack_doubleÃs  zUnpacker.unpack_doublecCsT|dkrtdƒ‚|j}||ddd}|t|jƒkrrUrVr r r Úunpack_fstringËszUnpacker.unpack_fstringcCs| ¡}| |¡Sr )rWrc)r r>r r r Ú unpack_string×szUnpacker.unpack_stringcCsBg}| ¡}|dkrq>|dkr,td|fƒ‚|ƒ}| |¡q|S)NrrCz0 or 1 expected, got %r)rWrÚappend)r Ú unpack_itemrDr,rFr r r Ú unpack_listÞs  zUnpacker.unpack_listcCs"g}t|ƒD]}| |ƒ¡q |Sr )Úrangere)r r>rfrDrUr r r Ú unpack_farrayés zUnpacker.unpack_farraycCs| ¡}| ||¡Sr )rWri)r rfr>r r r Ú unpack_arrayïszUnpacker.unpack_arrayN)rrrrrr#rNrOr&rPrWrXZ unpack_enumrZr^r_r`rbrcZunpack_fopaquerdZ unpack_opaqueZ unpack_bytesrgrirjr r r r r„s.  r) rrÚiorÚ functoolsrÚ__all__Ú Exceptionrrr!rrr r r r Ús   U