ingestr 0.14.7__py3-none-any.whl → 0.14.9__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ingestr might be problematic. Click here for more details.
- ingestr/src/buildinfo.py +1 -1
- ingestr/src/errors.py +8 -0
- ingestr/src/freshdesk/freshdesk_client.py +12 -2
- {ingestr-0.14.7.dist-info → ingestr-0.14.9.dist-info}/METADATA +1 -1
- {ingestr-0.14.7.dist-info → ingestr-0.14.9.dist-info}/RECORD +8 -8
- {ingestr-0.14.7.dist-info → ingestr-0.14.9.dist-info}/WHEEL +0 -0
- {ingestr-0.14.7.dist-info → ingestr-0.14.9.dist-info}/entry_points.txt +0 -0
- {ingestr-0.14.7.dist-info → ingestr-0.14.9.dist-info}/licenses/LICENSE.md +0 -0
ingestr/src/buildinfo.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
version = "v0.14.
|
|
1
|
+
version = "v0.14.9"
|
ingestr/src/errors.py
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import requests
|
|
2
|
+
|
|
3
|
+
|
|
1
4
|
class MissingValueError(Exception):
|
|
2
5
|
def __init__(self, value, source):
|
|
3
6
|
super().__init__(f"{value} is required to connect to {source}")
|
|
@@ -16,3 +19,8 @@ class InvalidBlobTableError(Exception):
|
|
|
16
19
|
f"Invalid source table for {source} "
|
|
17
20
|
"Ensure that the table is in the format {bucket-name}/{file glob}"
|
|
18
21
|
)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class HTTPError(Exception):
|
|
25
|
+
def __init__(self, source: requests.HTTPError):
|
|
26
|
+
super().__init__(f"HTTP {source.response.status_code}: {source.response.text}")
|
|
@@ -8,6 +8,10 @@ import pendulum
|
|
|
8
8
|
from dlt.common.typing import TDataItem
|
|
9
9
|
from dlt.sources.helpers import requests
|
|
10
10
|
|
|
11
|
+
from ingestr.src.errors import HTTPError
|
|
12
|
+
|
|
13
|
+
TICKETS_QUERY_MAX_PAGE = 10
|
|
14
|
+
|
|
11
15
|
|
|
12
16
|
class FreshdeskClient:
|
|
13
17
|
"""
|
|
@@ -62,7 +66,7 @@ class FreshdeskClient:
|
|
|
62
66
|
else:
|
|
63
67
|
# If the error is not a rate limit (429), raise the exception to be
|
|
64
68
|
# handled elsewhere or stop execution
|
|
65
|
-
raise
|
|
69
|
+
raise HTTPError(e) from e
|
|
66
70
|
|
|
67
71
|
def paginated_response(
|
|
68
72
|
self,
|
|
@@ -83,6 +87,8 @@ class FreshdeskClient:
|
|
|
83
87
|
if query is not None:
|
|
84
88
|
query = query.replace('"', "").strip()
|
|
85
89
|
|
|
90
|
+
is_tickets_query = query and endpoint == "tickets"
|
|
91
|
+
|
|
86
92
|
while True:
|
|
87
93
|
# Construct the URL for the specific endpoint
|
|
88
94
|
url = f"{self.base_url}/{endpoint}"
|
|
@@ -97,7 +103,7 @@ class FreshdeskClient:
|
|
|
97
103
|
|
|
98
104
|
params[param_key] = start_date.to_iso8601_string()
|
|
99
105
|
|
|
100
|
-
if
|
|
106
|
+
if is_tickets_query:
|
|
101
107
|
url = f"{self.base_url}/search/tickets"
|
|
102
108
|
params = {
|
|
103
109
|
"query": f'"{query}"',
|
|
@@ -125,3 +131,7 @@ class FreshdeskClient:
|
|
|
125
131
|
break
|
|
126
132
|
yield filtered_data
|
|
127
133
|
page += 1
|
|
134
|
+
|
|
135
|
+
# https://developers.freshdesk.com/api/#filter_tickets
|
|
136
|
+
if is_tickets_query and page > TICKETS_QUERY_MAX_PAGE:
|
|
137
|
+
break
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ingestr
|
|
3
|
-
Version: 0.14.
|
|
3
|
+
Version: 0.14.9
|
|
4
4
|
Summary: ingestr is a command-line application that ingests data from various sources and stores them in any database.
|
|
5
5
|
Project-URL: Homepage, https://github.com/bruin-data/ingestr
|
|
6
6
|
Project-URL: Issues, https://github.com/bruin-data/ingestr/issues
|
|
@@ -2,9 +2,9 @@ ingestr/conftest.py,sha256=OE2yxeTCosS9CUFVuqNypm-2ftYvVBeeq7egm3878cI,1981
|
|
|
2
2
|
ingestr/main.py,sha256=qo0g3wCFl8a_1jUwXagX8L1Q8PKKQlTF7md9pfnzW0Y,27155
|
|
3
3
|
ingestr/src/.gitignore,sha256=8cX1AZTSI0TcdZFGTmS_oyBjpfCzhOEt0DdAo2dFIY8,203
|
|
4
4
|
ingestr/src/blob.py,sha256=UUWMjHUuoR9xP1XZQ6UANQmnMVyDx3d0X4-2FQC271I,2138
|
|
5
|
-
ingestr/src/buildinfo.py,sha256=
|
|
5
|
+
ingestr/src/buildinfo.py,sha256=JVeLatT3zF_GlPLBMGJdol2FzZDg-jgHFHrlQBdckG8,20
|
|
6
6
|
ingestr/src/destinations.py,sha256=QtjE0AGs0WkPHaI2snWPHJ8HHi4lwXUBYLJPklz8Mvk,27772
|
|
7
|
-
ingestr/src/errors.py,sha256=
|
|
7
|
+
ingestr/src/errors.py,sha256=fhJ2BxOqOsBfOxuTDKfZblvawBrPG3x_1VikIxMZBRI,874
|
|
8
8
|
ingestr/src/factory.py,sha256=03eGDe2rL6qyT5sGmTGZi-XIwJbbdoedE_KjW3ZF7QY,7661
|
|
9
9
|
ingestr/src/filters.py,sha256=0n0sNAVG_f-B_1r7lW5iNtw9z_G1bxWzPaiL1i6tnbU,1665
|
|
10
10
|
ingestr/src/http_client.py,sha256=bxqsk6nJNXCo-79gW04B53DQO-yr25vaSsqP0AKtjx4,732
|
|
@@ -61,7 +61,7 @@ ingestr/src/fluxx/helpers.py,sha256=zJmlQWwiv9snnLqTygiWVZy7-0rGi_K427hRUuZeHEM,
|
|
|
61
61
|
ingestr/src/frankfurter/__init__.py,sha256=gOdL8ZqgHHYZByjtfE3WX3BTRHdYqyn9FpQwzDHSAx0,5089
|
|
62
62
|
ingestr/src/frankfurter/helpers.py,sha256=SpRr992OcSf7IDI5y-ToUdO6m6sGpqFz59LTY0ojchI,1502
|
|
63
63
|
ingestr/src/freshdesk/__init__.py,sha256=OIP3GikA6BMh9sruU3jih-swdFNSposr48oQhy1WGNk,3145
|
|
64
|
-
ingestr/src/freshdesk/freshdesk_client.py,sha256=
|
|
64
|
+
ingestr/src/freshdesk/freshdesk_client.py,sha256=Fp2YBG3hMtR-t4XfjRjc7-wiUMHCIe9hnFhrGNNGwoA,5122
|
|
65
65
|
ingestr/src/freshdesk/settings.py,sha256=0Wr_OMnUZcTlry7BmALssLxD2yh686JW4moLNv12Jnw,409
|
|
66
66
|
ingestr/src/fundraiseup/__init__.py,sha256=q3TQeP1HdbWNeXFMq-0-BdSo82Fq4Io1OEYOY1cAYcU,1743
|
|
67
67
|
ingestr/src/fundraiseup/client.py,sha256=klU57l8iJ5NAS1nTb_4UyVAerbPWpTa8PMHlpp9Riz0,2453
|
|
@@ -180,8 +180,8 @@ ingestr/testdata/merge_expected.csv,sha256=DReHqWGnQMsf2PBv_Q2pfjsgvikYFnf1zYcQZ
|
|
|
180
180
|
ingestr/testdata/merge_part1.csv,sha256=Pw8Z9IDKcNU0qQHx1z6BUf4rF_-SxKGFOvymCt4OY9I,185
|
|
181
181
|
ingestr/testdata/merge_part2.csv,sha256=T_GiWxA81SN63_tMOIuemcvboEFeAmbKc7xRXvL9esw,287
|
|
182
182
|
ingestr/tests/unit/test_smartsheets.py,sha256=zf3DXT29Y4TH2lNPBFphdjlaelUUyPJcsW2UO68RzDs,4862
|
|
183
|
-
ingestr-0.14.
|
|
184
|
-
ingestr-0.14.
|
|
185
|
-
ingestr-0.14.
|
|
186
|
-
ingestr-0.14.
|
|
187
|
-
ingestr-0.14.
|
|
183
|
+
ingestr-0.14.9.dist-info/METADATA,sha256=xqQRDYjtnSD01hUyNk3jnTc-hjCfWd8CEsAPmx5XzUk,15265
|
|
184
|
+
ingestr-0.14.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
185
|
+
ingestr-0.14.9.dist-info/entry_points.txt,sha256=oPJy0KBnPWYjDtP1k8qwAihcTLHSZokSQvRAw_wtfJM,46
|
|
186
|
+
ingestr-0.14.9.dist-info/licenses/LICENSE.md,sha256=cW8wIhn8HFE-KLStDF9jHQ1O_ARWP3kTpk_-eOccL24,1075
|
|
187
|
+
ingestr-0.14.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|