
    .hh                     ,   S SK Jr  S SKrS SKrS SKJr  S SKr " S S\5      r " S S\5      r	 " S S	\5      r
 " S
 S\5      r " S S\5      r " S S5      r\" 5       r\" 5       rS r " S S\5      rS r\S:X  a  S SKJr  \" SSSS9  \" 5         gg)    )ConfigParserN)Fontc                       \ rS rSrSrg)InvalidConfigType#    N__name__
__module____qualname____firstlineno____static_attributes__r       7/opt/python-3.13.8/usr/lib/python3.13/idlelib/config.pyr   r   #   s    Dr   r   c                       \ rS rSrSrg)InvalidConfigSet$   r   Nr	   r   r   r   r   r   $   s    4r   r   c                       \ rS rSrSrg)InvalidTheme%   r   Nr	   r   r   r   r   r   %   s    tr   r   c                   4    \ rS rSrSS jrS	S jrS rS rSrg)
IdleConfParser'   Nc                 :    Xl         [        R                  " XSS9  g )NF)defaultsstrict)filer   __init__)selfcfgFilecfgDefaultss      r   r   IdleConfParser.__init__+   s     	dGr   c                     U R                  X5      (       d  U$ US:X  a  U R                  X5      $ US:X  a  U R                  X5      $ U R                  XUS9$ )Nboolintraw)
has_option
getbooleangetintget)r   sectionoptiontypedefaultr'   s         r   GetIdleConfParser.Get2   sW     w//N6>??733U];;w//88G855r   c                 T    U R                  U5      (       a  U R                  U5      $ / $ N)has_sectionoptionsr   r,   s     r   GetOptionListIdleConfParser.GetOptionListC   s'    G$$<<((Ir   c                 ^    U R                   (       a  U R                  U R                   5        g g r3   )r   readr   s    r   LoadIdleConfParser.LoadJ   s    99IIdii  r   r   r3   )NNF)	r
   r   r   r   r   r0   r7   r<   r   r   r   r   r   r   '   s    H6"!r   r   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
IdleUserConfParserO   c                     U R                  X5      (       a)  U R                  X5      U:X  a  gU R                  XU5        gU R                  U5      (       d  U R	                  U5        U R                  XU5        g)NFT)r(   r+   setr4   add_section)r   r,   r-   values       r   	SetOptionIdleUserConfParser.SetOptionT   sh    
 ??7++xx(E1%0##G,,  )HHWe,r   c                 R    U R                  U5      (       a  U R                  X5      $ g)NF)r4   remove_option)r   r,   r-   s      r   RemoveOptionIdleUserConfParser.RemoveOptione   s)    
 G$$%%g66r   c                 T    U R                  U5      (       d  U R                  U5        g g r3   )r4   rD   r6   s     r   
AddSectionIdleUserConfParser.AddSectionn   s&    ((W% )r   c                     U R                  5        H,  nU R                  U5      (       a  M  U R                  U5        M.     g r3   )sectionsr7   remove_sectionr6   s     r   RemoveEmptySections&IdleUserConfParser.RemoveEmptySectionss   s1    }}G%%g..##G, 'r   c                 L    U R                  5         U R                  5       (       + $ r3   )rR   rP   r;   s    r   IsEmptyIdleUserConfParser.IsEmptyy   s      "==?""r   c                    U R                   nU(       a  US   S:w  a  U R                  5       (       d*   [        US5      nU   U R                  U5        S S S 5        g [        R                  R                  U R                   5      (       a!  [        R                  " U R                   5        g g g g ! [         a%    [        R
                  " U5        [        US5      n Nf = f! , (       d  f       g = f)Nr   #w)
r   rU   openOSErrorosunlinkwritepathexistsremove)r   fnamer    s      r   SaveIdleUserConfParser.Save~   s     		U1X_<<>>/"5#.G JJw' W		**		$))$ + %5  /IIe$"5#.G/ Ws   B. C .,CC 
C.r   N)r
   r   r   r   rF   rJ   rM   rR   rU   rc   r   r   r   r   r@   r@   O   s     
"&
-#
%r   r@   c                       \ rS rSrS!S jrS rS r  S"S jrS rS r	S	 r
S
 rS rS rS r\S 5       r  S#S jrS rS rS rS rS rS rS rS rS r1 SkrS$S jrS rS rS rS r S r!S r"g)%IdleConf   c                     SU l         0 U l        0 U l        0 U l        U(       d!  U R	                  5         U R                  5         g g )N)main	highlightkeys
extensions)config_types
defaultCfguserCfgcfgCreateConfigHandlersLoadCfgFiles)r   _utests     r   r   IdleConf.__init__   sA    G
 %%' r   c           	         [         R                  R                  [        5      n[        R
                  (       a  SOU R                  5       =U l        nU R                   H  n[        [         R                  R                  USU S35      5      U R                  U'   [        [         R                  R                  U=(       d    SSU S35      5      U R                  U'   M     g )N zconfig-z.defrX   z.cfg)r\   r_   dirname__file__idlelibtestingGetUserCfgDiruserdirrm   r   joinrn   r@   ro   )r   idledirr|   cfg_types       r   rq   IdleConf.CreateConfigHandlers   s    ''//(+'.D<N<N<PPw))H(6Wz&>?)ADOOH%%7W^wxj-EF&HDLL" *r   c                    Sn[         R                  R                  S5      nUS:w  a\  [         R                  R                  U5      (       d8  [        R
                  (       d!  SU-   S-   n [        U[        R                  S9  SnUS:X  a  [         R                  " 5       n[         R                  R                  X!5      n[         R                  R                  U5      (       d   [         R                  " U5        U$ U$ ! [         a     Nf = f! [         aX    [        R
                  (       d<  SU-   S-   n [        U[        R                  S9  [        e! [         a     [        ef = f[        ef = f)Nz.idlerc~z.
 Warning: os.path.expanduser("~") points to
 z,
 but the path does not exist.r>   z2
 Warning: unable to create user config directory
z(
 Check path and permissions.
 Exiting!
)r\   r_   
expanduserr`   ry   rz   printsysstderrr[   getcwdr}   mkdir
SystemExit)r   cfgDiruserDirwarns       r   r{   IdleConf.GetUserCfgDir   s=   
 ''$$S)c>77>>'**N#$&HIDd4 c>iikG'',,w/ww~~g&&
!! w) #   !R#$&STDd4 !  #     !sB   *C= #D =
D
	D
'E/5EE/
E%E/$E%%
E/Nc                     U R                   U   R                  X#5      (       a  U R                   U   R                  X#XWS9$   U R
                  U   R                  X#5      (       a  U R
                  U   R                  X#XWS9$  U(       a  SU< SU< SU< 3n[	        XX#5        U$ ! [         a<    SU< SU< SU< SU R                   U   R                  X#US9< 3n[	        XX#5         Nf = f! [         a     Nxf = f)	N)r.   r'   z5
 Warning: config.py - IdleConf.GetOption -
 invalid z  value for configuration option z
 from section z: r&   zU
 Warning: config.py - IdleConf.GetOption -
 problem retrieving configuration option .
 returning default value: )ro   r(   r0   
ValueError_warnrn   )	r   
configTyper,   r-   r/   r.   warn_on_defaultr'   warnings	            r   	GetOptionIdleConf.GetOption   s   
	8||J'227CC||J/33G9= 4 H H D	z*55gEEz266d 7 = = F 
 	2G
 'w7+  	8 fg||J/33G3M	OG
 'w7	8  		s$   ?B( ?C1 (AC.-C.1
C>=C>c                 B    U R                   U   R                  X#U5        g r3   )ro   rF   )r   r   r,   r-   rE   s        r   rF   IdleConf.SetOption   s    Z **7EBr   c                     X R                   ;  a  [        S5      eUS:X  a  U R                  U   nUR                  5       $ US:X  a  U R                  U   nUR                  5       $ [	        S5      e)NzInvalid configType specifieduserr/   Invalid configSet specified)rm   r   ro   rn   r   rP   )r   	configSetr   	cfgParsers       r   GetSectionListIdleConf.GetSectionList  sz     ///#$BCCZ0I
 !!##	 )#ooj1I !!## ##@AAr   c                     U R                   S   R                  U5      (       a  SOSnU R                  X15      nXBS-      nUS:X  a  SnXBS-      nXVS.$ )	Nrj   r/   r   z-foregroundcursornormalz-background)
foreground
background)rn   r4   GetThemeDict)r   themeelementrp   
theme_dictforebacks          r   GetHighlightIdleConf.GetHighlight  sh     !OOK8DDUKKy 	&&s2
M12hGM12"77r   c                    US:X  a  U R                   S   nO!US:X  a  U R                  S   nO[        S5      e0 SS_SS_S	S_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SSSSSSSSSSSSSSS.EnU H`  nUR                  X%5      (       d3  UR	                  S5      (       d  SU< SU< SXE   < 3n[        USX%5        UR                  X%XE   S9XE'   Mb     U$ )Nr   rj   r/   zInvalid theme type specifiedznormal-foregroundz#000000znormal-backgroundz#ffffffzkeyword-foregroundzkeyword-backgroundzbuiltin-foregroundzbuiltin-backgroundzcomment-foregroundzcomment-backgroundzstring-foregroundzstring-backgroundzdefinition-foregroundzdefinition-backgroundzhilite-foregroundzhilite-backgroundgrayzbreak-foregroundzbreak-backgroundzhit-foreground)zhit-backgroundzerror-foregroundzerror-backgroundzcontext-foregroundzcontext-backgroundzlinenumber-foregroundzlinenumber-backgroundzcursor-foregroundzstdout-foregroundzstdout-backgroundzstderr-foregroundzstderr-backgroundzconsole-foregroundzconsole-background)zcontext-zlinenumber-zL
 Warning: config.IdleConf.GetThemeDict -
 problem retrieving theme element z
 from theme z.
 returning default color: r/   )ro   rn   r   r(   
startswithr   r0   )r   r.   	themeNamer   r   r   r   s          r   r   IdleConf.GetThemeDict"  s    6>[1IY4I=>>!#I !#I!$Y! %Y! %Y	!
 %Y! %Y! %Y! $I! $I! (	! (	! $I! $F! #9! #9!  !!!" "+#,#,%.%.(1(1$-$-$-$-$-%.%.A!D G((<<&&'BCC $Y	@
 g{I?&]] + @EN  r   c                 $    U R                  S5      $ )NThemecurrent_colors_and_keysr;   s    r   CurrentThemeIdleConf.CurrentThemef  s    ++G44r   c                 $    U R                  S5      $ )NKeysr   r;   s    r   CurrentKeysIdleConf.CurrentKeysj  s    ++F33r   c                 T   US:X  a  SOSnU R                  SUSSSS9nS	nU(       a  U R                  SUS
S	S9nU(       d  U R                  SUSS	S9nU(       a9  U(       a  U R                  OU R                  nXR   R                  U5      (       a  U$ US:X  a  S$ U R	                  5       $ )Nr   rj   rk   ri   r/   r$   Tr.   r/   rv   name2r   namezIDLE Classic)r   rn   ro   r4   default_keys)r   r,   cfgnamer/   r   sources         r   r    IdleConf.current_colors_and_keysn  s    0 ")G!3+..)&,d ! <>>&'7B>GD>>&'62>FD(/T__T\\F**400!(G!3~L9J9J9LLr   c                  ^    [         R                  S S S:X  a  g[         R                  S:X  a  gg)N   winzIDLE Classic WindowsdarwinzIDLE Classic OSXzIDLE Modern Unix)r   platformr   r   r   r   IdleConf.default_keys  s*    <<u$)\\X%%%r   c           
         U R                  U R                  SS5      5      nU R                  U R                  SS5      5      nU H  nXd;  d  M
  UR                  U5        M     S H  nUR                  U5        M     U(       a  / nU Hu  nU R	                  SUSSSS9(       d  M  U(       d  U(       a9  U(       a  S	nOS
nU R	                  SXhSSSS9(       a  UR                  U5        Mb  Md  UR                  U5        Mw     U$ U$ )Nr/   rl   r   )AutoCompleteCodeContextFormatParagraph
ParenMatchenableTr$   r/   r.   enable_editorenable_shellF)r/   r.   r   )RemoveKeyBindNamesr   appendra   r   )	r   active_onlyeditor_only
shell_onlyextns	userExtnsextnactiveExtnsr-   s	            r   GetExtensionsIdleConf.GetExtensions  s    ''##I|<>++##FL9;	D T" 5DLL5
 K>>,h'- " / / #j&%4F%3F>>,26V:? * A (..t4A
 $**40  Lr   c                 `    U Vs/ s H  o"R                  S5      (       a  M  UPM     sn$ s  snf )N)	_bindings_cfgBindings)endswith)r   extnNameListns      r   r   IdleConf.RemoveKeyBindNames  s$    'Y<azz:W/X<YYYs   ++c                     S nSU-   S-   nU R                  SS9 H$  nU R                  U5       H  nXS:X  d  M
  UnM     M&     U$ )N<<>>r   r   )r   GetExtensionKeys)r   virtualEventextNamevEventr   events         r   GetExtnNameForEventIdleConf.GetExtnNameForEvent  sV     $t+&&1&5D..t4?"G 5 6 r   c                     US-   nU R                  5       n0 nU R                  S   R                  U5      (       a7  U R                  S   R                  U5      nU H  nSU-   S-   nX7   nXU'   M     U$ )Nr   rl   r   r   )GetCurrentKeySetrn   r4   r7   )	r   extensionNamekeysName
activeKeysextKeys
eventNames	eventNamer   bindings	            r   r   IdleConf.GetExtensionKeys  s     !>1**,
??<(44X>>6DDXNJ'	y(4/$+!( ( r   c                     US-   n0 nU R                   S   R                  U5      (       aR  U R                   S   R                  U5      nU H.  nU R                  SX%SS9R	                  5       nSU-   S-   nXcU'   M0     U$ )Nr   rl   rv   r   r   r   )rn   r4   r7   r   split)r   r   r   r   r   r   r   r   s           r   __GetRawExtensionKeysIdleConf.__GetRawExtensionKeys  s     !/??<(44X>>6DDXNJ'	..$h2 ) GGLuw y(4/!(	 (
 r   c                    US-   nU R                  U5      nU R                  S   R                  U5      (       aR  U R                  S   R                  U5      nU H.  nU R	                  SX%SS9R                  5       nSU-   S-   nXcU'   M0     U$ )Nr   rl   rv   r   r   r   )r   rn   r4   r7   r   r   )r   r   	bindsNameextBindsr   r   r   r   s           r   GetExtensionBindingsIdleConf.GetExtensionBindings  s     "K/	((7??<(44Y??6DDYOJ'	..$iB ) HHM y(4/")	 ( r   c                 P    USS nU R                  SXSSS9R                  5       nU$ )N   rk   rv   F)r/   r   )r   r   )r   
keySetNameeventStrr   r   s        r   GetKeyBindingIdleConf.GetKeyBinding  s:     QrN	..16 ! 88= 	r   c                     U R                  U R                  5       5      n[        R                  S:X  aE  UR	                  5        H1  u  p#U Vs/ s H  oDR                  SS5      PM     nnX5:w  d  M-  XQU'   M3     U$ s  snf )Nr   z<Alt-z<Option-)	GetKeySetr   r   r   itemsreplace)r   resultkvxv2s         r   r   IdleConf.GetCurrentKeySet  so     0 0 23<<8# ?@Bq!yy*5qB7 "1I '
 	 Cs   A;c                     U R                  U5      nU R                  SS9nU HF  nU R                  U5      nU(       d  M  U H#  nXV   UR                  5       ;   a  SXV'   XV   X&'   M%     MH     U$ )N   r   rv   )GetCoreKeysr   _IdleConf__GetRawExtensionKeysvalues)r   r  keySetr   r   r   r   s          r   r  IdleConf.GetKeySet,  sw     !!*-((Q(7D006Gw$E~8)+$+NFM	 %   r   c                 4    SU-   S-   U R                  5       ;   $ )Nr   r   )r  )r   r   s     r   IsCoreBindingIdleConf.IsCoreBinding>  s"     \!$&4+;+;+===r   >	   <<run-custom>><<run-module>><<expand-word>><<flash-paren>><<zoom-height>><<check-module>><<format-paragraph>><<force-open-calltip>><<force-open-completions>>c           	      H   0 SSS/_SSS/_SSS	/_S
SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS/_SS /_S!S"/_S#S$/_0 S%S&/_S'S(/_S)S*/_S+S,/_S-S./_S/S0/_S1S2/_S3S4/_S5S6/_S7S8/_S9S:/_S;S</_S=S>/_S?S@SA/_SBSC/_SDSE/_SFSG/_E0 SHSI/_SJSK/_SLSM/_SNSOSP/_SQSR/_SSST/_SUSV/_SWSX/_SYSZ/_S[S\/_S]S^/_S_S`/_SaSb/_ScSd/_SeSf/_SgSh/_SiSj/_ESk/Sl/Sm/Sn/So/Sp/Sq/Sr.EnU(       a  U R                   Ss   R                  U5      (       d9  U R                  Ss   R                  U5      (       d  StU< Su3n[        USsU5        U$ U HO  nU R	                  X5      nU(       a  XRU'   M!  X@R
                  ;  d  M2  SvU< SwU< SxX$   < 3n[        USsX5        MQ     U$ )yNz<<copy>>z<Control-c>z<Control-C>z<<cut>>z<Control-x>z<Control-X>z	<<paste>>z<Control-v>z<Control-V>z<<beginning-of-line>>z<Control-a>z<Home>z<<center-insert>>z<Control-l>z<<close-all-windows>>z<Control-q>z<<close-window>>z<Alt-F4>z<<do-nothing>>z<<end-of-file>>z<Control-d>z<<python-docs>>z<F1>z<<python-context-help>>z
<Shift-F1>z<<history-next>>z<Alt-n>z<<history-previous>>z<Alt-p>z<<interrupt-execution>>z<<view-restart>>z<F6>z<<restart-shell>>z<Control-F6>z<<open-class-browser>>z<Alt-c>z<<open-module>>z<Alt-m>z<<open-new-window>>z<Control-n>z<<open-window-from-file>>z<Control-o>z<<plain-newline-and-indent>>z<Control-j>z<<print-window>>z<Control-p>z<<redo>>z<Control-y>z<<remove-selection>>z<Escape>z<<save-copy-of-window-as-file>>z<Alt-Shift-S>z<<save-window-as-file>>z<Alt-s>z<<save-window>>z<Control-s>z<<select-all>>z<Alt-a>z<<toggle-auto-coloring>>z<Control-slash>z<<undo>>z<Control-z>z<<find-again>>z<Control-g>z<F3>z<<find-in-files>>z<Alt-F3>z<<find-selection>>z<Control-F3>z<<find>>z<Control-f>z<<replace>>z<Control-h>z<<goto-line>>z<Alt-g>z<<smart-backspace>>z<Key-BackSpace>z<<newline-and-indent>>z<Key-Return>z<Key-KP_Enter>z<<smart-indent>>z	<Key-Tab>z<<indent-region>>z<Control-Key-bracketright>z<<dedent-region>>z<Control-Key-bracketleft>z<<comment-region>>z<Alt-Key-3>z<<uncomment-region>>z<Alt-Key-4>z<<tabify-region>>z<Alt-Key-5>z<<untabify-region>>z<Alt-Key-6>z<<toggle-tabs>>z<Alt-Key-t>z<<change-indentwidth>>z<Alt-Key-u>z<<del-word-left>>z<Control-Key-BackSpace>z<<del-word-right>>z<Control-Key-Delete>r'  z<Control-Key-space>r!  z<Alt-Key-slash>z<Control-Key-backslash>z<Control-Key-0>z<Alt-Key-q>z<Key-F5>z<Shift-Key-F5>z<Alt-Key-x>z<Alt-Key-2>)r&  r"  r%  r   r  r$  r#  rk   z7
 Warning: config.py - IdleConf.GetCoreKeys -
 key set z( is not defined, using default bindings.zX
 Warning: config.py - IdleConf.GetCoreKeys -
 problem retrieving key binding for event z
 from key set r   )ro   r4   rn   r   r	  former_extension_events)r   r  keyBindingsr   r   r   s         r   r  IdleConf.GetCoreKeysP  s   <6< }5< -7	<
 $mX%><  -< $m_< < }o< < x< &~< < #YK< &<  !<"  .!1#<$ %yk%<& 	{'<( "M?)<* (-+<, +]O-<. /<0 1<2 #ZL3<4 ./@5<6 &	{7<8 9<: yk;<< '):(;=<> ?<@ }f5A<B  *C<D !>"2E<F G<H M?I<J i[K<L "$5#6M<N %~7G&HO<P Q<R  ">!?S<T  "=!>U<V !=/W<X #]OY<Z  -[<\ "M?]<^ _<` %}oa<b  ";!<c<d !#9":e<f )+@*Ag<h  12i<j (A&A 12%2O)l/0!. -w<| LL(44Z@@OOF+77
CC  " 
 gvz2   )E"00CG-4E*&B&BB #J0B	D   gvzA ) r   c                    / nUS:X  a  U R                   S   nO!US:X  a  U R                  S   nO[        S5      eUR                  S5      nU H  nUR	                  SUSS9nUR                  S5      S:X  a  S	nS	nO7UR                  S5      nUS
   R                  5       nUS   R                  5       nU(       d  Mn  U(       d  Mw  UR                  XxU45        M     UR                  S S9  U$ )Nr   ri   r/   r   	HelpFiles;r   rv   r   r  c                     U S   $ )Nr  r   )r  s    r   <lambda>1IdleConf.GetExtraHelpSourceList.<locals>.<lambda>  s    qtr   )key)
ro   rn   r   r7   r0   findr   stripr   sort)	r   r   helpSourcesr   r5   r-   rE   menuItemhelpPaths	            r   GetExtraHelpSourceListIdleConf.GetExtraHelpSourceList  s     V,I)#/I"#@AA''4F--VS-AEzz#"$kk#&q)q)xHH""Xv$>@  	^,r   c                 L    U R                  S5      U R                  S5      -   nU$ )Nr/   r   )r:  )r   allHelpSourcess     r   GetAllExtraHelpSourcesList#IdleConf.GetAllExtraHelpSourcesList  s-    
 55i@++F34r   c                 
   U R                  X#SSS9nU R                  X#SSSS9nU R                  X#SS	S
S9nUS:X  a;  [        SSUS9n[        R                  " U5      nUS   nUS   nUS	::  a  SnUS   S:H  nXEU(       a  S4$ S4$ )Nfontcourierr   z	font-sizer%   10r   z	font-boldr   r$   r   TkFixedFontT)r   r`   rootfamilysize
   weightboldr   )r   r   actual)	r   rE  r   r,   rF  rG  rJ  f
actualFonts	            r   GetFontIdleConf.GetFont  s     
VYO~~j;U&*  ,~~j;#)  +m#-4@AQJ)Ff%Dqyh'61Df;;(;;r   c                     U R                    H=  nU R                   U   R                  5         U R                  U   R                  5         M?     g r3   )rn   r<   ro   r   r3  s     r   rr   IdleConf.LoadCfgFiles  s:    ??COOC %%'LL""$ #r   c                 d    U R                    H   nU R                   U   R                  5         M"     g r3   )ro   rc   rQ  s     r   SaveUserCfgFilesIdleConf.SaveUserCfgFiles  s%    <<CLL""$  r   )rp   rm   rn   ro   r|   )F)NNTF)TFFr3   )#r
   r   r   r   r   rq   r{   r   rF   r   r   r   r   r   r   staticmethodr   r   r   r   r   r  r  r	  r   r  r  r)  r  r:  r>  rN  rr   rT  r   r   r   r   rf   rf      s     H"H IM,1&PC$ 8BH54$ML & & )-49'RZ$$(	"$>`D@<4%%r   rf   c                     U 4U-   nU[         ;  a/   [        U [        R                  S9  [         R                  U5        g g ! [         a     N#f = f)Nr>   )_warnedr   r   r   r[   add)msgr3  s     r   r   r     sO    &3,C
'	#CJJ' 	C   		s   A 
AAc                   B    \ rS rSrS rS r\S 5       rS rS r	S r
Srg	)
ConfigChangesi  c                     / U l         [        R                   H$  n0 X'   U R                   R                  X   5        M&     g r3   )pagesidleConfrm   r   )r   config_types     r   r   ConfigChanges.__init__!  s6    
#00K "DJJd/0 1r   c                 B    X   n[        U5      nX%;  a  0 XR'   XEU   U'   g r3   )str)r   r`  r,   itemrE   pages         r   
add_optionConfigChanges.add_option(  s,     E
DM#Wdr   c                 &   [         R                  U    R                  X5      (       aH  [         R                  U    R                  X5      U:X  a"  [         R                  U    R                  X5      $ [         R                  U    R                  XU5      $ r3   )r_  rn   r(   r0   ro   rJ   rF   )r`  r,   rd  rE   s       r   save_optionConfigChanges.save_option0  sx     {+66wEE"";/33GBeK''4AA'PP,66weLLr   c           	         [         R                  S   R                  5         SnU  H  nSnX   nU Hc  nUS:X  a$  [         R                  S   R                  S5        SnXE   R	                  5        H   u  pgU R                  X%Xg5      (       d  M  SnM"     Me     U(       d  M{  [         R                  U   R                  5         SnM     S H$  n[         R                  U   R                  5         M&     U R                  5         U$ )Nri   Fr-  T)rk   rj   )r_  ro   rc   rQ   r  ri  clear)r   changedr`  cfg_type_changedre  r,   rd  rE   s           r   save_allConfigChanges.save_all=  s     	 %%'K$$Dk)$$V,;;KH'+$#'=#6#6#8KD''dJJ+/( $9	      -224   1K[)..0 1 	

 r   c                     X U   ;   a  X   U	 [         R                  U   nUR                  U5        UR                  5         g r3   )r_  ro   rQ   rc   )r   r`  r,   
configpages       r   delete_sectionConfigChanges.delete_section[  sB    
 ;''!'*%%k2
!!'*r   c                 J    U R                    H  nUR                  5         M     g r3   )r^  rl  )r   re  s     r   rl  ConfigChanges.clearf  s     JJDJJL r   )r^  N)r
   r   r   r   r   rf  rV  ri  ro  rs  rl  r   r   r   r   r\  r\    s1    &1$ 
M 
M<	r   r\  c                     ^^^^ SSK Jm  Su  mmUUU4S jmU4S jn U " [        R                  5        U " [        R                  5        [        STSTSS	9  g )
Nr   )crc32)r   r   c                 h   > [        U 5      nTS-  mT" UR                  SS9T5      m[        U5        g )Nr  zutf-8)encoding)rc  encoder   )objtxtcrcrx  lines     r   sprint_dump.<locals>.sprintu  s3    #h	CJJJ0#6c
r   c           
      0  > [        SU S5        [        U 5       Hy  nX   R                  5       nT" U5        T" U5        U HN  nX   R                  U5      nT" U5        T" U5        U H"  nT" US-   X   R	                  X55      -   5        M$     MP     M{     g )N
z = )r   sortedrP   r5   r0   )rp   r3  rP   r,   r5   r-   r  s         r   dumpCfg_dump.<locals>.dumpCfg}  s    dC#;Cx((*H3K8#(**73ww%F6E>CHLL,IIJ &	 $	 r   z	
lines = z, crc = rv   )sep)zlibrx  r_  rn   ro   r   )r  r~  rx  r  r  s    @@@@r   _dumpr  q  sH    ID#K H H	,j#26r   __main__)ri   zidlelib.idle_test.test_configr  F)	verbosityexit)configparserr   r\   r   tkinter.fontr   ry   	Exceptionr   r   r   r   r@   rf   r_  rC   rX  r   dictr\  r  r
   unittestri   r   r   r   <module>r     s   8 & 	 
   (	 ( 'y ' #9 #&!\ &!P@% @%Dm	% m	%` :
%_D _F7< z	(AEB	G	 r   