@@ -39,6 +39,11 @@ import com.regnosys.rosetta.rosetta.expression.SortOperation
3939import com.regnosys.rosetta.rosetta.expression.SumOperation
4040import com.regnosys.rosetta.rosetta.expression.ThenOperation
4141import com.regnosys.rosetta.rosetta.expression.ToStringOperation
42+ import com.regnosys.rosetta.rosetta.expression.ToDateOperation
43+ import com.regnosys.rosetta.rosetta.expression.ToDateTimeOperation
44+ import com.regnosys.rosetta.rosetta.expression.ToIntOperation
45+ import com.regnosys.rosetta.rosetta.expression.ToTimeOperation
46+ import com.regnosys.rosetta.rosetta.expression.ToZonedDateTimeOperation
4247import com.regnosys.rosetta.rosetta.expression.ToEnumOperation
4348import com.regnosys.rosetta.rosetta.expression.RosettaDeepFeatureCall
4449import com.regnosys.rosetta.rosetta.expression.MinOperation
@@ -87,6 +92,11 @@ class PythonExpressionGenerator {
8792 SwitchOperation : generateSwitchOperation(expr, ifLevel, isLambda)
8893 ToEnumOperation : ' ' ' «expr.enumeration.name»(«generateExpression(expr.argument, ifLevel, isLambda)»)' ' '
8994 ToStringOperation : ' ' ' rune_str(«generateExpression(expr.argument, ifLevel, isLambda)»)' ' '
95+ ToDateOperation : ' ' ' datetime.datetime.strptime(«generateExpression(expr.argument, ifLevel, isLambda)», "%Y-%m-%d").date()' ' '
96+ ToDateTimeOperation : ' ' ' datetime.datetime.strptime(«generateExpression(expr.argument, ifLevel, isLambda)», "%Y-%m-%d %H:%M:%S")' ' '
97+ ToIntOperation : ' ' ' int(«generateExpression(expr.argument, ifLevel, isLambda)»)' ' '
98+ ToTimeOperation : ' ' ' datetime.datetime.strptime(«generateExpression(expr.argument, ifLevel, isLambda)», "%H:%M:%S").time()' ' '
99+ ToZonedDateTimeOperation : ' ' ' datetime.datetime.strptime(«generateExpression(expr.argument, ifLevel, isLambda)», "%Y-%m-%d %H:%M:%S %z %Z")' ' '
90100 // Rune Operations
91101 RosettaAbsentExpression : ' ' ' (not rune_attr_exists(«generateExpression(expr.argument, ifLevel, isLambda)»))' ' '
92102 RosettaBinaryOperation : generateBinaryExpression(expr, ifLevel, isLambda)
@@ -248,6 +258,7 @@ class PythonExpressionGenerator {
248258
249259 return _builder. toString
250260 }
261+
251262
252263 private def String generateReference (RosettaReference expr , int ifLevel , boolean isLambda ) {
253264 switch (expr) {
0 commit comments