U e5dã@sxdZddlZddlmZddlmZddddgZGd d„deƒZGd d„deƒ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.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__Ú__doc__rrrr r r r rs c@s eZdZdS)rN)rrrr r r r r scstˆƒ‡fdd„ƒ}|S)z5 Wrap any raised struct.errors in a ConversionError. c sFz ˆ||ƒWStjk r@}zt|jdƒd‚W5d}~XYnXdS©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$Ú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=rCrDrEr r r Ú pack_farrayws zPacker.pack_farraycCs$t|ƒ}| |¡| |||¡dSr )r<r,rG)r rCrDr=r r r Ú pack_array}s zPacker.pack_arrayN)rrrrrr#r&Zget_bufr!r,r.Z pack_enumr/r2Z pack_hyperr4r6r@Z pack_fopaquerAZ pack_opaqueZ pack_bytesrFrGrHr r r r r/s2     c@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__posrIr r r r#ŠszUnpacker.resetcCs|jSr ©rKrr r r Ú get_positionŽszUnpacker.get_positioncCs ||_dSr rL)r Zpositionr r r Ú set_position‘szUnpacker.set_positioncCs|jSr )rJrr r r r&”szUnpacker.get_buffercCs|jt|jƒkrtdƒ‚dS)Nzunextracted data remains)rKr<rJrrr r r Údone—sz Unpacker.donecCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nr9r'r©rKrJr<ÚEOFErrorrZunpack©r ÚiÚjr?r r r Ú unpack_uint›s  zUnpacker.unpack_uintcCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nr9r-rrPrRr r r Ú unpack_int£s  zUnpacker.unpack_intcCs t| ¡ƒSr )ÚboolrVrr r r Ú unpack_bool­szUnpacker.unpack_boolcCs | ¡}| ¡}t|ƒd>|BS)Nr0)rUÚ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)Nr9r3rrPrRr r r Ú unpack_float»s  zUnpacker.unpack_floatcCsB|j}|d|_}|j||…}t|ƒdkr2t‚t d|¡dS)Nér5rrPrRr r r Ú unpack_doubleÃs  zUnpacker.unpack_doublecCsT|dkrtdƒ‚|j}||ddd}|t|jƒkr|dkr,td|fƒ‚|ƒ}| |¡q|S)NrrBz0 or 1 expected, got %r)rUrÚappend)r Ú unpack_itemrCr+rEr r r Ú unpack_listÞs zUnpacker.unpack_listcCs"g}t|ƒD]}| |ƒ¡q |Sr )Úrangerc)r r=rdrCrSr r r Ú unpack_farrayés zUnpacker.unpack_farraycCs| ¡}| ||¡Sr )rUrg)r rdr=r r r Ú unpack_arrayïszUnpacker.unpack_arrayN)rrrrrr#rMrNr&rOrUrVZ unpack_enumrXr\r]r^r`raZunpack_fopaquerbZ unpack_opaqueZ unpack_bytesrergrhr r r r r„s.  ) rrÚiorÚ functoolsrÚ__all__Ú Exceptionrrr!rrr r r r Ús    U