Convert string exceptions to classes, string exceptions are deprecated

This commit is contained in:
Neal Norwitz 2002-11-30 19:10:19 +00:00
parent 672ce57100
commit 5b0b00fb21
2 changed files with 16 additions and 8 deletions

View File

@ -11,6 +11,11 @@ Provides access to stored idle configuration information.
import os, sys, string import os, sys, string
from ConfigParser import ConfigParser, NoOptionError, NoSectionError from ConfigParser import ConfigParser, NoOptionError, NoSectionError
class InvalidConfigType(Exception): pass
class InvalidConfigSet(Exception): pass
class InvalidFgBg(Exception): pass
class InvalidTheme(Exception): pass
class IdleConfParser(ConfigParser): class IdleConfParser(ConfigParser):
""" """
A ConfigParser specialised for idle configuration file handling A ConfigParser specialised for idle configuration file handling
@ -228,13 +233,13 @@ class IdleConf:
configType must be one of ('main','extensions','highlight','keys') configType must be one of ('main','extensions','highlight','keys')
""" """
if not (configType in ('main','extensions','highlight','keys')): if not (configType in ('main','extensions','highlight','keys')):
raise 'Invalid configType specified' raise InvalidConfigType, 'Invalid configType specified'
if configSet == 'user': if configSet == 'user':
cfgParser=self.userCfg[configType] cfgParser=self.userCfg[configType]
elif configSet == 'default': elif configSet == 'default':
cfgParser=self.defaultCfg[configType] cfgParser=self.defaultCfg[configType]
else: else:
raise 'Invalid configSet specified' raise InvalidConfigSet, 'Invalid configSet specified'
return cfgParser.sections() return cfgParser.sections()
def GetHighlight(self, theme, element, fgBg=None): def GetHighlight(self, theme, element, fgBg=None):
@ -262,7 +267,7 @@ class IdleConf:
if fgBg == 'bg': if fgBg == 'bg':
return highlight["background"] return highlight["background"]
else: else:
raise 'Invalid fgBg specified' raise InvalidFgBg, 'Invalid fgBg specified'
def GetThemeDict(self,type,themeName): def GetThemeDict(self,type,themeName):
""" """
@ -278,7 +283,7 @@ class IdleConf:
elif type == 'default': elif type == 'default':
cfgParser=self.defaultCfg['highlight'] cfgParser=self.defaultCfg['highlight']
else: else:
raise 'Invalid theme type specified' raise InvalidTheme, 'Invalid theme type specified'
#foreground and background values are provded for each theme element #foreground and background values are provded for each theme element
#(apart from cursor) even though all these values are not yet used #(apart from cursor) even though all these values are not yet used
#by idle, to allow for their use in the future. Default values are #by idle, to allow for their use in the future. Default values are
@ -561,7 +566,7 @@ class IdleConf:
elif configSet=='default': elif configSet=='default':
cfgParser=self.defaultCfg['main'] cfgParser=self.defaultCfg['main']
else: else:
raise 'Invalid configSet specified' raise InvalidConfigSet, 'Invalid configSet specified'
options=cfgParser.GetOptionList('HelpFiles') options=cfgParser.GetOptionList('HelpFiles')
for option in options: for option in options:
value=cfgParser.Get('HelpFiles',option,default=';') value=cfgParser.Get('HelpFiles',option,default=';')

View File

@ -4,6 +4,9 @@ a couple of classes for implementing partial tabbed-page like behaviour
from Tkinter import * from Tkinter import *
class InvalidTabPage(Exception): pass
class AlreadyExists(Exception): pass
class PageTab(Frame): class PageTab(Frame):
""" """
a 'page tab' like framed button a 'page tab' like framed button
@ -43,7 +46,7 @@ class TabPageSet(Frame):
if pageName in self.pages.keys(): if pageName in self.pages.keys():
self.activePage.set(pageName) self.activePage.set(pageName)
else: else:
raise 'Invalid TabPage Name' raise InvalidTabPage, 'Invalid TabPage Name'
## pop up the active 'tab' only ## pop up the active 'tab' only
for page in self.pages.keys(): for page in self.pages.keys():
self.pages[page]['tab'].config(relief=RIDGE) self.pages[page]['tab'].config(relief=RIDGE)
@ -56,7 +59,7 @@ class TabPageSet(Frame):
def AddPage(self,pageName): def AddPage(self,pageName):
if pageName in self.pages.keys(): if pageName in self.pages.keys():
raise 'TabPage Name Already Exists' raise AlreadyExists, 'TabPage Name Already Exists'
self.pages[pageName]={'tab':PageTab(self.tabBar), self.pages[pageName]={'tab':PageTab(self.tabBar),
'page':Frame(self,borderwidth=2,relief=RAISED)} 'page':Frame(self,borderwidth=2,relief=RAISED)}
self.pages[pageName]['tab'].button.config(text=pageName, self.pages[pageName]['tab'].button.config(text=pageName,
@ -71,7 +74,7 @@ class TabPageSet(Frame):
def RemovePage(self,pageName): def RemovePage(self,pageName):
if not pageName in self.pages.keys(): if not pageName in self.pages.keys():
raise 'Invalid TabPage Name' raise InvalidTabPage, 'Invalid TabPage Name'
self.pages[pageName]['tab'].pack_forget() self.pages[pageName]['tab'].pack_forget()
self.pages[pageName]['page'].grid_forget() self.pages[pageName]['page'].grid_forget()
self.pages[pageName]['tab'].destroy() self.pages[pageName]['tab'].destroy()