o
    5‘ðiu  ã                   @   s”   d dl Z d dlZd dlmZ ddlmZ ddlmZ dd„ Zdd	„ Z	d
d„ Z
ejfdedefdd„Zejfdededdfdd„ZG dd„ deƒZdS )é    N)ÚRawConfigParseré   )Úpy39)ÚSetuptoolsDeprecationWarningc                 C   sR   t | tƒrt d| ¡S z|  d¡} t d| ¡} |  d¡} W | S  ty(   Y | S w )NÚNFDúutf-8)Ú
isinstanceÚstrÚunicodedataÚ	normalizeÚdecodeÚencodeÚUnicodeError)Úpath© r   úW/root/parts/websockify/install/lib/python3.10/site-packages/setuptools/unicode_utils.pyÚ	decompose
   s   

þþr   c              	   C   sR   t | tƒr| S t ¡ pd}|df}|D ]}z|  |¡W   S  ty&   Y qw dS )z]
    Ensure that the given path is decoded,
    ``None`` when no expected encoding works
    r   N)r   r	   ÚsysÚgetfilesystemencodingr   ÚUnicodeDecodeError)r   Úfs_encÚ
candidatesÚencr   r   r   Úfilesys_decode   s   
ÿr   c                 C   s"   z|   |¡W S  ty   Y dS w )z/turn unicode encoding into a functional routineN)r   ÚUnicodeEncodeError)Ústringr   r   r   r   Ú
try_encode+   s
   ÿr   ÚfileÚreturnc                 C   sœ   zt | ddd��}| ¡ W  d  ƒ W S 1 sw   Y  W dS  tyM   tj| |d� t | d|d��}| ¡ W  d  ƒ  Y S 1 sEw   Y  Y dS w )a
  
    First try to read the file with UTF-8, if there is an error fallback to a
    different encoding ("locale" by default). Returns the content of the file.
    Also useful when reading files that might have been produced by an older version of
    setuptools.
    Úrr   ©ÚencodingN©r   Úfallback_encoding)ÚopenÚreadr   Ú_Utf8EncodingNeededÚemit)r   r#   Úfr   r   r   Ú_read_utf8_with_fallback3   s   (ÿ*ÿþr)   Úcfgc                 C   sN   z
| j |dd� W dS  ty&   tj||d� |  ¡  | j ||d� Y dS w )z“Same idea as :func:`_read_utf8_with_fallback`, but for the
    :meth:`RawConfigParser.read` method.

    This method may call ``cfg.clear()``.
    r   r    r"   N)r%   r   r&   r'   Úclear)r*   r   r#   r   r   r   Ú_cfg_read_utf8_with_fallbackC   s   ýr,   c                   @   s   e Zd ZdZdZdS )r&   zZ
    `encoding="utf-8"` fails with {file!r}, trying `encoding={fallback_encoding!r}`.
    aÚ  
    Fallback behavior for UTF-8 is considered **deprecated** and future versions of
    `setuptools` may not implement it.

    Please encode {file!r} with "utf-8" to ensure future builds will succeed.

    If this file was produced by `setuptools` itself, cleaning up the cached files
    and re-building/re-installing the package with a newer version of `setuptools`
    (e.g. by updating `build-system.requires` in its `pyproject.toml`)
    might solve the problem.
    N)Ú__name__Ú
__module__Ú__qualname__Ú_SUMMARYÚ_DETAILSr   r   r   r   r&   S   s    r&   )r   r
   Úconfigparserr   Úcompatr   Úwarningsr   r   r   r   ÚLOCALE_ENCODINGr	   r)   r,   r&   r   r   r   r   Ú<module>   s$    ÿÿÿ
þ