o
    ?ZcE                     @   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   s8    | ]}|  s| v r|n	|d krdnd| V  qdS ) z\000\N)isalnum).0cwhite F/var/www/chikooza/env/lib/python3.10/site-packages/kombu/utils/text.py	<genexpr>   s    
zescape_regex.<locals>.<genexpr>)join)pr   r   r
   r   escape_regex
   s   r   333333?c                 c   s2    |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   s4   zt t| ||ddd d W S  ty   Y dS w )z'Fuzzy match - Find best match (scalar).T)reverser      N)sortedr   
IndexError)r   r   r   r   r   r   fmatch_best    s   r   c                 C   sv   t | d }t|jtrt|j|jgt|dd  R  }|j	s9|j
r9d|j
v r9t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 n
q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   )__doc__difflibr   kombur   r   r   r   r/   r"   r)   r   r   r   r   <module>   s    

	

