2121
2222
2323def _alias_or_inferred (
24- alias : Union [Iterable [str ], str ],
24+ alias : Union [Iterable [str ], str , None ],
2525 op : str ,
2626 args : Iterable [str ],
2727):
@@ -44,7 +44,7 @@ def resolve_expression(
4444
4545
4646def literal (
47- value : Any , type : stp .Type , alias : Union [Iterable [str ], str ] = None
47+ value : Any , type : stp .Type , alias : Union [Iterable [str ], str , None ] = None
4848) -> UnboundExtendedExpression :
4949 """Builds a resolver for ExtendedExpression containing a literal expression"""
5050
@@ -154,7 +154,7 @@ def resolve(
154154 return resolve
155155
156156
157- def column (field : Union [str , int ], alias : Union [Iterable [str ], str ] = None ):
157+ def column (field : Union [str , int ], alias : Union [Iterable [str ], str , None ] = None ):
158158 """Builds a resolver for ExtendedExpression containing a FieldReference expression
159159
160160 Accepts either an index or a field name of a desired field.
@@ -208,7 +208,7 @@ def scalar_function(
208208 urn : str ,
209209 function : str ,
210210 expressions : Iterable [ExtendedExpressionOrUnbound ],
211- alias : Union [Iterable [str ], str ] = None ,
211+ alias : Union [Iterable [str ], str , None ] = None ,
212212):
213213 """Builds a resolver for ExtendedExpression containing a ScalarFunction expression"""
214214
@@ -306,7 +306,7 @@ def aggregate_function(
306306 urn : str ,
307307 function : str ,
308308 expressions : Iterable [ExtendedExpressionOrUnbound ],
309- alias : Union [Iterable [str ], str ] = None ,
309+ alias : Union [Iterable [str ], str , None ] = None ,
310310):
311311 """Builds a resolver for ExtendedExpression containing a AggregateFunction measure"""
312312
@@ -402,7 +402,7 @@ def window_function(
402402 function : str ,
403403 expressions : Iterable [ExtendedExpressionOrUnbound ],
404404 partitions : Iterable [ExtendedExpressionOrUnbound ] = [],
405- alias : Union [Iterable [str ], str ] = None ,
405+ alias : Union [Iterable [str ], str , None ] = None ,
406406):
407407 """Builds a resolver for ExtendedExpression containing a WindowFunction expression"""
408408
@@ -512,7 +512,7 @@ def resolve(
512512def if_then (
513513 ifs : Iterable [tuple [ExtendedExpressionOrUnbound , ExtendedExpressionOrUnbound ]],
514514 _else : ExtendedExpressionOrUnbound ,
515- alias : Union [Iterable [str ], str ] = None ,
515+ alias : Union [Iterable [str ], str , None ] = None ,
516516):
517517 """Builds a resolver for ExtendedExpression containing an IfThen expression"""
518518
@@ -767,7 +767,7 @@ def resolve(
767767 return resolve
768768
769769
770- def cast (input : ExtendedExpressionOrUnbound , type : stp .Type ):
770+ def cast (input : ExtendedExpressionOrUnbound , type : stp .Type , alias : Union [ Iterable [ str ], str , None ] = None ):
771771 """Builds a resolver for ExtendedExpression containing a cast expression"""
772772
773773 def resolve (
@@ -785,7 +785,8 @@ def resolve(
785785 failure_behavior = stalg .Expression .Cast .FAILURE_BEHAVIOR_RETURN_NULL ,
786786 )
787787 ),
788- output_names = ["cast" ], # TODO construct name from inputs
788+ output_names = _alias_or_inferred (alias , "cast" , []),
789+
789790 )
790791 ],
791792 base_schema = base_schema ,
0 commit comments