Spaces:
Runtime error
Runtime error
import collections.abc | |
from itertools import repeat | |
def _ntuple(n): | |
def parse(x): | |
if isinstance(x, collections.abc.Iterable) and not isinstance(x, str): | |
x = tuple(x) | |
if len(x) == 1: | |
x = tuple(repeat(x[0], n)) | |
return x | |
return tuple(repeat(x, n)) | |
return parse | |
to_1tuple = _ntuple(1) | |
to_2tuple = _ntuple(2) | |
to_3tuple = _ntuple(3) | |
to_4tuple = _ntuple(4) | |
def as_tuple(x): | |
if isinstance(x, collections.abc.Iterable) and not isinstance(x, str): | |
return tuple(x) | |
if x is None or isinstance(x, (int, float, str)): | |
return (x,) | |
else: | |
raise ValueError(f"Unknown type {type(x)}") | |
def as_list_of_2tuple(x): | |
x = as_tuple(x) | |
if len(x) == 1: | |
x = (x[0], x[0]) | |
assert len(x) % 2 == 0, f"Expect even length, got {len(x)}." | |
lst = [] | |
for i in range(0, len(x), 2): | |
lst.append((x[i], x[i + 1])) | |
return lst | |