U
    dE                     @   sZ   d Z ddlmZ ddlmZ dddZddd	Zdd
dZdd ZdddZ	dddZ
dS )zText Utilities.    )SequenceMatcher)version_info_t c                    s   d  fdd| D S )z2Escape string for use within a regular expression.r   c                 3   s6   | ].}|  s| kr|n|d kr&dnd| V  qdS ) z\000\N)isalnum).0cwhite 4/tmp/pip-unpacked-wheel-hqfrjlvz/kombu/utils/text.py	<genexpr>   s   zescape_regex.<locals>.<genexpr>)join)pr   r   r
   r   escape_regex
   s    r   333333?c                 c   s0   |D ]&}t d| | }||kr||fV  qdS )zLFuzzy match: iteratively.

    Yields:
        Tuple: of ratio and key.
    N)r   ratio)needlehaystack	min_ratiokeyr   r   r   r   fmatch_iter   s    r   c                 C   s8   zt t| ||ddd d W S  tk
r2   Y nX dS )z'Fuzzy match - Find best match (scalar).T)reverser      N)sortedr   
IndexError)r   r   r   r   r   r   fmatch_best    s    
 r   c                 C   st   t | d }t|jtr:t|j|jft|dd   }|j	sp|j
rpd|j
krptt|dd |j
d  }|S )z-Convert version string to version info tuple..   N-r      )_unpack_versionsplit
isinstancemicrostrr   majorminor_splitmicroserialreleaselevellist)svr   r   r   version_string_as_tuple+   s      r/   c                 C   s   t t| t||||S )N)r   int)r'   r(   r%   r+   r*   r   r   r   r"   8   s    r"   c                 C   sN   t | D ]\}}| s q0qt| p&d||fS t| d | | |d  |fS )Nr   )	enumerateisdigitr0   )r%   r+   r*   indexcharr   r   r   r)   =   s
    r)   N)r   )r   )r   )r   r   r   r   )r   r   )__doc__difflibr   Zkombur   r   r   r   r/   r"   r)   r   r   r   r   <module>   s   
	


