@@ -36,8 +36,6 @@ class GSheetsHook(CloudBaseHook):
36
36
37
37
:param gcp_conn_id: The connection ID to use when fetching connection info.
38
38
:type gcp_conn_id: str
39
- :param spreadsheet_id: The Google Sheet ID to interact with
40
- :type spreadsheet_id: str
41
39
:param api_version: API Version
42
40
:type api_version: str
43
41
:param delegate_to: The account to impersonate, if any.
@@ -48,13 +46,11 @@ class GSheetsHook(CloudBaseHook):
48
46
49
47
def __init__ (
50
48
self ,
51
- spreadsheet_id : str ,
52
49
gcp_conn_id : str = 'google_cloud_default' ,
53
50
api_version : str = 'v4' ,
54
51
delegate_to : Optional [str ] = None
55
52
) -> None :
56
53
super ().__init__ (gcp_conn_id , delegate_to )
57
- self .spreadsheet_id = spreadsheet_id
58
54
self .gcp_conn_id = gcp_conn_id
59
55
self .api_version = api_version
60
56
self .delegate_to = delegate_to
@@ -75,15 +71,18 @@ def get_conn(self) -> Any:
75
71
76
72
def get_values (
77
73
self ,
74
+ spreadsheet_id : str ,
78
75
range_ : str ,
79
76
major_dimension : str = 'DIMENSION_UNSPECIFIED' ,
80
77
value_render_option : str = 'FORMATTED_VALUE' ,
81
78
date_time_render_option : str = 'SERIAL_NUMBER'
82
- ) -> Dict :
79
+ ) -> List :
83
80
"""
84
81
Gets values from Google Sheet from a single range
85
82
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/get
86
83
84
+ :param spreadsheet_id: The Google Sheet ID to interact with
85
+ :type spreadsheet_id: str
87
86
:param range_: The A1 notation of the values to retrieve.
88
87
:type range_: str
89
88
:param major_dimension: Indicates which dimension an operation should apply to.
@@ -95,22 +94,23 @@ def get_values(
95
94
:param date_time_render_option: Determines how dates should be rendered in the output.
96
95
SERIAL_NUMBER or FORMATTED_STRING
97
96
:type date_time_render_option: str
98
- :return: Google Sheets API response .
99
- :rtype: Dict
97
+ :return: An array of sheet values from the specified sheet .
98
+ :rtype: List
100
99
"""
101
100
service = self .get_conn ()
102
101
response = service .spreadsheets ().values ().get ( # pylint: disable=no-member
103
- spreadsheetId = self . spreadsheet_id ,
102
+ spreadsheetId = spreadsheet_id ,
104
103
range = range_ ,
105
104
majorDimension = major_dimension ,
106
105
valueRenderOption = value_render_option ,
107
106
dateTimeRenderOption = date_time_render_option
108
107
).execute (num_retries = self .num_retries )
109
108
110
- return response
109
+ return response [ 'values' ]
111
110
112
111
def batch_get_values (
113
112
self ,
113
+ spreadsheet_id : str ,
114
114
ranges : List ,
115
115
major_dimension : str = 'DIMENSION_UNSPECIFIED' ,
116
116
value_render_option : str = 'FORMATTED_VALUE' ,
@@ -120,6 +120,8 @@ def batch_get_values(
120
120
Gets values from Google Sheet from a list of ranges
121
121
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchGet
122
122
123
+ :param spreadsheet_id: The Google Sheet ID to interact with
124
+ :type spreadsheet_id: str
123
125
:param ranges: The A1 notation of the values to retrieve.
124
126
:type ranges: List
125
127
:param major_dimension: Indicates which dimension an operation should apply to.
@@ -136,7 +138,7 @@ def batch_get_values(
136
138
"""
137
139
service = self .get_conn ()
138
140
response = service .spreadsheets ().values ().batchGet ( # pylint: disable=no-member
139
- spreadsheetId = self . spreadsheet_id ,
141
+ spreadsheetId = spreadsheet_id ,
140
142
ranges = ranges ,
141
143
majorDimension = major_dimension ,
142
144
valueRenderOption = value_render_option ,
@@ -147,6 +149,7 @@ def batch_get_values(
147
149
148
150
def update_values (
149
151
self ,
152
+ spreadsheet_id : str ,
150
153
range_ : str ,
151
154
values : List ,
152
155
major_dimension : str = 'ROWS' ,
@@ -159,6 +162,8 @@ def update_values(
159
162
Updates values from Google Sheet from a single range
160
163
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/update
161
164
165
+ :param spreadsheet_id: The Google Sheet ID to interact with
166
+ :type spreadsheet_id: str
162
167
:param range_: The A1 notation of the values to retrieve.
163
168
:type range_: str
164
169
:param values: Data within a range of the spreadsheet.
@@ -188,7 +193,7 @@ def update_values(
188
193
"values" : values
189
194
}
190
195
response = service .spreadsheets ().values ().update ( # pylint: disable=no-member
191
- spreadsheetId = self . spreadsheet_id ,
196
+ spreadsheetId = spreadsheet_id ,
192
197
range = range_ ,
193
198
valueInputOption = value_input_option ,
194
199
includeValuesInResponse = include_values_in_response ,
@@ -201,6 +206,7 @@ def update_values(
201
206
202
207
def batch_update_values (
203
208
self ,
209
+ spreadsheet_id : str ,
204
210
ranges : List ,
205
211
values : List ,
206
212
major_dimension : str = 'ROWS' ,
@@ -213,6 +219,8 @@ def batch_update_values(
213
219
Updates values from Google Sheet for multiple ranges
214
220
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate
215
221
222
+ :param spreadsheet_id: The Google Sheet ID to interact with
223
+ :type spreadsheet_id: str
216
224
:param ranges: The A1 notation of the values to retrieve.
217
225
:type ranges: List
218
226
:param values: Data within a range of the spreadsheet.
@@ -257,14 +265,15 @@ def batch_update_values(
257
265
"responseDateTimeRenderOption" : date_time_render_option
258
266
}
259
267
response = service .spreadsheets ().values ().batchUpdate ( # pylint: disable=no-member
260
- spreadsheetId = self . spreadsheet_id ,
268
+ spreadsheetId = spreadsheet_id ,
261
269
body = body
262
270
).execute (num_retries = self .num_retries )
263
271
264
272
return response
265
273
266
274
def append_values (
267
275
self ,
276
+ spreadsheet_id : str ,
268
277
range_ : str ,
269
278
values : List ,
270
279
major_dimension : str = 'ROWS' ,
@@ -278,6 +287,8 @@ def append_values(
278
287
Append values from Google Sheet from a single range
279
288
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/append
280
289
290
+ :param spreadsheet_id: The Google Sheet ID to interact with
291
+ :type spreadsheet_id: str
281
292
:param range_: The A1 notation of the values to retrieve.
282
293
:type range_: str
283
294
:param values: Data within a range of the spreadsheet.
@@ -310,7 +321,7 @@ def append_values(
310
321
"values" : values
311
322
}
312
323
response = service .spreadsheets ().values ().append ( # pylint: disable=no-member
313
- spreadsheetId = self . spreadsheet_id ,
324
+ spreadsheetId = spreadsheet_id ,
314
325
range = range_ ,
315
326
valueInputOption = value_input_option ,
316
327
insertDataOption = insert_data_option ,
@@ -322,29 +333,33 @@ def append_values(
322
333
323
334
return response
324
335
325
- def clear (self , range_ : str ) -> Dict :
336
+ def clear (self , spreadsheet_id : str , range_ : str ) -> Dict :
326
337
"""
327
338
Clear values from Google Sheet from a single range
328
339
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/clear
329
340
341
+ :param spreadsheet_id: The Google Sheet ID to interact with
342
+ :type spreadsheet_id: str
330
343
:param range_: The A1 notation of the values to retrieve.
331
344
:type range_: str
332
345
:return: Google Sheets API response.
333
346
:rtype: Dict
334
347
"""
335
348
service = self .get_conn ()
336
349
response = service .spreadsheets ().values ().clear ( # pylint: disable=no-member
337
- spreadsheetId = self . spreadsheet_id ,
350
+ spreadsheetId = spreadsheet_id ,
338
351
range = range_
339
352
).execute (num_retries = self .num_retries )
340
353
341
354
return response
342
355
343
- def batch_clear (self , ranges : List ) -> Dict :
356
+ def batch_clear (self , spreadsheet_id : str , ranges : List ) -> Dict :
344
357
"""
345
358
Clear values from Google Sheet from a list of ranges
346
359
https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchClear
347
360
361
+ :param spreadsheet_id: The Google Sheet ID to interact with
362
+ :type spreadsheet_id: str
348
363
:param ranges: The A1 notation of the values to retrieve.
349
364
:type ranges: List
350
365
:return: Google Sheets API response.
@@ -355,7 +370,7 @@ def batch_clear(self, ranges: List) -> Dict:
355
370
"ranges" : ranges
356
371
}
357
372
response = service .spreadsheets ().values ().batchClear ( # pylint: disable=no-member
358
- spreadsheetId = self . spreadsheet_id ,
373
+ spreadsheetId = spreadsheet_id ,
359
374
body = body
360
375
).execute (num_retries = self .num_retries )
361
376
0 commit comments