airbyte-source-google-sheets 0.7.4__py3-none-any.whl → 0.8.5__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- {airbyte_source_google_sheets-0.7.4.dist-info → airbyte_source_google_sheets-0.8.5.dist-info}/METADATA +4 -3
- airbyte_source_google_sheets-0.8.5.dist-info/RECORD +14 -0
- {airbyte_source_google_sheets-0.7.4.dist-info → airbyte_source_google_sheets-0.8.5.dist-info}/WHEEL +1 -1
- source_google_sheets/client.py +4 -11
- source_google_sheets/helpers.py +3 -1
- source_google_sheets/source.py +5 -3
- source_google_sheets/utils.py +1 -0
- airbyte_source_google_sheets-0.7.4.dist-info/RECORD +0 -14
- {airbyte_source_google_sheets-0.7.4.dist-info → airbyte_source_google_sheets-0.8.5.dist-info}/entry_points.txt +0 -0
@@ -1,8 +1,7 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: airbyte-source-google-sheets
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.8.5
|
4
4
|
Summary: Source implementation for Google Sheets.
|
5
|
-
Home-page: https://airbyte.com
|
6
5
|
License: Elv2
|
7
6
|
Author: Airbyte
|
8
7
|
Author-email: contact@airbyte.io
|
@@ -12,11 +11,13 @@ Classifier: Programming Language :: Python :: 3
|
|
12
11
|
Classifier: Programming Language :: Python :: 3.10
|
13
12
|
Classifier: Programming Language :: Python :: 3.11
|
14
13
|
Classifier: Programming Language :: Python :: 3.12
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
15
15
|
Requires-Dist: Unidecode (==1.3.8)
|
16
16
|
Requires-Dist: airbyte-cdk (>=4,<5)
|
17
17
|
Requires-Dist: google-api-python-client (==2.114.0)
|
18
18
|
Requires-Dist: google-auth-httplib2 (==0.2.0)
|
19
19
|
Project-URL: Documentation, https://docs.airbyte.com/integrations/sources/google-sheets
|
20
|
+
Project-URL: Homepage, https://airbyte.com
|
20
21
|
Project-URL: Repository, https://github.com/airbytehq/airbyte
|
21
22
|
Description-Content-Type: text/markdown
|
22
23
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
source_google_sheets/__init__.py,sha256=-aGVMRfrgWjYad3_cHofIptEEa5WMQzTvFD92HevQfw,73
|
2
|
+
source_google_sheets/client.py,sha256=A2BynDswjJ4naSyfjJr9G8fAfGEqLlNXP5vlbAsI3_s,1917
|
3
|
+
source_google_sheets/helpers.py,sha256=CbXNlEfC3sNMDTGNPb22DcalWoXfv7kAYs7LmNM76Ec,10644
|
4
|
+
source_google_sheets/models/__init__.py,sha256=Z-4MTpxG5t2jGhXzs4PPoIOa83zw3jRnUDx0N9Puv3s,61
|
5
|
+
source_google_sheets/models/spreadsheet.py,sha256=fsHREpPEN36wCzGdqgfJ2EVW40UDZ_lS863A4XT2pGo,1112
|
6
|
+
source_google_sheets/models/spreadsheet_values.py,sha256=y8ytuTqwpziJ2ICl0xhlRWgjMkxTfxOalRd414PMHZM,440
|
7
|
+
source_google_sheets/run.py,sha256=_f5-LNqMzBuHtCD1YoUBxnA0fszgqmdNGcN7y_AmXU0,237
|
8
|
+
source_google_sheets/source.py,sha256=kuHugJM9VOEPsArkP4lo88nBrS8ipk1yAoUi7cVSYZY,13506
|
9
|
+
source_google_sheets/spec.yaml,sha256=WrPdH2xLCdyM-kY-pRqbwICcNPhv8nqnb2gdbslTsaQ,5141
|
10
|
+
source_google_sheets/utils.py,sha256=DI53ARcKln77ekvuzsb3x35O9aMgZ_9OY9ets0FtI24,2290
|
11
|
+
airbyte_source_google_sheets-0.8.5.dist-info/METADATA,sha256=LkVsOKPv_UsgFioRkUDxOiDG8kO6jFF_F7MYl3zkXy8,5551
|
12
|
+
airbyte_source_google_sheets-0.8.5.dist-info/WHEEL,sha256=IYZQI976HJqqOpQU6PHkJ8fb3tMNBFjg-Cn-pwAbaFM,88
|
13
|
+
airbyte_source_google_sheets-0.8.5.dist-info/entry_points.txt,sha256=Dtsfjohe5IPUFyqojk49SIoP7CifCTlNLG_pgivzppo,69
|
14
|
+
airbyte_source_google_sheets-0.8.5.dist-info/RECORD,,
|
source_google_sheets/client.py
CHANGED
@@ -11,6 +11,7 @@ from requests import codes as status_codes
|
|
11
11
|
|
12
12
|
from .helpers import SCOPES, Helpers
|
13
13
|
|
14
|
+
|
14
15
|
logger = logging.getLogger("airbyte")
|
15
16
|
|
16
17
|
|
@@ -33,24 +34,16 @@ class GoogleSheetsClient:
|
|
33
34
|
def __init__(self, credentials: Dict[str, str], scopes: List[str] = SCOPES):
|
34
35
|
self.client = Helpers.get_authenticated_sheets_client(credentials, scopes)
|
35
36
|
|
36
|
-
def _create_range(self, sheet, row_cursor):
|
37
|
-
range = f"{sheet}!{row_cursor}:{row_cursor + self.Backoff.row_batch_size}"
|
38
|
-
return range
|
39
|
-
|
40
37
|
@backoff.on_exception(backoff.expo, errors.HttpError, max_time=120, giveup=Backoff.give_up, on_backoff=Backoff.increase_row_batch_size)
|
41
38
|
def get(self, **kwargs):
|
42
39
|
return self.client.get(**kwargs).execute()
|
43
40
|
|
44
|
-
@backoff.on_exception(backoff.expo, errors.HttpError, max_time=120, giveup=Backoff.give_up, on_backoff=Backoff.increase_row_batch_size)
|
45
|
-
def create(self, **kwargs):
|
46
|
-
return self.client.create(**kwargs).execute()
|
47
|
-
|
48
41
|
@backoff.on_exception(backoff.expo, errors.HttpError, max_time=120, giveup=Backoff.give_up, on_backoff=Backoff.increase_row_batch_size)
|
49
42
|
def get_values(self, **kwargs):
|
50
43
|
range = self._create_range(kwargs.pop("sheet"), kwargs.pop("row_cursor"))
|
51
44
|
logger.info(f"Fetching range {range}")
|
52
45
|
return self.client.values().batchGet(ranges=range, **kwargs).execute()
|
53
46
|
|
54
|
-
|
55
|
-
|
56
|
-
return
|
47
|
+
def _create_range(self, sheet, row_cursor):
|
48
|
+
range = f"{sheet}!{row_cursor}:{row_cursor + self.Backoff.row_batch_size}"
|
49
|
+
return range
|
source_google_sheets/helpers.py
CHANGED
@@ -9,14 +9,16 @@ from collections import defaultdict
|
|
9
9
|
from datetime import datetime
|
10
10
|
from typing import Dict, FrozenSet, Iterable, List, Tuple
|
11
11
|
|
12
|
-
from airbyte_cdk.models.airbyte_protocol import AirbyteRecordMessage, AirbyteStream, ConfiguredAirbyteCatalog, SyncMode
|
13
12
|
from google.oauth2 import credentials as client_account
|
14
13
|
from google.oauth2 import service_account
|
15
14
|
from googleapiclient import discovery
|
16
15
|
|
16
|
+
from airbyte_cdk.models.airbyte_protocol import AirbyteRecordMessage, AirbyteStream, ConfiguredAirbyteCatalog, SyncMode
|
17
|
+
|
17
18
|
from .models.spreadsheet import RowData, Spreadsheet
|
18
19
|
from .utils import safe_name_conversion
|
19
20
|
|
21
|
+
|
20
22
|
SCOPES = ["https://www.googleapis.com/auth/spreadsheets.readonly", "https://www.googleapis.com/auth/drive.readonly"]
|
21
23
|
|
22
24
|
logger = logging.getLogger("airbyte")
|
source_google_sheets/source.py
CHANGED
@@ -8,6 +8,10 @@ import logging
|
|
8
8
|
import socket
|
9
9
|
from typing import Any, Generator, List, Mapping, MutableMapping, Optional, Union
|
10
10
|
|
11
|
+
from apiclient import errors
|
12
|
+
from google.auth import exceptions as google_exceptions
|
13
|
+
from requests.status_codes import codes as status_codes
|
14
|
+
|
11
15
|
from airbyte_cdk.models import FailureType
|
12
16
|
from airbyte_cdk.models.airbyte_protocol import (
|
13
17
|
AirbyteCatalog,
|
@@ -24,9 +28,6 @@ from airbyte_cdk.sources.source import Source
|
|
24
28
|
from airbyte_cdk.sources.streams.checkpoint import FullRefreshCheckpointReader
|
25
29
|
from airbyte_cdk.utils import AirbyteTracedException
|
26
30
|
from airbyte_cdk.utils.stream_status_utils import as_airbyte_message
|
27
|
-
from apiclient import errors
|
28
|
-
from google.auth import exceptions as google_exceptions
|
29
|
-
from requests.status_codes import codes as status_codes
|
30
31
|
|
31
32
|
from .client import GoogleSheetsClient
|
32
33
|
from .helpers import Helpers
|
@@ -34,6 +35,7 @@ from .models.spreadsheet import Spreadsheet
|
|
34
35
|
from .models.spreadsheet_values import SpreadsheetValues
|
35
36
|
from .utils import exception_description_by_status_code, safe_name_conversion
|
36
37
|
|
38
|
+
|
37
39
|
# override default socket timeout to be 10 mins instead of 60 sec.
|
38
40
|
# on behalf of https://github.com/airbytehq/oncall/issues/242
|
39
41
|
DEFAULT_SOCKET_TIMEOUT: int = 600
|
source_google_sheets/utils.py
CHANGED
@@ -1,14 +0,0 @@
|
|
1
|
-
source_google_sheets/__init__.py,sha256=-aGVMRfrgWjYad3_cHofIptEEa5WMQzTvFD92HevQfw,73
|
2
|
-
source_google_sheets/client.py,sha256=k7AAS0XbHdKDIywgrRMTpKMcKYQfHOjAi2s-MjDRqQs,2391
|
3
|
-
source_google_sheets/helpers.py,sha256=kKXop3YyQ3jPYlWgWW3GmRPxDmnuoHZ4joa3rQLCxUQ,10642
|
4
|
-
source_google_sheets/models/__init__.py,sha256=Z-4MTpxG5t2jGhXzs4PPoIOa83zw3jRnUDx0N9Puv3s,61
|
5
|
-
source_google_sheets/models/spreadsheet.py,sha256=fsHREpPEN36wCzGdqgfJ2EVW40UDZ_lS863A4XT2pGo,1112
|
6
|
-
source_google_sheets/models/spreadsheet_values.py,sha256=y8ytuTqwpziJ2ICl0xhlRWgjMkxTfxOalRd414PMHZM,440
|
7
|
-
source_google_sheets/run.py,sha256=_f5-LNqMzBuHtCD1YoUBxnA0fszgqmdNGcN7y_AmXU0,237
|
8
|
-
source_google_sheets/source.py,sha256=KIcjUH_-vRNTwHd6rNv8c_jgPBJjXMMmcDvvVyng_OA,13504
|
9
|
-
source_google_sheets/spec.yaml,sha256=WrPdH2xLCdyM-kY-pRqbwICcNPhv8nqnb2gdbslTsaQ,5141
|
10
|
-
source_google_sheets/utils.py,sha256=ZB5lboyffiuuQdSarqe8AqBGEyiQpxiOfxqcU7Ght8A,2289
|
11
|
-
airbyte_source_google_sheets-0.7.4.dist-info/METADATA,sha256=iP92lz-_jqBeF1VuqX_RtiDUztNhrmijNvcFclCuP_o,5488
|
12
|
-
airbyte_source_google_sheets-0.7.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
13
|
-
airbyte_source_google_sheets-0.7.4.dist-info/entry_points.txt,sha256=Dtsfjohe5IPUFyqojk49SIoP7CifCTlNLG_pgivzppo,69
|
14
|
-
airbyte_source_google_sheets-0.7.4.dist-info/RECORD,,
|
File without changes
|