iro/config.py
branchdevel
changeset 184 6b0ff82dff81
parent 179 af65fcbd59d5
child 186 b381eaa774ab
--- a/iro/config.py	Thu Feb 23 16:57:57 2012 +0100
+++ b/iro/config.py	Thu Feb 23 16:58:58 2012 +0100
@@ -1,4 +1,4 @@
-from ConfigParser import ConfigParser
+from ConfigParser import ConfigParser, NoOptionError
 import signal
 from functools import partial
 
@@ -11,20 +11,20 @@
         self.reloadList=[]
 
     def read(self,files):
-        from offer import providers
+        from offer import getProvider
         ConfigParser.read(self, files)
         for s in self.sections():
             if s == "main":
                 opts=main
+                for o in opts:
+                    try:
+                        opts[o].validate(self.get(s,o),o)
+                    except (ValidateException, NoOptionError):
+                        if opts[o].must:
+                            raise
             else:
-                opts=providers[self.get(s,'typ')].options
+                getProvider("tmp", self.get(s,'typ'), self.items(s))
            
-            for o in opts:
-                try:
-                    opts[o].validate(self.get(s,o),o)
-                except ValidateException:
-                    if opts[o].must:
-                        raise
 
     def reload_(self):
         for f in self.reloadList: