
    dz
                       U d dl mZ d dlZd dlmZ d dlmZ d dlmZ  G d de          Z	d)dZ
d)dZd*dZe G d d                      Z edd           edd           eddd           edd           eddd           edd           edd d           ed!d"           ed#d$d          g	Zd%ed&<   d+d(ZdS ),    )annotationsN)	dataclass)
HTMLParser)Levenshteinc                  @     e Zd Zd fdZddZddZdd	Zdd
Z xZS )TagStripperreturnNonec                    t                                          d           |                                  g | _        d S )NF)convert_charrefs)super__init__resetfed)self	__class__s    O/home/feoh/.local/pipx/venvs/poetry/lib/python3.11/site-packages/cleo/_utils.pyr   zTagStripper.__init__   s6    %000

     dstrc                :    | j                             |           d S Nr   append)r   r   s     r   handle_datazTagStripper.handle_data   s    r   namec                B    | j                             d| d           d S )N&;r   r   r   s     r   handle_entityrefzTagStripper.handle_entityref   s$    D$$$$$r   c                B    | j                             d| d           d S )Nz&#r   r   r    s     r   handle_charrefzTagStripper.handle_charref   s$    T%%%%%r   c                6    d                     | j                  S )N )joinr   )r   s    r   get_datazTagStripper.get_data   s    wwtx   r   )r	   r
   )r   r   r	   r
   )r   r   r	   r
   )r	   r   )	__name__
__module____qualname__r   r   r!   r#   r'   __classcell__)r   s   @r   r   r      s        ! ! ! ! ! !   % % % %& & & &! ! ! ! ! ! ! !r   r   valuer   r	   c                    t                      }|                    |            |                                 |                                S r   )r   feedcloser'   )r,   ss     r   _stripr1      s5    AFF5MMMGGIII::<<r   c                    d| v rJd| v rFt          |           }|                     d          |                    d          k    rn
|} d| v rd| v F| S )N<>)r1   count)r,   	new_values     r   
strip_tagsr7   '   sc    
,,3%<<5MM	;;sys3333 ,,3%<< Lr   r   names	list[str]c                f   di |D ]u}t          j        | |          }|t          |           dz  k    }|                    |           dk    }|s|r+||r|                    |           nt	          d          f|<   vfd                                D             t          fd          S )z6
    Finds names similar to a given command name.
    g     @@   infc                :    i | ]\  }}|d          dz  k     ||S )r       ).0kv	thresholds      r   
<dictcomp>z&find_similar_names.<locals>.<dictcomp>G   s8       AQqTA	M5I5I15I5I5Ir   c                    |          S r   r@   )xdistance_by_names    r   <lambda>z$find_similar_names.<locals>.<lambda>K   s    2B12E r   )key)r   distancelenfindfloatitemssorted)r   r8   actual_namerK   
is_similaris_sub_stringrH   rD   s         @@r   find_similar_namesrT   2   s     I  'k::TQ.
#((.."4 	 	*7I  &&&U5\\-[)   )//11   "(E(E(E(EFFFFr   c                  :    e Zd ZU ded<   ded<   dZded<   ddZdS )
TimeFormatintrD   r   aliasNz
int | NonedivisorsecsrN   r	   c                j    | j         r&t          j        || j         z             d| j         S | j        S )N )rY   mathceilrX   )r   rZ   s     r   applyzTimeFormat.applyT   s<    < 	Dit| 344CCtzCCCzr   rZ   rN   r	   r   )r(   r)   r*   __annotations__rY   r_   r@   r   r   rV   rV   N   sM         NNNJJJG     r   rV      z< 1 secr?   z1 sec<   rZ   =   z1 mini  minsi  z1 hriQ hrsiA z1 dayi:	 dayszlist[TimeFormat]_TIME_FORMATSrN   c                     t           fdt          D             t          d                   }|                               S )Nc              3  2   K   | ]}|j         k     |V  d S r   )rD   )rA   fmtrZ   s     r   	<genexpr>zformat_time.<locals>.<genexpr>i   s/      >>)=)=)=)=)=)=>>r   r<   )nextrh   r_   )rZ   formats   ` r   format_timero   g   sD    >>>>>>>b@Q F <<r   )r,   r   r	   r   )r   r   r8   r9   r	   r9   r`   )
__future__r   r]   dataclassesr   html.parserr   rapidfuzz.distancer   r   r1   r7   rT   rV   rh   ra   ro   r@   r   r   <module>rt      s   " " " " " " "  ! ! ! ! ! ! " " " " " " * * * * * *! ! ! ! !* ! ! !(      G G G G8         Jq)Jq'Jr61Jr7JtVR  JtVJueT""JvwJvvu%%
# 
 
 
 
     r   