Current File : //usr/local/apps/python3/lib/python3.11/idlelib/__pycache__/config.cpython-311.opt-2.pyc
�

�Ke���f�	ddlmZddlZddlZddlmZddlZGd�de��ZGd�de��Z	Gd�d	e��Z
Gd
�de��ZGd�d
e��ZGd�d��Z
e
��Ze��Zd�ZGd�de��Zd�ZedkrddlmZeddd���dSdS)�)�ConfigParserN)�Fontc��eZdZdS)�InvalidConfigTypeN��__name__�
__module__�__qualname__���8/usr/local/apps/python3/lib/python3.11/idlelib/config.pyrr#��������rrc��eZdZdS)�InvalidConfigSetNrrrr
rr$rrrc��eZdZdS)�InvalidThemeNrrrr
rr%rrrc�,�eZdZ	dd�Zdd�Zd�Zd�ZdS)	�IdleConfParserNc�D�	||_tj||d���dS)NF)�defaults�strict)�filer�__init__)�self�cfgFile�cfgDefaultss   r
rzIdleConfParser.__init__+s.��	���	���d�[��G�G�G�G�G�GrFc���	|�||��s|S|dkr|�||��S|dkr|�||��S|�|||���S)N�bool�int��raw)�
has_option�
getboolean�getint�get)r�section�option�type�defaultr!s      r
�GetzIdleConfParser.Get2sv��	����w��/�/�	��N��6�>�>��?�?�7�F�3�3�3�
�U�]�]��;�;�w��/�/�/��8�8�G�V��8�5�5�5rc�\�	|�|��r|�|��SgS�N)�has_section�options�rr&s  r
�
GetOptionListzIdleConfParser.GetOptionListCs2��>����G�$�$�	��<�<��(�(�(��Irc�N�	|jr|�|j��dSdSr,)r�read�rs r
�LoadzIdleConfParser.LoadJs3��0��9�	!��I�I�d�i� � � � � �	!�	!rr,)NNF)rr	r
rr*r0r4rrr
rr'sc�������H�H�H�H�6�6�6�6�"���!�!�!�!�!rrc�4�eZdZ	d�Zd�Zd�Zd�Zd�Zd�ZdS)�IdleUserConfParserc� �	|�||��r5|�||��|krdS|�|||��dS|�|��s|�|��|�|||��dS)NFT)r"r%�setr-�add_section)rr&r'�values    r
�	SetOptionzIdleUserConfParser.SetOptionTs���	��?�?�7�F�+�+�
	��x�x���(�(�E�1�1��u�����&�%�0�0�0��t��#�#�G�,�,�
*�� � ��)�)�)��H�H�W�f�e�,�,�,��4rc�^�	|�|��r|�||��SdS)NF)r-�
remove_option)rr&r's   r
�RemoveOptionzIdleUserConfParser.RemoveOptiones:��	����G�$�$�	7��%�%�g�v�6�6�6��urc�`�	|�|��s|�|��dSdSr,)r-r9r/s  r
�
AddSectionzIdleUserConfParser.AddSectionns?��+�����(�(�	&����W�%�%�%�%�%�	&�	&rc��	|���D],}|�|��s|�|���-dSr,)�sectionsr0�remove_sectionr/s  r
�RemoveEmptySectionsz&IdleUserConfParser.RemoveEmptySectionsssQ��3��}�}���	-�	-�G��%�%�g�.�.�
-��#�#�G�,�,�,��	-�	-rc�V�	|���|���Sr,)rDrBr3s r
�IsEmptyzIdleUserConfParser.IsEmptyys(��C�� � �"�"�"��=�=�?�?�"�"rc���	|j}|r�|ddkr�|���sx	t|d��}n4#t$r't	j|��t|d��}YnwxYw|5|�|��ddd��dS#1swxYwYdStj�|j��rt	j	|j��dSdSdSdS)Nr�#�w)
rrF�open�OSError�os�unlink�write�path�exists�remove)r�fnamers   r
�SavezIdleUserConfParser.Save~sN��	�
�	���
	%�U�1�X��_�_��<�<�>�>�	
%�/�"�5�#�.�.�G�G���/�/�/��I�e�$�$�$�"�5�#�.�.�G�G�G�/�����(�(��J�J�w�'�'�'�(�(�(�(�(�(�(�(�(�(�(�(����(�(�(�(�(�(������	�*�*�
%��	�$�)�$�$�$�$�$�
	%�
	%�_�_�
%�
%s!�=�.A.�-A.�3B�B�BN)	rr	r
r;r>r@rDrFrSrrr
r6r6Oss����������"���&�&�&�
-�-�-�#�#�#�
%�%�%�%�%rr6c���eZdZ	d!d�Zd�Zd�Z		d"d�Zd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
ed���Z		d#d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zhd�Zd$d�Zd�Zd�Zd�Zd�Zd �Z dS)%�IdleConfFc��d|_i|_i|_i|_|s*|���|���dSdS)N)�main�	highlight�keys�
extensions)�config_types�
defaultCfg�userCfg�cfg�CreateConfigHandlers�LoadCfgFiles)r�_utests  r
rzIdleConf.__init__�s]��G�������������	 ��%�%�'�'�'���������	 �	 rc	��	tj�t��}tjrdn|���x|_}|jD]v}ttj�
|d|�d�����|j|<ttj�
|pdd|�d�����|j
|<�wdS)N�zconfig-z.defrHz.cfg)rLrO�dirname�__file__�idlelib�testing�
GetUserCfgDir�userdirr[r�joinr\r6r])r�idledirri�cfg_types    r
r_zIdleConf.CreateConfigHandlers�s���?��'�/�/�(�+�+��'.��!P���D�<N�<N�<P�<P�P���w��)�	H�	H�H�(6�����W�&>��&>�&>�&>�?�?�)A�)A�D�O�H�%�%7�����W�^��-E�x�-E�-E�-E�F�F�&H�&H�D�L��"�"�	H�	Hrc��	d}tj�d��}|dkrbtj�|��sCtjs5d|zdz}	t
|tj���n#t$rYnwxYwd}|dkrtj
��}tj�||��}tj�|��sl	tj|��nV#t$rItjs5d|zdz}	t
|tj���n#t$rYnwxYwt�wxYw|S)Nz.idlerc�~z.
 Warning: os.path.expanduser("~") points to
 z,
 but the path does not exist.�rz2
 Warning: unable to create user config directory
z(
 Check path and permissions.
 Exiting!
)rLrO�
expanduserrPrfrg�print�sys�stderrrK�getcwdrj�mkdir�
SystemExit)r�cfgDir�userDir�warns    r
rhzIdleConf.GetUserCfgDir�s���	����'�$�$�S�)�)���c�>�>��7�>�>�'�*�*�
����N�#�$�&H�I�D���d���4�4�4�4�4��"�������������c�>�>��i�k�k�G��'�,�,�w��/�/���w�~�~�g�&�&�	!�

!����!�!�!�!���
!�
!�
!����R�#�$�&S�T�D���d���4�4�4�4�4��"���������� � �
!�����sB�A9�9
B�B�$C9�9E�D4�3E�4
E�>E�E�ENTc
�$�		|j|�||��r$|j|�||||���SnQ#t$rDd|�d|�d|�d|j|�|||�����}t	||||��YnwxYw	|j|�||��r$|j|�||||���Sn#t$rYnwxYw|rd|�d|�d|��}t	||||��|S)	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: )r]r"r*�
ValueError�_warnr\)	r�
configTyper&r'r)r(�warn_on_defaultr!�warnings	         r
�	GetOptionzIdleConf.GetOption�s���
	�
	8��|�J�'�2�2�7�F�C�C�
H��|�J�/�3�3�G�V�9=�3�4�H�H�H�
H���	8�	8�	8�	8����f�f�f�g�g�g��|�J�/�3�3�G�V��3�M�M�M�	O�G�

�'�:�w��7�7�7�7�7�
	8����	���z�*�5�5�g�f�E�E�
=���z�2�6�6���d��7�=�=�=�
=���	�	�	��D�	�����	8�	8�
��������	2�G�

�'�:�w��7�7�7��s&�AA	�	AB�B�AC!�!
C.�-C.c�L�	|j|�|||��dSr,)r]r;)rr~r&r'r:s     r
r;zIdleConf.SetOption�s*��>���Z� �*�*�7�F�E�B�B�B�B�Brc���	||jvrtd���|dkr|j|}n#|dkr|j|}nt	d���|���S)NzInvalid configType specified�userr)�Invalid configSet specified)r[rr]r\rrB)r�	configSetr~�	cfgParsers    r
�GetSectionListzIdleConf.GetSectionListsy��	�
�d�/�/�/�#�$B�C�C�C�������Z�0�I�I�
�)�
#�
#��o�j�1�I�I�"�#@�A�A�A��!�!�#�#�#rc��	|jd�|��rdnd}|�||��}||dz}|dkrd}||dz}||d�S)	NrXr)r�z-foreground�cursor�normalz-background)�
foreground�
background)r\r-�GetThemeDict)r�theme�elementr^�
theme_dict�fore�backs       r
�GetHighlightzIdleConf.GetHighlights���	�
!�O�K�8�D�D�U�K�K��y�y��	��&�&�s�E�2�2�
��'�M�1�2���h����G��'�M�1�2��"�$�7�7�7rc���	|dkr|jd}n#|dkr|jd}ntd���idd�dd�d	d�d
d�dd�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd�dd�ddddddddddddddd��}|D]q}|�||��s8|�d��s#d|�d|�d||��}t|d||��|�||||���||<�r|S)Nr�rXr)zInvalid theme type specifiedznormal-foregroundz#000000znormal-backgroundz#ffffffzkeyword-foregroundzkeyword-backgroundzbuiltin-foregroundzbuiltin-backgroundzcomment-foregroundzcomment-backgroundzstring-foregroundzstring-backgroundzdefinition-foregroundzdefinition-backgroundzhilite-foregroundzhilite-background�grayzbreak-foregroundzbreak-backgroundzhit-foreground)zhit-backgroundzerror-foregroundzerror-backgroundzcontext-foregroundzcontext-backgroundzlinenumber-foregroundzlinenumber-backgroundzcursor-foregroundzstdout-foregroundzstdout-backgroundzstderr-foregroundzstderr-backgroundzconsole-foregroundzconsole-background)zcontext-zlinenumber-zL
 Warning: config.IdleConf.GetThemeDict -
 problem retrieving theme element z
 from theme z.
 returning default color: �r))r]r\rr"�
startswithr}r*)rr(�	themeNamer�r�r�r�s       r
r�zIdleConf.GetThemeDict!s��	��6�>�>���[�1�I�I�
�Y�
�
����4�I�I��=�>�>�>�!�#�I�!�#�I�!�$�Y�!�%�Y�!�%�Y�	!�
%�Y�!�%�Y�
!�%�Y�!�$�I�!�$�I�!�(�	�!�(�	�!�$�I�!�$�F�!�#�9�!�#�9�!� !��!!�""+�#,�#,�%.�%.�(1�(1�$-�$-�$-�$-�$-�%.�%.�A!�!�!��D�	@�	@�G��(�(��G�<�<�	
@��&�&�'B�C�C�	
@�	
@�$�G�G�Y�Y�Y��g���	@��
�g�{�I�w�?�?�?�&�]�]��w��g��+�@�@�E�'�N�N��rc�.�	|�d��S)N�Theme��current_colors_and_keysr3s r
�CurrentThemezIdleConf.CurrentThemees��C��+�+�G�4�4�4rc�.�	|�d��S)N�Keysr�r3s r
�CurrentKeyszIdleConf.CurrentKeysis��>��+�+�F�3�3�3rc�R�	|dkrdnd}|�d|ddd���}d	}|r|�d|d
d	���}|s|�d|dd	���}|r-|r|jn|j}||�|��r|S|dkrd
n|���S)Nr�rXrYrWr)rT�r(r)rc�name2r��namezIDLE Classic)r�r\r]r-�default_keys)rr&�cfgnamer)r��sources      r
r�z IdleConf.current_colors_and_keysms���	�.")�G�!3�!3�+�+����.�.���)�&,�d�!�<�<�����	H��>�>�&�'�7�B�>�G�G�D��	G��>�>�&�'�6�2�>�F�F�D��	�(/�A�T�_�_�T�\�F��g��*�*�4�0�0�
���!(�G�!3�!3�~�~��9J�9J�9L�9L�Lrc�^�tjdd�dkrdStjdkrdSdS)N��winzIDLE Classic Windows�darwinzIDLE Classic OSXzIDLE Modern Unix)rr�platformrrr
r�zIdleConf.default_keys�s7���<�����u�$�$�)�)�
�\�X�
%�
%�%�%�%�%rc	��	|�|�dd����}|�|�dd����}|D]}||vr|�|���dD]}|�|���|rtg}|D]m}|�d|ddd���rQ|s|r8|rd	}nd
}|�d||ddd���r|�|���X|�|���n|S|S)
Nr)rZr�)�AutoComplete�CodeContext�FormatParagraph�
ParenMatch�enableTr�r)r(�
enable_editor�enable_shellF)r)r(r)�RemoveKeyBindNamesr��appendrQr�)	r�active_only�editor_only�
shell_only�extns�	userExtns�extn�activeExtnsr's	         r
�
GetExtensionszIdleConf.GetExtensions�sw��	��'�'��#�#�I�|�<�<�>�>���+�+��#�#�F�L�9�9�;�;�	��	#�	#�D��5� � ����T�"�"�"��5�	�	�D��L�L�������	��K��
1�
1���>�>�,��h��'-�"�/�/�
1�#�
1�j�
1�&�4�%4�F�F�%3�F��>�>�,��V�26�V�:?�*�A�A�5�(�.�.�t�4�4�4��#�*�*�4�0�0�0�����Lrc��	d�|D��S)Nc�<�g|]}|�d���|��S))�	_bindings�_cfgBindings)�endswith)�.0�ns  r
�
<listcomp>z/IdleConf.RemoveKeyBindNames.<locals>.<listcomp>�s*��Y�Y�Y�a�q�z�z�:W�/X�/X�Y��Y�Y�Yrr)r�extnNameLists  r
r�zIdleConf.RemoveKeyBindNames�s��D�Y�Y�<�Y�Y�Y�Yrc��	d}d|zdz}|�d���D]"}|�|��D]
}||kr|}��#|S)N�<<�>>r�r�)r��GetExtensionKeys)r�virtualEvent�extName�vEventr��events      r
�GetExtnNameForEventzIdleConf.GetExtnNameForEvent�su��	�
����$�t�+���&�&�1�&�5�5�	#�	#�D��.�.�t�4�4�
#�
#���F�?�?�"�G��
#��rc���	|dz}|���}i}|jd�|��r:|jd�|��}|D]}d|zdz}||}|||<�|S)Nr�rZr�r�)�GetCurrentKeySetr\r-r0)	r�
extensionName�keysName�
activeKeys�extKeys�
eventNames�	eventNamer��bindings	         r
r�zIdleConf.GetExtensionKeys�s���	�!�>�1���*�*�,�,�
����?�<�(�4�4�X�>�>�	)����6�D�D�X�N�N�J�'�
)�
)�	��y�(�4�/��$�U�+��!(������rc��	|dz}i}|jd�|��r]|jd�|��}|D]:}|�d||d������}d|zdz}|||<�;|S)Nr�rZrcr�r�r�)r\r-r0r��split)rr�r�r�r�r�r�r�s        r
�__GetRawExtensionKeyszIdleConf.__GetRawExtensionKeys�s���	�!��/�����?�<�(�4�4�X�>�>�	)����6�D�D�X�N�N�J�'�
)�
)�	��.�.�$�h�	�2�)�G�G�GL�u�w�w���y�(�4�/��!(������rc�6�	|dz}|�|��}|jd�|��r]|jd�|��}|D]:}|�d||d������}d|zdz}|||<�;|S)Nr�rZrcr�r�r�)r�r\r-r0r�r�)rr��	bindsName�extBindsr�r�r�r�s        r
�GetExtensionBindingszIdleConf.GetExtensionBindings�s���	�"�K�/�	��(�(��7�7���?�<�(�4�4�Y�?�?�	*����6�D�D�Y�O�O�J�'�
*�
*�	��.�.�$�i��B�)�H�H�HM������y�(�4�/��")������rc�t�	|dd�}|�d||dd������}|S)N����rYrcF)r)r)r�r�)r�
keySetName�eventStrr�r�s     r
�
GetKeyBindingzIdleConf.GetKeyBindingsJ��	�
�Q�r�T�N�	��.�.���Y��16�!�8�8�8=����	��rc���	|�|�����}tjdkr1|���D]\}}d�|D��}||kr|||<�|S)Nr�c�:�g|]}|�dd����S)z<Alt-z<Option-)�replace)r��xs  r
r�z-IdleConf.GetCurrentKeySet.<locals>.<listcomp>%s&��B�B�B�!�q�y�y��*�5�5�B�B�Br)�	GetKeySetr�rrr��items)r�result�k�v�v2s     r
r�zIdleConf.GetCurrentKeySetsw��9����� 0� 0� 2� 2�3�3���<�8�#�#������
#�
#���1�B�B�q�B�B�B����7�7� "�F�1�I���
rc��	|�|��}|�d���}|D]J}|�|��}|r1|D].}|||���vrd||<||||<�/�K|S)N�r�rc)�GetCoreKeysr��_IdleConf__GetRawExtensionKeys�values)rr��keySetr�r�r�r�s       r
r�zIdleConf.GetKeySet+s���	�
�!�!�*�-�-���(�(�Q�(�7�7���	3�	3�D��0�0��6�6�G��
3�$�3�3�E��u�~������8�8�)+����$+�E�N�F�5�M�M���
rc�<�	d|zdz|���vS)Nr�r�)r�)rr�s  r
�
IsCoreBindingzIdleConf.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	�,�	idddg�dddg�ddd	g�d
ddg�d
dg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�ddg�dd g�d!d"g�d#d$g�id%d&g�d'd(g�d)d*g�d+d,g�d-d.g�d/d0g�d1d2g�d3d4g�d5d6g�d7d8g�d9d:g�d;d<g�d=d>g�d?d@dAg�dBdCg�dDdEg�dFdGg��idHdIg�dJdKg�dLdMg�dNdOdPg�dQdRg�dSdTg�dUdVg�dWdXg�dYdZg�d[d\g�d]d^g�d_d`g�dadbg�dcddg�dedfg�dgdhg�didjg��dkgdlgdmgdngdogdpgdqgdr��}|r�|jds�|��s8|jds�|��sdt|�du�}t|ds|��nO|D]L}|�||��}|r|||<� ||jvr#dv|�dw|�dx||��}t|ds||���M|S)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>rz<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>)rr�rr�r�rrrYz7
 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{)r]r-r\r}r��former_extension_events)rr��keyBindingsr�r�r�s      r
r�zIdleConf.GetCoreKeysOsv��	�;���
�6�;��
�}�5�;�
�-��7�;�
$�m�X�%>�	;�

 �-��;�
$�m�_�
;�
���;�
�}�o�;�
�
��;�
��x�;�
&��~�;�
���;�
#�Y�K�;�
&�
��;�
���;� 
 �.�!1�!;�"
%�y�k�#;�;�$
�	�{�%;�&
"�M�?�';�(
(�-��);�*
+�]�O�+;�,
���-;�.
���/;�0
#�Z�L�1;�2
.��/@�3;�4
&�	�{�5;�6
�
��7;�8
�y�k�9;�:
'�):�(;�;;�<
���=;�>
�}�f�5�?;�@
 �*��A;�B
!�>�"2�C;�D
���E;�;�;�F
�M�?�G;�H
�i�[�I;�J
"�$5�#6�K;�L
%�~�7G�&H�M;�N
��
�O;�P
 �">�!?�Q;�R
 �"=�!>�S;�T
!�=�/�U;�V
#�]�O�W;�X
 �-��Y;�Z
"�M�?�[;�\
�
��];�^
%�}�o�_;�`
 �";�!<�a;�b
!�#9�":�c;�d
)�+@�*A�e;�f
� 1�2�g;�;�h(A�&A� 1�2�%2�O�)�l�/�0�!.�� -��u;�;�;��z�	B��L��(�4�4�Z�@�@�
B��O�F�+�7�7�
�C�C�
B�
B�
 �Z�Z�"��
�g�v�z�2�2�2�2�(�
B�
B�E�"�0�0��U�C�C�G��B�-4��E�*�*��d�&B�B�B�B�#�U�U�J�J�J��E�0B�0B�	D� ��g�v�z�5�A�A�A���rc��	g}|dkr|jd}n#|dkr|jd}ntd���|�d��}|D]�}|�d|d���}|�d��dkrd	}d	}nI|�d��}|d
���}|d���}|r|r|�|||f����|�	d��
��|S)Nr�rWr)r��	HelpFiles�;r����rcrr�c��|dS)Nr�r)r�s r
�<lambda>z1IdleConf.GetExtraHelpSourceList.<locals>.<lambda>�s
��q��t�r)�key)
r]r\rr0r*�findr��stripr��sort)	rr��helpSourcesr�r.r'r:�menuItem�helpPaths	         r
�GetExtraHelpSourceListzIdleConf.GetExtraHelpSourceList�s.��	���������V�,�I�I�
�)�
#�
#����/�I�I�"�#@�A�A�A��'�'��4�4���
	A�
	A�F��-�-��V�S�-�A�A�E��z�z�#���"�$�$�������k�k�#�&�&���q����)�)���q����)�)���
A�H�
A��"�"�X�h�v�$>�@�@�@�����^�^��,�,�,��rc�^�	|�d��|�d��z}|S)Nr)r�)r)r�allHelpSourcess  r
�GetAllExtraHelpSourcesListz#IdleConf.GetAllExtraHelpSourcesList�s8��	��5�5�i�@�@��+�+�F�3�3�4���rc�P�	|�||dd���}|�||ddd���}|�||dd	d
���}|dkrJtdd
|���}tj|��}|d}|d}|d	krd}|ddk}|||rdndfS)N�font�courierr�z	font-sizer�10r�z	font-boldrrr��TkFixedFontT)r�rP�root�family�size�
�weight�boldr�)r�r�actual)	rrr~r&rr r#�f�
actualFonts	         r
�GetFontzIdleConf.GetFont�s���		����
�G�V�Y��O�O���~�~�j�'�;�U�&*��,�,���~�~�j�'�;��#)��+�+���m�#�#��-��4�@�@�@�A���Q���J���)�F��f�%�D��q�y�y����h�'�6�1�D����:�f�f�(�;�;rc��	|jD]@}|j|���|j|����AdSr,)r\r4r]�rrs  r
r`zIdleConf.LoadCfgFiles�sU��'��?�	%�	%�C��O�C� �%�%�'�'�'��L���"�"�$�$�$�$�	%�	%rc�Z�	|jD]!}|j|����"dSr,)r]rSr)s  r
�SaveUserCfgFileszIdleConf.SaveUserCfgFiles�s<��<��<�	%�	%�C��L���"�"�$�$�$�$�	%�	%r)F)NNTF)TFFr,)!rr	r
rr_rhr�r;r�r�r�r�r�r��staticmethodr�r�r�r�r�r�r�r�r�r�r�rr�rrr'r`r+rrr
rUrU�s������	�
 �
 �
 �
 �H�H�H�"�"�"�HIM�,1�&�&�&�&�PC�C�C�$�$�$� 
8�
8�
8�B�B�B�H5�5�5�4�4�4�$M�$M�$M�L�&�&��\�&�)-�49�'�'�'�'�RZ�Z�Z�������$���$���(	�	�	����"���$>�>�>�����^�^�^�^�@���@���<�<�<�4%�%�%�%�%�%�%�%rrUc��|f|z}|tvrI	t|tj���n#t$rYnwxYwt�|��dSdS)Nro)�_warnedrqrrrsrK�add)�msgrs  r
r}r}su���&�3�,�C�
�'���	��#�C�J�'�'�'�'�'���	�	�	��D�	�������C�������s�-�
:�:c�D�eZdZ	d�Zd�Zed���Zd�Zd�Zd�Z	dS)�
ConfigChangesc�~�	g|_tjD]'}i||<|j�||���(dSr,)�pages�idleConfr[r�)r�config_types  r
rzConfigChanges.__init__sP��3���
�#�0�	1�	1�K� "�D����J���d�;�/�0�0�0�0�	1�	1rc�^�	||}t|��}||vri||<||||<dSr,)�str)rr6r&�itemr:�pages      r
�
add_optionzConfigChanges.add_option%sB��:��K� ���E�
�
���$����D��M�#��W�
�d���rc�>�	tj|�||��rPtj|�||��|kr&tj|�||��Stj|�|||��Sr,)r5r\r"r*r]r>r;)r6r&r9r:s    r
�save_optionzConfigChanges.save_option-s���	���{�+�6�6�w��E�E�	Q��"�;�/�3�3�G�T�B�B�e�K�K��'��4�A�A�'�4�P�P�P����,�6�6�w��e�L�L�Lrc	��	tjd���d}|D]�}d}||}|D]i}|dkr'tjd�d��d}||���D]\}}|�||||��rd}� �j|r&tj|���d}��dD]&}tj|����'|���|S)NrWFr	T)rYrX)r5r]rSrCr�r=�clear)r�changedr6�cfg_type_changedr:r&r9r:s        r
�save_allzConfigChanges.save_all:s8��	�
	��� �%�%�'�'�'����	�	�K�$����$�D��
0�
0���k�)�)��$�V�,�;�;�K�H�H�H�'+�$�#'��=�#6�#6�#8�#8�0�0�K�D�%��'�'��W�d�E�J�J�0�+/�(��0� �
�� ��-�2�2�4�4�4����0�	1�	1�K���[�)�.�.�0�0�0�0��
�
�����rc��	|||vr	|||=tj|}|�|��|���dSr,)r5r]rCrS)rr6r&�
configpages    r
�delete_sectionzConfigChanges.delete_sectionXs]��	��d�;�'�'�'��[�!�'�*��%�k�2�
��!�!�'�*�*�*��������rc�D�	|jD]}|����dSr,)r4r?)rr:s  r
r?zConfigChanges.clearcs3��	�
�J�	�	�D��J�J�L�L�L�L�	�	rN)
rr	r
rr;r,r=rBrEr?rrr
r2r2s��������$1�1�1�$�$�$��
M�
M��\�
M����<	�	�	�����rr2c����ddlm�d\}}�fd���fd�}|tj��|tj��td|d|d�	��dS)
Nr)�crc32)rrc���t|��}tdz
a�|�d���t��at	|��dS)Nr�zutf-8)�encoding)r8�line�encode�crcrq)�obj�txtrHs  �r
�sprintz_dump.<locals>.sprintrsE����#�h�h����	���e�C�J�J��J�0�0�#�6�6��
�c�
�
�
�
�
rc
���td|d��t|�����D]�}||���}�|���|��|D]c}||�|��}�|���|��|D]-}�|dz||�||��z���.�d��dS)N�
z = )rq�sortedrYrBr.r*)r^rrBr&r.r'rPs      �r
�dumpCfgz_dump.<locals>.dumpCfgzs���
�d�C������#�(�(�*�*�%�%�		K�		K�C��3�x�(�(�*�*�H��F�3�K�K�K��F�8����#�
K�
K���c�(�*�*�7�3�3����w������w����%�K�K�F��F�6�E�>�C��H�L�L��&�,I�,I�I�J�J�J�J�K�	
K�			K�		Krz	
lines = z, crc = rc)�sep)�zlibrHr5r\r]rq)rKrMrTrHrPs   @@r
�_dumprWns������������I�D�#������K�K�K�K�K��G�H�� � � ��G�H�����	�,��j�#�2�6�6�6�6�6�6r�__main__)rWzidlelib.idle_test.test_configr�F)�	verbosity�exit)�configparserrrLrr�tkinter.fontrrf�	Exceptionrrrrr6rUr5r8r.r}�dictr2rWr�unittestrWrrr
�<module>r`s����6&�%�%�%�%�%�	�	�	�	�
�
�
�
�����������(�(�(�(�(�	�(�(�(�'�'�'�'�'�y�'�'�'�#�#�#�#�#�9�#�#�#�&!�&!�&!�&!�&!�\�&!�&!�&!�P@%�@%�@%�@%�@%��@%�@%�@%�Dj	%�j	%�j	%�j	%�j	%�j	%�j	%�j	%�Z�8�:�:��

�#�%�%�����_�_�_�_�_�D�_�_�_�F7�7�7�:�z����������D�	(�A�E�B�B�B�B�B�B��r