Пример #1
0
 def save(self):
     """
     Write the configuration options to the primary file.
     """
     # Only save options that differ from the defaults
     sections = []
     for section in self.sections():
         options = []
         for option in self[section]:
             current = self.parser.has_option(section, option) and \
                       self.parser.get(section, option)
             if current is not False:
                 options.append((option, current))
         if options:
             sections.append((section, sorted(options)))
     # skip saving if no filename is given
     if not self.filename:
         return
     fileobj = file(self.filename, 'w')
     try:
         print >> fileobj, '# -*- coding: utf-8 -*-'
         print >> fileobj
         for section, options in sections:
             print >> fileobj, '[%s]' % section
             for key, val in options:
                 if key in self[section].overridden:
                     print >> fileobj, '# %s = <set in global seishub.ini>' \
                                     % key
                 else:
                     val = val.replace(CRLF, '\n').replace('\n', '\n ')
                     print >> fileobj, '%s = %s' % \
                                     (key, toUnicode(val).encode('utf-8'))
             print >> fileobj
     finally:
         fileobj.close()
Пример #2
0
 def set(self, name, value):
     """
     Change a configuration value.
     
     These changes are not persistent unless saved with `save()`.
     """
     if not self.config.parser.has_section(self.name):
         self.config.parser.add_section(self.name)
     if value is None:
         self.overridden[name] = True
         value = ''
     else:
         value = toUnicode(value).encode('utf-8')
     return self.config.parser.set(self.name, name, value)
Пример #3
0
 def get(self, name, default=None):
     """
     Return the value of the specified option.
     """
     if self.config.parser.has_option(self.name, name):
         value = self.config.parser.get(self.name, name)
     else:
         option = Option.registry.get((self.name, name))
         if option:
             value = option.default or default
         else:
             value = default
     if value is None:
         return ''
     return toUnicode(value)