(x, enc, convert, relaxed=True)
| 66 | |
| 67 | |
| 68 | def _convert_deep(x, enc, convert, relaxed=True): |
| 69 | if x is None: |
| 70 | return None |
| 71 | if isinstance(x, (six.text_type, six.binary_type)): |
| 72 | return convert(x, enc) |
| 73 | if isinstance(x, dict): |
| 74 | return {convert(k, enc): _convert_deep(v, enc, convert, relaxed) for k, v in six.iteritems(x)} |
| 75 | if isinstance(x, list): |
| 76 | return [_convert_deep(e, enc, convert, relaxed) for e in x] |
| 77 | if isinstance(x, tuple): |
| 78 | return tuple([_convert_deep(e, enc, convert, relaxed) for e in x]) |
| 79 | |
| 80 | if relaxed: |
| 81 | return x |
| 82 | raise TypeError('unsupported type') |
| 83 | |
| 84 | |
| 85 | # Result as from six.ensure_text |
no test coverage detected