def execute(self, context: 'Context'): sheet_hook = GSheetsHook( gcp_conn_id=self.gcp_conn_id, delegate_to=self.delegate_to, impersonation_chain=self.impersonation_chain, ) gcs_hook = GCSHook( gcp_conn_id=self.gcp_conn_id, delegate_to=self.delegate_to, impersonation_chain=self.impersonation_chain, ) # Pull data and upload destination_array: List[str] = [] sheet_titles = sheet_hook.get_sheet_titles( spreadsheet_id=self.spreadsheet_id, sheet_filter=self.sheet_filter) for sheet_range in sheet_titles: data = sheet_hook.get_values(spreadsheet_id=self.spreadsheet_id, range_=sheet_range) gcs_path_to_file = self._upload_data(gcs_hook, sheet_hook, sheet_range, data) destination_array.append(gcs_path_to_file) self.xcom_push(context, "destination_objects", destination_array) return destination_array
def execute(self, context: Any) -> None: sheet_hook = GSheetsHook( gcp_conn_id=self.gcp_conn_id, delegate_to=self.delegate_to, impersonation_chain=self.impersonation_chain, ) gcs_hook = GCSHook( gcp_conn_id=self.gcp_conn_id, delegate_to=self.delegate_to, impersonation_chain=self.impersonation_chain, ) with NamedTemporaryFile("w+") as temp_file: # Download data gcs_hook.download( bucket_name=self.bucket_name, object_name=self.object_name, filename=temp_file.name, ) # Upload data values = list(csv.reader(temp_file)) sheet_hook.update_values( spreadsheet_id=self.spreadsheet_id, range_=self.spreadsheet_range, values=values, )
def execute(self, context: Any): hook = GSheetsHook(gcp_conn_id=self.gcp_conn_id, delegate_to=self.delegate_to) spreadsheet = hook.create_spreadsheet(spreadsheet=self.spreadsheet) self.xcom_push(context, "spreadsheet_id", spreadsheet["spreadsheetId"]) self.xcom_push(context, "spreadsheet_url", spreadsheet["spreadsheetUrl"]) return spreadsheet
def execute(self, context: Any) -> Dict[str, Any]: hook = GSheetsHook( gcp_conn_id=self.gcp_conn_id, delegate_to=self.delegate_to, impersonation_chain=self.impersonation_chain, ) spreadsheet = hook.create_spreadsheet(spreadsheet=self.spreadsheet) self.xcom_push(context, "spreadsheet_id", spreadsheet["spreadsheetId"]) self.xcom_push(context, "spreadsheet_url", spreadsheet["spreadsheetUrl"]) return spreadsheet
def execute(self, context: Any) -> None: self.log.info("Getting data") values = list(self._get_data()) self.log.info("Connecting to Google") sheet_hook = GSheetsHook( gcp_conn_id=self.gcp_conn_id, delegate_to=self.delegate_to, impersonation_chain=self.impersonation_chain, ) self.log.info(f"Uploading data to https://docs.google.com/spreadsheets/d/{self.spreadsheet_id}") sheet_hook.update_values( spreadsheet_id=self.spreadsheet_id, range_=self.spreadsheet_range, values=values, )
def setUp(self): with mock.patch( 'airflow.providers.google.cloud.hooks.base.CloudBaseHook.__init__', new=mock_base_gcp_hook_default_project_id): self.hook = GSheetsHook(gcp_conn_id=GCP_CONN_ID)
def setUp(self): with mock.patch('airflow.gcp.hooks.base.CloudBaseHook.__init__', new=mock_base_gcp_hook_default_project_id): self.hook = GSheetsHook(gcp_conn_id=GCP_CONN_ID, spreadsheet_id=SPREADHSEET_ID)