U
    ÚHa­  ã                   @   s,   d dl Z d dlZdd„ Zdd„ Zdd„ ZdS )é    Nc                 C   sT   t | tƒrt d| ¡S z$|  d¡} t d| ¡} |  d¡} W n tk
rN   Y nX | S )NZNFDúutf-8)Ú
isinstanceÚstrÚunicodedataÚ	normalizeÚdecodeÚencodeÚUnicodeError)Úpath© r   ú</tmp/pip-unpacked-wheel-i11yjail/setuptools/unicode_utils.pyÚ	decompose   s    

r   c              	   C   sZ   t | tƒr| S t ¡ pd}|df}|D ].}z|  |¡W   S  tk
rR   Y q&Y q&X q&dS )zY
    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k
r"   Y dS X dS )z/turn unicode encoding into a functional routineN)r   ÚUnicodeEncodeError)Ústringr   r   r   r   Ú
try_encode%   s    r   )r   r   r   r   r   r   r   r   r   Ú<module>   s   