class_docstr: AST Visitor that processes function calls.
  
  Updates function calls from old API version to new API version using a given
  change spec.
class_docstr_tok: ["AST","Visitor","that","processes","function","calls",".","Updates","function","calls","from","old","API","version","to","new","API","version","using","a","given","change","spec","."]
docstr: Replace node (Attribute or Name) with a node representing full_name.
docstr_tok: ["Replace","node","(","Attribute","or","Name",")","with","a","node","representing","full_name","."]
code: def _maybe_rename(self, parent, node, full_name):
      """Replace node (Attribute or Name) with a node representing full_name."""
      new_name = self._api_change_spec.symbol_renames.get(
          full_name, None
      )
      if new_name:
          self.add_log(
              INFO,
              node.lineno,
              node.col_offset,
              "Renamed %r to %r" % (full_name, new_name),
          )
          new_node = full_name_node(new_name, node.ctx)
          ast.copy_location(new_node, node)
          pasta.ast_utils.replace_child(parent, node, new_node)
          return True
      else:
          return False
  
imports: import ast
  import collections
  import os
  import re
  import shutil
  import sys
  import tempfile
  import traceback
  import pasta
label_desc: Use image node_id 16 for calling the _PastaEditVisitor obj's underlying member method code with example usage: obj._maybe_rename(parent, node, full_name) and returns: True, False