def parser(cls):
unpack = pp.Suppress("unpack")
packed_col_name = common_parsers.column
dict_key = pp.Suppress("[") + pp.QuotedString(quoteChar="'") + pp.Suppress("]")
dict_key_grp = pp.Group(pp.OneOrMore(dict_key))
new_col_name = common_parsers.column
unpack_arg = new_col_name + pp.Suppress("=") + packed_col_name + dict_key_grp
unpack_arg.setParseAction(lambda x: {'packed_col': x[1], 'key_list': x[2], 'new_col_name': x[0]})
parser = unpack + pp.Suppress("(") + pp.delimitedList(unpack_arg) + pp.Suppress(")")
parser.setParseAction(lambda x: Unpack(unpack_list=x))
return parser
评论列表
文章目录