class_docstr: Extractor that uses `get_openlineage_facets_on_start/complete/failure` methods.
code: def _get_openlineage_facets(
      self, get_facets_method, *args
  ) -> OperatorLineage | None:
      try:
          facets: OperatorLineage = get_facets_method(*args)
          # "rewrite" OperatorLineage to safeguard against different version of the same class
          # that was existing in openlineage-airflow package outside of Airflow repo
          return OperatorLineage(
              inputs=facets.inputs,
              outputs=facets.outputs,
              run_facets=facets.run_facets,
              job_facets=facets.job_facets,
          )
      except ImportError:
          self.log.exception(
              "OpenLineage provider method failed to import OpenLineage integration. "
              "This should not happen."
          )
      except Exception:
          self.log.warning(
              "OpenLineage provider method failed to extract data from provider. "
          )
      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 4 for calling the DefaultExtractor obj's underlying member method code with example usage: obj._get_openlineage_facets(get_facets_method) and returns: None, OperatorLineage