class_docstr: Hook for Google Dataflow.
  
  All the methods in the hook where project_id is used must be called with
  keyword arguments rather than positional.
class_docstr_tok: ["Hook","for","Google","Dataflow",".","All","the","methods","in","the","hook","where","project_id","is","used","must","be","called","with","keyword","arguments","rather","than","positional","."]
docstr: Starts Dataflow job.
  
  :param job_name: The name of the job.
  :param variables: Variables passed to the job.
  :param dataflow: Name of the Dataflow process.
  :param py_options: Additional options.
  :param project_id: The ID of the GCP project that owns the job.
      If set to ``None`` or missing, the default project_id from the GCP connection is used.
  :param py_interpreter: Python version of the beam pipeline.
      If None, this defaults to the python3.
      To track python versions supported by beam and related
      issues check: https://issues.apache.org/jira/browse/BEAM-1251
  :param py_requirements: Additional python package(s) to install.
      If a value is passed to this parameter, a new virtual environment has been created with
      additional packages installed.
  
      You could also install the apache-beam package if it is not installed on your system or you want
      to use a different version.
  :param py_system_site_packages: Whether to include system_site_packages in your virtualenv.
      See virtualenv documentation for more information.
  
      This option is only relevant if the ``py_requirements`` parameter is not None.
  :param append_job_name: True if unique suffix has to be appended to job name.
  :param project_id: Optional, the Google Cloud project ID in which to start a job.
      If set to None or missing, the default project_id from the Google Cloud connection is used.
  :param on_new_job_id_callback: Callback called when the job ID is known.
  :param location: Job location.
code: def start_python_dataflow(
      self,
      job_name: str,
      variables: dict,
      dataflow: str,
      py_options: list[str],
      project_id: str,
      py_interpreter: str = "python3",
      py_requirements: list[str] | None = None,
      py_system_site_packages: bool = False,
      append_job_name: bool = True,
      on_new_job_id_callback: Callable[[str], None] | None = None,
      location: str = DEFAULT_DATAFLOW_LOCATION,
  ):
      """
      Starts Dataflow job.
  
      :param job_name: The name of the job.
      :param variables: Variables passed to the job.
      :param dataflow: Name of the Dataflow process.
      :param py_options: Additional options.
      :param project_id: The ID of the GCP project that owns the job.
          If set to ``None`` or missing, the default project_id from the GCP connection is used.
      :param py_interpreter: Python version of the beam pipeline.
          If None, this defaults to the python3.
          To track python versions supported by beam and related
          issues check: https://issues.apache.org/jira/browse/BEAM-1251
      :param py_requirements: Additional python package(s) to install.
          If a value is passed to this parameter, a new virtual environment has been created with
          additional packages installed.
  
          You could also install the apache-beam package if it is not installed on your system or you want
          to use a different version.
      :param py_system_site_packages: Whether to include system_site_packages in your virtualenv.
          See virtualenv documentation for more information.
  
          This option is only relevant if the ``py_requirements`` parameter is not None.
      :param append_job_name: True if unique suffix has to be appended to job name.
      :param project_id: Optional, the Google Cloud project ID in which to start a job.
          If set to None or missing, the default project_id from the Google Cloud connection is used.
      :param on_new_job_id_callback: Callback called when the job ID is known.
      :param location: Job location.
      """
      warnings.warn(
          """This method is deprecated.
              Please use `airflow.providers.apache.beam.hooks.beam.start.start_python_pipeline`
              to start pipeline and `providers.google.cloud.hooks.dataflow.DataflowHook.wait_for_done`
              to wait for the required pipeline state.
              """,
          AirflowProviderDeprecationWarning,
          stacklevel=3,
      )
  
      name = self.build_dataflow_job_name(job_name, append_job_name)
      variables["job_name"] = name
      variables["region"] = location
      variables["project"] = project_id
  
      self.beam_hook.start_python_pipeline(
          variables=variables,
          py_file=dataflow,
          py_options=py_options,
          py_interpreter=py_interpreter,
          py_requirements=py_requirements,
          py_system_site_packages=py_system_site_packages,
          process_line_callback=process_line_and_extract_dataflow_job_id_callback(
              on_new_job_id_callback
          ),
      )
  
      self.wait_for_done(
          job_name=name,
          location=location,
          job_id=self.job_id,
      )
  
imports: from __future__ import annotations
  import functools
  import json
  import re
  import shlex
  import subprocess
  import time
  import uuid
  import warnings
  from copy import deepcopy
  from typing import TYPE_CHECKING, Any, Callable, Generator, Sequence, TypeVar, cast
  from google.cloud.dataflow_v1beta3 import GetJobRequest, Job, JobState, JobsV1Beta3AsyncClient, JobView
  from google.cloud.dataflow_v1beta3.types.jobs import ListJobsRequest
  from googleapiclient.discovery import build
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.providers.apache.beam.hooks.beam import BeamHook, BeamRunnerType, beam_options_to_args
  from airflow.providers.google.common.hooks.base_google import PROVIDE_PROJECT_ID, GoogleBaseAsyncHook, GoogleBaseHook
  from airflow.utils.log.logging_mixin import LoggingMixin
  from airflow.utils.timeout import timeout
label_desc: Use image node_id 7 for calling the DataflowHook obj's underlying member method code with example usage: obj.start_python_dataflow(job_name, variables, dataflow, py_options, project_id, py_interpreter, py_requirements, py_system_site_packages, append_job_name, on_new_job_id_callback, location) without return types