
    ,`	                         % S SK r S SKrS SKJrJrJr  SSKJrJr  SSK	J
r
JrJr  S\S\4S jr\/r\\\/\4      \S	'   SS
 jrg)    N)AnyCallableList   )dumpload)
_SAVES_DIRSAVE_VERSIONSAVE_VERSION_KEYdatareturnc                 l   0 nU S   R                  5        H:  u  p#[        U5      S:  a  [        SU 35      e[        U5      S:X  d  M3  US   X'   M<     U S   R                  5        HA  u  p#[        U5      S:  a  [        SU 35      e[        U5      S:X  d  M3  US   X'   SX   S'   MC     [        SS	U0$ )
Nreplacementsr   z'Multiple items have the same unique id r   	new_itemsT_inital   items)r   lenRuntimeErrorr   )r   	all_items	unique_id	part_lists       aZ:\mnt\Skyabridged\SteamLibrary\steamapps\common\Borderlands 2\sdk_mods\SanitySaver\migrations.py_migrate_v1r   	   s    I $^ 4 : : <	y>A!HTUU^q #,Q<I 	 != !%[ 1 7 7 9	y>A!HTUU^q #,Q<I .2I + !: 	!     MIGRATION_FUNCTIONSc            	         [         R                  " 5        Hr  n U R                  5       (       d  M  [        U 5      n U[           nU[        :  a  M;  Un [        U[        5       H  n[        US-
     " U5      nM     [/        X5        Mt     g! [
         a    Sn NVf = f! [         Ga    [        R                  " 5       R                  S   R                  R                  R                  SU R                    S3SSSS5      R#                  5         [        R$                  " SU R                    S35        [&        R(                  " 5       R+                  S	5       H  n[        R$                  " U5        M     [         S
-  R-                  SS9  [/        U[         S
-  U R                   -  5        U R1                  5          GM  f = f)zJMigrates saves from older versions of Sanity Saver up to the current one. r   r   zFailed to migrate save z). It has been moved to a backup location.zSanity SaverFz0[Sanity Saver] Exception thrown while migrating :
BackupT)exist_okN)r	   iterdiris_filer   r   KeyErrorr
   ranger   	Exception	unrealsdk	GetEngineGamePlayersActorGFxUIManagerShowTrainingDialognameApplyLayoutLog	traceback
format_excsplitmkdirr   unlink)filer   versionoriginal_datailines         r   migrate_allr:   #   s   ""$||~~Dz	+,G l"	7L1*1q51$7 2. 	TQ %  	G	  	 !--a066CCVV)$))4]^ kmMMLTYYKWXYZ!,,.44T:d# ; ("))4)8
X 5		 ABKKM'	s$   	B)BBBDF?>F?)r   N)r'   r0   typingr   r   r   compression_handlerr   r   save_managerr	   r
   r   r   r   __annotations__r:    r   r   <module>r@      sV      & & + D Dc c , 3 T(C5#:./ 
*r   