U
    O8Úcš  ã                   @   sˆ   d dl Z d dlZd dlZd dlZd dlZd dlmZ ej d¡rJdd„ Z	nej
Z	dd„ ZeZdZdd	„ Zd
d„ Zdd„ Zd dlmZ dS )é    N)ÚsixÚwinc              
   C   sP   zt  |¡ W n0 tk
r> } z|jtjks.‚ W 5 d }~X Y nX t  | |¡ d S )N)ÚosÚremoveÚOSErrorÚerrnoÚENOENTÚrename)Zcurrent_filenameZnew_filenameÚe© r   ú5/tmp/pip-unpacked-wheel-6hpttf6a/s3transfer/compat.pyÚrename_file   s    r   c                 C   s   t  | ¡d S )Né   )ÚinspectÚgetfullargspec)Úfuncr   r   r   Úaccepts_kwargs%   s    r   c                 C   sT   t | dƒr|  ¡ S t | dƒrPt | dƒrPz|  dd¡ W dS  tk
rN   Y dS X dS )z»Backwards compat function to determine if a fileobj is seekable

    :param fileobj: The file-like object to determine if seekable

    :returns: True, if seekable. False, otherwise.
    ÚseekableÚseekÚtellr   é   TF)Úhasattrr   r   r   ©Úfileobjr   r   r   r   1   s    	
r   c                 C   s   t | dƒr|  ¡ S t | dƒS )z´Determines whether or not a file-like object is readable.

    :param fileobj: The file-like object to determine if readable

    :returns: True, if readable. False otherwise.
    ÚreadableÚread)r   r   r   r   r   r   r   I   s    
r   c                 C   s,   t tdƒrt |  ¡ d|¡ n
|  |¡ d S )NÚposix_fallocater   )r   r   r   ÚfilenoÚtruncate)r   Úsizer   r   r   Ú	fallocateV   s    
r    )ÚBaseManager)r   r   r   ÚsocketÚsysZbotocore.compatr   ÚplatformÚ
startswithr   r	   r   ÚConnectionErrorZSOCKET_ERRORÚMAXINTr   r   r    Zmultiprocessing.managersr!   r   r   r   r   Ú<module>   s   
