
    h                        S SK r S SKrS SKJr  S SKJr  S SKJr  S SKJ	r	  S SK
Jr  Sr\" S5      r\" S	5      r\" S
5      r\" SSS9u  rr\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      r\" S5      rS\4S jrS\4S jrS\4S jr\4S\S\4S jjr S\4S jr!S\4S jr"S\4S jr#S\4S  jr$S\4S! jr%S\4S" jr&S\4S# jr'S\4S$ jr(S\4S% jr) " S& S'\5      r* " S( S)\+5      r,g)*    N)chain)
ModuleType)Any)version)_is_package_availablez0.5.8	deepspeed	diffusersfastapiliger_kernelT)return_versionllm_blendermergekitpydanticrequestsunslothuvicornvllmvllm_ascendjoblibreturnc                      [         $ N)_deepspeed_available     J/home/james-whalen/.local/lib/python3.13/site-packages/trl/import_utils.pyis_deepspeed_availabler   +       r   c                      [         $ r   )_diffusers_availabler   r   r   is_diffusers_availabler!   /   r   r   c                      [         $ r   )_fastapi_availabler   r   r   is_fastapi_availabler$   3       r   min_versionc                 ~    [         =(       a1    [        R                  " [        5      [        R                  " U 5      :  $ r   )_is_liger_kernel_availabler   parse_liger_kernel_version)r&   s    r   is_liger_kernel_availabler+   7   s)    %l'--8M*NRYR_R_`kRl*llr   c                      [         $ r   )_llm_blender_availabler   r   r   is_llm_blender_availabler.   ;       !!r   c                      [         $ r   )_mergekit_availabler   r   r   is_mergekit_availabler2   ?       r   c                      [         $ r   )_pydantic_availabler   r   r   is_pydantic_availabler6   C   r3   r   c                      [         $ r   )_requests_availabler   r   r   is_requests_availabler9   G   r3   r   c                      [         $ r   )_unsloth_availabler   r   r   is_unsloth_availabler<   K   r%   r   c                      [         $ r   )_uvicorn_availabler   r   r   is_uvicorn_availabler?   O   r%   r   c                      [         $ r   )_vllm_availabler   r   r   is_vllm_availablerB   S   s    r   c                      [         $ r   )_vllm_ascend_availabler   r   r   is_vllm_ascend_availablerE   W   r/   r   c                      [         $ r   )_joblib_availabler   r   r   is_joblib_availablerH   [   s    r   c                   b   ^  \ rS rSrSrSU 4S jjrU 4S jrS\S\4S jr	S\4S	 jr
S
 rSrU =r$ )_LazyModule_   zm
Module class that surfaces all objects but only performs associated imports when the objects are requested.
c                   > [         T	U ]  U5        [        UR                  5       5      U l        0 U l        UR                  5        H  u  pgU H  nX`R
                  U'   M     M     [        UR                  5       5      [        [        UR                  5       6 5      -   U l
        X l        X@l        [        R                  R                  U5      /U l        Uc  0 OUU l        Xl        X0l        g r   )super__init__setkeys_modules_class_to_moduleitemslistr   values__all____file____spec__ospathdirname__path___objects_name_import_structure)
selfnamemodule_fileimport_structuremodule_specextra_objectskeyrU   value	__class__s
            r   rN   _LazyModule.__init__f   s    ,1134 "+113KC/2%%e,   4 ,1134tECSCZCZC\<]7^^##56+3
!1r   c                 z   > [         TU ]  5       nU R                   H  nX!;  d  M
  UR                  U5        M     U$ r   )rM   __dir__rV   append)r`   resultattrrh   s      r   rk   _LazyModule.__dir__w   s8    " LLD!d# ! r   ra   r   c                 `   XR                   ;   a  U R                   U   $ XR                  ;   a  U R                  U5      nObXR                  R	                  5       ;   a*  U R                  U R                  U   5      n[        X15      nO[        SU R                   SU 35      e[        XU5        U$ )Nzmodule z has no attribute )	r]   rQ   _get_modulerR   rP   getattrAttributeError__name__setattr)r`   ra   rg   modules       r   __getattr___LazyModule.__getattr__   s    == ==&&== $$T*E**//11%%d&;&;D&ABFF)E 74==/9KD6!RSSE"r   module_namec           	           [         R                  " SU-   U R                  5      $ ! [         a$  n[	        SU R                   SU SU 35      UeS nAff = f)N.zFailed to import z@ because of the following error (look up to see its traceback):
)	importlibimport_modulert   	ExceptionRuntimeError)r`   ry   es      r   rq   _LazyModule._get_module   sf    	**3+<dmmLL 	#DMM?!K= A!!"% 	s   #& 
AAAc                 `    U R                   U R                  U R                  U R                  44$ r   )rh   r^   rW   r_   )r`   s    r   
__reduce___LazyModule.__reduce__   s&    T]]D<R<R STTr   )	rV   rW   r\   rX   rR   r_   rQ   r^   r]   )NN)rt   
__module____qualname____firstlineno____doc__rN   rk   strr   rw   rq   r   __static_attributes____classcell__)rh   s   @r   rJ   rJ   _   s=    2"  s U Ur   rJ   c                       \ rS rSrSrSrg)OptionalDependencyNotAvailable   zPInternally used error class for signalling an optional dependency was not found.r   N)rt   r   r   r   r   r   r   r   r   r   r      s    Zr   r   )-r|   rY   	itertoolsr   typesr   typingr   	packagingr   transformers.utils.import_utilsr   LIGER_KERNEL_MIN_VERSIONr   r    r#   r(   r*   r-   r1   r5   r8   r;   r>   rA   rD   rG   boolr   r!   r$   r   r+   r.   r2   r6   r9   r<   r?   rB   rE   rH   rJ   BaseExceptionr   r   r   r   <module>r      s    	     A #  -[9 ,[9 *95 4I.im4n 1 1.}= +J7 +J7 +J7 *95 *95 '/.}= )(3       d  2J m3 md m"$ "t t t d d 4 "$ "T 9U* 9Ux[] [r   