o
    Zhv                     @   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 )NZNFDutf-8)
isinstancestrunicodedata	normalizedecodeencodeUnicodeError)path r   O/var/www/html/lang_env/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   Z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 )zSame 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 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$    
