@@ -476,21 +476,22 @@ def with_columns(
476476 def _simplify_expression (
477477 * exprs : Expr | Iterable [Expr ], ** named_exprs : Expr
478478 ) -> list [expr_internal .Expr ]:
479- expr_list = []
479+ expr_list : list [ expr_internal . Expr ] = []
480480 for expr in exprs :
481- if isinstance (expr , str ):
481+ if isinstance (expr , str ) or (
482+ isinstance (expr , Iterable )
483+ and not isinstance (expr , Expr )
484+ and any (isinstance (inner , str ) for inner in expr )
485+ ):
482486 raise TypeError (_EXPR_TYPE_ERROR )
483- if isinstance (expr , Iterable ) and not isinstance (expr , Expr ):
484- if any (not isinstance (inner_expr , Expr ) for inner_expr in expr ):
485- raise TypeError (_EXPR_TYPE_ERROR )
486- elif not isinstance (expr , Expr ):
487+ try :
488+ expr_list .extend (expr_list_to_raw_expr_list (expr ))
489+ except TypeError as err :
490+ raise TypeError (_EXPR_TYPE_ERROR ) from err
491+ for alias , expr in named_exprs .items ():
492+ if not isinstance (expr , Expr ):
487493 raise TypeError (_EXPR_TYPE_ERROR )
488- expr_list .extend (expr_list_to_raw_expr_list (expr ))
489- if named_exprs :
490- for alias , expr in named_exprs .items ():
491- if not isinstance (expr , Expr ):
492- raise TypeError (_EXPR_TYPE_ERROR )
493- expr_list .append (expr .alias (alias ).expr )
494+ expr_list .append (expr .alias (alias ).expr )
494495 return expr_list
495496
496497 expressions = _simplify_expression (* exprs , ** named_exprs )
0 commit comments