Exemple #1
0
    def asdict(self, name, _type=None, _set=False):
        """
        Turn this 'a:2,b:blabla,c:True,a:'d' to
        {a:[2, 'd'], b:'blabla', c:True}

        """

        if _type is None:
            _type = lambda t: t

        dict_str = self.pop(name, None)
        if not dict_str:
            return {}

        _dict = {}
        for item in split_strip(dict_str):
            key, _, val = item.partition(':')
            val = _type(val)
            if key in _dict:
                if isinstance(_dict[key], list):
                    _dict[key].append(val)
                else:
                    _dict[key] = [_dict[key], val]
            else:
                _dict[key] = val

        if _set:
            self[name] = _dict

        return _dict
Exemple #2
0
    def process_list_param(self,
                           name,
                           _type=None,
                           default=None,
                           pop=False,
                           setdefault=None):
        if _type is None:
            _type = lambda t: t

        _csv = self.get(name, '')
        if _csv and isinstance(_csv, basestring):
            self[name] = [_type(each) for each in split_strip(_csv)]

        if name not in self and setdefault is not None:
            self[name] = setdefault

        if pop:
            if default is not None:
                return self.pop(name, default)
            else:
                return self.pop(name)
        else:
            if default is not None:
                return self.get(name, default)
            else:
                return self.get(name)
Exemple #3
0
    def aslist(self, name, remove_empty=True, default=[], _set=False):
        _lst = split_strip(self.get(name, default) or default)
        if remove_empty:
            _lst = list(filter(bool, _lst))

        if _set:
            self[name] = _lst
        return _lst
Exemple #4
0
    def process_list_param(self, name, _type=None, default=None, pop=False,
                           setdefault=None):
        if _type is None:
            _type = lambda t: t

        _csv = self.get(name, '')
        if _csv and isinstance(_csv, six.string_types):
            self[name] = [_type(each) for each in split_strip(_csv)]

        if name not in self and setdefault is not None:
            self[name] = setdefault

        if pop:
            if default is not None:
                return self.pop(name, default)
            else:
                return self.pop(name)
        else:
            if default is not None:
                return self.get(name, default)
            else:
                return self.get(name)
Exemple #5
0
 def test_split_strip(self):
     assert utils.split_strip('1, 2,') == ['1', '2']
     assert utils.split_strip('1, 2') == ['1', '2']
     assert utils.split_strip('1;2;', on=';') == ['1', '2']
Exemple #6
0
 def test_split_strip(self):
     assert utils.split_strip('1, 2,') == ['1', '2']
     assert utils.split_strip('1, 2') == ['1', '2']
     assert utils.split_strip('1;2;', on=';') == ['1', '2']