File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -167,14 +167,20 @@ def _getcategory(category):
167167 if re .match ("^[a-zA-Z0-9_]+$" , category ):
168168 try :
169169 cat = eval (category )
170- except KeyError :
171- raise _OptionError ("invalid warning category: %s" % `category` )
170+ except NameError :
171+ raise _OptionError ("unknown warning category: %s" % `category` )
172172 else :
173173 i = category .rfind ("." )
174174 module = category [:i ]
175175 klass = category [i + 1 :]
176- m = __import__ (module , None , None , [klass ])
177- cat = getattr (m , klass )
176+ try :
177+ m = __import__ (module , None , None , [klass ])
178+ except ImportError :
179+ raise _OptionError ("invalid module name: %s" % `module` )
180+ try :
181+ cat = getattr (m , klass )
182+ except AttributeError :
183+ raise _OptionError ("unknown warning category: %s" % `category` )
178184 if (not isinstance (cat , types .ClassType ) or
179185 not issubclass (cat , Warning )):
180186 raise _OptionError ("invalid warning category: %s" % `category` )
You can’t perform that action at this time.
0 commit comments