Ejemplo n.º 1
0
def test_map_values():
    n = OrderedMapping(a=1)
    n.b = 2
    res = pkcollections.map_values(n, lambda v: v * 2)
    assert [2, 4] == res, \
        'map_values should call op in order'
    assert [1, 2] == pkcollections.map_values(n), \
        'map_values should return values with no op'
Ejemplo n.º 2
0
def test_map_values():
    n = OrderedMapping(a=1)
    n.b = 2
    res = pkcollections.map_values(n, lambda v: v * 2)
    assert [2, 4] == res, \
        'map_values should call op in order'
    assert [1, 2] == pkcollections.map_values(n), \
        'map_values should return values with no op'
Ejemplo n.º 3
0
def value_widget(default, value, parent):
    d = default.decl
    t = d.py_type
    v = None
    if isinstance(t, enum.EnumMeta):
        widget = QtGui.QComboBox(parent)
        v = ''
        choices = t
        if default.children:
            choices = pkcollections.map_values(
                default.children, lambda x: x.value)
        for e in choices:
            n = rt_qt.i18n_text(e.display_name)
            widget.addItem(n, userData=e.value)
            if len(n) > len(v):
                v = n
        set_widget_value(d, value, widget)
    elif issubclass(t, bool):
        widget = QtGui.QCheckBox(parent)
        v = rt_qt.i18n_text(d.label)
        set_widget_value(d, value, widget)
    else:
        widget = QtGui.QLineEdit(parent)
        v = set_widget_value(d, value, widget)
    return (widget, v)
Ejemplo n.º 4
0
 def iter_nodes(self):
     yield self
     if not self.children:
         return
     for c in pkcollections.map_values(self.children):
         for l in c.iter_nodes():
             yield l
Ejemplo n.º 5
0
 def iter_leaves(self):
     if not self.children:
         yield self
     else:
         for c in pkcollections.map_values(self.children):
             for l in c.iter_leaves():
                 yield l
def _propagation(values):
    merged = copy.deepcopy(_PROPAGATION)
    pkcollections.mapping_merge(merged, values)
    return pkcollections.map_values(
        merged,
        lambda v: int(v) if isinstance(v, bool) else v,
    )
Ejemplo n.º 7
0
 def _iter_children(parent_defaults):
     res = collections.OrderedDict()
     for df in pkcollections.map_values(parent_defaults.children):
         d = df.decl
         if df.children:
             res[d.name] = _iter_children(df)
             continue
         f = self._fields[d.name]
         res[d.name] = get_widget_value(d, f['widget'])
     return res
Ejemplo n.º 8
0
 def _iter_children(parent_default, p):
     for df in pkcollections.map_values(parent_default.children):
         d = df.decl
         qlabel = _label(d)
         if df.children:
             _heading(qlabel)
             res['num'] += 1
             widget = None
             _iter_children(df, p[d.name])
         else:
             rt_qt.set_id(qlabel, 'form_field')
             (widget, value) = value_widget(df, p[d.name], self._frame)
             self._layout.addRow(qlabel, widget)
             if len(value) > res['max_value']:
                 res['max_value'] = len(value)
         self._fields[d.name] = {
             'qlabel': qlabel,
             'widget': widget,
         }
         res['num'] += 1