o
    \"<f                     @   sN   d Z ddlZG dd deZG dd deZdd Zd	d
 Z		dddZdS )Autoconfiguration    Nc                   @      e Zd ZdS )UnsupportedAutoconfMethodN__name__
__module____qualname__ r	   r	   G/var/www/html/kck/venv/lib/python3.10/site-packages/pylibmc/autoconf.pyr          r   c                   @   r   )NoAutoconfFoundNr   r	   r	   r	   r
   r      r   r   c                 C   s:  dd l }| |j|jd}| d\}}t|}|||f |d| dd d}d}d}	 |d	}	|	s=t	d
||	7 }|
drKd|vrKq1|dkrt|dd\}
}|
 dkr`t |
 \}}}}t|t|}}d}n(|dkrt||k rq1|d | ||d d  }}d}n|dkr	 |S t	|q2)Nr   :zconfig get z
asciizwait-nl-header    Ti   zfailed reading cluster configzwait-nl-s   
   s   errorz	read-bodyz
ready-body   zwait-nl-end)socketAF_INETSOCK_STREAMsplitintconnectsendencoderecvRuntimeError
startswithlowerr   len)addresskeyr   sockhostportstatenbytesbuffchunklinecmdflagsconfigr	   r	   r
   _elasticache_config_get   sB   
r,   c                 C   s8   |  d\}}t|dd |  D }}dd |D S )N   
c                 S   s   g | ]
}| d dqS )r   |)decoder   ).0nr	   r	   r
   
<listcomp>0   s    z-_parse_elasticache_config.<locals>.<listcomp>c                 S   s$   g | ]\}}}|p
| d | qS )r   r	   )r0   cnameaddrr#   r	   r	   r
   r2   2   s   $ )r   r   )cfgvernodesr	   r	   r
   _parse_elasticache_config.   s   r8   127.0.0.1:11211   clusterAmazonElastiCache:clusterc                 C   sR   zt | |}W n ty   t| g|}|d u rtY nw t|}t|S )N)r,   r   pylibmcClientgetr   r8   )r   
config_keymc_keyr+   hostsr	   r	   r
   elasticache4   s   
rB   )r9   r:   r;   )__doc__r<   	Exceptionr   r   r,   r8   rB   r	   r	   r	   r
   <module>   s    #