Вот ограниченный синтаксический анализатор, предполагающий пользовательский ввод (str) списка наборов целых чисел.
Здесь используются обычные строковые методы. Это не то, что вы на самом деле хотите реализовать в реальном коде, но удовлетворяет требованиям ОП.
Код
def _to_ints(s):
"""Convert strings to int."""
return map(int, s.split(","))
def _convert_container(s):
"""Convert strings to sets."""
b = s[:]
b = b.strip("{}[]()")
b = _to_ints(b)
res = set(b)
return res
def parse(s: str) -> list:
"""Convert the string to objects.
Assumes stringed list of sets.
"""
s = s.strip("[]")
s = s.replace(" ", "")
lst = s.split("},")
res = list(map(_convert_container, lst))
return res
Тесты
assert [{1, 2, 3}] == parse("[{1,2,3}]")
assert [{1, 2, 3}, {5, 6}] == parse("[{1,2,3}, {5,6}]")
assert [{1, 2, 3}, {5, 6}] == parse("[{1, 2, 3}, {5, 6}]")