class_docstr: Extractor that uses `get_openlineage_facets_on_start/complete/failure` methods.
code: def _execute_extraction(self) -> OperatorLineage | None:
      # OpenLineage methods are optional - if there's no method, return None
      try:
          return self._get_openlineage_facets(self.operator.get_openlineage_facets_on_start)  # type: ignore
      except ImportError:
          self.log.error(
              "OpenLineage provider method failed to import OpenLineage integration. "
              "This should not happen. Please report this bug to developers."
          )
          return None
      except AttributeError:
          self.log.debug(
              f"Operator {self.operator.task_type} does not have the "
              "get_openlineage_facets_on_start method."
          )
          return None
  
imports: from __future__ import annotations
  from abc import ABC, abstractmethod
  from functools import cached_property
  from typing import TYPE_CHECKING
  from attrs import Factory, define
  from airflow.configuration import conf
  from airflow.utils.log.logging_mixin import LoggingMixin
  from airflow.utils.state import TaskInstanceState
label_desc: Use image node_id 2 for calling the DefaultExtractor obj's underlying member method code with example usage: obj._execute_extraction() and returns: self, None, None