Your IP : 216.73.216.213


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



�D�Z�"�@s3ddlmZmZmZGdd�d�ZdS)�)�wait_convert�wait_ok�_NOTSETc@s�eZdZdZdZdZdd�Zdddd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdddd�Z
dd�Zdd�Zdedd�Zdd�Zdedd�Zded d!�Zd"d#�Zd$d%�Zd&d'�Zded(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1d2d1d3dd4d5�Zd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!dS)@�StringCommandsMixinz[String commands mixin.

    For commands details see: http://redis.io/commands/#string
    �SET_IF_NOT_EXIST�SET_IF_EXISTcCs|jd||�S)zAppend a value to key.sAPPEND)�execute)�self�key�value�r�I/opt/alt/python35/lib/python3.5/site-packages/aioredis/commands/string.py�append
szStringCommandsMixin.appendNcCs�|dkr'|dk	r'td��nT|dk	rN|dkrNtd��n-|dk	ru|dk	ru||f}nf}|jd||�S)z`Count set bits in a string.

        :raises TypeError: if only start or end specified.
        Nz%both start and stop must be specifiedsBITCOUNT)�	TypeErrorr)r	r
�start�end�argsrrr
�bitcountszStringCommandsMixin.bitcountcCs
t��dS)N)�NotImplementedError)r	rrr
�bitfield szStringCommandsMixin.bitfieldcGs|jdd|||�S)z/Perform bitwise AND operations between strings.sBITOPsAND)r)r	�destr
�keysrrr
�	bitop_and#szStringCommandsMixin.bitop_andcGs|jdd|||�S)z.Perform bitwise OR operations between strings.sBITOPsOR)r)r	rr
rrrr
�bitop_or'szStringCommandsMixin.bitop_orcGs|jdd|||�S)z/Perform bitwise XOR operations between strings.sBITOPsXOR)r)r	rr
rrrr
�	bitop_xor+szStringCommandsMixin.bitop_xorcCs|jdd||�S)z/Perform bitwise NOT operations between strings.sBITOPsNOT)r)r	rr
rrr
�	bitop_not/szStringCommandsMixin.bitop_notcCs�|dkrtd��g}|dk	r7|j|�|dk	rk|dkr^d|g}n
|j|�|jd|||�S)zcFind first bit set or clear in a string.

        :raises ValueError: if bit is not 0 or 1
        �rz"bit argument must be either 1 or 0NsBITPOS)rr)�
ValueErrorrr)r	r
�bitrrZbytes_rangerrr
�bitpos3s

zStringCommandsMixin.bitposcCs|jd|�S)z,Decrement the integer value of a key by one.sDECR)r)r	r
rrr
�decrDszStringCommandsMixin.decrcCs.t|t�std��|jd||�S)zvDecrement the integer value of a key by the given number.

        :raises TypeError: if decrement is not int
        zdecrement must be of type intsDECRBY)�
isinstance�intrr)r	r
Z	decrementrrr
�decrbyHszStringCommandsMixin.decrby�encodingcCs|jd|d|�S)zGet the value of a key.sGETr$)r)r	r
r$rrr
�getQszStringCommandsMixin.getcCsFt|t�std��|dkr3td��|jd||�S)z�Returns the bit value at offset in the string value stored at key.

        :raises TypeError: if offset is not int
        :raises ValueError: if offset is less then 0
        zoffset argument must be intrzoffset must be greater equal 0sGETBIT)r!r"rrr)r	r
�offsetrrr
�getbitUs
zStringCommandsMixin.getbitcCsRt|t�std��t|t�s6td��|jd|||d|�S)znGet a substring of the string stored at a key.

        :raises TypeError: if start or end is not int
        zstart argument must be intzend argument must be intsGETRANGEr$)r!r"rr)r	r
rrr$rrr
�getrangeas
zStringCommandsMixin.getrangecCs|jd||d|�S)z7Set the string value of a key and return its old value.sGETSETr$)r)r	r
rr$rrr
�getsetlszStringCommandsMixin.getsetcCs|jd|�S)z,Increment the integer value of a key by one.sINCR)r)r	r
rrr
�incrpszStringCommandsMixin.incrcCs.t|t�std��|jd||�S)zvIncrement the integer value of a key by the given amount.

        :raises TypeError: if increment is not int
        zincrement must be of type intsINCRBY)r!r"rr)r	r
�	incrementrrr
�incrbytszStringCommandsMixin.incrbycCs=t|t�std��|jd||�}t|t�S)ztIncrement the float value of a key by the given amount.

        :raises TypeError: if increment is not int
        zincrement must be of type intsINCRBYFLOAT)r!�floatrrr)r	r
r+�futrrr
�incrbyfloat}szStringCommandsMixin.incrbyfloatcGs|jd||d|�S)z%Get the values of all the given keys.sMGETr$)r)r	r
r$rrrr
�mget�szStringCommandsMixin.mgetcGsDt|�ddkr"td��|jd|||�}t|�S)znSet multiple keys to multiple values.

        :raises TypeError: if len of pairs is not event number
        �rz#length of pairs must be even numbersMSET)�lenrrr)r	r
r�pairsr.rrr
�mset�szStringCommandsMixin.msetcGs8t|�ddkr"td��|jd|||�S)z�Set multiple keys to multiple values,
        only if none of the keys exist.

        :raises TypeError: if len of pairs is not event number
        r1rz#length of pairs must be even numbersMSETNX)r2rr)r	r
rr3rrr
�msetnx�szStringCommandsMixin.msetnxcCs=t|t�std��|jd|||�}t|�S)zvSet the value and expiration in milliseconds of a key.

        :raises TypeError: if milliseconds is not int
        z!milliseconds argument must be intsPSETEX)r!r"rrr)r	r
Zmillisecondsrr.rrr
�psetex�szStringCommandsMixin.psetex�expirer�pexpire�existcCs�|r"t|t�r"td��|rDt|t�rDtd��g}|rfd|g|dd�<|r�d|g|dd�<||jkr�|jd�n||jkr�|jd�|jd|||�}t|�S)	zcSet the string value of a key.

        :raises TypeError: if expire or pexpire is not int
        zexpire argument must be intzpexpire argument must be intsEXNsPXsXXsNXsSET)r!r"rrrrrr)r	r
rr7r8r9rr.rrr
�set�s
zStringCommandsMixin.setcCsat|t�std��|dkr3td��|dkrKtd��|jd|||�S)z�Sets or clears the bit at offset in the string value stored at key.

        :raises TypeError: if offset is not int
        :raises ValueError: if offset is less then 0 or value is not 0 or 1
        zoffset argument must be intrzoffset must be greater equal 0rz$value argument must be either 1 or 0sSETBIT)rr)r!r"rrr)r	r
r&rrrr
�setbit�szStringCommandsMixin.setbitcCsit|t�r,|j|t|d�|�St|t�sGtd��|jd|||�}t|�S)z�Set the value and expiration of a key.

        If seconds is float it will be multiplied by 1000
        coerced to int and passed to `psetex` method.

        :raises TypeError: if seconds is neither int nor float
        i�z!milliseconds argument must be intsSETEX)r!r-r6r"rrr)r	r
�secondsrr.rrr
�setex�szStringCommandsMixin.setexcCs"|jd||�}t|t�S)z7Set the value of a key, only if the key does not exist.sSETNX)rr�bool)r	r
rr.rrr
�setnx�szStringCommandsMixin.setnxcCsIt|t�std��|dkr3td��|jd|||�S)z�Overwrite part of a string at key starting at the specified offset.

        :raises TypeError: if offset is not int
        :raises ValueError: if offset less then 0
        zoffset argument must be intrzoffset must be greater equal 0sSETRANGE)r!r"rrr)r	r
r&rrrr
�setrange�s
zStringCommandsMixin.setrangecCs|jd|�S)z,Get the length of the value stored in a key.sSTRLEN)r)r	r
rrr
�strlen�szStringCommandsMixin.strlen)"�__name__�
__module__�__qualname__�__doc__rrrrrrrrrrr r#rr%r'r(r)r*r,r/r0r4r5r6r:r;r=r?r@rArrrr
rs<		



rN)Z
aioredis.utilrrrrrrrr
�<module>s