trafaret.utils
— utils for unfolding netsted dict syntax¶
There will be small helpers to render forms with exist trafarets for DRY.
-
trafaret.utils.
fold
(data, prefix='', delimeter='__')¶ >>> _dd(fold({'a__a': 4})) "{'a': {'a': 4}}" >>> _dd(fold({'a__a': 4, 'a__b': 5})) "{'a': {'a': 4, 'b': 5}}" >>> _dd(fold({'a__1': 2, 'a__0': 1, 'a__2': 3})) "{'a': [1, 2, 3]}" >>> _dd(fold({'form__a__b': 5, 'form__a__a': 4}, 'form')) "{'a': {'a': 4, 'b': 5}}" >>> _dd(fold({'form__a__b': 5, 'form__a__a__0': 4, 'form__a__a__1': 7}, 'form')) "{'a': {'a': [4, 7], 'b': 5}}" >>> repr(fold({'form__1__b': 5, 'form__0__a__0': 4, 'form__0__a__1': 7}, 'form')) "[{'a': [4, 7]}, {'b': 5}]"
-
trafaret.utils.
unfold
(data, prefix='', delimeter='__')¶ >>> _dd(unfold({'a': 4, 'b': 5})) "{'a': 4, 'b': 5}" >>> _dd(unfold({'a': [1, 2, 3]})) "{'a__0': 1, 'a__1': 2, 'a__2': 3}" >>> _dd(unfold({'a': {'a': 4, 'b': 5}})) "{'a__a': 4, 'a__b': 5}" >>> _dd(unfold({'a': {'a': 4, 'b': 5}}, 'form')) "{'form__a__a': 4, 'form__a__b': 5}"