Ë
    ÷Q(hJ  ã                   óì   — d Z ddlZddlZddlZddlmZ ddlmZ  G d„ d«      Z G d„ de«      Z		 ddl
Z	 	 	 	 	 	 dd	„Zej                  dk(  rdZddlmZ d„ ZyddlmZ y# e$ r 	 	 	 	 	 	 dd
„ZY Œ3w xY w)z,
Backports of fixes for joblib dependencies
é    N)Úutil)Úbasenamec                   ó<   — e Zd ZdZd
d„Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
y)Ú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                 ó,   — |r| j                  |«       y y ©N©Úparse©ÚselfÚvstrings     úN/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/joblib/backports.pyÚ__init__zVersion.__init__   ó   € ÙØ�J‰J�wÕð ó    c                 óL   — | j                   j                  ›dt        | «      ›d�S )Nz ('z'))Ú	__class__Ú__name__Ústr©r   s    r   Ú__repr__zVersion.__repr__   s   € Ø"Ÿn™n×5Ó5´s¸4µyÐAÐAr   c                 óB   — | j                  |«      }|t        u r|S |dk(  S ©Nr   ©Ú_cmpÚNotImplemented©r   ÚotherÚcs      r   Ú__eq__zVersion.__eq__   ó&   € Ø�I‰I�eÓˆØ”ÑØˆHØ�A‰vˆr   c                 óB   — | j                  |«      }|t        u r|S |dk  S r   r   r   s      r   Ú__lt__zVersion.__lt__#   ó&   € Ø�I‰I�eÓˆØ”ÑØˆHØ�1‰uˆr   c                 óB   — | j                  |«      }|t        u r|S |dk  S r   r   r   s      r   Ú__le__zVersion.__le__)   r"   r   c                 óB   — | j                  |«      }|t        u r|S |dkD  S r   r   r   s      r   Ú__gt__zVersion.__gt__/   r%   r   c                 óB   — | j                  |«      }|t        u r|S |dk\  S r   r   r   s      r   Ú__ge__zVersion.__ge__5   r"   r   r	   )r   Ú
__module__Ú__qualname__Ú__doc__r   r   r!   r$   r'   r)   r+   © r   r   r   r      s+   „ ñó òBòòòòór   r   c                   ój   — e Zd ZdZ ej
                  dej                  «      Zd	d„Zd„ Z	d„ Z
d„ Zd„ Zy)
ÚLooseVersionr   z(\d+ | [a-z]+ | \.)Nc                 ó,   — |r| j                  |«       y y r	   r
   r   s     r   r   zLooseVersion.__init__H   r   r   c                 óî   — || _         | j                  j                  |«      D �cg c]  }|sŒ|dk7  sŒ|‘Œ }}t        |«      D ]  \  }}	 t	        |«      ||<   Œ || _        y c c}w # t
        $ r Y Œ/w xY w)Nú.)r   Úcomponent_reÚsplitÚ	enumerateÚintÚ
ValueErrorÚversion)r   r   ÚxÚ
componentsÚiÚobjs         r   r   zLooseVersion.parseL   s…   € ð ˆŒØ!%×!2Ñ!2×!8Ñ!8¸Ó!AÖT˜AÂQÈ1ÐPSË8’aÐTˆ
ÐTÜ 
Ó+ò 	‰FˆAˆsðÜ # C£�
˜1’ð	ð "ˆ�ùò Uøô ò Ùðús!   ¥A#­A#³A#ÁA(Á(	A4Á3A4c                 ó   — | j                   S r	   )r   r   s    r   Ú__str__zLooseVersion.__str__Z   s   € Ø�|‰|Ðr   c                 ó   — dt        | «      z  S )NzLooseVersion ('%s'))r   r   s    r   r   zLooseVersion.__repr__]   s   € Ø$¤s¨4£yÑ0Ð0r   c                 ó  — t        |t        «      rt        |«      }nt        |t        «      st        S | j                  |j                  k(  ry| j                  |j                  k  ry| j                  |j                  kD  ryy )Nr   éÿÿÿÿé   )Ú
isinstancer   r1   r   r:   )r   r   s     r   r   zLooseVersion._cmp`   sd   € Ü�eœSÔ!Ü  Ó'‰EÜ˜E¤<Ô0Ü!Ð!à�<‰<˜5Ÿ=™=Ò(ØØ�<‰<˜%Ÿ-™-Ò'ØØ�<‰<˜%Ÿ-™-Ò'Øð (r   r	   )r   r,   r-   r.   ÚreÚcompileÚVERBOSEr5   r   r   r@   r   r   r/   r   r   r1   r1   <   s9   „ ñð �2—:‘:Ð4°b·j±jÓA€Ló ò"òò1ór   r1   c                 ó$  — t        j                  dj                  |t        | «      t	        j
                  «       «      «       t        j                  | |||||¬«      }t        t        j                  «      dk  r||_
        |rddlm}  ||«       |S )ab  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.13rD   )Úadd_maybe_unlink_finalizer)r   ÚdebugÚformatr   ÚosÚgetpidÚnpÚmemmapr1   Ú__version__rL   Ú_memmapping_reducerrO   )	ÚfilenamerJ   rK   rL   rM   rN   Úunlink_on_gc_collectÚmmrO   s	            r   Úmake_memmapr[   q   s{   € ô* 	�
‰
ØM×TÑTØ”x Ó)¬2¯9©9«;óô	
ô �Y‰YØ˜E¨°VÀ5ÐPUô
ˆô œŸ™Ó'¨&Ò0ØˆBŒIÙÝGá& rÔ*Øˆ	r   c                 ó   — t        d«      ‚)NzL'joblib.backports.make_memmap' should not be used if numpy is not installed.)ÚNotImplementedError)rX   rJ   rK   rL   rM   rN   rY   s          r   r[   r[   ˜   s   € ô "ð)ó
ð 	
r   Únt)é   é   )Úreplacec                 óØ   — d}d}d}||k  r	 t        | |«       y‚ # t        $ r>}t        |dd«      t        v r t	        j
                  |«       ||z  }|dz  }n‚ Y d}~nd}~ww xY w||k  rŒ_ŒR)z²Renames ``src`` into ``dst`` overwriting ``dst`` if it exists.

        On Windows os.replace can yield permission errors if executed by two
        different processes.
        rD   r   gü©ñÒMbP?ÚwinerrorNé   )ra   Ú	ExceptionÚgetattrÚaccess_denied_errorsÚtimeÚsleep)ÚsrcÚdstÚmax_sleep_timeÚtotal_sleep_timeÚ
sleep_timeÚexcs         r   Úconcurrency_safe_renamerp   ¬   sŠ   € ð ˆØÐØˆ
Ø Ò/ð	Ü˜˜SÔ!Øð øô ò Ü˜3 
¨DÓ1Ô5IÑIÜ—J‘J˜zÔ*Ø$¨
Ñ2Ð$Ø !‘O‘Jàô ûð	úð	  Ó/øs   � ›	A"¤4AÁA")Úuint8zr+r   NÚCF)r.   rR   rF   rh   Úmultiprocessingr   Úos.pathr   r   r1   ÚnumpyrT   r[   ÚImportErrorÚnamerg   ra   rp   r/   r   r   ú<module>rx      s    ðñó 
Û 	Û Ý  Ý ÷-ñ -ô`/�7ô /ðd6
Ûð ØØØØØ"ó$ðl ‡7�7ˆd‚?à"ÐÝóö. 6øð[ ò 
ð ØØØØØ"õ
ð
ús   ±A! Á!A3Á2A3