U
    
g                     @   s8   d dl Z d dlmZ d dlZeeZG dd dZdS )    N)settingsc                   @   sJ   e Zd ZdddZdd Zdgfeeddd	Zdgfeed
ddZ	dS )RedisDBTc                 C   sD   t jr tjdddt j|d| _ntjddd|d| _|| _|| _d S )N	localhosti  r   )hostportdbpassworddecode_responses)r   r   r   r	   )r   REDIS_PASSWORDredisRedisdecodeuserid)selfr   r    r   @/home/worker/MarketYantra/Yantra/yantra/trading/Redis/redisdb.py__init__   s
    zRedisDB.__init__c                 C   s   dd |  D S )zFEnsure no NoneType values exist in the record before storing in Redis.c                 S   s"   i | ]\}}||d k	r|ndqS )N r   ).0kvr   r   r   
<dictcomp>   s      z&RedisDB.clean_data.<locals>.<dictcomp>)items)r   recordr   r   r   
clean_data   s    zRedisDB.clean_dataid)datamodelc           
   
   C   s   zdd}|D ]T}|  |}d}|D ]}|dt||  7 }q || }| jj||||d |d7 }q
|W S  tk
r }	 zt|	jd  W Y d S d }	~	X Y nX d S )Nr   r   _)namekeyvaluemapping   )r   strr   hset	Exceptionloggererrorargs)
r   r   r   r    ZiCountr   Zlstrr   key_valer   r   r   setlist   s    

zRedisDB.setlist)r   r   c           	   
   C   sp   z8|}|D ]}|d||  7 }q
d| }| j |}|W S  tk
rj } zt| W Y d S d }~X Y nX d S )Nr   r   )r   hgetallr&   Loggerr(   )	r   r   r   r    r$   r   r*   r   r+   r   r   r   getlist&   s    
zRedisDB.getlistN)T)
__name__
__module____qualname__r   r   listr$   r,   dictr/   r   r   r   r   r      s   
r   )r   django.confr   logging	getLoggerr0   r'   r   r   r   r   r   <module>   s   
