class_docstr: Helper methods for Beam Handler.
class_docstr_tok: ["Helper","methods","for","Beam","Handler","."]
docstr: Creates/updates pipeline folder in the handler directory.
docstr_tok: ["Creates\/updates","pipeline","folder","in","the","handler","directory","."]
code: def _save_pipeline(self, pipeline_args: Dict[str, Any]) -> None:
      """Creates/updates pipeline folder in the handler directory."""
      # Add pipeline dsl path to pipeline args.
      pipeline_args[labels.PIPELINE_DSL_PATH] = self.flags_dict[
          labels.PIPELINE_DSL_PATH
      ]
      pipeline_name = pipeline_args[labels.PIPELINE_NAME]
  
      handler_pipeline_path = self._get_pipeline_info_path(
          pipeline_name
      )
  
      # If updating pipeline, first delete pipeline directory.
      if fileio.exists(handler_pipeline_path):
          io_utils.delete_dir(handler_pipeline_path)
  
      # Dump pipeline_args to handler pipeline folder as json.
      fileio.makedirs(handler_pipeline_path)
      with open(self._get_pipeline_args_path(pipeline_name), "w") as f:
          json.dump(pipeline_args, f)
  
imports: import json
  import sys
  from typing import Any, Dict
  import click
  from tfx.dsl.io import fileio
  from tfx.tools.cli import labels
  from tfx.tools.cli.handler import base_handler
  from tfx.tools.cli.handler import beam_dag_runner_patcher
  from tfx.tools.cli.handler import dag_runner_patcher
  from tfx.utils import io_utils
label_desc: Use image node_id 12 for calling the BeamHandler obj's underlying member method code with example usage: obj._save_pipeline(pipeline_args) without return types