3 \ã@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.6/xdrlib.pyÚ__init__szError.__init__cCs t|jƒS)N)Úreprr)r r r r Ú__repr__szError.__repr__cCs t|jƒS)N)Ústrr)r r r r Ú__str__sz Error.__str__N)Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrr 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. csDy ˆ||ƒStjk r>}zt|jdƒd‚WYdd}~XnXdS)Nr)ÚstructÚerrorrÚargs)r ÚvalueÚe)Úfunctionr r Úresult&s z&raise_conversion_error..result)r)rrr )rr Úraise_conversion_error#src@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 |jƒdS)N)Úreset)r r r r r 2szPacker.__init__cCs tƒ|_dS)N)rÚ _Packer__buf)r r r r r5sz Packer.resetcCs |jjƒS)N)rÚgetvalue)r r r r Ú get_buffer8szPacker.get_buffercCs|jjtjd|ƒƒdS)Nz>L)rÚwriterÚpack)r Úxr r r Ú pack_uint=szPacker.pack_uintcCs|jjtjd|ƒƒdS)Nz>l)rr!rr")r r#r r r Úpack_intAszPacker.pack_intcCs"|r|jjdƒn |jjdƒdS)Nss)rr!)r r#r r r Ú pack_boolGszPacker.pack_boolcCs y|j|d?d@ƒWn8ttjfk rN}zt|jdƒd‚WYdd}~XnXy|j|d@ƒWn8ttjfk rš}zt|jdƒd‚WYdd}~XnXdS)Né lÿÿr)r$Ú TypeErrorrrrr)r r#rr r r Ú pack_uhyperKs"zPacker.pack_uhypercCs|jjtjd|ƒƒdS)Nz>f)rr!rr")r r#r r r Ú pack_floatWszPacker.pack_floatcCs|jjtjd|ƒƒdS)Nz>d)rr!rr")r r#r r r Ú pack_double[szPacker.pack_doublecCsP|dkrtdƒ‚|d|…}|ddd}||t|ƒd}|jj|ƒdS)Nrz fstring size must be nonnegativeééó)Ú ValueErrorÚlenrr!)r ÚnÚsÚdatar r r Ú pack_fstring_s  zPacker.pack_fstringcCs"t|ƒ}|j|ƒ|j||ƒdS)N)r0r$r4)r r2r1r r r Ú pack_stringis zPacker.pack_stringcCs.x|D]}|jdƒ||ƒqW|jdƒdS)Nér)r$)r ÚlistÚ pack_itemÚitemr r r Ú pack_listqs   zPacker.pack_listcCs.t|ƒ|krtdƒ‚x|D] }||ƒqWdS)Nzwrong array size)r0r/)r r1r7r8r9r r r Ú pack_farrayws  zPacker.pack_farraycCs$t|ƒ}|j|ƒ|j|||ƒdS)N)r0r$r;)r r7r8r1r r r Ú pack_array}s zPacker.pack_arrayN)rrrrr rr Zget_bufrr$r%Z pack_enumr&r)Z pack_hyperr*r+r4Z pack_fopaquer5Z pack_opaqueZ pack_bytesr:r;r<r r r r r/s*     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|j|ƒdS)N)r)r r3r r r r ‡szUnpacker.__init__cCs||_d|_dS)Nr)Ú_Unpacker__bufÚ_Unpacker__pos)r r3r r r rŠszUnpacker.resetcCs|jS)N)r>)r r r r Ú get_positionŽszUnpacker.get_positioncCs ||_dS)N)r>)r Zpositionr r r Ú set_position‘szUnpacker.set_positioncCs|jS)N)r=)r r r r r ”szUnpacker.get_buffercCs|jt|jƒkrtdƒ‚dS)Nzunextracted data remains)r>r0r=r)r r r r Údone—sz Unpacker.donecCsB|j}|d|_}|j||…}t|ƒdkr2t‚tjd|ƒdS)Nr-z>Lr)r>r=r0ÚEOFErrorrÚunpack)r ÚiÚjr3r r r Ú unpack_uint›s  zUnpacker.unpack_uintcCsB|j}|d|_}|j||…}t|ƒdkr2t‚tjd|ƒdS)Nr-z>lr)r>r=r0rBrrC)r rDrEr3r r r Ú unpack_int£s  zUnpacker.unpack_intcCs t|jƒƒS)N)ÚboolrG)r r r r Ú unpack_bool­szUnpacker.unpack_boolcCs |jƒ}|jƒ}t|ƒd>|BS)Nr')rFÚint)r ÚhiÚlor r r Ú unpack_uhyper°szUnpacker.unpack_uhypercCs|jƒ}|dkr|d}|S)Nll)rM)r r#r r r Ú unpack_hyperµszUnpacker.unpack_hypercCsB|j}|d|_}|j||…}t|ƒdkr2t‚tjd|ƒdS)Nr-z>fr)r>r=r0rBrrC)r rDrEr3r r r Ú unpack_float»s  zUnpacker.unpack_floatcCsB|j}|d|_}|j||…}t|ƒdkr2t‚tjd|ƒdS)Néz>dr)r>r=r0rBrrC)r rDrEr3r r r Ú unpack_doubleÃs  zUnpacker.unpack_doublecCsT|dkrtdƒ‚|j}||ddd}|t|jƒkrr0r=rB)r r1rDrEr r r Úunpack_fstringËszUnpacker.unpack_fstringcCs|jƒ}|j|ƒS)N)rFrR)r r1r r r Ú unpack_string×szUnpacker.unpack_stringcCsFg}x<|jƒ}|dkrP|dkr.td|fƒ‚|ƒ}|j|ƒqW|S)Nrr6z0 or 1 expected, got %r)rFrÚappend)r Ú unpack_itemr7r#r9r r r Ú unpack_listÞszUnpacker.unpack_listcCs&g}xt|ƒD]}|j|ƒƒqW|S)N)ÚrangerT)r r1rUr7rDr r r Ú unpack_farrayészUnpacker.unpack_farraycCs|jƒ}|j||ƒS)N)rFrX)r rUr1r r r Ú unpack_arrayïszUnpacker.unpack_arrayN)rrrrr rr?r@r rArFrGZ unpack_enumrIrMrNrOrQrRZunpack_fopaquerSZ unpack_opaqueZ unpack_bytesrVrXrYr r r r r„s.  ) rrÚiorÚ functoolsrÚ__all__Ú Exceptionrrrrrr r r r Ús    U