U .c@sxdZddlZddlmZddlmZddddgZGd ddeZGd ddeZ d d Z Gd ddZ GdddZ dS)zRImplements (a subset of) Sun XDR -- eXternal Data Representation. See: RFC 1014 N)BytesIOwrapsErrorPackerUnpackerConversionErrorc@s(eZdZdZddZddZddZdS) rzException 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 ||_dSN)msg)selfr r +/opt/alt/python38/lib64/python3.8/xdrlib.py__init__szError.__init__cCs t|jSr )reprr r r r r __repr__szError.__repr__cCs t|jSr )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 scstfdd}|S)z5 Wrap any raised struct.errors in a ConversionError. c sFz ||WStjk r@}zt|jddW5d}~XYnXdSNr)structerrorrargs)r valueefunctionr r result&s z&raise_conversion_error..resultr)rr r rr raise_conversion_error#sr!c@seZdZdZddZddZddZeZedd Z ed d Z e Z d d Z ddZ e ZeddZeddZddZeZddZeZeZddZddZddZdS)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 |jSr )r$getvaluerr r r get_buffer8szPacker.get_buffercCs|jtd|dS)N>Lr$writerZpackr xr r r pack_uint=szPacker.pack_uintcCs|jtd|dS)N>lr(r*r r r pack_intAszPacker.pack_intcCs"|r|jdn |jddS)Nss)r$r)r*r r r pack_boolGszPacker.pack_boolc Csz||d?d@Wn8ttjfk rN}zt|jddW5d}~XYnXz||d@Wn8ttjfk r}zt|jddW5d}~XYnXdS)N lr)r, TypeErrorrrrr)r r+rr r r pack_uhyperKs"zPacker.pack_uhypercCs|jtd|dS)N>fr(r*r r r pack_floatWszPacker.pack_floatcCs|jtd|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) ValueErrorlenr$r))r nsdatar 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|ddS)Nr)r,)r list pack_itemitemr 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@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ e Z ddZ ddZddZddZddZddZeZddZeZeZd d!Zd"d#Zd$d%Zd&S)'rz;Unpacks various data representations from the given buffer.cCs||dSr r"r r?r r r rszUnpacker.__init__cCs||_d|_dSr)_Unpacker__buf_Unpacker__posrIr r r r#szUnpacker.resetcCs|jSr rKrr r r get_positionszUnpacker.get_positioncCs ||_dSr rL)r Zpositionr r r set_positionszUnpacker.set_positioncCs|jSr )rJrr r r r&szUnpacker.get_buffercCs|jt|jkrtddS)Nzunextracted data remains)rKr<rJrrr r r donesz Unpacker.donecCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr9r'rrKrJr<EOFErrorrZunpackr ijr?r r r unpack_uints  zUnpacker.unpack_uintcCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr9r-rrPrRr r r unpack_ints  zUnpacker.unpack_intcCs t|Sr )boolrVrr r r unpack_boolszUnpacker.unpack_boolcCs |}|}t|d>|BS)Nr0)rUint)r hilor r r unpack_uhyperszUnpacker.unpack_uhypercCs|}|dkr|d}|S)Nll)r\r*r r r unpack_hyperszUnpacker.unpack_hypercCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr9r3rrPrRr r r unpack_floats  zUnpacker.unpack_floatcCsB|j}|d|_}|j||}t|dkr2ttd|dS)Nr5rrPrRr r r unpack_doubles  zUnpacker.unpack_doublecCsT|dkrtd|j}||ddd}|t|jkr|dkr,td|f|}||q|S)NrrBz0 or 1 expected, got %r)rUrappend)r unpack_itemrCr+rEr r r unpack_lists zUnpacker.unpack_listcCs"g}t|D]}||q |Sr )rangerc)r r=rdrCrSr r r unpack_farrays zUnpacker.unpack_farraycCs|}|||Sr )rUrg)r rdr=r r r unpack_arrayszUnpacker.unpack_arrayN)rrrrrr#rMrNr&rOrUrVZ unpack_enumrXr\r]r^r`raZunpack_fopaquerbZ unpack_opaqueZ unpack_bytesrergrhr r r r rs.  ) rrior functoolsr__all__ Exceptionrrr!rrr r r r s    U