U
    d                     @   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-ot75438e/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 )zBackwards 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 )zDetermines 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   
