o
    l¨Êhg
  ã                   @   sæ   d Z ddlZddlZddlZddlZddlmZ zddlZ		ddd„Z	W n e
y5   		dd	d„Z	Y nw ejd
krYdZzddlmZ W n e
yR   dd„ ZY nw dd„ ZdS z	ddlmZ W dS  e
yr   ddlmZ Y dS w )z,
Backports of fixes for joblib dependencies
é    N)ÚLooseVersionÚuint8úr+ÚCc                 C   s.   t j| |||||d�}tt jƒdk r||_|S )z­Backport of numpy memmap offset fix.

        See https://github.com/numpy/numpy/pull/8443 for more details.

        The numpy fix will be available in numpy 1.13.
        )ÚdtypeÚmodeÚoffsetÚshapeÚorderz1.13)ÚnpÚmemmapr   Ú__version__r   )Úfilenamer   r   r   r	   r
   Úmm© r   úB/var/www/html/env/lib/python3.10/site-packages/joblib/backports.pyÚmake_memmap   s   ÿr   c                 C   s   t dƒ‚)NzL'joblib.backports.make_memmap' should not be used if numpy is not installed.)ÚNotImplementedError)r   r   r   r   r	   r
   r   r   r   r      s   ÿÚnt)é   é   )Úreplacec                 C   sZ   t | tƒst| t ¡ ƒ} t |tƒst|t ¡ ƒ}d}tjj | ||¡}|dkr+t ¡ ‚d S )Né   r   )	Ú
isinstanceÚunicodeÚsysÚgetfilesystemencodingÚctypesÚwindllÚkernel32ÚMoveFileExWÚWinError)ÚsrcÚdstÚmovefile_replace_existingÚreturn_valuer   r   r   r   *   s   

ÿÿr   c              
   C   s‚   d}d}d}||k r@zt | |ƒ W dS  ty; } zt|ddƒtv r0t |¡ ||7 }|d9 }n‚ W Y d}~nd}~ww ||k s
‚ )zõRenames ``src`` into ``dst`` overwriting ``dst`` if it exists.

        On Windows os.replace (or for Python 2.7 its implementation
        through MoveFileExW) can yield permission errors if executed by
        two different processes.
        r   r   gü©ñÒMbP?ÚwinerrorNé   )r   Ú	ExceptionÚgetattrÚaccess_denied_errorsÚtimeÚsleep)r"   r#   Úmax_sleep_timeÚtotal_sleep_timeÚ
sleep_timeÚexcr   r   r   Úconcurrency_safe_rename6   s$   


þ€üür1   )Úrename)r   r   r   Nr   )Ú__doc__Úosr+   r   r   Údistutils.versionr   Únumpyr   r   ÚImportErrorÚnamer*   r   r1   r2   r   r   r   r   Ú<module>   s:    ÿÿÿ
þÿ