
    Ih                        d Z ddlmZ ddlmZ ddlmZmZ ddlm	Z	 ddZ
dddZdddZdd	Z	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 dd
ZdddZy)zText Utilities.    )annotations)SequenceMatcher)IterableIterator)version_info_tc                8    dj                  fd| D              S )z2Escape string for use within a regular expression. c              3  b   K   | ]&  }|j                         s|v r|n|d k(  rdnd|z    ( yw) z\000\N)isalnum).0cwhites     I/var/www/html/planif/env/lib/python3.12/site-packages/kombu/utils/text.py	<genexpr>zescape_regex.<locals>.<genexpr>   s;       		qEz1$%KTAX? s   ,/)join)pr   s    `r   escape_regexr      s#     77       c              #  h   K   |D ])  }t        d| |      j                         }||k\  s$||f + yw)zVFuzzy match: iteratively.

    Yields
    ------
        Tuple: of ratio and key.
    N)r   ratio)needlehaystack	min_ratiokeyr   s        r   fmatch_iterr      s@       fc288:I*s   &2	2c                ^    	 t        t        | ||      d      d   d   S # t        $ r Y yw xY w)z'Fuzzy match - Find best match (scalar).T)reverser      N)sortedr   
IndexError)r   r   r   s      r   fmatch_bestr#   #   sF    )4d

 	  s     	,,c                h   t        | j                  d       }t        |j                  t              r*t        |j                  |j                  gt        |dd   }|j                  sJ|j                  r>d|j                  v r0t        t        |dd       |j                  j                  d      z    }|S )z-Convert version string to version info tuple..   N-r      )_unpack_versionsplit
isinstancemicrostrr   majorminor_splitmicroserialreleaselevellist)svs     r   version_string_as_tupler6   -   s    &A!''3177AGGBk1QR5.AB883!..+@D1QL1>>+?+?+DDEHr   c                D    t        t        |       t        |      |||      S )N)r   int)r.   r/   r,   r2   r1   s        r   r)   r)   9   s     #e*c%j%vNNr   c                    t        |       D ]  \  }}|j                         r n t        | xs d      ||fS t        | d |       | |d  |fS )Nr   )	enumerateisdigitr8   )r,   r2   r1   indexchars        r   r0   r0   C   s[     ' 5t||~5 5:Af44uVe}uUV}f44r   N)r	   )g333333?)r   r-   r   Iterable[str]r   floatreturnzIterator[tuple[float, str]])r   r-   r   r>   r   r?   r@   z
str | None)r4   r-   r@   r   )r   r   r	   r	   )r.   r-   r/   	str | intr,   rA   r2   r-   r1   r-   r@   r   )r	   r	   )r,   r-   r2   r-   r1   r-   r@   ztuple[int, str, str])__doc__
__future__r   difflibr   typingr   r   kombur   r   r   r#   r6   r)   r0    r   r   <module>rH      s     # # %  
	 OOO O 	O
 O O5r   