Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.12/idlelib/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.12/idlelib/__pycache__/config.cpython-312.opt-2.pyc

�

%Μg���2�	ddlmZddlZddlZddlmZddlZGd�de�ZGd�de�Z	Gd�d	e�Z
Gd
�de�ZGd�d
e�ZGd�d�Z
e
�Ze�Zd�ZGd�de�Zd�Zedk(rddlmZeddd��e�yy)�)�ConfigParserN)�Fontc��eZdZy)�InvalidConfigTypeN��__name__�
__module__�__qualname__���+/usr/local/lib/python3.12/idlelib/config.pyrr#��rrc��eZdZy)�InvalidConfigSetNrrrr
rr$rrrc��eZdZy)�InvalidThemeNrrrr
rr%rrrc�*�eZdZ	dd�Zdd�Zd�Zd�Zy)�IdleConfParserNc�D�	||_tj||d��y)NF)�defaults�strict)�filer�__init__)�self�cfgFile�cfgDefaultss   r
rzIdleConfParser.__init__+s"��	���	����d�[��Grc��	|j||�s|S|dk(r|j||�S|dk(r|j||�S|j|||��S)N�bool�int��raw)�
has_option�
getboolean�getint�get)r�section�option�type�defaultr!s      r
�GetzIdleConfParser.Get2sa��	����w��/��N��6�>��?�?�7�F�3�3�
�U�]��;�;�w��/�/��8�8�G�V��8�5�5rc�L�	|j|�r|j|�SgS�N)�has_section�options�rr&s  r
�
GetOptionListzIdleConfParser.GetOptionListCs'��>����G�$��<�<��(�(��Irc�V�	|jr|j|j�yyr,)r�read�rs r
�LoadzIdleConfParser.LoadJs!��0��9�9��I�I�d�i�i� �rr,)NNF)rr	r
rr*r0r4rrr
rr's���H�6�"�!rrc�2�eZdZ	d�Zd�Zd�Zd�Zd�Zd�Zy)�IdleUserConfParserc���	|j||�r*|j||�|k(ry|j|||�y|j|�s|j	|�|j|||�y)NFT)r"r%�setr-�add_section)rr&r'�values    r
�	SetOptionzIdleUserConfParser.SetOptionTso��	��?�?�7�F�+��x�x���(�E�1������&�%�0���#�#�G�,�� � ��)��H�H�W�f�e�,�rc�L�	|j|�r|j||�Sy)NF)r-�
remove_option)rr&r's   r
�RemoveOptionzIdleUserConfParser.RemoveOptiones-��	����G�$��%�%�g�v�6�6�rc�L�	|j|�s|j|�yyr,)r-r9r/s  r
�
AddSectionzIdleUserConfParser.AddSectionns&��+�����(����W�%�)rc�v�	|j�D]%}|j|�r�|j|��'yr,)�sectionsr0�remove_sectionr/s  r
�RemoveEmptySectionsz&IdleUserConfParser.RemoveEmptySectionsss1��3��}�}��G��%�%�g�.��#�#�G�,�'rc�F�	|j�|j�Sr,)rDrBr3s r
�IsEmptyzIdleUserConfParser.IsEmptyys ��C�� � �"��=�=�?�"�"rc��	|j}|r�|ddk7r�|j�s*	t|d�}|5|j
|�ddd�ytjj|j�r t	j|j�yyyy#t$r$t	j
|�t|d�}Y��wxYw#1swYyxYw)Nr�#�w)
rrF�open�OSError�os�unlink�write�path�exists�remove)r�fnamers   r
�SavezIdleUserConfParser.Save~s���	�
�	�	���U�1�X��_��<�<�>�/�"�5�#�.�G���J�J�w�'��W�������	�	�*��	�	�$�)�)�$�+�%�5���/��I�I�e�$�"�5�#�.�G�/���W�s�B�C�*C�
C�CN)	rr	r
r;r>r@rDrFrSrrr
r6r6Os%����"�&�
-�#�
%rr6c���eZdZ	dd�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 y)#�IdleConfc��d|_i|_i|_i|_|s!|j	�|j�yy)N)�main�	highlight�keys�
extensions)�config_types�
defaultCfg�userCfg�cfg�CreateConfigHandlers�LoadCfgFiles)r�_utests  r
rzIdleConf.__init__�sA��G������������
��%�%�'�����rc	��	tjjt�}tj
rdn|j
�x|_}|jD]z}ttjj|d|�d���|j|<ttjj|xsdd|�d���|j|<�|y)N�zconfig-z.defrHz.cfg)rLrO�dirname�__file__�idlelib�testing�
GetUserCfgDir�userdirr[r�joinr\r6r])r�idledirri�cfg_types    r
r_zIdleConf.CreateConfigHandlers�s���?��'�'�/�/�(�+��'.����D�<N�<N�<P�P���w��)�)�H�(6������W���z��&>�?�)A�D�O�O�H�%�%7������W�^��w�x�j��-E�F�&H�D�L�L��"�*rc��	d}tjjd�}|dk7rUtjj|�s6tj
s$d|zdz}	t
|tj��d}|dk(rtj�}tjj||�}tjj|�s	tj|�|S|S#t$rY�wxYw#t$rUtj
s>d|zdz}	t
|tj��t�#t$rYt�wxYwt�wxYw)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�7�>�>�'�*����N�#�$�&H�I�D���d����4����c�>��i�i�k�G��'�'�,�,�w��/���w�w�~�~�g�&�

!�����!���w���)#������
!����R�#�$�&S�T�D���d����4�!� ��#��� � ��� � �
!�sB� C/�C>�/	C;�:C;�>!E� E�;E�	E�
E�E�
ENc
��		|j|j||�r"|j|j||||��S		|j
|j||�r"|j
|j||||��S	|rd|�d|�d|��}t	||||�|S#t$r>d|�d|�d|�d|j|j|||����}t	||||�Y��wxYw#t$rY�rwxYw)	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�s2��
	�
	8��|�|�J�'�2�2�7�F�C��|�|�J�/�3�3�G�V�9=�3�4�H�H�D�	����z�*�5�5�g�f�E����z�2�6�6���d��7�=�=�F��
���	2�G�

�'�:�w��7����+�	8��f�g��|�|�J�/�3�3�G�V��3�M�	O�G�

�'�:�w��7�
	8���	��	�s&�AB%�AC/�%AC,�+C,�/	C;�:C;c�F�	|j|j|||�yr,)r]r;)rr~r&r'r:s     r
r;zIdleConf.SetOption�s ��>����Z� �*�*�7�F�E�Brc���	||jvrtd��|dk(r|j|}|j�S|dk(r|j|}|j�St	d��)NzInvalid configType specified�userr)�Invalid configSet specified)r[rr]r\rrB)r�	configSetr~�	cfgParsers    r
�GetSectionListzIdleConf.GetSectionLists���	�
�d�/�/�/�#�$B�C�C�������Z�0�I�
�!�!�#�#�	�)�
#��o�o�j�1�I��!�!�#�#�#�#@�A�Arc��	|jdj|�rdnd}|j||�}||dz}|dk(rd}||dz}||d�S)	NrXr)r�z-foreground�cursor�normalz-background)�
foreground�
background)r\r-�GetThemeDict)r�theme�elementr^�
theme_dict�fore�backs       r
�GetHighlightzIdleConf.GetHighlightsr��	�
!�O�O�K�8�D�D�U�K�y��	��&�&�s�E�2�
��'�M�1�2���h���G��'�M�1�2��"�$�7�7rc��	|dk(r|jd}n |dk(r|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][}|j||�s-|j	d�sd|�d|�d||��}t|d||�|j
||||��||<�]|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�
�Y�
�����4�I��=�>�>�!�#�I�!�#�I�!�$�Y�!�%�Y�!�%�Y�	!�
%�Y�!�%�Y�
!�%�Y�!�$�I�!�$�I�!�(�	�!�(�	�!�$�I�!�$�F�!�#�9�!�#�9�!� !��!!�""+�#,�#,�%.�%.�(1�(1�$-�$-�$-�$-�$-�%.�%.�A!��D�G��(�(��G�<��&�&�'B�C�$�Y��g��	@��
�g�{�I�w�?�&�]�]��w��g��+�@�E�'�N���rc�&�	|jd�S)N�Theme��current_colors_and_keysr3s r
�CurrentThemezIdleConf.CurrentThemefs��C��+�+�G�4�4rc�&�	|jd�S)N�Keysr�r3s r
�CurrentKeyszIdleConf.CurrentKeysjs��>��+�+�F�3�3rc�4�	|dk(rdnd}|jd|ddd��}d	}|r|jd|d
d	��}|s|jd|dd	��}|r0|r|jn|j}||j|�r|S|dk(rd
S|j	�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_keysns���	�.")�G�!3�+����.�.���)�&,�d�!�<������>�>�&�'�7�B�>�G�D���>�>�&�'�6�2�>�F�D��(/�T�_�_�T�\�\�F��g��*�*�4�0���!(�G�!3�~�L��9J�9J�9L�Lrc�Z�tjdddk(rytjdk(ryy)N��winzIDLE Classic Windows�darwinzIDLE Classic OSXzIDLE Modern Unix)rr�platformrrr
r�zIdleConf.default_keys�s*���<�<����u�$�)�
�\�\�X�
%�%�%rc	���	|j|jdd��}|j|jdd��}|D]}||vs�|j|��dD]}|j|��|rhg}|D]_}|j	d|ddd��s�|s|r1|rd	}nd
}|j	d||ddd��s�=|j|��O|j|��a|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�s��	��'�'��#�#�I�|�<�>���+�+��#�#�F�L�9�;�	��D��5� ����T�"��5�D��L�L���5�
��K����>�>�,��h��'-�"�/�#�j�&�%4�F�%3�F��>�>�,��V�26�V�:?�*�A�(�.�.�t�4�#�*�*�4�0�����Lrc�R�	|D�cgc]}|jd�r�|��c}Scc}w)N)�	_bindings�_cfgBindings)�endswith)r�extnNameList�ns   r
r�zIdleConf.RemoveKeyBindNames�s)��D�'�Y�<�a�q�z�z�:W�/X��<�Y�Y��Ys�$�$c��	d}d|zdz}|jd��D] }|j|�D]
}||k(s�	|}��"|S)N�<<�>>r�r�)r��GetExtensionKeys)r�virtualEvent�extName�vEventr��events      r
�GetExtnNameForEventzIdleConf.GetExtnNameForEvent�s]��	�
����$�t�+���&�&�1�&�5�D��.�.�t�4���F�?�"�G�5�6��rc���	|dz}|j�}i}|jdj|�r7|jdj|�}|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�J�'�	��y�(�4�/��$�U�+��!(����(��rc��	|dz}i}|jdj|�rU|jdj|�}|D]2}|jd||d��j	�}d|zdz}|||<�4|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�J�'�	��.�.�$�h�	�2�)�G�GL�u�w���y�(�4�/��!(����	(�
�rc��	|dz}|j|�}|jdj|�rU|jdj|�}|D]2}|j	d||d��j�}d|zdz}|||<�4|S)Nr�rZrcr�r�r�)r�r\r-r0r�r�)rr��	bindsName�extBindsr�r�r�r�s        r
�GetExtensionBindingszIdleConf.GetExtensionBindings�s���	�"�K�/�	��(�(��7���?�?�<�(�4�4�Y�?�����6�D�D�Y�O�J�'�	��.�.�$�i��B�)�H�HM�����y�(�4�/��")����	(��rc�Z�	|dd}|jd||dd��j�}|S)N����rYrcF)r)r)r�r�)r�
keySetName�eventStrr�r�s     r
�
GetKeyBindingzIdleConf.GetKeyBindingsA��	�
�Q�r�N�	��.�.���Y��16�!�8�8=���	��rc��	|j|j��}tjdk(rB|j	�D]/\}}|D�cgc]}|jdd���}}||k7s�+|||<�1|Scc}w)Nr�z<Alt-z<Option-)�	GetKeySetr�rrr��items�replace)r�result�k�v�x�v2s      r
r�zIdleConf.GetCurrentKeySetsz��9����� 0� 0� 2�3���<�<�8�#�������1�?@�B�q�!�q�y�y��*�5�q��B���7� "�F�1�I�'�
�
��	Cs�A8c���	|j|�}|jd��}|D]?}|j|�}|s�|D]$}|||j�vrd||<||||<�&�A|S)N�r�rc)�GetCoreKeysr��_IdleConf__GetRawExtensionKeys�values)rr��keySetr�r�r�r�s       r
r�zIdleConf.GetKeySet,s���	�
�!�!�*�-���(�(�Q�(�7���D��0�0��6�G��$�E��u�~�����8�)+����$+�E�N�F�5�M�	%� ��
rc�4�	d|zdz|j�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�|jdsj|�s3|jdsj|�sdt|�du�}t|ds|�|S|D]G}|j	||�}|r|||<�||j
vs�,dv|�dw|�dx||��}t|ds||��I|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>)r�r�r�r�r�r�r�rYz7
 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.GetCoreKeysPs��	�<���
�6�<�
�
�}�5�<�
�-��7�	<�

$�m�X�%>�<�
 �-��
<�
$�m�_�<�
���<�
�}�o�<�
�
��<�
��x�<�
&��~�<�
���<�
#�Y�K�<�
&�
��<� 
���!<�"
 �.�!1�#<�$
%�y�k�%<�&
�	�{�'<�(
"�M�?�)<�*
(�-��+<�,
+�]�O�-<�.
���/<�0
���1<�2
#�Z�L�3<�4
.��/@�5<�6
&�	�{�7<�8
�
��9<�:
�y�k�;<�<
'�):�(;�=<�>
���?<�@
�}�f�5�A<�B
 �*��C<�D
!�>�"2�E<�F
���G<�H
�M�?�I<�J
�i�[�K<�L
"�$5�#6�M<�N
%�~�7G�&H�O<�P
��
�Q<�R
 �">�!?�S<�T
 �"=�!>�U<�V
!�=�/�W<�X
#�]�O�Y<�Z
 �-��[<�\
"�M�?�]<�^
�
��_<�`
%�}�o�a<�b
 �";�!<�c<�d
!�#9�":�e<�f
)�+@�*A�g<�h
� 1�2�i<�j(A�&A� 1�2�%2�O�)�l�/�0�!.�� -��w<��|��L�L��(�4�4�Z�@��O�O�F�+�7�7�
�C� �"��
�g�v�z�2� ��)�E�"�0�0��U�C�G��-4��E�*��d�&B�&B�B�#�J��E�0B�	D� ��g�v�z�5�A�)��rc���	g}|dk(r|jd}n |dk(r|jd}ntd��|jd�}|D]�}|j	d|d��}|jd�dk(rd	}d	}n7|j
d�}|d
j�}|dj�}|s�j|s�m|j|||f���|jd��
�|S)Nr�rWr)r��	HelpFiles�;r����rcrr�c��|dS)Nr�r)r�s r
�<lambda>z1IdleConf.GetExtraHelpSourceList.<locals>.<lambda>�s��q��tr)�key)
r]r\rr0r*�findr��stripr��sort)	rr��helpSourcesr�r.r'r:�menuItem�helpPaths	         r
�GetExtraHelpSourceListzIdleConf.GetExtraHelpSourceList�s���	���������V�,�I�
�)�
#�����/�I�"�#@�A�A��'�'��4���F��-�-��V�S�-�A�E��z�z�#��"�$������k�k�#�&���q����)���q����)���H��"�"�X�h�v�$>�@��	���^��,��rc�N�	|jd�|jd�z}|S)Nr)r�)r)r�allHelpSourcess  r
�GetAllExtraHelpSourcesListz#IdleConf.GetAllExtraHelpSourcesList�s2��	��5�5�i�@��+�+�F�3�4���rc��	|j||dd��}|j||ddd��}|j||dd	d
��}|dk(r<tdd
|��}tj|�}|d}|d}|d	krd}|ddk(}|||rdfSdfS)N�font�courierr�z	font-sizer�10r�z	font-boldrrr��TkFixedFontT)r�rP�root�family�size�
�weight�boldr�)r�r�actual)	rrr~r&rrr�f�
actualFonts	         r
�GetFontzIdleConf.GetFont�s���		����
�G�V�Y��O���~�~�j�'�;�U�&*��,���~�~�j�'�;��#)��+���m�#��-��4�@�A����Q��J���)�F��f�%�D��q�y����h�'�6�1�D����f�;�;�(�;�;rc��	|jD]<}|j|j�|j|j��>yr,)r\r4r]�rr
s  r
r`zIdleConf.LoadCfgFiles�s=��'��?�?�C��O�O�C� �%�%�'��L�L���"�"�$�#rc�b�	|jD]}|j|j��!yr,)r]rSr%s  r
�SaveUserCfgFileszIdleConf.SaveUserCfgFiles�s(��<��<�<�C��L�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�"�HIM�,1�&�PC�$� 
8�B�H5�4�$M�L�&��&�)-�49�'�RZ���$�$�(	��"�$>���`�D�@�<�4%�%rrUc��|f|z}|tvr2	t|tj��tj|�yy#t$rY�"wxYw)Nro)�_warnedrqrrrsrK�add)�msgr
s  r
r}r}sO���&�3�,�C�
�'��	��#�C�J�J�'�	���C�����	��	�s�A�	A�
Ac�<�eZdZ	d�Zd�Zed��Zd�Zd�Zd�Z	y)�
ConfigChangesc��	g|_tjD]%}i||<|jj||��'yr,)�pages�idleConfr[r�)r�config_types  r
rzConfigChanges.__init__!s=��3���
�#�0�0�K� "�D����J�J���d�;�/�0�1rc�H�	||}t|�}||vri||<||||<yr,)�str)rr2r&�itemr:�pages      r
�
add_optionzConfigChanges.add_option(s7��:��K� ���E�
���$���D��M�#��W�
�d�rc�$�	tj|j||�rItj|j||�|k(r#tj|j||�Stj|j
|||�Sr,)r1r\r"r*r]r>r;)r2r&r5r:s    r
�save_optionzConfigChanges.save_option0s���	����{�+�6�6�w��E��"�"�;�/�3�3�G�T�B�e�K��'�'��4�A�A�'�4�P�P�����,�6�6�w��e�L�Lrc	���	tjdj�d}|D]�}d}||}|D]]}|dk(r$tjdjd�d}||j	�D]\}}|j||||�s�d}��_|s�otj|j�d}��dD]#}tj|j��%|j
�|S)NrWFrT)rYrX)r1r]rSrCr�r9�clear)r�changedr2�cfg_type_changedr6r&r5r:s        r
�save_allzConfigChanges.save_all=s���	�
	���� �%�%�'����K�$����$�D����k�)��$�$�V�,�;�;�K�H�'+�$�#'��=�#6�#6�#8�K�D�%��'�'��W�d�E�J�+/�(�$9�	 � �� � ��-�2�2�4��� �1�K����[�)�.�.�0�1�	
�
�
���rc��	|||vr|||=tj|}|j|�|j�yr,)r1r]rCrS)rr2r&�
configpages    r
�delete_sectionzConfigChanges.delete_section[sK��	��d�;�'�'��[�!�'�*��%�%�k�2�
��!�!�'�*����rc�H�	|jD]}|j��yr,)r0r;)rr6s  r
r;zConfigChanges.clearfs ��	�
�J�J�D��J�J�L�rN)
rr	r
rr7r(r9r>rAr;rrr
r.r.s6���$1�$��
M��
M��<	�rr.c������ddlm�d\�����fd���fd�}|tj�|tj�td�d�d�	�y)
Nr)�crc32)rrc�n��t|�}�dz
��|jd�����t|�y)Nr�zutf-8)�encoding)r4�encoderq)�obj�txt�crcrD�lines  ���r
�sprintz_dump.<locals>.sprintus3����#�h����	���C�J�J��J�0�#�6��
�c�
rc
�,��td|d�t|�D]x}||j�}�|��|�|D]N}||j|�}�|��|�|D]#}�|dz||j	||�z��%�P�zy)N�
z = )rq�sortedrBr.r*)r^r
rBr&r.r'rLs      �r
�dumpCfgz_dump.<locals>.dumpCfg}s����
�d�C����#�;�C��3�x�(�(�*�H��3�K��8��#���c�(�*�*�7�3���w���w��%�F��6�E�>�C��H�L�L��&�,I�I�J�&�	$�	rz	
lines = z, crc = rc)�sep)�zlibrDr1r\r]rq)rPrJrDrKrLs @@@@r
�_dumprSqsH�����I�D�#��K��H��� ��H����	�,��j�#�2�6r�__main__)rWzidlelib.idle_test.test_configr�F)�	verbosity�exit)�configparserrrLrr�tkinter.fontrrf�	Exceptionrrrrr6rUr1r8r*r}�dictr.rSr�unittestrWrrr
�<module>r\s����6&�	�
���(�	�(�'�y�'�#�9�#�&!�\�&!�P@%��@%�Dm	%�m	%�`�:��

�%���_�D�_�F7�<�z����	(�A�E�B�	�G�	r

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists