PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  pY~@skddlZddlZddlmZddlmZddlmZmZGddde Z Gddde Z Gd d d e Z Gd d d e Z Gd ddeZGdddeZGdddZeZedkrgddlmZddf\aaddZddZeejeejedtdtdddS)N) ConfigParser) TkVersion)Font nametofontc@seZdZdS)InvalidConfigTypeN)__name__ __module__ __qualname__r r ,/opt/python35/lib/python3.5/configHandler.pyrs rc@seZdZdS)InvalidConfigSetN)rrr r r r r r s r c@seZdZdS) InvalidFgBgN)rrr r r r r r s r c@seZdZdS) InvalidThemeN)rrr r r r r rs rc@sLeZdZdddZdddddZddZd d ZdS) IdleConfParserNcCs&||_tj|d|dddS)NdefaultsstrictF)filer__init__)selfcfgFileZ cfgDefaultsr r r r%s zIdleConfParser.__init__FcCsh|j||s|S|dkr2|j||S|dkrN|j||S|j||d|SdS)Nboolintraw) has_optionZ getbooleanZgetintget)rsectionoptiontypedefaultrr r r Get,s  zIdleConfParser.GetcCs$|j|r|j|SgSdS)N) has_sectionoptions)rrr r r GetOptionList=s zIdleConfParser.GetOptionListcCs|j|jdS)N)readr)rr r r LoadDszIdleConfParser.Load)rrr rrr"r$r r r r r!s  rc@sdeZdZddZddZddZddZd d Zd d Zd dZ dS)IdleUserConfParsercCs |j|s|j|dS)N)r add_section)rrr r r AddSectionMszIdleUserConfParser.AddSectioncCs7x0|jD]"}|j|s |j|q WdS)N)sectionsr"Zremove_section)rrr r r RemoveEmptySectionsRsz&IdleUserConfParser.RemoveEmptySectionscCs|j|j S)N)r)r()rr r r IsEmptyXs zIdleUserConfParser.IsEmptycCs#|j|r|j||SdS)NF)r Z remove_option)rrrr r r RemoveOption]szIdleUserConfParser.RemoveOptioncCs|j||rH|j|||kr.dS|j|||dSn3|j|sd|j||j|||dSdS)NFT)rrsetr r&)rrrvaluer r r SetOptionfs zIdleUserConfParser.SetOptioncCs)tjj|jr%tj|jdS)N)ospathexistsrremove)rr r r RemoveFilewszIdleUserConfParser.RemoveFilecCs|jsw|j}yt|d}Wn.tk rXtj|t|d}YnX||j|WdQRXn |jdS)Nw)r*ropenOSErrorr/unlinkwriter3)rZfnamerr r r Save|s    zIdleUserConfParser.SaveN) rrr r'r)r*r+r.r3r9r r r r r%Hs      r%c@sceZdZddZddZddZdddd d d Zd d ZddZdddZ ddZ ddZ ddZ dd d ddZ ddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zdd,d-Zd.d/Zd0d1Zd2d3Zd4d5Zd6d7ZdS)8IdleConfcCs<d|_i|_i|_i|_|j|jdS)Nmain extensions highlightkeys)r;r<r=r>) config_types defaultCfguserCfgcfgCreateConfigHandlers LoadCfgFiles)rr r r rs      zIdleConf.__init__cCstdkr!tjjt}ntjjtjd}|j}i}i}xS|jD]H}tjj |d|d||>rkr)rnGetExtensionKeys)r virtualEventZextNameZvEventrleventr r r GetExtnNameForEvents zIdleConf.GetExtnNameForEventc Cs|d}|j}i}|jdj|r{|jdj|}x0|D](}d|d}||}|||>)GetCurrentKeySetr@r r") r extensionNamekeysNameZ activeKeysextKeys eventNames eventNamerxbindingr r r rvs    zIdleConf.GetExtensionKeyscCs|d}i}|jdj|r|jdj|}xG|D]?}|jd||ddj}d|d}|||>)r@r r"rYsplit)rr{r|r}r~rrrxr r r Z__GetRawExtensionKeyss  zIdleConf.__GetRawExtensionKeyscCs|d}|j|}|jdj|r|jdj|}xG|D]?}|jd||ddj}d|d}|||>)rvr@r r"rYr)rr{Z bindsNameZextBindsr~rrrxr r r GetExtensionBindingss  zIdleConf.GetExtensionBindingscCs5|dd}|jd||ddj}|S)Nr>rrc)rYr)r keySetNameZeventStrrrr r r GetKeyBinding s!zIdleConf.GetKeyBindingcCsn|j|j}tjdkrjxC|jD]5\}}dd|D}||kr1|||"s z-IdleConf.GetCurrentKeySet..) GetKeySetrgrIplatformitems)rresultkvZv2r r r rzs zIdleConf.GetCurrentKeySetcCs|j|}|jdd}xb|D]Z}|j|}|r(x<|D]4}|||jkrpd||<||||>)r)rrwr r r IsCoreBinding:szIdleConf.IsCoreBindingcbCsTdddgdddgddd gd d d gd dgddgddgddgddgddgddgddgddgddgdd gd!d"gd#d$gd%d&gd'd(gd)d*gd+d,gd-d.gd/d0gd1d2gd3d4gd5d6gd7d8gd9d:gd;d<gd=d>gd?d@dAgdBdCgdDdEgdFdGgdHdIgdJdKgdLdMgdNdOdPgdQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]d^gd_d`gdadbgdcddgdedfgi1}|rPxv|D]n}|j||}|r |||>z z z<>z z z <>z z z<>z zz<>z z<>z z<>zz<>z<>z z<>zz<>z z<>zz<>zz<>z<>zz<>z z<>zz<>zz<>z z<>z z<>z z<>z z<>z z<>zz<>z z<>zz<>z z<>zz<>zz<>z z<>z zz<>zz<>z z<>z z <>z z <>zz<>zz<>z zz<>z z<>zz<>zz<>z z<>z z<>z z<>z z<>z z<>z z<>zz<>zz Warning: configHandler.py - IdleConf.GetCoreKeys - problem retrieving key binding for event %r from key set %r. returning default value: %rr)rrOrIrPr6)rrZ keyBindingsrxrrXr r r rEsz                                                    zIdleConf.GetCoreKeysc Csg}|dkr"|jd}n(|dkr>|jd}n td|jd}x|D]}|jd|dd}|jdd krd}d}n/|jd}|d j}|dj}|r`|r`|j|||fq`W|j d d d |S)NrZr;rzInvalid configSet specifiedZ HelpFiles;rrcrkeycSs|dS)Nrr )rr r r sz1IdleConf.GetExtraHelpSourceList..) rAr@r r"rfindrstriprjrt) rr[Z helpSourcesr\r!rr-ZmenuItemZhelpPathr r r GetExtraHelpSourceLists&       zIdleConf.GetExtraHelpSourceListcCs |jd|jd}|S)NrrZ)r)rZallHelpSourcesr r r GetAllExtraHelpSourcesLists z#IdleConf.GetAllExtraHelpSourcesListc Cs|j||ddd}|j||ddddd}|j||ddd dd }|d krtd kr~d }n`tdd ddd|}tj|}|d}|d}|d krd}|ddk}|||rdndfS)NZfontrZcourierz font-sizerrZ10z font-boldrrZ TkFixedFontg!@ZCourierrdr1Trootfamilysize ZweightboldZnormal)rYrractual) rrrVrrrrfZ actualFontr r r GetFonts         zIdleConf.GetFontcCs:x3|jD](}|j|j|j|jq WdS)N)r@r$rA)rrr r r rDszIdleConf.LoadCfgFilescCs)x"|jD]}|j|jq WdS)N)rAr9)rrr r r SaveUserCfgFilesszIdleConf.SaveUserCfgFiles)rrr rrCrJrYr.r]rbr_rfrgrnriryrvrrrrzrrrrrrrDrr r r r r:s6  -   @  #       M  r:rE)crc32cCs?t|}td7at|jddtat|dS)Nrencodingzutf-8)strlinerencodecrcrO)objZtxtr r r sprints  rcCstd|dxt|jD]}||j}t|t|xh|D]`}||j|}t|t|x0|D](}t|d||j||qWqTWq#WdS)N z = )rOsortedr>r(rr!r)rBrr(rr!rr r r dumpCfgs      rz lines = z, crc = seprc)r/rI configparserrtkinterrZ tkinter.fontrr Exceptionrr r rrr%r:ZidleConfrzlibrrrrrr@rArOr r r r s,  'GW