<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
B
    YI~d•  ã               @   sà   d dl mZ d dlZd dlZd dlmZ d dlZG dd„ deƒZG dd„ deƒZ	G dd	„ d	eƒZ
G d
d„ deƒZG dd„ deƒZG dd„ dƒZeƒ Zeƒ Zdd„ ZG dd„ deƒZdd„ ZedkrÜd dlmZ edddd dS )é    )ÚConfigParserN)ÚFontc               @   s   e Zd ZdS )ÚInvalidConfigTypeN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú3/opt/alt/python37/lib64/python3.7/idlelib/config.pyr   #   s    r   c               @   s   e Zd ZdS )ÚInvalidConfigSetN)r   r   r   r   r   r   r	   r
   $   s    r
   c               @   s   e Zd ZdS )ÚInvalidThemeN)r   r   r   r   r   r   r	   r   %   s    r   c               @   s0   e Zd Zddd„Zddd„Zdd„ Zd	d
„ ZdS )ÚIdleConfParserNc             C   s   || _ tj| |dd d S )NF)ÚdefaultsÚstrict)Úfiler   Ú__init__)ÚselfÚcfgFileZcfgDefaultsr   r   r	   r   +   s    zIdleConfParser.__init__Fc             C   sL   |   ||¡s|S |dkr$|  ||¡S |dkr8|  ||¡S | j|||dS d S )NÚboolÚint)Úraw)Ú
has_optionZ
getbooleanZgetintÚget)r   ÚsectionÚoptionÚtypeÚdefaultr   r   r   r	   ÚGet2   s    zIdleConfParser.Getc             C   s   |   |¡r|  |¡S g S d S )N)Úhas_sectionÚoptions)r   r   r   r   r	   ÚGetOptionListC   s    

zIdleConfParser.GetOptionListc             C   s   | j r|  | j ¡ d S )N)r   Úread)r   r   r   r	   ÚLoadJ   s    zIdleConfParser.Load)N)NNF)r   r   r   r   r   r   r!   r   r   r   r	   r   '   s   

r   c               @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚIdleUserConfParserc             C   s^   |   ||¡r4|  ||¡|kr dS |  |||¡ dS n&|  |¡sH|  |¡ |  |||¡ dS d S )NFT)r   r   Úsetr   Úadd_section)r   r   r   Úvaluer   r   r	   Ú	SetOptionT   s    

zIdleUserConfParser.SetOptionc             C   s   |   |¡r|  ||¡S dS )NF)r   Zremove_option)r   r   r   r   r   r	   ÚRemoveOptione   s    
zIdleUserConfParser.RemoveOptionc             C   s   |   |¡s|  |¡ d S )N)r   r$   )r   r   r   r   r	   Ú
AddSectionn   s    
zIdleUserConfParser.AddSectionc             C   s*   x$|   ¡ D ]}|  |¡s
|  |¡ q
W d S )N)Úsectionsr   Úremove_section)r   r   r   r   r	   ÚRemoveEmptySectionss   s    
z&IdleUserConfParser.RemoveEmptySectionsc             C   s   |   ¡  |  ¡  S )N)r+   r)   )r   r   r   r	   ÚIsEmptyy   s    zIdleUserConfParser.IsEmptyc          	   C   s   | j }|rŒ|d dkrŒ|  ¡ sryt|dƒ}W n( tk
rT   t |¡ t|dƒ}Y nX | |  |¡ W d Q R X ntj | j ¡rŒt 	| j ¡ d S )Nr   ú#Úw)
r   r,   ÚopenÚOSErrorÚosÚunlinkÚwriteÚpathÚexistsÚremove)r   Zfnamer   r   r   r	   ÚSave~   s    
zIdleUserConfParser.SaveN)	r   r   r   r&   r'   r(   r+   r,   r7   r   r   r   r	   r"   O   s   	r"   c            	   @   s  e Zd ZdEdd„Zdd„ Zdd„ ZdFd
d„Zdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zedd„ ƒZdGd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d0d1d2d3d4d5d6d7d8h	ZdHd9d:„Zd;d<„ Zd=d>„ Zd?d@„ ZdAdB„ ZdCdD„ Z dS )IÚIdleConfFc             C   s0   d| _ i | _i | _i | _|s,|  ¡  |  ¡  d S )N)ÚmainÚ	highlightÚkeysÚ
extensions)Úconfig_typesÚ
defaultCfgÚuserCfgÚcfgÚCreateConfigHandlersÚLoadCfgFiles)r   Z_utestr   r   r	   r   œ   s    zIdleConf.__init__c             C   s|   t j t¡}tjrdn|  ¡  | _}xR| jD ]H}t	t j 
|d|› d¡ƒ| j|< tt j 
|p^dd|› d¡ƒ| j|< q,W d S )NÚ zconfig-z.defr-   z.cfg)r1   r4   ÚdirnameÚ__file__ÚidlelibÚtestingÚGetUserCfgDirÚuserdirr=   r   Újoinr>   r"   r?   )r   ZidledirrI   Zcfg_typer   r   r	   rA   ¨   s    zIdleConf.CreateConfigHandlersc             C   sò   d}t j d¡}|dkrbt j |¡sbtjs^d| d }yt|tjd W n t	k
r\   Y nX d}|dkrrt  
¡ }t j ||¡}t j |¡sîyt  |¡ W nR t	k
rì   tjsäd| d }yt|tjd W n t	k
râ   Y nX t‚Y nX |S )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!
)r1   r4   Ú
expanduserr5   rF   rG   ÚprintÚsysÚstderrr0   ÚgetcwdrJ   ÚmkdirÚ
SystemExit)r   ZcfgDirZuserDirÚwarnr   r   r	   rH   ²   s4    
zIdleConf.GetUserCfgDirNTc       	      C   sÜ   y.| j |  ||¡r,| j | j||||dS W nD tk
rr   d|||| j | j|||df }t||||ƒ Y nX y.| j|  ||¡r | j| j||||dS W n tk
r¶   Y nX |rØd|||f }t||||ƒ |S )N)r   r   zn
 Warning: config.py - IdleConf.GetOption -
 invalid %r value for configuration option %r
 from section %r: %r)r   z†
 Warning: config.py - IdleConf.GetOption -
 problem retrieving configuration option %r
 from section %r.
 returning default value: %r)r?   r   r   Ú
ValueErrorÚ_warnr>   )	r   Ú
configTyper   r   r   r   Úwarn_on_defaultr   Úwarningr   r   r	   Ú	GetOptionÖ   s(    
zIdleConf.GetOptionc             C   s   | j |  |||¡ d S )N)r?   r&   )r   rV   r   r   r%   r   r   r	   r&   þ   s    zIdleConf.SetOptionc             C   sJ   || j krtdƒ‚|dkr&| j| }n|dkr:| j| }ntdƒ‚| ¡ S )NzInvalid configType specifiedÚuserr   zInvalid configSet specified)r=   r   r?   r>   r
   r)   )r   Ú	configSetrV   Ú	cfgParserr   r   r	   ÚGetSectionList  s    
zIdleConf.GetSectionListc             C   sR   | j d  |¡rdnd}|  ||¡}||d  }|dkr<d}||d  }||dœS )	Nr:   r   rZ   z-foregroundZcursorÚnormalz-background)Z
foregroundZ
background)r>   r   ÚGetThemeDict)r   ÚthemeÚelementr@   Z
theme_dictZforeZbackr   r   r	   ÚGetHighlight  s    zIdleConf.GetHighlightc              C   sÔ   |dkr| j d }n|dkr(| jd }ntdƒ‚ddddddddddddddddddddddddddddddddœ}xZ|D ]R}| ||¡s´| d	¡s´d
|||| f }t|d||ƒ |j|||| d||< qzW |S )NrZ   r:   r   zInvalid theme type specifiedz#000000z#ffffffZgray)znormal-foregroundznormal-backgroundzkeyword-foregroundzkeyword-backgroundzbuiltin-foregroundzbuiltin-backgroundzcomment-foregroundzcomment-backgroundzstring-foregroundzstring-backgroundzdefinition-foregroundzdefinition-backgroundzhilite-foregroundzhilite-backgroundzbreak-foregroundzbreak-backgroundzhit-foregroundz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-z{
 Warning: config.IdleConf.GetThemeDict -
 problem retrieving theme element %r
 from theme %r.
 returning default color: %r)r   )r?   r>   r   r   Ú
startswithrU   r   )r   r   Z	themeNamer\   r`   ra   rX   r   r   r	   r_   !  sZ    

zIdleConf.GetThemeDictc             C   s
   |   d¡S )NÚTheme)Úcurrent_colors_and_keys)r   r   r   r	   ÚCurrentThemee  s    zIdleConf.CurrentThemec             C   s
   |   d¡S )NZKeys)re   )r   r   r   r	   ÚCurrentKeysi  s    zIdleConf.CurrentKeysc             C   sŽ   |dkrdnd}| j d|dddd}d	}|r>| j d|d
d	d}|sT| j d|dd	d}|rz|rb| jn| j}||  |¡rz|S |dkr†dS |  ¡ S )Nrd   r:   r;   r9   r   r   T)r   r   rC   Zname2)r   ÚnamezIDLE Classic)rY   r>   r?   r   Údefault_keys)r   r   Zcfgnamer   rh   Úsourcer   r   r	   re   m  s    

z IdleConf.current_colors_and_keysc               C   s,   t jd d… dkrdS t jdkr$dS dS d S )Né   ÚwinzIDLE Classic WindowsÚdarwinzIDLE Classic OSXzIDLE Modern Unix)rN   Úplatformr   r   r   r	   ri   “  s
    
zIdleConf.default_keysc       	   	   C   sÔ   |   |  dd¡¡}|   |  dd¡¡}x|D ]}||kr*| |¡ q*W xdD ]}| |¡ qJW |rÌg }xb|D ]Z}| jd|ddddrj|sŠ|rº|r”d	}nd
}| jd||ddddrÄ| |¡ qj| |¡ qjW |S |S d S )Nr   r<   rZ   )ZAutoCompleteZCodeContextZFormatParagraphZ
ParenMatchZenableTr   )r   r   Zenable_editorZenable_shellF)r   r   rW   )ÚRemoveKeyBindNamesr]   Úappendr6   rY   )	r   Úactive_onlyZeditor_onlyZ
shell_onlyZextnsZ	userExtnsÚextnÚactiveExtnsr   r   r   r	   ÚGetExtensionsœ  s2    



zIdleConf.GetExtensionsc             C   s   dd„ |D ƒS )Nc             S   s   g | ]}|  d ¡s|‘qS ))Ú	_bindingsÚ_cfgBindings)Úendswith)Ú.0Únr   r   r	   ú
<listcomp>Ç  s    z/IdleConf.RemoveKeyBindNames.<locals>.<listcomp>r   )r   ZextnNameListr   r   r	   ro   Å  s    zIdleConf.RemoveKeyBindNamesc             C   sJ   d }d| d }x4| j ddD ]$}x|  |¡D ]}||kr.|}q.W qW |S )Nz<<z>>r   )rq   )rt   ÚGetExtensionKeys)r   ÚvirtualEventZextNameZvEventrr   Úeventr   r   r	   ÚGetExtnNameForEventÉ  s    zIdleConf.GetExtnNameForEventc       	      C   sb   |d }|   ¡ }i }| jd  |¡r^| jd  |¡}x(|D ] }d| d }|| }|||< q:W |S )Nrv   r<   z<<z>>)ÚGetCurrentKeySetr>   r   r   )	r   ÚextensionNameÚkeysNameZ
activeKeysÚextKeysÚ
eventNamesÚ	eventNamer}   Úbindingr   r   r	   r{   ×  s    
zIdleConf.GetExtensionKeysc             C   sh   |d }i }| j d  |¡rd| j d  |¡}x6|D ].}| jd||dd ¡ }d| d }|||< q2W |S )Nrv   r<   rC   )r   z<<z>>)r>   r   r   rY   Úsplit)r   r€   r   r‚   rƒ   r„   r…   r}   r   r   r	   Z__GetRawExtensionKeysé  s    
zIdleConf.__GetRawExtensionKeysc             C   sn   |d }|   |¡}| jd  |¡rj| jd  |¡}x6|D ].}| jd||dd ¡ }d| d }|||< q8W |S )Nru   r<   rC   )r   z<<z>>)r{   r>   r   r   rY   r†   )r   r€   Z	bindsNameZextBindsrƒ   r„   r…   r}   r   r   r	   ÚGetExtensionBindingsû  s    

zIdleConf.GetExtensionBindingsc             C   s(   |dd… }| j d||ddd ¡ }|S )Né   éþÿÿÿr;   rC   F)r   rW   )rY   r†   )r   Ú
keySetNameZeventStrr„   r…   r   r   r	   ÚGetKeyBinding  s    zIdleConf.GetKeyBindingc             C   sP   |   |  ¡ ¡}tjdkrLx2| ¡ D ]&\}}dd„ |D ƒ}||kr"|||< q"W |S )Nrm   c             S   s   g | ]}|  d d¡‘qS )z<Alt-z<Option-)Úreplace)rx   Úxr   r   r	   rz   %  s    z-IdleConf.GetCurrentKeySet.<locals>.<listcomp>)Ú	GetKeySetrg   rN   rn   Úitems)r   ÚresultÚkÚvZv2r   r   r	   r     s    
zIdleConf.GetCurrentKeySetc             C   sh   |   |¡}| jdd}xL|D ]D}|  |¡}|rx0|D ](}|| | ¡ krPd||< || ||< q4W qW |S )Né   )rq   rC   )ÚGetCoreKeysrt   Ú_IdleConf__GetRawExtensionKeysÚvalues)r   rŠ   ZkeySetrs   rr   r‚   r}   r   r   r	   rŽ   +  s    



zIdleConf.GetKeySetc             C   s   d| d |   ¡ kS )Nz<<z>>)r”   )r   r|   r   r   r	   ÚIsCoreBinding=  s    zIdleConf.IsCoreBindingz<<force-open-completions>>z<<expand-word>>z<<force-open-calltip>>z<<flash-paren>>z<<format-paragraph>>z<<run-module>>z<<check-module>>z<<zoom-height>>z<<run-custom>>c          ;   C   s˜  ddgddgddgddgd	gd
gdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgdgd gd!d"gd#gd$gd%gd&gd'gd(gd)d*gd+gd,gd-gd.gd/gd0gd1gd2gd3gd4gd5gd6gd7gd8gd9gd:gd;gd<gd=gd>gd?œ:}|r”| j d@  |¡s<| jd@  |¡s<dA|f }t|d@|ƒ nXxV|D ]N}|  ||¡}|rb|||< n,|| jkrBdB|||| f }t|d@||ƒ qBW |S )CNz<Control-c>z<Control-C>z<Control-x>z<Control-X>z<Control-v>z<Control-V>z<Control-a>z<Home>z<Control-l>z<Control-q>z<Alt-F4>z<Control-d>z<F1>z
<Shift-F1>z<Alt-n>z<Alt-p>z<F6>z<Control-F6>z<Alt-c>z<Alt-m>z<Control-n>z<Control-o>z<Control-j>z<Control-p>z<Control-y>z<Escape>z<Alt-Shift-S>z<Alt-s>z<Control-s>z<Alt-a>z<Control-slash>z<Control-z>z<Control-g>z<F3>z<Alt-F3>z<Control-F3>z<Control-f>z<Control-h>z<Alt-g>z<Key-BackSpace>z<Key-Return>z<Key-KP_Enter>z	<Key-Tab>z<Control-Key-bracketright>z<Control-Key-bracketleft>z<Alt-Key-3>z<Alt-Key-4>z<Alt-Key-5>z<Alt-Key-6>z<Alt-Key-t>z<Alt-Key-u>z<Control-Key-BackSpace>z<Control-Key-Delete>z<Control-Key-space>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>):z<<copy>>z<<cut>>z	<<paste>>z<<beginning-of-line>>z<<center-insert>>z<<close-all-windows>>z<<close-window>>z<<do-nothing>>z<<end-of-file>>z<<python-docs>>z<<python-context-help>>z<<history-next>>z<<history-previous>>z<<interrupt-execution>>z<<view-restart>>z<<restart-shell>>z<<open-class-browser>>z<<open-module>>z<<open-new-window>>z<<open-window-from-file>>z<<plain-newline-and-indent>>z<<print-window>>z<<redo>>z<<remove-selection>>z<<save-copy-of-window-as-file>>z<<save-window-as-file>>z<<save-window>>z<<select-all>>z<<toggle-auto-coloring>>z<<undo>>z<<find-again>>z<<find-in-files>>z<<find-selection>>z<<find>>z<<replace>>z<<goto-line>>z<<smart-backspace>>z<<newline-and-indent>>z<<smart-indent>>z<<indent-region>>z<<dedent-region>>z<<comment-region>>z<<uncomment-region>>z<<tabify-region>>z<<untabify-region>>z<<toggle-tabs>>z<<change-indentwidth>>z<<del-word-left>>z<<del-word-right>>z<<force-open-completions>>z<<expand-word>>z<<force-open-calltip>>z<<flash-paren>>z<<format-paragraph>>z<<run-module>>z<<run-custom>>z<<check-module>>z<<zoom-height>>r;   za
 Warning: config.py - IdleConf.GetCoreKeys -
 key set %r is not defined, using default bindings.z‰
 Warning: config.py - IdleConf.GetCoreKeys -
 problem retrieving key binding for event %r
 from key set %r.
 returning default value: %r)r?   r   r>   rU   r‹   Úformer_extension_events)r   rŠ   ZkeyBindingsrX   r}   r…   r   r   r	   r”   O  s’    



zIdleConf.GetCoreKeysc       	      C   sÂ   g }|dkr| j d }n|dkr,| jd }ntdƒ‚| d¡}xn|D ]f}|jd|dd}| d¡dkrpd	}d	}n"| d¡}|d
  ¡ }|d  ¡ }|rD|rD| |||f¡ qDW |j	dd„ d |S )NrZ   r9   r   zInvalid configSet specifiedÚ	HelpFilesú;)r   éÿÿÿÿrC   r   r“   c             S   s   | d S )Nrˆ   r   )r   r   r   r	   Ú<lambda>Ì  ó    z1IdleConf.GetExtraHelpSourceList.<locals>.<lambda>)Úkey)
r?   r>   r
   r   r   Úfindr†   Ústriprp   Úsort)	r   r[   ZhelpSourcesr\   r   r   r%   ZmenuItemZhelpPathr   r   r	   ÚGetExtraHelpSourceList¯  s&    



zIdleConf.GetExtraHelpSourceListc             C   s   |   d¡|   d¡ }|S )Nr   rZ   )r¢   )r   ZallHelpSourcesr   r   r	   ÚGetAllExtraHelpSourcesListÏ  s    z#IdleConf.GetAllExtraHelpSourcesListc       	      C   s”   | j ||ddd}| j ||dddd}| j ||dd	d
d}|dkr‚tdd|d}t |¡}|d }|d }|d	krvd}|d dk}|||rŽdndfS )NZfontZcourier)r   z	font-sizer   Z10)r   r   z	font-boldr   r   )r   r   ZTkFixedFontT)rh   r5   ÚrootÚfamilyÚsizeé
   ZweightÚboldr^   )rY   r   Úactual)	r   r¤   rV   r   r¥   r¦   r¨   ÚfZ
actualFontr   r   r	   ÚGetFontØ  s    
zIdleConf.GetFontc             C   s0   x*| j D ] }| j |  ¡  | j|  ¡  qW d S )N)r>   r!   r?   )r   rž   r   r   r	   rB   ò  s    zIdleConf.LoadCfgFilesc             C   s"   x| j D ]}| j |  ¡  qW d S )N)r?   r7   )r   rž   r   r   r	   ÚSaveUserCfgFilesø  s    zIdleConf.SaveUserCfgFiles)F)NNTF)TFF)N)!r   r   r   r   rA   rH   rY   r&   r]   rb   r_   rf   rg   re   Ústaticmethodri   rt   ro   r~   r{   r•   r‡   r‹   r   rŽ   r—   r˜   r”   r¢   r£   r«   rB   r¬   r   r   r   r	   r8   ‘   sD   

$ 
'D&	 
(
` 	r8   c             G   sH   | f| }|t krDyt| tjd W n tk
r8   Y nX t  |¡ d S )N)r   )Ú_warnedrM   rN   rO   r0   Úadd)Úmsgrž   r   r   r	   rU     s    
rU   c               @   s@   e Zd Zdd„ Zdd„ Zedd„ ƒZdd„ Zd	d
„ Zdd„ Z	dS )ÚConfigChangesc             C   s2   g | _ x&tjD ]}i | |< | j  | | ¡ qW d S )N)ÚpagesÚidleConfr=   rp   )r   Úconfig_typer   r   r	   r     s    zConfigChanges.__init__c             C   s0   | | }t |ƒ}||kr i ||< ||| |< d S )N)Ústr)r   r´   r   Úitemr%   Úpager   r   r	   Ú
add_option%  s
    zConfigChanges.add_optionc             C   sN   t j|   ||¡r:t j|   ||¡|kr:t j|   ||¡S t j|   |||¡S )N)r³   r>   r   r   r?   r'   r&   )r´   r   r¶   r%   r   r   r	   Úsave_option-  s    zConfigChanges.save_optionc          	   C   sÂ   t jd  ¡  d}x†| D ]~}d}| | }xV|D ]N}|dkrNt jd  d¡ d}x,||  ¡ D ]\}}|  ||||¡r\d}q\W q.W |rt j|  ¡  d}qW xdD ]}t j|  ¡  q W |  ¡  |S )Nr9   Fr™   T)r;   r:   )r³   r?   r7   r*   r   r¹   Úclear)r   Zchangedr´   Zcfg_type_changedr·   r   r¶   r%   r   r   r	   Úsave_all:  s&    


zConfigChanges.save_allc             C   s6   || | kr| | |= t j| }| |¡ | ¡  d S )N)r³   r?   r*   r7   )r   r´   r   Z
configpager   r   r	   Údelete_sectionX  s
    


zConfigChanges.delete_sectionc             C   s   x| j D ]}| ¡  qW d S )N)r²   rº   )r   r·   r   r   r	   rº   c  s    zConfigChanges.clearN)
r   r   r   r   r¸   r­   r¹   r»   r¼   rº   r   r   r   r	   r±     s   r±   c                 sV   ddl m‰  d\} }‡ fdd„‰‡fdd„}|tjƒ |tjƒ td| d	|d
d d S )Nr   )Úcrc32)r   r   c                s.   t | ƒ}td7 aˆ |jddtƒat|ƒ d S )Nr“   zutf-8)Úencoding)rµ   ÚlineÚencodeÚcrcrM   )ÚobjZtxt)r½   r   r	   Úsprintr  s    z_dump.<locals>.sprintc          	      s˜   t d| dƒ x†t|  ¡ ƒD ]v}| |  ¡ }ˆ |ƒ ˆ |ƒ xT|D ]L}| |  |¡}ˆ |ƒ ˆ |ƒ x(|D ] }ˆ |d | |  ||¡ ƒ qhW q@W qW d S )NÚ
z = )rM   Úsortedr;   r)   r   r   )r@   rž   r)   r   r   r   )rÃ   r   r	   ÚdumpCfgz  s    

z_dump.<locals>.dumpCfgz	
lines = z, crc = rC   )Úsep)Úzlibr½   r³   r>   r?   rM   )r¿   rÁ   rÆ   r   )r½   rÃ   r	   Ú_dumpn  s    

rÉ   Ú__main__)r9   zidlelib.idle_test.test_configrˆ   F)Ú	verbosityÚexit)Zconfigparserr   r1   rN   Ztkinter.fontr   rF   Ú	Exceptionr   r
   r   r   r"   r8   r³   r#   r®   rU   Údictr±   rÉ   r   Zunittestr9   r   r   r   r	   Ú<module>   s,   (B    q
c