B
    2*™\€›  ã               @   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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   ú9C:\ALexclude\prg\programme\Python37\Lib\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 )ÚInvalidFgBgN)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	   ÚGet3   s    zIdleConfParser.Getc             C   s   |   |¡r|  |¡S g S d S )N)Úhas_sectionÚoptions)r   r   r   r   r	   ÚGetOptionListD   s    

zIdleConfParser.GetOptionListc             C   s   | j r|  | j ¡ d S )N)r   Úread)r   r   r   r	   ÚLoadK   s    zIdleConfParser.Load)N)NNF)r   r   r   r   r   r    r"   r   r   r   r	   r   (   s   

r   c               @   sD   e Zd Zd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	   Ú	SetOptionU   s    

zIdleUserConfParser.SetOptionc             C   s   |   |¡r|  ||¡S dS )NF)r   Zremove_option)r   r   r   r   r   r	   ÚRemoveOptionf   s    
zIdleUserConfParser.RemoveOptionc             C   s   |   |¡s|  |¡ d S )N)r   r%   )r   r   r   r   r	   Ú
AddSectiono   s    
zIdleUserConfParser.AddSectionc             C   s*   x$|   ¡ D ]}|  |¡s
|  |¡ q
W d S )N)Úsectionsr    Úremove_section)r   r   r   r   r	   ÚRemoveEmptySectionst   s    
z&IdleUserConfParser.RemoveEmptySectionsc             C   s   |   ¡  |  ¡  S )N)r,   r*   )r   r   r   r	   ÚIsEmptyz   s    zIdleUserConfParser.IsEmptyc             C   s   t j | j¡rt  | j¡ d S )N)ÚosÚpathÚexistsr   Úremove)r   r   r   r	   Ú
RemoveFile   s    zIdleUserConfParser.RemoveFilec          	   C   sr   | j }|rn|  ¡ sfyt|dƒ}W n( tk
rH   t |¡ t|dƒ}Y nX | |  |¡ W d Q R X n|  ¡  d S )NÚw)r   r-   ÚopenÚOSErrorr.   ÚunlinkÚwriter2   )r   Zfnamer   r   r   r	   ÚSave„   s    
zIdleUserConfParser.SaveN)
r   r   r   r'   r(   r)   r,   r-   r2   r8   r   r   r   r	   r#   P   s   	r#   c               @   s  e Zd ZdDdd„Zdd„ Zd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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d0d1d2d3d4d5d6d7hZdHd8d9„Zd:d;„ Zd<d=„ Zd>d?„ Zd@dA„ ZdBdC„ 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 dkrtj t¡}ntj tjd ¡}|  ¡  | _}i }i }xB| j	D ]8}tj 
|d| d ¡||< tj 
|d| d ¡||< qFW x2| j	D ](}t|| ƒ| j|< t|| ƒ| j|< qŠW d S )NÚ__main__r   zconfig-z.defz.cfg)r   r.   r/   ÚdirnameÚ__file__ÚabspathÚsysÚGetUserCfgDirZuserdirr>   Újoinr   r?   r#   r@   )r   ZidleDirÚuserDirZdefCfgFilesZusrCfgFilesZcfgTyper   r   r	   rB   ­   s    zIdleConf.CreateConfigHandlersc             C   sÒ   d}t j d¡}|dkr\t j |¡s\d| d }yt|tjd W n tk
rV   Y nX d}|dkrlt  ¡ }t j 	||¡}t j |¡sÎyt  
|¡ W n8 tk
rÌ   d| d }tjsÄt|tjd 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!
)r.   r/   Ú
expanduserr0   ÚprintrH   Ústderrr5   ÚgetcwdrJ   ÚmkdirÚidlelibZtestingÚ
SystemExit)r   ZcfgDirrK   Úwarnr   r   r	   rI   Â   s,    
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   rW   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   Ú	configSetrW   Ú	cfgParserr   r   r	   ÚGetSectionList  s    
zIdleConf.GetSectionListc             C   s’   | j d  |¡r|  d|¡}n|  d|¡}||d  }|dkrH|d }n||d  }||dœ}|sf|S |d	krv|d
 S |dkr†|d S tdƒ‚d S )Nr;   r   r[   z-foregroundZcursorznormal-backgroundz-background)Ú
foregroundÚ
backgroundZfgr_   Úbgr`   zInvalid fgBg specified)r?   r   ÚGetThemeDictr   )r   ÚthemeÚelementZfgBgZ	themeDictZforeZbackr;   r   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œ}xP|D ]H}| ||¡s¦d	|||| f }t|d||ƒ |j|||| d
||< qvW |S )Nr[   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cursor-foregroundzstdout-foregroundzstdout-backgroundzstderr-foregroundzstderr-backgroundzconsole-foregroundzconsole-backgroundzcontext-foregroundzcontext-backgroundz{
 Warning: config.IdleConf.GetThemeDict -
 problem retrieving theme element %r
 from theme %r.
 returning default color: %r)r   )r@   r?   r   r   rV   r   )r   r   Z	themeNamer]   rc   rd   rY   r   r   r	   rb   ;  sT    
zIdleConf.GetThemeDictc             C   s
   |   d¡S )NÚTheme)Úcurrent_colors_and_keys)r   r   r   r	   ÚCurrentTheme{  s    zIdleConf.CurrentThemec             C   s
   |   d¡S )NZKeys)rg   )r   r   r   r	   ÚCurrentKeys  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 )Nrf   r;   r<   r:   r   r   T)r   r   Ú Zname2)r   ÚnamezIDLE Classic)rZ   r?   r@   r   Údefault_keys)r   r   Zcfgnamer   rk   Úsourcer   r   r	   rg   ƒ  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)rH   Úplatformr   r   r   r	   rl   ©  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=   r[   )ZAutoCompleteZCodeContextZFormatParagraphZ
ParenMatchZenableTr   )r   r   Zenable_editorZenable_shellF)r   r   rX   )ÚRemoveKeyBindNamesr^   Úappendr1   rZ   )	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	   rr   Û  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   )rt   )rw   ÚGetExtensionKeys)r   ÚvirtualEventZextNameZvEventru   Úeventr   r   r	   ÚGetExtnNameForEventß  s    zIdleConf.GetExtnNameForEventc       	      C   sb   |d }|   ¡ }i }| jd  |¡r^| jd  |¡}x(|D ] }d| d }|| }|||< q:W |S )Nry   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 )Nry   r=   rj   )r   z<<z>>)r?   r   r    rZ   Ú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 )Nrx   r=   rj   )r   z<<z>>)r~   r?   r   r    rZ   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<   rj   F)r   rX   )rZ   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 )Nrp   c             S   s   g | ]}|  d d¡‘qS )z<Alt-z<Option-)Úreplace)r{   Úxr   r   r	   r}   ;  s    z-IdleConf.GetCurrentKeySet.<locals>.<listcomp>)Ú	GetKeySetri   rH   rq   Úitems)r   ÚresultÚkÚvZv2r   r   r	   r‚   0  s    
zIdleConf.GetCurrentKeySetc             C   sh   |   |¡}| jdd}xL|D ]D}|  |¡}|rx0|D ](}|| | ¡ krPd||< || ||< q4W qW |S )Né   )rt   rj   )ÚGetCoreKeysrw   Ú_IdleConf__GetRawExtensionKeysÚvalues)r   r   ZkeySetrv   ru   r…   r€   r   r   r	   r‘   A  s    



zIdleConf.GetKeySetc             C   s   d| d |   ¡ kS )Nz<<z>>)r—   )r   r   r   r   r	   ÚIsCoreBindingS  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>>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>œ9}|r| j d?  |¡s8| jd?  |¡s8d@|f }t|d?|ƒ nXxV|D ]N}|  ||¡}|r^|||< n,|| jkr>dA|||| f }t|d?||ƒ q>W |S )BNz<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<Alt-Key-x>z<Alt-Key-2>)9z<<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<<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?   rV   rŽ   Úformer_extension_events)r   r   ZkeyBindingsrY   r€   rˆ   r   r   r	   r—   c  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 )Nr[   r:   r   zInvalid configSet specifiedÚ	HelpFilesú;)r   éÿÿÿÿrj   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‰   Ústriprs   Úsort)	r   r\   ZhelpSourcesr]   r   r   r&   ZmenuItemZhelpPathr   r   r	   ÚGetExtraHelpSourceListÂ  s&    



zIdleConf.GetExtraHelpSourceListc             C   s   |   d¡|   d¡ }|S )Nr   r[   )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)rk   r0   ÚrootÚfamilyÚsizeé
   ZweightÚboldZnormal)rZ   r   Úactual)	r   r§   rW   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	   rC     s    zIdleConf.LoadCfgFilesc             C   s"   x| j D ]}| j |  ¡  qW d S )N)r@   r8   )r   r¡   r   r   r	   ÚSaveUserCfgFiles  s    zIdleConf.SaveUserCfgFiles)F)NNTF)N)TFF)N)!r   r   r   r   rB   rI   rZ   r'   r^   re   rb   rh   ri   rg   Ústaticmethodrl   rw   rr   r   r~   r˜   rŠ   rŽ   r‚   r‘   rš   r›   r—   r¥   r¦   r®   rC   r¯   r   r   r   r	   r9   ˜   sB   

  
'
@&	 
(

_ 	r9   c             G   sH   | f| }|t krDyt| tjd W n tk
r8   Y nX t  |¡ d S )N)r   )Ú_warnedrN   rH   rO   r5   Úadd)Úmsgr¡   r   r   r	   rV     s    
rV   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>   rs   )r   Úconfig_typer   r   r	   r   1  s    zConfigChanges.__init__c             C   s0   | | }t |ƒ}||kr i ||< ||| |< d S )N)Ústr)r   r·   r   Úitemr&   Úpager   r   r	   Ú
add_option8  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 )Nr:   Frœ   T)r<   r;   )r¶   r@   r8   r+   r’   r¼   Úclear)r   Zchangedr·   Zcfg_type_changedrº   r   r¹   r&   r   r   r	   Úsave_allM  s&    


zConfigChanges.save_allc             C   s6   || | kr| | |= t j| }| |¡ | ¡  d S )N)r¶   r@   r+   r8   )r   r·   r   Z
configpager   r   r	   Údelete_sectionk  s
    


zConfigChanges.delete_sectionc             C   s   x| j D ]}| ¡  qW d S )N)rµ   r½   )r   rº   r   r   r	   r½   v  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ÚcrcrN   )ÚobjZtxt)rÀ   r   r	   Úsprint…  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 = )rN   Úsortedr<   r*   r   r   )rA   r¡   r*   r   r   r   )rÆ   r   r	   ÚdumpCfg  s    

z_dump.<locals>.dumpCfgz	
lines = z, crc = rj   )Úsep)ÚzlibrÀ   r¶   r?   r@   rN   )rÂ   rÄ   rÉ   r   )rÀ   rÆ   r	   Ú_dump  s    

rÌ   rD   )r:   zidlelib.idle_test.test_configr‹   F)Ú	verbosityÚexit)Zconfigparserr   r.   rH   Ztkinter.fontr   rR   Ú	Exceptionr   r
   r   r   r   r#   r9   r¶   r$   r±   rV   Údictr´   rÌ   r   Zunittestr:   r   r   r   r	   Ú<module>   s.   (H    }
c