@@ -122,26 +122,26 @@ def visit_Call(self, node):
122
122
if function_name == 'Where' :
123
123
if len (args ) != 1 :
124
124
raise SyntaxError ('Where() call must have exactly one argument' )
125
- if isinstance (args [0 ], ast .Str ):
126
- args [0 ] = unwrap_ast (ast .parse (args [0 ].s ))
125
+ if isinstance (args [0 ], ast .Constant ) and isinstance ( args [ 0 ]. value , str ):
126
+ args [0 ] = unwrap_ast (ast .parse (args [0 ].value ))
127
127
if not isinstance (args [0 ], ast .Lambda ):
128
128
raise SyntaxError ('Where() call argument must be a lambda' )
129
129
return Where (source = self .visit (source ),
130
130
predicate = self .visit (args [0 ]))
131
131
elif function_name == 'Select' :
132
132
if len (args ) != 1 :
133
133
raise SyntaxError ('Select() call must have exactly one argument' )
134
- if isinstance (args [0 ], ast .Str ):
135
- args [0 ] = unwrap_ast (ast .parse (args [0 ].s ))
134
+ if isinstance (args [0 ], ast .Constant ) and isinstance ( args [ 0 ]. value , str ):
135
+ args [0 ] = unwrap_ast (ast .parse (args [0 ].value ))
136
136
if not isinstance (args [0 ], ast .Lambda ):
137
137
raise SyntaxError ('Select() call argument must be a lambda' )
138
138
return Select (source = self .visit (source ),
139
139
selector = self .visit (args [0 ]))
140
140
elif function_name == 'SelectMany' :
141
141
if len (args ) != 1 :
142
142
raise SyntaxError ('SelectMany() call must have exactly one argument' )
143
- if isinstance (args [0 ], ast .Str ):
144
- args [0 ] = unwrap_ast (ast .parse (args [0 ].s ))
143
+ if isinstance (args [0 ], ast .Constant ) and isinstance ( args [ 0 ]. value , str ):
144
+ args [0 ] = unwrap_ast (ast .parse (args [0 ].value ))
145
145
if not isinstance (args [0 ], ast .Lambda ):
146
146
raise SyntaxError ('SelectMany() call argument must be a lambda' )
147
147
return SelectMany (source = self .visit (source ),
@@ -166,8 +166,8 @@ def visit_Call(self, node):
166
166
if len (args ) != 2 :
167
167
raise SyntaxError ('Aggregate() call must have exactly two arguments; found'
168
168
+ str (len (args )))
169
- if isinstance (args [1 ], ast .Str ):
170
- args [1 ] = unwrap_ast (ast .parse (args [1 ].s ))
169
+ if isinstance (args [1 ], ast .Constant ) and isinstance ( args [ 1 ]. value , str ):
170
+ args [1 ] = unwrap_ast (ast .parse (args [1 ].value ))
171
171
if not isinstance (args [1 ], ast .Lambda ):
172
172
raise SyntaxError ('Second Aggregate() call argument must be a lambda' )
173
173
return Aggregate (source = self .visit (source ),
@@ -192,17 +192,17 @@ def visit_Call(self, node):
192
192
elif function_name == 'All' :
193
193
if len (args ) != 1 :
194
194
raise SyntaxError ('All() call must have exactly one argument' )
195
- if isinstance (args [0 ], ast .Str ):
196
- args [0 ] = unwrap_ast (ast .parse (args [0 ].s ))
195
+ if isinstance (args [0 ], ast .Constant ) and isinstance ( args [ 0 ]. value , str ):
196
+ args [0 ] = unwrap_ast (ast .parse (args [0 ].value ))
197
197
if not isinstance (args [0 ], ast .Lambda ):
198
198
raise SyntaxError ('All() call argument must be a lambda' )
199
199
return All (source = self .visit (source ),
200
200
predicate = self .visit (args [0 ]))
201
201
elif function_name == 'Any' :
202
202
if len (args ) != 1 :
203
203
raise SyntaxError ('Any() call must have exactly one argument' )
204
- if isinstance (args [0 ], ast .Str ):
205
- args [0 ] = unwrap_ast (ast .parse (args [0 ].s ))
204
+ if isinstance (args [0 ], ast .Constant ) and isinstance ( args [ 0 ]. value , str ):
205
+ args [0 ] = unwrap_ast (ast .parse (args [0 ].value ))
206
206
if not isinstance (args [0 ], ast .Lambda ):
207
207
raise SyntaxError ('Any() call argument must be a lambda' )
208
208
return Any (source = self .visit (source ),
@@ -218,17 +218,17 @@ def visit_Call(self, node):
218
218
elif function_name == 'OrderBy' :
219
219
if len (args ) != 1 :
220
220
raise SyntaxError ('OrderBy() call must have exactly one argument' )
221
- if isinstance (args [0 ], ast .Str ):
222
- args [0 ] = unwrap_ast (ast .parse (args [0 ].s ))
221
+ if isinstance (args [0 ], ast .Constant ) and isinstance ( args [ 0 ]. value , str ):
222
+ args [0 ] = unwrap_ast (ast .parse (args [0 ].value ))
223
223
if not isinstance (args [0 ], ast .Lambda ):
224
224
raise SyntaxError ('OrderBy() call argument must be a lambda' )
225
225
return OrderBy (source = self .visit (source ),
226
226
key_selector = self .visit (args [0 ]))
227
227
elif function_name == 'OrderByDescending' :
228
228
if len (args ) != 1 :
229
229
raise SyntaxError ('OrderByDescending() call must have exactly one argument' )
230
- if isinstance (args [0 ], ast .Str ):
231
- args [0 ] = unwrap_ast (ast .parse (args [0 ].s ))
230
+ if isinstance (args [0 ], ast .Constant ) and isinstance ( args [ 0 ]. value , str ):
231
+ args [0 ] = unwrap_ast (ast .parse (args [0 ].value ))
232
232
if not isinstance (args [0 ], ast .Lambda ):
233
233
raise SyntaxError ('OrderByDescending() call argument must be a lambda' )
234
234
return OrderByDescending (source = self .visit (source ),
0 commit comments