U
    æ¥¡cÐ  ã                   @   sP  U d Z ddlZddlZddlZddlmZmZ ddlmZm	Z	m
Z
mZmZmZmZmZmZ ejdkZeed< ejdkZejdkZe ¡ Zeddd	œd
d„ƒZee	ed	œdd„ƒZee	df ee d	œdd„Zeddd	œdd„ƒZee	ed	œdd„ƒZee	 ee d	œdd„Zeddd	œdd„ƒZee	ed	œdd„ƒZee	 ee d	œdd„ZdS )z5utilities to help provide compatibility with python 3é    N)Úforce_bytesÚ
force_text)	ÚAnyÚAnyStrÚDictÚIOÚOptionalÚTupleÚTypeÚUnionÚoverloadÚntÚis_winÚposixÚdarwin)ÚsÚreturnc                 C   s   d S ©N© ©r   r   r   ú./tmp/pip-unpacked-wheel-_pbxsds5/git/compat.pyÚsafe_decode*   s    r   c                 C   s   d S r   r   r   r   r   r   r   /   s    c                 C   sB   t | tƒr| S t | tƒr$|  td¡S | dkr0dS td| f ƒ‚dS )z)Safely decodes a binary string to unicodeÚsurrogateescapeNú"Expected bytes or text, but got %r)Ú
isinstanceÚstrÚbytesÚdecodeÚdefencÚ	TypeErrorr   r   r   r   r   4   s    

c                 C   s   d S r   r   r   r   r   r   Úsafe_encode@   s    r    c                 C   s   d S r   r   r   r   r   r   r    E   s    c                 C   s@   t | tƒr|  t¡S t | tƒr"| S | dkr.dS td| f ƒ‚dS )z)Safely encodes a binary string to unicodeNr   )r   r   Úencoder   r   r   r   r   r   r   r    J   s    


c                 C   s   d S r   r   r   r   r   r   Ú
win_encodeV   s    r"   c                 C   s   d S r   r   r   r   r   r   r"   [   s    c                 C   sB   t | tƒr|  t d¡¡S t | tƒr(| S | dk	r>td| f ƒ‚dS )z1Encode unicodes for process arguments on Windows.FNr   )r   r   r!   ÚlocaleÚgetpreferredencodingr   r   r   r   r   r   r"   `   s    

)Ú__doc__r#   ÚosÚsysZgitdb.utils.encodingr   r   Útypingr   r   r   r   r   r	   r
   r   r   Únamer   ÚboolÚ__annotations__Zis_posixZ	is_darwinÚgetfilesystemencodingr   r   r   r    r   r"   r   r   r   r   Ú<module>   s0   ,

