class_docstr: Mangle given names in and ast tree to make sure they do not conflict with
  user code.
class_docstr_tok: ["Mangle","given","names","in","and","ast","tree","to","make","sure","they","do","not","conflict","with","user","code","."]
code: def visit_FunctionDef(self, node):
      if self.predicate(node.name):
          self.log("Mangling", node.name)
          node.name = "mangle-" + node.name
      else:
          self.log("Not mangling", node.name)
  
      for arg in node.args.args:
          if self.predicate(arg.arg):
              self.log("Mangling function arg", arg.arg)
              arg.arg = "mangle-" + arg.arg
          else:
              self.log("Not mangling function arg", arg.arg)
      return self.generic_visit(node)
  
file_path: catboost/contrib/python/ipython/py3/IPython/core/magics/ast_mod.py
imports: from ast import NodeTransformer, Store, Load, Name, Expr, Assign, Module
  import ast
  import copy
  from typing import Dict, Optional
label_desc: Use image node_id 4 for calling the Mangler obj's underlying member method code with example usage: obj.visit_FunctionDef(node) and returns: self