Ë
    îÍ:j	  ã                  óR   — d dl mZ d dlZd dlmZ ddlmZmZ erd dlm	Z	 d	d„Z
d„ Zy)
é    )ÚannotationsN)ÚTYPE_CHECKINGé   )Úis_torch_availableÚ	strtobool)Únnc                óÐ   — t        «       sydd l}|j                  j                  «       sydd l}t        | |j                  j                  j                  «      xs t        | dd«      S )NFr   Ú_is_fsdp_managed_module)	r   ÚtorchÚdistributedÚis_availableÚtorch.distributed.fsdpÚ
isinstanceÚfsdpÚFullyShardedDataParallelÚgetattr)Úmoduler   s     ús/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/transformers/integrations/fsdp.pyÚis_fsdp_managed_moduler      s]   € ÜÔØãà×Ñ×)Ñ)Ô+Øã!ä�f˜e×/Ñ/×4Ñ4×MÑMÓNò ÔRYØÐ)¨5óSð ó    c                 óD  — t        «       r–dd l} | j                  j                  «       xrv | j                  j	                  «       xrZ t        t        j                  j                  dd«      «      dk(  xr, t        t        j                  j                  dd«      «      dk(  S y)Nr   ÚACCELERATE_USE_FSDPÚFalseé   ÚFSDP_CPU_RAM_EFFICIENT_LOADINGF)	r   r   r   r   Úis_initializedr   ÚosÚenvironÚget)r   s    r   Úis_fsdp_enabledr    *   sŠ   € ÜÔÛð ×Ñ×*Ñ*Ó,ò ZØ×!Ñ!×0Ñ0Ó2òZäœ"Ÿ*™*Ÿ.™.Ð)>ÀÓHÓIÈQÑNòZô œ"Ÿ*™*Ÿ.™.Ð)IÈ7ÓSÓTÐXYÑYð		
ð r   )r   z	nn.ModuleÚreturnÚbool)Ú
__future__r   r   Útypingr   Úutilsr   r   r   r   r   r    © r   r   ú<module>r'      s%   ðõ #ã 	Ý  ç 1ñ Ýóó r   