Settings.__init__ needs to call ConfigParser.SafeConfigParser.__init__
before it calls self.readfp.
Nexu wrote:
> Hello,
>
> I'm not sure exactly what i'm doing wrong here. I asked around on IRC
> and i was told the code is correct.
> The purpose of Settings() is that whenever Settings() or any of its
> methods are called. It should pick up the latest settings from file
> instead of returning what was in the buffer. This allow other scripts to
> change the value and my program and pick these changes up.
> Everything else should work exact same as ConfigParser().
> -----------------------------------------------------------------------------
> class Settings(ConfigParser.SafeConfigParser):
>       def __init__(self):
>               self.filename = os.path.join(xchat.get_info('xchatdir'), 
> 'nxscript',
> 'nxscript.conf')
>               try:
>                       config_file = file(self.filename, 'r')
>                       self.readfp(config_file, self.filename)
>                       if self.sections() == []:
>                               self.add_section('Global')
>                       if self.has_section('Global'):
>                               self.set('Global', 'ProtectME', 'false')
>                       config_file.close()
>               except IOError:
>                       nx.sysmsg('Configuration file not found')
>
>       def update_file(self):
>               try:
>                       config_file = file(self.filename, 'w')
>                       self.write(config_file)
>               except IOError:
>                       nx.sysmsg('Could not write to configuration file')
> -----------------------------------------------------------------------------
> SAMPLE CODE (what i want to able to do):
> setting = Settings()
> if setting.get('Global', 'ProtectME'):
>       print 'protection enabled'
> -----------------------------------------------------------------------------
> ERRORS:
>    File "/home/nexu/.xchat2/nxscript/nx.py", line 43, in ?
>      setting = Settings()
>    File "/home/nexu/.xchat2/nxscript/nx.py", line 24, in __init__
>      self.readfp(config_file, self.filename)
>    File "/usr/lib/python2.4/ConfigParser.py", line 286, in readfp
>      self._read(fp, filename)
>    File "/usr/lib/python2.4/ConfigParser.py", line 451, in _read
>      if sectname in self._sections:
>  AttributeError: Settings instance has no attribute '_sections'

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to