def visit_Assign(self, node: ast.Assign): if not isinstance(node.value, (ast.List, ast.Tuple)): return self.generic_visit(node) new_targets = [] for target in node.targets: new_targets.append(self.visit(target)) node.targets = cast('List[ast.expr]', new_targets) replacement_literal = ast.Call(func=ast.Name(self.literal_tracer, ast.Load()), args=[node.value], keywords=[]) ast.copy_location(node.value, replacement_literal) node.value = replacement_literal return node
def visit_Assign(self, node: ast.Assign): new_targets = [] for target in node.targets: new_targets.append(self.visit(target)) node.targets = new_targets orig_value_id = id(node.value) with fast.location_of(node.value): node.value = self._make_tuple_event_for( self.visit(node.value), TraceEvent.before_assign_rhs, orig_node_id=orig_value_id ) node.value = fast.Call( func=self._emitter_ast(), args=[TraceEvent.after_assign_rhs.to_ast(), self._get_copy_id_ast(orig_value_id)], keywords=fast.kwargs(ret=node.value), ) return node