a
    ù!få  ã                   @   s@   d dl Z d dlmZ edƒeedœdd„ƒZeedœdd	„ZdS )
é    N)Ú	lru_cacheéd   )ÚcÚreturnc                 C   s¬   t | ƒ}d|  krdk r$n ndS |dkspd|  kr@dkspn d|  krVdkspn d	|  krld
krtn ndS t | ¡}|dkrŠdS |dv r–dS t | ¡dv r¨dS dS )z¯Determine how many columns are needed to display a character in a terminal.

    Returns -1 if the character is not printable.
    Returns 0, 1 or 2 for other characters.
    é    é   é   r   i   i   i(   i.   i`   ic   ÚCcéÿÿÿÿ)ZMeZMn)ÚFÚWé   )ÚordÚunicodedataÚcategoryÚeast_asian_width)r   Úor   © r   úT/var/www/html/python-backend/venv/lib/python3.9/site-packages/_pytest/_io/wcwidth.pyÚwcwidth   s4    ÿþþýýüü

r   )Úsr   c                 C   s8   d}t  d| ¡D ]"}t|ƒ}|dk r* dS ||7 }q|S )zŽDetermine how many columns are needed to display a string in a terminal.

    Returns -1 if the string contains non-printable characters.
    r   ÚNFCr
   )r   Ú	normalizer   )r   Úwidthr   Úwcr   r   r   Úwcswidth,   s    
r   )r   Ú	functoolsr   ÚstrÚintr   r   r   r   r   r   Ú<module>   s   &