+
     °³jü  ã                   ór  € ^ RI t ^ RIt^ RIHt ^ RIt^ RIHt  ! R R] P                  4      tRRRRRRR	]P                  R
]P                  RRRRRRRRR]P                  RRRRR]P                  RR/tRRRRRRRRRRR/RRRRRRRRRRR//t]P                  ! ]4      tR tR R ltR"R ltR R  ltR! tR# )#é    N)ÚPath)ÚCustomArgumentParserc                   ó   € ] tR t^t^ tRtRtR# )ÚConversionStatus© Néÿÿÿÿ)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚNOT_YET_IMPLEMENTEDÚREMOVEDÚ__static_attributes__r   ó    Ú]/home/luca/screen-checking/.venv/lib/python3.14/site-packages/accelerate/commands/to_fsdp2.pyr   r      s   † ØÐØ„Gr   r   Úfsdp_versionÚfsdp_reshard_after_forwardÚfsdp_auto_wrap_policyÚfsdp_backward_prefetchÚfsdp_forward_prefetchÚfsdp_cpu_ram_efficient_loadingÚfsdp_offload_paramsÚfsdp_sharding_strategyÚfsdp_state_dict_typeÚfsdp_sync_module_statesÚ"fsdp_transformer_layer_cls_to_wrapÚfsdp_min_num_paramsÚfsdp_use_orig_paramsÚfsdp_activation_checkpointingÚ
FULL_SHARDTÚSHARD_GRAD_OPFÚHYBRID_SHARDÚHYBRID_SHARD_ZERO2ÚNO_SHARDc                 óŒ  € \        V P                  4      P                  4       '       g   \        R V P                   R24      hV P                  '       g   V P
                  f   \        R4      hV P                  '       gE   \        V P
                  4      P                  4       '       d   \        RV P
                   R24      hR# R# )zConfig file z
 not foundNz9If --overwrite is not set, --output_file must be providedzOutput file z* already exists and --overwrite is not set)r   Úconfig_fileÚexistsÚFileNotFoundErrorÚ	overwriteÚoutput_fileÚ
ValueErrorÚFileExistsError)Úargss   &r   Ú_validate_to_fsdp2_argsr.   G   sœ   € Ü�× Ñ Ó!×(Ñ(×*Ò*Ü ,¨t×/?Ñ/?Ð.@À
Ð KÓLÐLà�>�>ˆ>˜d×.Ñ.Ò6ÜÐTÓUÐUà�>�>ˆ>œd 4×#3Ñ#3Ó4×;Ñ;×=Ò=Ü ¨T×-=Ñ-=Ð,>Ð>hÐiÓjÐjñ >‰>r   c                ó0   € V ^8„  d   QhR\         R\         /# )é   ÚconfigÚreturn)Údict)Úformats   "r   Ú__annotate__r5   R   s   € ÷ +ñ +¤Dð +¬Tñ +r   c                 óè  € V P                  R / 4      pV'       g   \        P                  R4       V # / pVP                  R^4      ^8X  d-   \        P                  R4       \        P                  R4       V # VP	                  4        FÞ  w  r4\
        P                  VR4      pVf   WBV&   K%  V\        P                  8X  d   \        P                  RV R24       KU  V\        P                  8X  d   \        P                  RV R24       K…  Vf    \        P                  RV R	24       WBV&   K¨  V\        9   d   \        V,          P                  WD4      pWB\
        V,          &   Kà  	  ^VR&   W R &   V # )
Úfsdp_configz?No FSDP config found in the config file, skipping conversion...r   z6Config already specifies FSDP2, skipping conversion...zaIf the config doesn't use new argument names, change `fsdp_version` to `1` and rerun the command.Nz	Argument z0 has been removed in FSDP2, skipping this key...z6 is not yet implemented in FSDP2, skipping this key...z- is not being converted, skipping this key...)
ÚgetÚloggerÚinfoÚwarningÚitemsÚARGUMENT_KEY_MAPPINGr   r   r   ÚARGUMENT_VALUE_MAPPING)r1   r7   Únew_fsdp_configÚkeyÚvalueÚconversion_statuss   &     r   Úconvert_config_to_fsdp2rC   R   sV  € Ø—*‘*˜]¨BÓ/€KçÜ�‰ÐUÔVØˆà€Oà‡��~ qÓ)¨QÔ.Ü�‰ÐOÔPÜ�‰Øoô	
ð ˆà!×'Ñ'Ö)‰
ˆÜ0×4Ñ4°S¸$Ó?Ðð Ò$Ø#(˜CÑ ÙàÔ 0× 8Ñ 8Ô8Ü�N‰N˜Y s eÐ+[Ð\Ô]ÙàÔ 0× DÑ DÔDÜ�N‰N˜Y s eÐ+aÐbÔcÙàÒ$Ü�N‰N˜Y s eÐ+XÐYÔZØ#(˜CÓ àÔ,Ô,Ü.¨sÕ3×7Ñ7¸ÓE�Ø9>Ô0°Õ5Ó6ñ/ *ð2 '(€O�NÑ#Ø+ˆ=ÑØ€Mr   c                 ó  € R pV e   V P                  RVR7      pM\        VR7      pVP                  R\        RRR7       VP                  RR	R
RR7       VP                  R\        RRR7       V e   VP	                  \
        R7       V# )z0Convert an Accelerate config from FSDP1 to FSDP2Nzto-fsdp2)Údescriptionz--config_filez#The config file to convert to FSDP2T)ÚtypeÚhelpÚrequiredz--overwriteÚ
store_truez&Overwrite the config file if it existsF)ÚactionrG   Údefaultz--output_filez‰The path to the output file to write the converted config to. If not provided, the input file will be overwritten (if --overwrite is set))rF   rG   rK   )Úfunc)Ú
add_parserr   Úadd_argumentÚstrÚset_defaultsÚto_fsdp2_command)Ú
subparsersrE   Úparsers   &  r   Úto_fsdp2_command_parserrT   €   s§   € ØD€KàÒØ×&Ñ& z¸{Ð&ÓK‰ä%°+Ô>ˆà
×Ñ˜¬cÐ8]ÐhlÐÔmØ
×ÑØØØ5Øð	 ô ð ×ÑØÜð YØð	 ô ð ÒØ×ÑÔ!1ÐÔ2à€Mr   c                ó0   € V ^8„  d   QhR\         R\        /# )r0   r&   r2   )rO   r3   )r4   s   "r   r5   r5   ›   s   € ÷ ñ œSð ¤Tñ r   c                 ó¶   € \        V 4      ;_uu_ 4       p\        P                  ! V4      pR R R 4       X'       g   \        R4      hV#   + '       g   i     L%; i)NzConfig file is empty)ÚopenÚyamlÚ	safe_loadr+   )r&   Úfr1   s   &  r   Úload_configr[   ›   s?   € Ü	ˆk×	Ô	˜aÜ—’ Ó"ˆ÷ 
çÜÐ/Ó0Ð0à€M÷ 
×	ús   ”AÁA	c                 ó`  € \        V 4       \        V P                  4      pV P                  '       d    V P                  f   V P                  V n        \        V4      p\        V P                  R4      ;_uu_ 4       p\        P                  ! W#4       R R R 4       R #   + '       g   i     R # ; i)NÚw)	r.   r[   r&   r)   r*   rC   rW   rX   Údump)r-   r1   Ú
new_configrZ   s   &   r   rQ   rQ   ¤   sv   € Ü˜DÔ!Ü˜×)Ñ)Ó*€Fà‡~‡~€~˜$×*Ñ*Ò2Ø×+Ñ+ˆÔä(¨Ó0€Jä	ˆd×Ñ ×	$Ô	$¨Ü�	Š	�*Ô ÷ 
%×	$×	$Ò	$ús   Á;BÂB-	)N)ÚenumÚloggingÚpathlibr   rX   Úaccelerate.commands.utilsr   ÚEnumr   r   r   r=   r>   Ú	getLoggerr	   r9   r.   rC   rT   r[   rQ   r   r   r   Ú<module>rf      s  ðó" Û Ý ã å :ô�t—y‘yô ð �NØ Ð">ð Ð4ØÐ.×6Ñ6ØÐ-×AÑAØ$Ð&FØÐ0ØÐ:ØÐ2ØÐ/×7Ñ7Ø(Ð*NØÐ0ØÐ,×4Ñ4Ø#Ð%Dð#Ð ð* Ø�dØ˜Ø˜Ø˜eØ�Eðð !Ø�dØ˜Ø˜Ø˜eØ�Eð#ðÐ ð" 
×	Ò	˜8Ó	$€òkõ+ô\õ6ô
!r   