(s, level=0)
| 818 | |
| 819 | |
| 820 | def parse_wkt_array(s, level=0): |
| 821 | ar = [] |
| 822 | in_string = False |
| 823 | cur_token = '' |
| 824 | indent_level = 0 |
| 825 | |
| 826 | for c in s: |
| 827 | if in_string: |
| 828 | if c == '"': |
| 829 | in_string = False |
| 830 | else: |
| 831 | cur_token += c |
| 832 | elif c == '"': |
| 833 | in_string = True |
| 834 | elif c == '[': |
| 835 | cur_token += c |
| 836 | indent_level += 1 |
| 837 | elif c == ']': |
| 838 | cur_token += c |
| 839 | indent_level -= 1 |
| 840 | assert indent_level >= 0 |
| 841 | elif indent_level == 0 and c == ',': |
| 842 | ar.append(parse_wkt(cur_token, level + 1)) |
| 843 | cur_token = '' |
| 844 | else: |
| 845 | cur_token += c |
| 846 | assert indent_level == 0 |
| 847 | if cur_token: |
| 848 | ar.append(parse_wkt(cur_token, level + 1)) |
| 849 | |
| 850 | if level == 0: |
| 851 | return wkt_array_to_dict(ar) |
| 852 | else: |
| 853 | return ar |
| 854 | |
| 855 | |
| 856 | def wkt_array_to_dict(ar): |
no test coverage detected