a
    ñ»jm  ã                   @   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eedœdd„Zejfeeddœdd„ZG dd„ deƒZdS )é    N)ÚConfigParseré   )Úpy39)ÚSetuptoolsDeprecationWarningc                 C   sR   t | tƒrt d| ¡S z$|  d¡} t d| ¡} |  d¡} W n tyL   Y n0 | S )NZNFDúutf-8)Ú
isinstanceÚstrÚunicodedataÚ	normalizeÚdecodeÚencodeÚUnicodeError)Úpath© r   ú>E:\soccer\ml_env\Lib\site-packages\setuptools/unicode_utils.pyÚ	decompose
   s    

r   c              	   C   sX   t | tƒr| S t ¡ pd}|df}|D ],}z|  |¡W   S  tyP   Y q&Y q&0 q&dS )z]
    Ensure that the given path is decoded,
    ``None`` when no expected encoding works
    r   N)r   r   ÚsysÚgetfilesystemencodingr   ÚUnicodeDecodeError)r   Zfs_encÚ
candidatesÚencr   r   r   Úfilesys_decode   s    
r   c                 C   s&   z|   |¡W S  ty    Y dS 0 dS )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 s00    Y  W nZ ty–   tj| |d� t | d|d��}| ¡ W  d  ƒ  Y S 1 sˆ0    Y  Y n0 dS )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'   )Úcfgr   r   c                 C   sN   z| j |dd� W n6 tyH   tj||d� |  ¡  | j ||d� Y n0 dS )z�Same idea as :func:`_read_utf8_with_fallback`, but for the
    :meth:`ConfigParser.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 behaviour 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__Z_SUMMARYZ_DETAILSr   r   r   r   r$   S   s   r$   )r	   r   Úconfigparserr   Úcompatr   Úwarningsr   r   r   r   ZLOCALE_ENCODINGr   r'   r*   r$   r   r   r   r   Ú<module>   s   ÿþ