
    ^f                    ~    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d S )*zText Utilities.    )annotations)SequenceMatcher)IterableIterator)version_info_t c                F    d                     fd| D                       S )z2Escape string for use within a regular expression.r   c              3  f   K   | ]+}|                                 s|v r|n|d k    rdnd|z   V  ,dS ) z\000\N)isalnum).0cwhites     B/var/www/html/env/lib/python3.11/site-packages/kombu/utils/text.py	<genexpr>zescape_regex.<locals>.<genexpr>   sc         		 ?qEzz11$%KKTAX         )join)pr   s    `r   escape_regexr      sA     77         r   333333?needlestrhaystackIterable[str]	min_ratiofloatreturnIterator[tuple[float, str]]c              #  r   K   |D ]1}t          d| |                                          }||k    r||fV  2dS )zVFuzzy match: iteratively.

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

 	    tts   +. 
<<sr   c                `   t          |                     d           }t          |j        t                    r't          |j        |j        gt          |dd          R  }|j	        sI|j
        rBd|j
        v r9t          t          |dd                   |j
                            d          z    }|S )z-Convert version string to version info tuple..   N-r      )_unpack_versionsplit
isinstancemicror   r   majorminor_splitmicroserialreleaselevellist)r+   vs     r   version_string_as_tupler<   -   s    &A!'3 C17AGBk1QRR5.ABBB8 F F3!.+@+@D1Q3LL1>+?+?+D+DDEHr   r5   r6   	str | intr4   r9   r8   c                \    t          t          |           t          |          |||          S )N)r   int)r5   r6   r4   r9   r8   s        r   r1   r1   9   s&     #e**c%jj%vNNNr   tuple[int, str, str]c                    t          |           D ]\  }}|                                s nt          | pd          ||fS t          | d |                   | |d          |fS )Nr   )	enumerateisdigitr?   )r4   r9   r8   indexchars        r   r7   r7   C   su     '' 5 5t||~~ 	E	 5:Af44uVeV}uUVV}f44r   N)r   )r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r$   )r+   r   r   r   )r   r   r   r   )r5   r   r6   r=   r4   r=   r9   r   r8   r   r   r   )r   r   )r4   r   r9   r   r8   r   r   r@   )__doc__
__future__r   difflibr   typingr   r   kombur   r   r#   r*   r<   r1   r7    r   r   <module>rL      s     # " " " " " # # # # # # % % % % % % % %               
 
 
 
 
    	 	 	 	 O O O O O5 5 5 5 5 5 5r   