Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib/python3.5/site-packages/aioredis/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib/python3.5/site-packages/aioredis/__pycache__/parser.cpython-35.opt-1.pyc



�(Z+�@s�ddlmZmZddgZGdd�d�ZGdd�d�ZyddlZejZWnek
r{eZYnXdS)	�)�
ProtocolError�
ReplyError�Reader�PyReaderc@saeZdZdZeeddd�Zdddd�Zd	d
�Zdd�Z	d
d�Z
dS)rznPure-Python Redis protocol parser that follows hiredis.Reader
    interface (except setmaxbuf/getmaxbuf).
    NcCsIt|�std��t|�s0td��t|||�|_dS)NzExpected a callable)�callable�	TypeError�Parser�_parser)�self�
protocolError�
replyError�encoding�r�@/opt/alt/python35/lib/python3.5/site-packages/aioredis/parser.py�__init__s
zPyReader.__init__�rcCs�|dkrt|�|}|dks4|dkr@td��||t|�krbtd��|jjj||||��dS)zFeed data to parser.rrznegative inputz input is larger than buffer sizeN���)�len�
ValueErrorr	�buf�extend)r
�data�o�lrrr�feedsz
PyReader.feedcCs
|jj�S)z�Get parsed value or False otherwise.

        Error replies are return as replyError exceptions (not raised).
        Protocol errors are raised.
        )r	�	parse_one)r
rrr�getssz
PyReader.getscCsdS)zNo-op.Nr)r
�sizerrr�	setmaxbuf&szPyReader.setmaxbufcCsdS)zNo-op.rr)r
rrr�	getmaxbuf*szPyReader.getmaxbufr)�__name__�
__module__�__qualname__�__doc__rrrrrrrrrrrrs
c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
d�Zdd
�Zdd�Z	ddd�Z
dd�Zd	S)rcCsFt�|_d|_||_||_||_d|_d|_dS)Nr)�	bytearrayr�posrrr
�_err�_gen)r
rrr
rrrr0s					zParser.__init__ccs,x%t|j�|j|kr'dVqWdS)NF)rrr%)r
rrrr�waitsome9szParser.waitsomeccs#|jt|j�d�EdHdS)Nr)r(rr)r
rrr�waitany>szParser.waitanyccsN|j|jd�s%|j�EdH|j|jd�}|jd7_|S)Nr)rr%r))r
�valrrr�readoneAs
zParser.readoneNccs|dk	r~t|j�|d|jkrB|j|d�EdH|j|}|j||d�dkr�|jd��nR|jjd|j�}x7|dkr�|j�EdH|jjd|j�}q�W|j|j|�}d|_|jd|d�=|S)N�s
zExpected b'
'r)rrr%r(�error�findr))r
r�offsetr*rrr�readlineHs 
	zParser.readlineccsTyt|j�EdH�SWn4tk
rO}z|j|��WYdd}~XnXdS)N)�intr0rr-)r
�excrrr�readintYszParser.readintcCs|j|�|_|jS)N)rr&)r
�msgrrrr-_szParser.errorFccs1|jdk	r|j�|j�EdH}|dkr�|j�EdH}|jdk	r~y|j|j�SWntk
r}YnXt|�S|dkr�|j�EdH}|j|jd��S|dkr�|j�EdHS|dkrS|j�EdH}|dkrdS|j|�EdH}|jrIy|j|j�SWntk
rHYnXt|�S|dkr|j�EdH}|dkr�dSg}d}xpt	|�D]b}y"|j
|jdd	�EdH�Wq�tk
r�}z|dkr�|}WYdd}~Xq�Xq�W|dk	r|�|S|j
d
j|���dS)
N�+�-zutf-8�:�$r�*�is_bulkTzInvalid first byte: {!r}rr)r&r+r0r
�decode�UnicodeDecodeError�bytesrr3�range�append�parse�LookupErrorr-�format)r
r:Zctlr*Z
bulk_arrayr-�_�errrrrr@csV	

	

"zParser.parsecCs�|jdkr|j�|_y|jjd�WnRtk
ri}zd|_|jSWYdd}~Xn"tk
r�d|_�YnXdSdS)NF)r'r@�send�
StopIteration�value�	Exception)r
r2rrrr�s	
	zParser.parse_one)r r!r"rr(r)r+r0r3r-r@rrrrrr/s	.rrN)	�errorsrr�__all__rrZhiredisr�ImportErrorrrrr�<module>s'q