Ignore:
Timestamp:
02/12/11 17:53:39 (3 years ago)
Author:
wehart
Message:

Extending semantics of options to control whether or not an exception
is thrown when an option is not available. The default behavior is
changes to _not_ throw an exception.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pyutilib.component.config/tags/3.2.4/pyutilib/component/config/options.py

    r1626 r2218  
    352352        """ 
    353353 
    354         def __init__(self,section): 
     354        def __init__(self, section, exceptions=False): 
    355355            self._section_=section 
    356356            self.__dict__["data"] = ExtensionPoint(IOptionDataProvider) 
     357            self._exceptions = exceptions 
    357358 
    358359        def __iter__(self): 
     
    373374                return self.__dict__[name] 
    374375            except: 
    375                 return self.data.service().get(self._section_, name) 
     376                try: 
     377                    return self.data.service().get(self._section_, name) 
     378                except OptionError, err: 
     379                    if self._exceptions: 
     380                        raise err 
     381                    return None 
    376382 
    377383        def __setattr__(self, name, value): 
     
    384390        """Constructor.""" 
    385391        kwds["name"]="" 
     392        if 'exceptions' in kwds: 
     393            exceptions = kwds['exceptions'] 
     394            del kwds['exceptions'] 
     395        else: 
     396            exceptions = False 
    386397        super(DictOption,self).__init__(**kwds) 
    387         self.default = DictOption.SectionWrapper(self.section) 
     398        self.default = DictOption.SectionWrapper(self.section, exceptions) 
    388399 
    389400    def get_value(self): 
Note: See TracChangeset for help on using the changeset viewer.