o
    wvXj»  ã                   @   sv   d Z ddlmZmZ ddlm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.é    )Úabsolute_importÚunicode_literals)ÚSequenceMatcher)Úversion_info_t)Ústring_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© úM/var/www/html/myproject/venv/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Úmicror   r   ÚmajorÚminorÚ_splitmicroÚserialÚreleaselevelÚlist)ÚsÚvr   r   r   Úversion_string_as_tuple.   s   " r1   c                 C   s   t t| ƒt|ƒ|||ƒS )N)r   Úint)r)   r*   r(   r-   r,   r   r   r   r%   ;   s   r%   c                 C   sN   t | ƒD ]
\}}| ¡ s n
qt| pdƒ||fS t| d |… ƒ| |d … |fS )Nr   )Ú	enumerateÚisdigitr2   )r(   r-   r,   ÚindexÚcharr   r   r   r+   @   s   ÿr+   N)r   )r   )r   r   r   r   )r   r   )Ú__doc__Ú
__future__r   r   Údifflibr   Úkombur   Ú
kombu.fiver   r   r   r    r1   r%   r+   r   r   r   r   Ú<module>   s   

	

