values are in value objects now
[tiramisu.git] / tiramisu / tool.py
index c2493de..e10be70 100644 (file)
@@ -25,90 +25,90 @@ from tiramisu.option import (OptionDescription, Option, ChoiceOption, BoolOption
 # ____________________________________________________________
 # reverse factory
 # XXX HAAAAAAAAAAAACK (but possibly a good one)
-def reverse_from_paths(data):
-    "rebuilds a (fake) data structure from an unflatten `make_dict()` result"
-    # ____________________________________________________________
-    _build_map = {
-        bool: BoolOption,
-        int: IntOption,
-        float: FloatOption,
-        str: StrOption,
-    }
-    def option_factory(name, value):
-        "dummy -> Option('dummy')"
-        if isinstance(value, list):
-            return _build_map[type(value[0])](name, '', multi=True, default=value)
-        else:
-            return _build_map[type(value)](name, '', default=value)
+#def reverse_from_paths(data):
+#    "rebuilds a (fake) data structure from an unflatten `make_dict()` result"
+#    # ____________________________________________________________
+#    _build_map = {
+#        bool: BoolOption,
+#        int: IntOption,
+#        float: FloatOption,
+#        str: StrOption,
+#    }
+#    def option_factory(name, value):
+#        "dummy -> Option('dummy')"
+#        if isinstance(value, list):
+#            return _build_map[type(value[0])](name, '', multi=True, default=value)
+#        else:
+#            return _build_map[type(value)](name, '', default=value)
 
-    def build_options(data):
-        "config.gc.dummy ->  Option('dummy')"
-        for key, value in data.items():
-            name = key.split('.')[-1]
-            yield (key, option_factory(name, value))
-    # ____________________________________________________________
-    def parent(pathname):
-        "config.gc.dummy -> config.gc"
-        if "." in pathname:
-            return ".".join(pathname.split('.')[:-1])
-        # no parent except rootconfig, naturally returns None
+#    def build_options(data):
+#        "config.gc.dummy ->  Option('dummy')"
+#        for key, value in data.items():
+#            name = key.split('.')[-1]
+#            yield (key, option_factory(name, value))
+#    # ____________________________________________________________
+#    def parent(pathname):
+#        "config.gc.dummy -> config.gc"
+#        if "." in pathname:
+#            return ".".join(pathname.split('.')[:-1])
+#        # no parent except rootconfig, naturally returns None
 
-    def subgroups(pathname):
-        "config.gc.dummy.bool -> [config.gc, config.gc.dummy]"
-        group = parent(pathname)
-        parents =[]
-        while group is not None:
-            parents.append(group)
-            group = parent(group)
-        return parents
+#    def subgroups(pathname):
+#        "config.gc.dummy.bool -> [config.gc, config.gc.dummy]"
+#        group = parent(pathname)
+#        parents =[]
+#        while group is not None:
+#            parents.append(group)
+#            group = parent(group)
+#        return parents
 
-    def build_option_descriptions(data):
-        all_groups = []
-        for key in data.keys():
-            for group in subgroups(key):
-                # so group is unique in the list
-                if group not in all_groups:
-                    all_groups.append(group)
-        for group in all_groups:
-            name = group.split('.')[-1]
-            yield (group, OptionDescription(name, '', []))
-    # ____________________________________________________________
-    descr = OptionDescription('tiramisu', 'fake rebuild structure', [])
-    cfg = Config(descr)
-    # add descrs in cfg
-    def compare(a, b):
-        l1 = a.split(".")
-        l2 = b.split(".")
-        if len(l1) < len(l2):
-            return -1
-        elif len(l1) > len(l2):
-            return 1
-        else:
-            return 0
-    grps = list(build_option_descriptions(data))
-    groups = dict(grps)
-    grp_paths = [pathname for pathname, opt_descr in grps]
-    grp_paths.sort(compare)
-    for grp in grp_paths:
-        if not "." in grp:
-            cfg._cfgimpl_descr.add_child(groups[grp])
-            cfg.cfgimpl_update()
-        else:
-            parentdescr = cfg.unwrap_from_path(parent(grp))
-            parentdescr.add_child(groups[grp])
-            getattr(cfg, parent(grp)).cfgimpl_update()
-    # add options in descrs
-    for pathname, opt in build_options(data):
-        current_group_name = parent(pathname)
-        if current_group_name == None:
-            cfg._cfgimpl_descr.add_child(opt)
-            cfg.cfgimpl_update()
-        else:
-            curr_grp = groups[current_group_name]
-            curr_grp.add_child(opt)
-            getattr(cfg, current_group_name).cfgimpl_update()
+#    def build_option_descriptions(data):
+#        all_groups = []
+#        for key in data.keys():
+#            for group in subgroups(key):
+#                # so group is unique in the list
+#                if group not in all_groups:
+#                    all_groups.append(group)
+#        for group in all_groups:
+#            name = group.split('.')[-1]
+#            yield (group, OptionDescription(name, '', []))
+#    # ____________________________________________________________
+#    descr = OptionDescription('tiramisu', 'fake rebuild structure', [])
+#    cfg = Config(descr)
+#    # add descrs in cfg
+#    def compare(a, b):
+#        l1 = a.split(".")
+#        l2 = b.split(".")
+#        if len(l1) < len(l2):
+#            return -1
+#        elif len(l1) > len(l2):
+#            return 1
+#        else:
+#            return 0
+#    grps = list(build_option_descriptions(data))
+#    groups = dict(grps)
+#    grp_paths = [pathname for pathname, opt_descr in grps]
+#    grp_paths.sort(compare)
+#    for grp in grp_paths:
+#        if not "." in grp:
+#            cfg._cfgimpl_descr.add_child(groups[grp])
+#            cfg.cfgimpl_update()
+#        else:
+#            parentdescr = cfg.unwrap_from_path(parent(grp))
+#            parentdescr.add_child(groups[grp])
+#            getattr(cfg, parent(grp)).cfgimpl_update()
+#    # add options in descrs
+#    for pathname, opt in build_options(data):
+#        current_group_name = parent(pathname)
+#        if current_group_name == None:
+#            cfg._cfgimpl_descr.add_child(opt)
+#            cfg.cfgimpl_update()
+#        else:
+#            curr_grp = groups[current_group_name]
+#            curr_grp.add_child(opt)
+#            getattr(cfg, current_group_name).cfgimpl_update()
 
-    return cfg
+#    return cfg
 # ____________________________________________________________
 # extendable type
 class extend(type):