+
    €",iJ  ã                   óä   € R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt  ! R R4      t ! R R]4      t	 ^ RI
tRR lt]P                  R
8X  d   Rt^ RIHt R tR# ^ RIHt R#   ] d	    RR	 lt L4i ; i)z,
Backports of fixes for joblib dependencies
N)Úutil)Úbasenamec                   óR   a € ] tR t^t o RtRR ltR tR tR tR t	R t
R	 tR
tV tR# )ÚVersionúêBackport from deprecated distutils

We maintain this backport to avoid introducing a new dependency on
`packaging`.

We might rexplore this choice in the future if all major Python projects
introduce a dependency on packaging anyway.
Nc                ó<   € V'       d   V P                  V4       R # R # ©N©Úparse©ÚselfÚvstrings   &&Ú2/usr/lib/python3/dist-packages/joblib/backports.pyÚ__init__ÚVersion.__init__   ó   € ßØ�J‰J�wÖñ ó    c                óP   € V P                   P                  : R \        V 4      : R2# )z ('z'))Ú	__class__Ú__name__Ústr©r   s   &r   Ú__repr__ÚVersion.__repr__   s   € Ø"Ÿn™n×5Ô5´s¸4¶yÐAÐAr   c                óF   € V P                  V4      pV\        J d   V# V^ 8H  # ©é    ©Ú_cmpÚNotImplemented©r   ÚotherÚcs   && r   Ú__eq__ÚVersion.__eq__   ó&   € Ø�I‰I�eÓˆØ”ÓØˆHØ�A‰vˆr   c                óF   € V P                  V4      pV\        J d   V# V^ 8  # r   r   r    s   && r   Ú__lt__ÚVersion.__lt__#   ó&   € Ø�I‰I�eÓˆØ”ÓØˆHØ�1‰uˆr   c                óF   € V P                  V4      pV\        J d   V# V^ 8*  # r   r   r    s   && r   Ú__le__ÚVersion.__le__)   r%   r   c                óF   € V P                  V4      pV\        J d   V# V^ 8„  # r   r   r    s   && r   Ú__gt__ÚVersion.__gt__/   r)   r   c                óF   € V P                  V4      pV\        J d   V# V^ 8¬  # r   r   r    s   && r   Ú__ge__ÚVersion.__ge__5   r%   r   © r   )r   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r#   r'   r+   r.   r1   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   r   r      s3   ø‡ € ñô òBòòòò÷ð r   r   c                   ó€   a € ] tR t^<t o Rt]P                  ! R]P                  4      tR
R lt	R t
R tR tR tR	tV tR# )ÚLooseVersionr   z(\d+ | [a-z]+ | \.)Nc                ó<   € V'       d   V P                  V4       R # R # r   r	   r   s   &&r   r   ÚLooseVersion.__init__H   r   r   c                ó  € Wn         V P                  P                  V4       Uu. uF  q"'       g   K  VR 8w  g   K  VNK  	  pp\        V4       F  w  rE \	        V4      W4&   K  	  W0n        R# u upi   \
         d     K2  i ; i)Ú.N)r   Úcomponent_reÚsplitÚ	enumerateÚintÚ
ValueErrorÚversion)r   r   ÚxÚ
componentsÚiÚobjs   &&    r   r
   ÚLooseVersion.parseL   s   € ð ŒØ!%×!2Ñ!2×!8Ñ!8¸Ô!AÓTÑ!A˜AÃQ”aÈ1ÐPSÉ8—a�aÑ!Aˆ
ÐTÜ 
Ö+‰FˆAðÜ # C£�
“ñ ,ð "Žùò Uøô ô Úðús!   ¤	A-²A-»A-ÁA2Á2BÂ Bc                ó   € V P                   # r   )r   r   s   &r   Ú__str__ÚLooseVersion.__str__Z   s   € Ø�|‰|Ðr   c                ó&   € R \        V 4      ,          # )zLooseVersion ('%s'))r   r   s   &r   r   ÚLooseVersion.__repr__]   s   € Ø$¤s¨4£yÕ0Ð0r   c                ó0  € \        V\        4      '       d   \        V4      pM\        V\        4      '       g   \        # V P                  VP                  8X  d   ^ # V P                  VP                  8  d   R# V P                  VP                  8”  d   ^# R# )r   Néÿÿÿÿ)Ú
isinstancer   r=   r   rG   )r   r!   s   &&r   r   ÚLooseVersion._cmp`   sl   € Ü�eœS×!Ò!Ü  Ó'‰EÜ˜E¤<×0Ò0Ü!Ð!à�<‰<˜5Ÿ=™=Ô(ÙØ�<‰<˜%Ÿ-™-Ô'ØˆIØ�<‰<˜%Ÿ-™-Ô'Ùñ (r   )rG   r   r   )r   r4   r5   r6   r7   ÚreÚcompileÚVERBOSErB   r   r
   rN   r   r   r8   r9   r:   s   @r   r=   r=   <   s?   ø‡ € ñð —:’:Ð4°b·j±jÓA€Lô ò"òò1÷ð r   r=   c           	     ó2  € \         P                  ! RP                  V\        V 4      \        P
                  ! 4       4      4       \        P                  ! WW#WER7      p\        \        P                  4      R8  d   W7n
        V'       d   ^RIHp V! V4       V# )a  Custom memmap constructor compatible with numpy.memmap.

This function:
- is a backport the numpy memmap offset fix (See
  https://github.com/numpy/numpy/pull/8443 for more details.
  The numpy fix is available starting numpy 1.13)
- adds ``unlink_on_gc_collect``, which specifies  explicitly whether
  the process re-constructing the memmap owns a reference to the
  underlying file. If set to True, it adds a finalizer to the
  newly-created memmap that sends a maybe_unlink request for the
  memmaped file to resource_tracker.
z?[MEMMAP READ] creating a memmap (shape {}, filename {}, pid {}))ÚdtypeÚmodeÚoffsetÚshapeÚorderz1.13)Úadd_maybe_unlink_finalizer)r   ÚdebugÚformatr   ÚosÚgetpidÚnpÚmemmapr=   Ú__version__r\   Ú_memmapping_reducerr_   )	ÚfilenamerZ   r[   r\   r]   r^   Úunlink_on_gc_collectÚmmr_   s	   &&&&&&&  r   Úmake_memmaprk   q   sr   € ô* 	�
Š
ØM×TÑTØ”x Ó)¬2¯9ª9«;óô	
ô �YŠYØ¨À5ô
ˆô œŸ™Ó'¨&Ô0ØŒIßÝGá& rÔ*Øˆ	r   c                 ó   € \        R 4      h)zL'joblib.backports.make_memmap' should not be used if numpy is not installed.)ÚNotImplementedError)rh   rZ   r[   r\   r]   r^   ri   s   &&&&&&&r   rk   rk   ˜   s   € ô "ð)ó
ð 	
r   Únt)Úreplacec                óæ   € ^p^ pRpW28  d    \        W4       R# h   \         dJ   p\        TRR4      \        9   d.   \        P
                  ! T4       Y4,          pT^,          p Rp?Kc  h Rp?ii ; i)zšRenames ``src`` into ``dst`` overwriting ``dst`` if it exists.

On Windows os.replace can yield permission errors if executed by two
different processes.
gü©ñÒMbP?ÚwinerrorN)ro   Ú	ExceptionÚgetattrÚaccess_denied_errorsÚtimeÚsleep)ÚsrcÚdstÚmax_sleep_timeÚtotal_sleep_timeÚ
sleep_timeÚexcs   &&    r   Úconcurrency_safe_renamer}   ¬   st   € ð ˆØÐØˆ
ØÔ/ð	Ü˜Ô!Ùð øô ô Ü˜3 
¨DÓ1Ô5IÔIÜ—J’J˜zÔ*Ø$Õ2Ð$Ø !•O–Jàûðús   Ž œA0§=A+Á*A+Á+A0)Úuint8zr+r   NÚCF)é   é   )r7   rb   rV   ru   Úmultiprocessingr   Úos.pathr   r   r=   Únumpyrd   rk   ÚImportErrorÚnamert   ro   r}   r3   r   r   Ú<module>r‡      sx   ðñó 
Û 	Û Ý  Ý ÷-ñ -ô`/�7ô /ðd6
Ûô$ðl ‡7�7ˆd„?à"ÐÝô÷. 6øð[ ô 
ö
ð
ús   ±	A  Á A/Á.A/