
    8f+                        d dl mZ d dlmZmZmZ d dlmZmZ ddl	m
Z
 ddlmZmZ ddlmZ ddlmZ dd	lmZmZ dd
lmZ ddlmZmZmZ ddlmZmZmZ  G d de      Z G d de      Z  G d dee         Z!y)    )annotations)MappingMutableMappingSequence)Anycast   )WizardKeywordContext)WizardMissingPackageErrorWizardMissingPluginError)WizardExpressionVisitor)WizardKeywordVisitor)IssueSeverityContext)WizardInterpreterState)WizardINISettingWizardINISettingEditWizardINITweaks)Plugin
SubPackageSubPackagesc                       e Zd ZU 	 ded<   ded<   ded<   ded<   d	ed
<    fdZd fdZedd       Zedd       Zedd       Z	edd       Z
edd       Z xZS )WizardRunnerStatezlist[SubPackage]_subpackageslist[Plugin]_pluginszMutableMapping[Plugin, str]_renamesr   _tweaksz	list[str]_notesc                x    t         |           g | _        g | _        i | _        t               | _        g | _        y N)super__init__r   r   r   r   r   r   )self	__class__s    vC:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition\MO2\plugins\installer_wizard\lib\wizard\runner.pyr#   zWizardRunnerState.__init__%   s5    &(    c                0   t         |          }|j                  j                  | j                         |j                  j                  | j                         |j
                  j                  | j
                         |j                  j                  | j                         |j                  j                  j                  | j                  j                         |j                  j                  j                  | j                  j                         |S r!   )r"   copyr   extendr   r   updater   r   	_disabledtweaksdisabled	_modifiedmodified)r$   stater%   s     r&   r)   zWizardRunnerState.copy-   s    #(7<>!!$"3"34dmm,dmm,DKK(&&t{{';';<&&t{{';';<r'   c                T    	 t        | j                        D cg c]  }| c}S c c}w r!   )sortedr   r$   sps     r&   subpackageszWizardRunnerState.subpackages7   s(    	 $D$5$567r777   	%c                T    	 t        | j                        D cg c]  }| c}S c c}w r!   )r3   r   r4   s     r&   pluginszWizardRunnerState.plugins?   s&    	 $DMM23r333r7   c                    	 | j                   S r!   )r   r$   s    r&   renameszWizardRunnerState.renamesG       	 }}r'   c                    	 | j                   S r!   )r   r;   s    r&   r-   zWizardRunnerState.tweaksO   s    	
 ||r'   c                    	 | j                   S r!   )r   r;   s    r&   noteszWizardRunnerState.notesX   s    	 {{r'   )returnr   )rA   zSequence[SubPackage]rA   Sequence[Plugin])rA   zMapping[Plugin, str])rA   r   )rA   zSequence[str])__name__
__module____qualname____annotations__r#   r)   propertyr6   r9   r<   r-   r@   __classcell__r%   s   @r&   r   r      s     #" *)   8 8 4 4      r'   r   c                  H    e Zd Z	 	 	 	 	 	 	 	 	 ddZ	 d	 	 	 	 	 	 	 	 	 	 	 ddZy)WizardRunnerExpressionVisitorc                f    	 |j                   j                  j                  t        |||             y r!   )r-   r,   appendr   )r$   r1   filenamesectionsettings        r&   visitDisableINILinez1WizardRunnerExpressionVisitor.visitDisableINILinef   s+    	 	%%&6x'&RSr'   c           	     j    	 |j                   j                  j                  t        |||||             y r!   )r-   r/   rN   r   )r$   r1   rO   rP   rQ   valuecomments          r&   visitEditINIz*WizardRunnerExpressionVisitor.visitEditINIu   s1    	 	%% 7GUGL	
r'   N)r1   r   rO   strrP   rW   rQ   rW   ) )r1   r   rO   rW   rP   rW   rQ   rW   rT   r   rU   
str | None)rD   rE   rF   rR   rV    r'   r&   rL   rL   a   su    T+T7:TEHTSVT, !
%
 
 	

 
 
 
r'   rL   c                  ^    e Zd ZU ded<   ded<   d fdZedd       Zedd       ZddZ	 	 	 	 dd	Z		 	 	 	 dd
Z
	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 ddZ	 	 	 	 	 	 	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 ddZ	 	 	 	 	 	 ddZ	 	 	 	 	 	 ddZ xZS )WizardRunnerKeywordVisitorr   r   r   r   c                    t         |   |       || _        | j                  D ci c]  }|j                         D ]  }|d  }}}t	        |j                               | _        y c c}}w )NT)r"   r#   r   r9   listkeysr   )r$   r6   severityr5   pgr9   r%   s         r&   r#   z#WizardRunnerKeywordVisitor.__init__   sa    "' '+&7&7O"**,OB2t8O2OOW\\^, Ps   A(c                    	 | j                   S r!   )r   r;   s    r&   r6   z&WizardRunnerKeywordVisitor.subpackages   s    	    r'   c                    	 | j                   S r!   )r   r;   s    r&   r9   z"WizardRunnerKeywordVisitor.plugins   r=   r'   c                6    	 t        |j                               S r!   )r^   r9   )r$   
subpackages     r&   plugins_forz&WizardRunnerKeywordVisitor.plugins_for   s    	 J&&())r'   c                l    |j                   j                          |j                  j                          y r!   )r   clearr   r$   contextr1   s      r&   visitDeSelectAllz+WizardRunnerKeywordVisitor.visitDeSelectAll   s&    
 	  "r'   c                :    	 |j                   j                          y r!   )r   rh   ri   s      r&   visitDeSelectAllPluginsz2WizardRunnerKeywordVisitor.visitDeSelectAllPlugins       	 	r'   c                l    	 ||j                   v r%|j                  j                  t        |             y y r!   )r9   r   remover   r$   rj   r1   names       r&   visitDeSelectPluginz.WizardRunnerKeywordVisitor.visitDeSelectPlugin   s0    	
 5== NN!!&,/ !r'   c                l    	 ||j                   v r%|j                  j                  t        |             y y r!   )r6   r   rp   r   rq   s       r&   visitDeSelectSubPackagez2WizardRunnerKeywordVisitor.visitDeSelectSubPackage   s5    	
 5$$$%%j&67 %r'   c                <    	 |j                   j                  |       y r!   )r   rN   )r$   rj   r1   texts       r&   	visitNotez$WizardRunnerKeywordVisitor.visitNote   s    	
 	D!r'   c                6    	 ||j                   t        |      <   y r!   r   r   )r$   rj   r1   original_namenew_names        r&   visitRenamePluginz,WizardRunnerKeywordVisitor.visitRenamePlugin   s    	 19vm,-r'   c                     	 y r!   rZ   )r$   r1   game_versionscript_extender_versiongraphics_extender_versionwrye_bash_versions         r&   visitRequireVersionsz/WizardRunnerKeywordVisitor.visitRequireVersions   s    	 	r'   c                :    	 |j                   j                          y r!   )r   rh   ri   s      r&   visitResetAllPluginNamesz3WizardRunnerKeywordVisitor.visitResetAllPluginNames  rn   r'   c                P    	 ||j                   v r|j                   t        |      = y y r!   rz   rq   s       r&   visitResetPluginNamez/WizardRunnerKeywordVisitor.visitResetPluginName  s*    	
 5>>!vd|, "r'   c                ^    	 t        | j                        |_        | j                  ||       y r!   )r^   r   visitSelectAllPluginsri   s      r&   visitSelectAllz)WizardRunnerKeywordVisitor.visitSelectAll&  s,    	 "$"3"34""7E2r'   c                ~    	 |j                   D cg c]  }|j                         D ]  }|  c}}|_        y c c}}w r!   )r   r9   r   )r$   rj   r1   r5   ra   s        r&   r   z0WizardRunnerKeywordVisitor.visitSelectAllPlugins0  s6    	
 (-'9'9QBJJLQb"Q"QQs   9c                N   	 	 | j                   j                  t        t        |            }|j                   j                  | j                   |          y # t        $ rF | j
                  j                  t        j                  t        |j                  |      d| d       Y y w xY w)NzTrying to select plugin '' that does not exist.)r   indexr   r   
ValueError	_severityraise_or_warnr   SELECT_MISSING_PLUGINr   rj   rN   )r$   rj   r1   rr   ipgs        r&   visitSelectPluginz,WizardRunnerKeywordVisitor.visitSelectPlugin:  s    	
	--%%d64&89C 	dmmC01  	NN((++($?+D61GH
 	s   )A AB$#B$c                   	 	 | j                   j                  |      }| j                   |   }|j                   j                  |       |j                         D ]  }|j                  j                  |        y # t        $ rF | j                  j	                  t
        j                  t        |j                  |      d| d       Y y w xY w)NzTrying to select sub-package 'r   )r   r   r   r   r   r   SELECT_MISSING_SUBPACKAGEr   rj   rN   r9   r   )r$   rj   r1   rr   ispre   plugins          r&   visitSelectSubPackagez0WizardRunnerKeywordVisitor.visitSelectSubPackageQ  s    		##))$/C &&s+
!!*- !((* 	*FNN!!&)	*  	NN((//)'//4@06LM
 	s   A9 9ACC)r6   r   r`   r   )rA   r   rB   )re   r   rA   rC   )rj   'WizardKeywordContext[WizardRunnerState]r1   r   )rj   r   r1   r   rr   rW   )rj   r   r1   r   rw   rW   )rj   r   r1   r   r{   rW   r|   rW   )
r1   r   r   rW   r   rY   r   rY   r   rY   )rD   rE   rF   rG   r#   rH   r6   r9   rf   rk   rm   rs   ru   rx   r}   r   r   r   r   r   r   r   rI   rJ   s   @r&   r\   r\      s   - ! !  *8 !>GX080 !0 	0888 !8 	8"8" !" 	"989 !9 	9
 9   ",	
 $. &$>GX-8- !- 	-3>3GX3R>RGXR282 !2 	2.*8* !* 	*r'   r\   N)"
__future__r   collections.abcr   r   r   typingr   r   contextsr
   errorsr   r   exprr   keywordsr   r`   r   r   r1   r   r-   r   r   r   rT   r   r   r   r   rL   r\   rZ   r'   r&   <module>r      sd    # = =  * G ) * , ) K K 2 2L. L^-
$; -
`\*!56G!H \*r'   