class_docstr: Replace AST nodes.
class_docstr_tok: ["Replace","AST","nodes","."]
code: def visit_keyword(self, node):
      if node.arg not in self.replacements:
          return self.generic_visit(node)
  
      repl = self._prepare_replacement(node, node.arg)
      if isinstance(repl, gast.keyword):
          return repl
      elif (
          repl
          and isinstance(repl, (list, tuple))
          and all(isinstance(r, gast.keyword) for r in repl)
      ):
          return repl
      # TODO(mdan): We may allow replacing with a string as well.
      # For example, if one wanted to replace foo with bar in foo=baz, then
      # we could allow changing just node arg, so that we end up with bar=baz.
      raise ValueError(
          "a keyword argument may only be replaced by another keyword or a "
          "non-empty list of keywords. Found: {} for keyword {}".format(
              repl, node.arg
          )
      )
  
imports: import ast
  import textwrap
  import gast
  from nvidia.dali._autograph.pyct import anno
  from nvidia.dali._autograph.pyct import ast_util
  from nvidia.dali._autograph.pyct import parser
  from nvidia.dali._autograph.pyct import qual_names
label_desc: Use image node_id 4 for calling the ReplaceTransformer obj's underlying member method code with example usage: obj.visit_keyword(node) and returns: self, repl, repl