iro/config.py
branchdevel
changeset 184 6b0ff82dff81
parent 179 af65fcbd59d5
child 186 b381eaa774ab
equal deleted inserted replaced
183:07ee5543751b 184:6b0ff82dff81
     1 from ConfigParser import ConfigParser
     1 from ConfigParser import ConfigParser, NoOptionError
     2 import signal
     2 import signal
     3 from functools import partial
     3 from functools import partial
     4 
     4 
     5 from validate import vInteger
     5 from validate import vInteger
     6 from error import ValidateException
     6 from error import ValidateException
     9     def __init__(self):
     9     def __init__(self):
    10         ConfigParser.__init__(self)
    10         ConfigParser.__init__(self)
    11         self.reloadList=[]
    11         self.reloadList=[]
    12 
    12 
    13     def read(self,files):
    13     def read(self,files):
    14         from offer import providers
    14         from offer import getProvider
    15         ConfigParser.read(self, files)
    15         ConfigParser.read(self, files)
    16         for s in self.sections():
    16         for s in self.sections():
    17             if s == "main":
    17             if s == "main":
    18                 opts=main
    18                 opts=main
       
    19                 for o in opts:
       
    20                     try:
       
    21                         opts[o].validate(self.get(s,o),o)
       
    22                     except (ValidateException, NoOptionError):
       
    23                         if opts[o].must:
       
    24                             raise
    19             else:
    25             else:
    20                 opts=providers[self.get(s,'typ')].options
    26                 getProvider("tmp", self.get(s,'typ'), self.items(s))
    21            
    27            
    22             for o in opts:
       
    23                 try:
       
    24                     opts[o].validate(self.get(s,o),o)
       
    25                 except ValidateException:
       
    26                     if opts[o].must:
       
    27                         raise
       
    28 
    28 
    29     def reload_(self):
    29     def reload_(self):
    30         for f in self.reloadList:
    30         for f in self.reloadList:
    31             f()
    31             f()
    32 
    32