@@ -74,6 +74,10 @@ def minimize_expr(self, node):
7474 )
7575
7676 elif isinstance (node , ast .Subscript ):
77+ if isinstance (node .ctx , ast .Store ):
78+ if self .try_node (node , ast .Name (id = "new_name" , ctx = ast .Store ())):
79+ return
80+
7781 self .try_only_minimize (node , node .value , node .slice )
7882
7983 elif isinstance (node , ast .FormattedValue ):
@@ -227,6 +231,41 @@ def minimize_expr(self, node):
227231
228232 elif isinstance (node , ast .NamedExpr ):
229233 self .try_only_minimize (node , node .target , node .value )
234+
235+ elif isinstance (node , ast .Interpolation ):
236+ if isinstance (node .format_spec , ast .JoinedStr ):
237+ # work around for https://github.com/python/cpython/issues/110309
238+ spec = [
239+ v
240+ for v in node .format_spec .values
241+ if not (isinstance (v , ast .Constant ) and v .value == "" )
242+ ]
243+ if len (spec ) == 1 and self .try_only (node , spec [0 ]):
244+ coverage_required ()
245+ self .minimize (spec [0 ])
246+ return
247+
248+ if not self .try_none (node .format_spec ):
249+ self .minimize (node .format_spec )
250+
251+ self .minimize_expr (node .value )
252+
253+ elif isinstance (node , ast .TemplateStr ):
254+ for v in node .values :
255+ if isinstance (v , ast .Interpolation ) and self .try_only (node , v .value ):
256+ self .minimize (v .value )
257+ return
258+ if (
259+ isinstance (v , ast .Interpolation )
260+ and v .format_spec
261+ and self .try_only (node , v .format_spec )
262+ ):
263+ self .minimize (v .format_spec )
264+ return
265+
266+ self .minimize (node .values )
267+ # todo minimize values
268+
230269 else :
231270 assert False , "expression is not handled %s" % (node )
232271
0 commit comments