o
    Vh
                     @  s   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 deZ	d-ddZ
d-ddZd.ddZeG d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+d,ZdS )0    )annotationsN)	dataclass)
HTMLParser)Levenshteinc                      sF   e Zd Zd fddZdddZdd
dZdddZdddZ  ZS )TagStripperreturnNonec                   s    t  jdd |   g | _d S )NF)convert_charrefs)super__init__resetfedself	__class__ _/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/cleo/_utils.pyr      s   
zTagStripper.__init__dstrc                 C  s   | j | d S Nr   append)r   r   r   r   r   handle_data   s   zTagStripper.handle_datanamec                 C     | j d| d d S )N&;r   r   r   r   r   r   handle_entityref      zTagStripper.handle_entityrefc                 C  r   )Nz&#r   r   r   r   r   r   handle_charref   r    zTagStripper.handle_charrefc                 C  s   d | jS )N )joinr   r   r   r   r   get_data   s   zTagStripper.get_data)r   r   )r   r   r   r   )r   r   r   r   )r   r   )	__name__
__module____qualname__r   r   r   r!   r$   __classcell__r   r   r   r   r      s    


r   valuer   r   c                 C  s    t  }||  |  | S r   )r   feedcloser$   )r)   sr   r   r   _strip   s   
r-   c                 C  sJ   d| v r#d| v r#t | }| d|dkr	 | S |} d| v r#d| v s| S )N<>)r-   count)r)   	new_valuer   r   r   
strip_tags'   s   r2   r   names	list[str]c                   s   di  |D ])}t | |}|t| d k}|| }|dk}|s#|r/||r(|ntdf |< qfdd  D  t  fddd	S )
z6
    Finds names similar to a given command name.
    g     @@   infc                   s&   i | ]\}}|d  d  k r||qS )r      r   ).0keyr)   	thresholdr   r   
<dictcomp>H   s
    z&find_similar_names.<locals>.<dictcomp>c                   s    |  S r   r   r:   )distance_by_namer   r   <lambda>N   s    z$find_similar_names.<locals>.<lambda>r>   )r   distancelenfindfloatitemssorted)r   r3   actual_namerA   
is_similarsubstring_indexis_substringr   )r?   r<   r   find_similar_names2   s    

rK   c                   @  s4   e Zd ZU ded< ded< dZded< dddZdS )
TimeFormatintr<   r   aliasNz
int | NonedivisorsecsrD   r   c                 C  s(   | j rt|| j   d| j S | jS )N )rO   mathceilrN   )r   rP   r   r   r   applyW   s   zTimeFormat.applyrP   rD   r   r   )r%   r&   r'   __annotations__rO   rT   r   r   r   r   rL   Q   s
   
 rL      z< 1 secr8   z1 sec<   rP   =   z1 mini  minsi  z1 hriQ hrsiA z1 dayi:	 dayszlist[TimeFormat]_TIME_FORMATSrD   c                   s&   t  fddtD td }| S )Nc                 3  s    | ]
} |j k r|V  qd S r   r;   )r9   fmtrP   r   r   	<genexpr>l   s    zformat_time.<locals>.<genexpr>r6   )nextr]   rT   )rP   time_formatr   r_   r   format_timej   s   
rc   )r)   r   r   r   )r   r   r3   r4   r   r4   rU   )
__future__r   rR   dataclassesr   html.parserr   rapidfuzz.distancer   r   r-   r2   rK   rL   r]   rV   rc   r   r   r   r   <module>   s,    






