class_docstr: Translate Airflow metadata to OpenLineage events instead of creating them from Airflow code.
class_docstr_tok: ["Translate","Airflow","metadata","to","OpenLineage","events","instead","of","creating","them","from","Airflow","code","."]
code: def __init__(
      self,
      client: OpenLineageClient | None = None,
      secrets_masker: SecretsMasker | None = None,
  ):
      super().__init__()
      self._client = client
      if not secrets_masker:
          from airflow.utils.log.secrets_masker import _secrets_masker
  
          secrets_masker = _secrets_masker()
      self._redacter = OpenLineageRedactor.from_masker(secrets_masker)
  
imports: from __future__ import annotations
  import os
  import uuid
  from typing import TYPE_CHECKING
  import yaml
  from openlineage.client import OpenLineageClient, set_producer
  from openlineage.client.facet import BaseFacet, DocumentationJobFacet, ErrorMessageRunFacet, NominalTimeRunFacet, OwnershipJobFacet, OwnershipJobFacetOwners, ParentRunFacet, ProcessingEngineRunFacet, SourceCodeLocationJobFacet
  from openlineage.client.run import Job, Run, RunEvent, RunState
  from airflow.configuration import conf
  from airflow.providers.openlineage import __version__
  from airflow.providers.openlineage.utils.utils import OpenLineageRedactor
  from airflow.stats import Stats
  from airflow.utils.log.logging_mixin import LoggingMixin
label_desc: Use image node_id 1 to create a new OpenLineageAdapter object from inherited base classes: LoggingMixin with example: obj = OpenLineageAdapter(client, secrets_masker)