U C^1@sdZddlmZddlZddlZddlmZz ddlZWne k rLYnXej dkrldddZ d d Z ndd dZ d d Z dd dZ dS)z= Support for serialization of numpy data types with msgpack. )unicode_literalsN)ExtType)rcCst|tjrX|jjdkr&d}|jj}n d}|jj}d|||j|jdrL|j n| dSt|tj tj fr|d|jj|j dSt|t rd|d S|d kr|S||Sd S z@ Data encoder for serializing numpy data types. VVTZ C_CONTIGUOUS)ndtypekindshapedataF)r r r)complexrN) isinstancenpndarraydtypekinddescrstrshapeflagsdatatobytesbool_numbercomplex__repr__objchainrrr"?/tmp/pip-install-6_kvzl1k/srsly/srsly/msgpack/_msgpack_numpy.py encode_numpys,    r$cCst|tr|St|SdSN)rbytesdecoderxr"r"r#tostr7s r*cCst|tjr\|jjdkr&d}|jj}n d}|jj}d|||j|jdrPt |j n| dSt|tj tj frd|jjt |j dSt|trd|d S|d kr|S||Sd Sr)rrrrrrrrr memoryviewrrrrrrrr"r"r#r$=s,    cCs|Sr%r"r(r"r"r#r*YscCszd|kr|ddkrjd|kr>|ddkr>dd|dD}n|d}tj|dt|d |d WS|d}tj|dt|d d WSn0d |krtt|dWS|d kr|n||WSWn(tk r|d kr|n||YSXd S)z5 Decoder for deserializing numpy data types. r Tr rcSsg|]}tdd|DqS)css&|]}t|tkrt|n|VqdSr%)typer&r*).0tr"r"r# hsz*decode_numpy...)tuple)r-dr"r"r# hsz decode_numpy..r r)rr rrN)rZ frombufferrZreshaperr*KeyError)r r!rr"r"r# decode_numpy\s0   r4)N)N)N)__doc__ __future__rsys functoolsZ _ext_typerZnumpyr ImportError version_infor$r*r4r"r"r"r#s