class_docstr: Copies data from a source GCS location to a temporary location on the local filesystem.
  
  Runs a transformation on this file as specified by the transformation script
  and uploads the output to a destination bucket. If the output bucket is not
  specified the original file will be overwritten.
  
  The locations of the source and the destination files in the local
  filesystem is provided as an first and second arguments to the
  transformation script. The transformation script is expected to read the
  data from source, transform it and write the output to the local
  destination file.
  
  :param source_bucket: The bucket to locate the source_object. (templated)
  :param source_object: The key to be retrieved from GCS. (templated)
  :param destination_bucket: The bucket to upload the key after transformation.
      If not provided, source_bucket will be used. (templated)
  :param destination_object: The key to be written in GCS.
      If not provided, source_object will be used. (templated)
  :param transform_script: location of the executable transformation script or list of arguments
      passed to subprocess ex. `['python', 'script.py', 10]`. (templated)
  :param gcp_conn_id: The connection ID to use connecting to Google Cloud.
  :param impersonation_chain: Optional service account to impersonate using short-term
      credentials, or chained list of accounts required to get the access_token
      of the last account in the list, which will be impersonated in the request.
      If set as a string, the account must grant the originating account
      the Service Account Token Creator IAM role.
      If set as a sequence, the identities from the list must grant
      Service Account Token Creator IAM role to the directly preceding identity, with first
      account from the list granting this role to the originating account (templated).
class_docstr_tok: ["Copies","data","from","a","source","GCS","location","to","a","temporary","location","on","the","local","filesystem",".","Runs","a","transformation","on","this","file","as","specified","by","the","transformation","script","and","uploads","the","output","to","a","destination","bucket",".","If","the","output","bucket","is","not","specified","the","original","file","will","be","overwritten",".","The","locations","of","the","source","and","the","destination","files","in","the","local","filesystem","is","provided","as","an","first","and","second","arguments","to","the","transformation","script",".","The","transformation","script","is","expected","to","read","the","data","from","source",",","transform","it","and","write","the","output","to","the","local","destination","file",".",":","param","source_bucket",":","The","bucket","to","locate","the","source_object",".","(","templated",")",":","param","source_object",":","The","key","to","be","retrieved","from","GCS",".","(","templated",")",":","param","destination_bucket",":","The","bucket","to","upload","the","key","after","transformation",".","If","not","provided",",","source_bucket","will","be","used",".","(","templated",")",":","param","destination_object",":","The","key","to","be","written","in","GCS",".","If","not","provided",",","source_object","will","be","used",".","(","templated",")",":","param","transform_script",":","location","of","the","executable","transformation","script","or","list","of","arguments","passed","to","subprocess","ex",".","`","[","'python","'",",","'script.py","'",",","10","]","`",".","(","templated",")",":","param","gcp_conn_id",":","The","connection","ID","to","use","connecting","to","Google","Cloud",".",":","param","impersonation_chain",":","Optional","service","account","to","impersonate","using","short-term","credentials",",","or","chained","list","of","accounts","required","to","get","the","access_token","of","the","last","account","in","the","list",",","which","will","be","impersonated","in","the","request",".","If","set","as","a","string",",","the","account","must","grant","the","originating","account","the","Service","Account","Token","Creator","IAM","role",".","If","set","as","a","sequence",",","the","identities","from","the","list","must","grant","Service","Account","Token","Creator","IAM","role","to","the","directly","preceding","identity",",","with","first","account","from","the","list","granting","this","role","to","the","originating","account","(","templated",")","."]
code: def get_openlineage_facets_on_start(self):
      from openlineage.client.run import Dataset
  
      from airflow.providers.openlineage.extractors import (
          OperatorLineage,
      )
  
      input_dataset = Dataset(
          namespace=f"gs://{self.source_bucket}",
          name=self.source_object,
      )
      output_dataset = Dataset(
          namespace=f"gs://{self.destination_bucket}",
          name=self.destination_object,
      )
  
      return OperatorLineage(
          inputs=[input_dataset], outputs=[output_dataset]
      )
  
imports: from __future__ import annotations
  import datetime
  import subprocess
  import sys
  import warnings
  from pathlib import Path
  from tempfile import NamedTemporaryFile, TemporaryDirectory
  from typing import TYPE_CHECKING, Sequence
  import pendulum
  from google.api_core.exceptions import Conflict
  from google.cloud.exceptions import GoogleCloudError
  from airflow.exceptions import AirflowException, AirflowProviderDeprecationWarning
  from airflow.providers.google.cloud.hooks.gcs import GCSHook
  from airflow.providers.google.cloud.operators.cloud_base import GoogleCloudBaseOperator
  from airflow.providers.google.common.links.storage import FileDetailsLink, StorageLink
  from airflow.utils import timezone
label_desc: Use image node_id 3 for calling the GCSFileTransformOperator obj's underlying member method code with example usage: obj.get_openlineage_facets_on_start() and returns: OperatorLineage