class_docstr: Checks the status of a pipeline run.
  
  :param azure_data_factory_conn_id: The connection identifier for connecting to Azure Data Factory.
  :param run_id: The pipeline run identifier.
  :param resource_group_name: The resource group name.
  :param factory_name: The data factory name.
  :param deferrable: Run sensor in the deferrable mode.
code: def poke(self, context: Context) -> bool:
      pipeline_run_status = self.hook.get_pipeline_run_status(
          run_id=self.run_id,
          resource_group_name=self.resource_group_name,
          factory_name=self.factory_name,
      )
  
      if (
          pipeline_run_status
          == AzureDataFactoryPipelineRunStatus.FAILED
      ):
          # TODO: remove this if check when min_airflow_version is set to higher than 2.7.1
          message = f"Pipeline run {self.run_id} has failed."
          if self.soft_fail:
              raise AirflowSkipException(message)
          raise AzureDataFactoryPipelineRunException(message)
  
      if (
          pipeline_run_status
          == AzureDataFactoryPipelineRunStatus.CANCELLED
      ):
          # TODO: remove this if check when min_airflow_version is set to higher than 2.7.1
          message = f"Pipeline run {self.run_id} has been cancelled."
          if self.soft_fail:
              raise AirflowSkipException(message)
          raise AzureDataFactoryPipelineRunException(message)
  
      return (
          pipeline_run_status
          == AzureDataFactoryPipelineRunStatus.SUCCEEDED
      )
  
file_path: airflow/airflow/providers/microsoft/azure/sensors/data_factory.py
imports: from __future__ import annotations
  from datetime import timedelta
  from functools import cached_property
  from typing import TYPE_CHECKING, Sequence
  from airflow.configuration import conf
  from airflow.exceptions import AirflowException, AirflowSkipException
  from airflow.providers.microsoft.azure.hooks.data_factory import AzureDataFactoryHook, AzureDataFactoryPipelineRunException, AzureDataFactoryPipelineRunStatus
  from airflow.providers.microsoft.azure.triggers.data_factory import ADFPipelineRunStatusSensorTrigger
  from airflow.sensors.base import BaseSensorOperator
label_desc: Use image node_id 3 for calling the AzureDataFactoryPipelineRunStatusSensor obj's underlying member method code with example usage: obj.poke(context) and returns: unknown