ingestr 0.13.75__py3-none-any.whl → 0.14.98__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.

Files changed (79) hide show
  1. ingestr/main.py +22 -3
  2. ingestr/src/adjust/__init__.py +4 -4
  3. ingestr/src/allium/__init__.py +128 -0
  4. ingestr/src/anthropic/__init__.py +277 -0
  5. ingestr/src/anthropic/helpers.py +525 -0
  6. ingestr/src/appstore/__init__.py +1 -0
  7. ingestr/src/asana_source/__init__.py +1 -1
  8. ingestr/src/buildinfo.py +1 -1
  9. ingestr/src/chess/__init__.py +1 -1
  10. ingestr/src/couchbase_source/__init__.py +118 -0
  11. ingestr/src/couchbase_source/helpers.py +135 -0
  12. ingestr/src/cursor/__init__.py +83 -0
  13. ingestr/src/cursor/helpers.py +188 -0
  14. ingestr/src/destinations.py +169 -1
  15. ingestr/src/docebo/__init__.py +589 -0
  16. ingestr/src/docebo/client.py +435 -0
  17. ingestr/src/docebo/helpers.py +97 -0
  18. ingestr/src/elasticsearch/helpers.py +138 -0
  19. ingestr/src/errors.py +8 -0
  20. ingestr/src/facebook_ads/__init__.py +26 -23
  21. ingestr/src/facebook_ads/helpers.py +47 -1
  22. ingestr/src/factory.py +48 -0
  23. ingestr/src/filesystem/__init__.py +8 -3
  24. ingestr/src/filters.py +9 -0
  25. ingestr/src/fluxx/__init__.py +9906 -0
  26. ingestr/src/fluxx/helpers.py +209 -0
  27. ingestr/src/frankfurter/__init__.py +157 -163
  28. ingestr/src/frankfurter/helpers.py +3 -3
  29. ingestr/src/freshdesk/__init__.py +25 -8
  30. ingestr/src/freshdesk/freshdesk_client.py +40 -5
  31. ingestr/src/fundraiseup/__init__.py +49 -0
  32. ingestr/src/fundraiseup/client.py +81 -0
  33. ingestr/src/github/__init__.py +6 -4
  34. ingestr/src/google_analytics/__init__.py +1 -1
  35. ingestr/src/hostaway/__init__.py +302 -0
  36. ingestr/src/hostaway/client.py +288 -0
  37. ingestr/src/http/__init__.py +35 -0
  38. ingestr/src/http/readers.py +114 -0
  39. ingestr/src/hubspot/__init__.py +6 -12
  40. ingestr/src/influxdb/__init__.py +1 -0
  41. ingestr/src/intercom/__init__.py +142 -0
  42. ingestr/src/intercom/helpers.py +674 -0
  43. ingestr/src/intercom/settings.py +279 -0
  44. ingestr/src/jira_source/__init__.py +340 -0
  45. ingestr/src/jira_source/helpers.py +439 -0
  46. ingestr/src/jira_source/settings.py +170 -0
  47. ingestr/src/klaviyo/__init__.py +5 -5
  48. ingestr/src/linear/__init__.py +553 -116
  49. ingestr/src/linear/helpers.py +77 -38
  50. ingestr/src/mailchimp/__init__.py +126 -0
  51. ingestr/src/mailchimp/helpers.py +226 -0
  52. ingestr/src/mailchimp/settings.py +164 -0
  53. ingestr/src/masking.py +344 -0
  54. ingestr/src/monday/__init__.py +246 -0
  55. ingestr/src/monday/helpers.py +392 -0
  56. ingestr/src/monday/settings.py +328 -0
  57. ingestr/src/mongodb/__init__.py +5 -2
  58. ingestr/src/mongodb/helpers.py +384 -10
  59. ingestr/src/plusvibeai/__init__.py +335 -0
  60. ingestr/src/plusvibeai/helpers.py +544 -0
  61. ingestr/src/plusvibeai/settings.py +252 -0
  62. ingestr/src/revenuecat/__init__.py +83 -0
  63. ingestr/src/revenuecat/helpers.py +237 -0
  64. ingestr/src/salesforce/__init__.py +15 -8
  65. ingestr/src/shopify/__init__.py +1 -1
  66. ingestr/src/smartsheets/__init__.py +33 -5
  67. ingestr/src/socrata_source/__init__.py +83 -0
  68. ingestr/src/socrata_source/helpers.py +85 -0
  69. ingestr/src/socrata_source/settings.py +8 -0
  70. ingestr/src/sources.py +1418 -54
  71. ingestr/src/stripe_analytics/__init__.py +2 -19
  72. ingestr/src/wise/__init__.py +68 -0
  73. ingestr/src/wise/client.py +63 -0
  74. ingestr/tests/unit/test_smartsheets.py +6 -9
  75. {ingestr-0.13.75.dist-info → ingestr-0.14.98.dist-info}/METADATA +24 -12
  76. {ingestr-0.13.75.dist-info → ingestr-0.14.98.dist-info}/RECORD +79 -37
  77. {ingestr-0.13.75.dist-info → ingestr-0.14.98.dist-info}/WHEEL +0 -0
  78. {ingestr-0.13.75.dist-info → ingestr-0.14.98.dist-info}/entry_points.txt +0 -0
  79. {ingestr-0.13.75.dist-info → ingestr-0.14.98.dist-info}/licenses/LICENSE.md +0 -0
@@ -94,30 +94,13 @@ def async_stripe_source(
94
94
  )(endpoint)
95
95
 
96
96
 
97
- @dlt.source
97
+ @dlt.source(max_table_nesting=0)
98
98
  def incremental_stripe_source(
99
99
  endpoints: Tuple[str, ...],
100
100
  stripe_secret_key: str = dlt.secrets.value,
101
101
  initial_start_date: Optional[DateTime] = None,
102
102
  end_date: Optional[DateTime] = None,
103
103
  ) -> Iterable[DltResource]:
104
- """
105
- As Stripe API does not include the "updated" key in its responses,
106
- we are only able to perform incremental downloads from endpoints where all objects are uneditable.
107
- This source yields the resources with incremental loading based on "append" mode.
108
- You will load only the newest data without duplicating and without downloading a huge amount of data each time.
109
-
110
- Args:
111
- endpoints (tuple): A tuple of endpoint names to retrieve data from. Defaults to Stripe API endpoints with uneditable data.
112
- stripe_secret_key (str): The API access token for authentication. Defaults to the value in the `dlt.secrets` object.
113
- initial_start_date (Optional[DateTime]): An optional parameter that specifies the initial value for dlt.sources.incremental.
114
- If parameter is not None, then load only data that were created after initial_start_date on the first run.
115
- Defaults to None. Format: datetime(YYYY, MM, DD).
116
- end_date (Optional[DateTime]): An optional end date to limit the data retrieved.
117
- Defaults to None. Format: datetime(YYYY, MM, DD).
118
- Returns:
119
- Iterable[DltResource]: Resources with only that data has not yet been loaded.
120
- """
121
104
  stripe.api_key = stripe_secret_key
122
105
  stripe.api_version = "2022-11-15"
123
106
  start_date_unix = (
@@ -142,6 +125,6 @@ def incremental_stripe_source(
142
125
  yield dlt.resource(
143
126
  incremental_resource,
144
127
  name=endpoint,
145
- write_disposition="append",
128
+ write_disposition="merge",
146
129
  primary_key="id",
147
130
  )(endpoint)
@@ -0,0 +1,68 @@
1
+ from typing import Iterable
2
+
3
+ import dlt
4
+ import pendulum
5
+ from dlt.common.typing import TDataItem
6
+ from dlt.sources import DltResource
7
+
8
+ from .client import WiseClient
9
+
10
+
11
+ @dlt.source(max_table_nesting=0)
12
+ def wise_source(
13
+ api_key: str,
14
+ start_date: pendulum.DateTime,
15
+ end_date: pendulum.DateTime | None = None,
16
+ ) -> Iterable[DltResource]:
17
+ client = WiseClient(api_key)
18
+
19
+ # List of all profiles belonging to user.
20
+ @dlt.resource(write_disposition="merge", name="profiles", primary_key="id")
21
+ def profiles() -> Iterable[TDataItem]:
22
+ yield from client.fetch_profiles()
23
+
24
+ # List transfers for a profile.
25
+ @dlt.resource(write_disposition="merge", name="transfers", primary_key="id")
26
+ def transfers(
27
+ profiles=profiles,
28
+ datetime=dlt.sources.incremental(
29
+ "created",
30
+ initial_value=start_date,
31
+ end_value=end_date,
32
+ range_end="closed",
33
+ range_start="closed",
34
+ ),
35
+ ):
36
+ if datetime.end_value is None:
37
+ end_dt = pendulum.now(tz="UTC")
38
+ else:
39
+ end_dt = datetime.end_value
40
+
41
+ start_dt = datetime.last_value
42
+
43
+ for profile in profiles:
44
+ yield from client.fetch_transfers(profile["id"], start_dt, end_dt)
45
+
46
+ # Retrieve the user's multi-currency account balance accounts. It returns all balance accounts the profile has.
47
+ @dlt.resource(write_disposition="merge", name="balances", primary_key="id")
48
+ def balances(
49
+ profiles=profiles,
50
+ datetime=dlt.sources.incremental(
51
+ "modificationTime",
52
+ initial_value=start_date,
53
+ end_value=end_date,
54
+ range_end="closed",
55
+ range_start="closed",
56
+ ),
57
+ ) -> Iterable[TDataItem]:
58
+ if datetime.end_value is None:
59
+ end_dt = pendulum.now(tz="UTC")
60
+ else:
61
+ end_dt = datetime.end_value
62
+
63
+ start_dt = datetime.last_value
64
+
65
+ for profile in profiles:
66
+ yield from client.fetch_balances(profile["id"], start_dt, end_dt)
67
+
68
+ return profiles, transfers, balances
@@ -0,0 +1,63 @@
1
+ from typing import Iterable
2
+
3
+ import pendulum
4
+ from dlt.sources.helpers.requests import Client
5
+
6
+
7
+ class WiseClient:
8
+ BASE_URL = "https://api.transferwise.com"
9
+
10
+ def __init__(self, api_key: str) -> None:
11
+ self.session = Client(raise_for_status=False).session
12
+ self.session.headers.update({"Authorization": f"Bearer {api_key}"})
13
+
14
+ # https://docs.wise.com/api-docs/api-reference/profile#list-profiles
15
+ def fetch_profiles(self) -> Iterable[dict]:
16
+ url = f"{self.BASE_URL}/v2/profiles"
17
+ resp = self.session.get(url)
18
+ resp.raise_for_status()
19
+ for profile in resp.json():
20
+ yield profile
21
+
22
+ # https://docs.wise.com/api-docs/api-reference/transfer#list-transfers
23
+ def fetch_transfers(
24
+ self, profile_id: str, start_time=pendulum.DateTime, end_time=pendulum.DateTime
25
+ ):
26
+ offset = 0
27
+
28
+ while True:
29
+ data = self.session.get(
30
+ f"{self.BASE_URL}/v1/transfers",
31
+ params={
32
+ "profile": profile_id,
33
+ "createdDateStart": start_time.to_date_string(),
34
+ "createdDateEnd": end_time.to_date_string(),
35
+ "limit": 100,
36
+ "offset": offset,
37
+ },
38
+ )
39
+ response_data = data.json()
40
+
41
+ if not response_data or len(response_data) == 0:
42
+ break
43
+
44
+ for transfer in response_data:
45
+ transfer["created"] = pendulum.parse(transfer["created"])
46
+
47
+ yield transfer
48
+ offset += 100
49
+
50
+ # https://docs.wise.com/api-docs/api-reference/balance#list
51
+ def fetch_balances(
52
+ self, profile_id: str, start_time=pendulum.DateTime, end_time=pendulum.DateTime
53
+ ) -> Iterable[dict]:
54
+ url = f"{self.BASE_URL}/v4/profiles/{profile_id}/balances"
55
+ resp = self.session.get(url, params={"types": "STANDARD,SAVINGS"})
56
+ resp.raise_for_status()
57
+ for balance in resp.json():
58
+ balance["modificationTime"] = pendulum.parse(balance["modificationTime"])
59
+ if (
60
+ balance["modificationTime"] > start_time
61
+ and balance["modificationTime"] < end_time
62
+ ):
63
+ yield balance
@@ -1,6 +1,6 @@
1
1
  import sys
2
2
  import unittest
3
- from unittest.mock import MagicMock, patch
3
+ from unittest.mock import patch
4
4
 
5
5
  import smartsheet # type: ignore
6
6
  from smartsheet.models import Cell, Column, Row, Sheet # type: ignore
@@ -60,8 +60,8 @@ class TestSmartsheetSource(unittest.TestCase):
60
60
  resource = smartsheet_source(access_token="test_token", sheet_id="123")
61
61
  data = list(resource)
62
62
  self.assertEqual(len(data), 2)
63
- self.assertEqual(data[0], {"Col A": "r1c1", "Col B": "r1c2"})
64
- self.assertEqual(data[1], {"Col A": "r2c1", "Col B": "r2c2"})
63
+ self.assertEqual(data[0], {"_row_id": 101, "Col A": "r1c1", "Col B": "r1c2"})
64
+ self.assertEqual(data[1], {"_row_id": 102, "Col A": "r2c1", "Col B": "r2c2"})
65
65
 
66
66
  mock_smartsheet_client.assert_called_once_with("test_token")
67
67
  mock_client_instance.Sheets.get_sheet.assert_any_call(
@@ -84,7 +84,6 @@ class TestSmartsheetSource(unittest.TestCase):
84
84
  list(source)
85
85
 
86
86
  def test_get_sheet_data(self):
87
- mock_smartsheet_client_instance = MagicMock()
88
87
  mock_sheet = Sheet(
89
88
  {
90
89
  "id": 456,
@@ -121,15 +120,13 @@ class TestSmartsheetSource(unittest.TestCase):
121
120
  ],
122
121
  }
123
122
  )
124
- mock_smartsheet_client_instance.Sheets.get_sheet.return_value = mock_sheet
125
123
 
126
- data_generator = _get_sheet_data(mock_smartsheet_client_instance, 456)
124
+ data_generator = _get_sheet_data(mock_sheet)
127
125
  data = list(data_generator)
128
126
 
129
127
  self.assertEqual(len(data), 2)
130
- self.assertEqual(data[0], {"ID": 1, "Value": "Alpha"})
131
- self.assertEqual(data[1], {"ID": 2, "Value": "Beta"})
132
- mock_smartsheet_client_instance.Sheets.get_sheet.assert_called_once_with(456)
128
+ self.assertEqual(data[0], {"_row_id": 201, "ID": 1, "Value": "Alpha"})
129
+ self.assertEqual(data[1], {"_row_id": 202, "ID": 2, "Value": "Beta"})
133
130
 
134
131
 
135
132
  if __name__ == "__main__":
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ingestr
3
- Version: 0.13.75
3
+ Version: 0.14.98
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
@@ -39,16 +39,17 @@ Requires-Dist: clickhouse-connect==0.8.14
39
39
  Requires-Dist: clickhouse-driver==0.2.9
40
40
  Requires-Dist: clickhouse-sqlalchemy==0.2.7
41
41
  Requires-Dist: confluent-kafka==2.8.0
42
+ Requires-Dist: couchbase==4.3.6
42
43
  Requires-Dist: crate==2.0.0
43
44
  Requires-Dist: cryptography==44.0.2
44
45
  Requires-Dist: curlify==2.2.1
45
- Requires-Dist: databricks-sql-connector==2.9.3
46
+ Requires-Dist: databricks-sql-connector==4.0.5
46
47
  Requires-Dist: databricks-sqlalchemy==1.0.2
47
48
  Requires-Dist: dataclasses-json==0.6.7
48
49
  Requires-Dist: decorator==5.2.1
49
50
  Requires-Dist: deprecation==2.1.0
50
- Requires-Dist: dlt-cratedb==0.0.1
51
- Requires-Dist: dlt==1.11.0
51
+ Requires-Dist: dlt-cratedb==0.0.2
52
+ Requires-Dist: dlt==1.16.0
52
53
  Requires-Dist: dnspython==2.7.0
53
54
  Requires-Dist: duckdb-engine==0.17.0
54
55
  Requires-Dist: duckdb==1.2.1
@@ -83,7 +84,7 @@ Requires-Dist: google-cloud-storage==3.1.0
83
84
  Requires-Dist: google-crc32c==1.6.0
84
85
  Requires-Dist: google-resumable-media==2.7.2
85
86
  Requires-Dist: googleapis-common-protos==1.69.0
86
- Requires-Dist: greenlet==3.2.3
87
+ Requires-Dist: greenlet==3.2.4
87
88
  Requires-Dist: grpc-google-iam-v1==0.14.2
88
89
  Requires-Dist: grpc-interceptor==0.15.4
89
90
  Requires-Dist: grpcio-status==1.62.3
@@ -92,8 +93,6 @@ Requires-Dist: hdbcli==2.23.27
92
93
  Requires-Dist: hexbytes==1.3.0
93
94
  Requires-Dist: httplib2==0.22.0
94
95
  Requires-Dist: humanize==4.12.1
95
- Requires-Dist: ibm-db-sa==0.4.1
96
- Requires-Dist: ibm-db==3.2.6
97
96
  Requires-Dist: idna==3.10
98
97
  Requires-Dist: inflection==0.5.1
99
98
  Requires-Dist: influxdb-client==1.41.0
@@ -104,7 +103,6 @@ Requires-Dist: jsonpath-ng==1.7.0
104
103
  Requires-Dist: leb128==1.0.8
105
104
  Requires-Dist: lxml==5.3.1
106
105
  Requires-Dist: lz4==4.4.3
107
- Requires-Dist: makefun==1.15.6
108
106
  Requires-Dist: mako==1.3.9
109
107
  Requires-Dist: markdown-it-py==3.0.0
110
108
  Requires-Dist: markupsafe==3.0.2
@@ -118,7 +116,7 @@ Requires-Dist: mysql-connector-python==9.2.0
118
116
  Requires-Dist: numpy==2.2.3
119
117
  Requires-Dist: oauthlib==3.2.2
120
118
  Requires-Dist: openpyxl==3.1.5
121
- Requires-Dist: orjson==3.10.15
119
+ Requires-Dist: orjson==3.11.3
122
120
  Requires-Dist: packaging==24.2
123
121
  Requires-Dist: pandas==2.2.3
124
122
  Requires-Dist: paramiko==3.5.1
@@ -161,7 +159,7 @@ Requires-Dist: reactivex==4.0.4
161
159
  Requires-Dist: requests-file==2.1.0
162
160
  Requires-Dist: requests-oauthlib==1.3.1
163
161
  Requires-Dist: requests-toolbelt==1.0.0
164
- Requires-Dist: requests==2.32.3
162
+ Requires-Dist: requests==2.32.5
165
163
  Requires-Dist: requirements-parser==0.11.0
166
164
  Requires-Dist: rich-argparse==1.7.0
167
165
  Requires-Dist: rich==13.9.4
@@ -195,6 +193,7 @@ Requires-Dist: thrift==0.16.0
195
193
  Requires-Dist: time-machine==2.16.0
196
194
  Requires-Dist: tomlkit==0.13.2
197
195
  Requires-Dist: tqdm==4.67.1
196
+ Requires-Dist: trino==0.336.0
198
197
  Requires-Dist: typer==0.13.1
199
198
  Requires-Dist: types-requests==2.32.0.20240907
200
199
  Requires-Dist: types-setuptools==75.8.2.20250305
@@ -210,6 +209,9 @@ Requires-Dist: yarl==1.18.3
210
209
  Requires-Dist: zeep==4.3.1
211
210
  Requires-Dist: zstandard==0.23.0
212
211
  Requires-Dist: zstd==1.5.6.5
212
+ Provides-Extra: ibm-db
213
+ Requires-Dist: ibm-db-sa==0.4.1; extra == 'ibm-db'
214
+ Requires-Dist: ibm-db==3.2.6; extra == 'ibm-db'
213
215
  Provides-Extra: odbc
214
216
  Requires-Dist: pyodbc==5.1.0; extra == 'odbc'
215
217
  Provides-Extra: oracle
@@ -333,7 +335,7 @@ Pull requests are welcome. However, please open an issue first to discuss what y
333
335
  <tr>
334
336
  <td>Elasticsearch</td>
335
337
  <td>✅</td>
336
- <td>-</td>
338
+ <td>✅</td>
337
339
  </tr>
338
340
  <tr>
339
341
  <td>GCP Spanner</td>
@@ -353,7 +355,12 @@ Pull requests are welcome. However, please open an issue first to discuss what y
353
355
  <tr>
354
356
  <td>MongoDB</td>
355
357
  <td>✅</td>
356
- <td>❌</td>
358
+ <td>✅</td>
359
+ </tr>
360
+ <tr>
361
+ <td>MotherDuck</td>
362
+ <td>✅</td>
363
+ <td>✅</td>
357
364
  </tr>
358
365
  <tr>
359
366
  <td>MySQL</td>
@@ -390,6 +397,11 @@ Pull requests are welcome. However, please open an issue first to discuss what y
390
397
  <td>✅</td>
391
398
  <td>❌</td>
392
399
  </tr>
400
+ <tr>
401
+ <td>Trino</td>
402
+ <td>✅</td>
403
+ <td>✅</td>
404
+ </tr>
393
405
  <tr>
394
406
  <td colspan="3" style='text-align:center;'><strong>Platforms</strong></td>
395
407
  </tr>
@@ -1,60 +1,76 @@
1
1
  ingestr/conftest.py,sha256=OE2yxeTCosS9CUFVuqNypm-2ftYvVBeeq7egm3878cI,1981
2
- ingestr/main.py,sha256=QsNVrz5_NgRUkvfExnd-2E02TGmWivPuop5hYinVAjM,26513
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=YC47ahfhDy6r-O7ID976SFjmSs8Wy8KQ_lFS_lYE-hg,21
6
- ingestr/src/destinations.py,sha256=ivTPio0zzqLRx22i597pxZHMNClz-XvYSyCaCPuGd8g,22248
7
- ingestr/src/errors.py,sha256=Ufs4_DfE77_E3vnA1fOQdi6cmuLVNm7_SbFLkL1XPGk,686
8
- ingestr/src/factory.py,sha256=q_rSi4gYMfxnGvzhytPRAgC08N40nqDISvXwl7i-E_M,6655
9
- ingestr/src/filters.py,sha256=LLecXe9QkLFkFLUZ92OXNdcANr1a8edDxrflc2ko_KA,1452
5
+ ingestr/src/buildinfo.py,sha256=KNsPSfI9LisbrdhHPJs5mXHNNECHiURo6eMddW-GXEA,21
6
+ ingestr/src/destinations.py,sha256=QtjE0AGs0WkPHaI2snWPHJ8HHi4lwXUBYLJPklz8Mvk,27772
7
+ ingestr/src/errors.py,sha256=fhJ2BxOqOsBfOxuTDKfZblvawBrPG3x_1VikIxMZBRI,874
8
+ ingestr/src/factory.py,sha256=J1j5l8Sr-rY1IEUP08HY1iT3NysNOx6Y3gz3g06vq2I,7988
9
+ ingestr/src/filters.py,sha256=0n0sNAVG_f-B_1r7lW5iNtw9z_G1bxWzPaiL1i6tnbU,1665
10
10
  ingestr/src/http_client.py,sha256=bxqsk6nJNXCo-79gW04B53DQO-yr25vaSsqP0AKtjx4,732
11
11
  ingestr/src/loader.py,sha256=9NaWAyfkXdqAZSS-N72Iwo36Lbx4PyqIfaaH1dNdkFs,1712
12
+ ingestr/src/masking.py,sha256=VN0LdfvExhQ1bZMRylGtaBUIoH-vjuIUmRnYKwo3yiY,11358
12
13
  ingestr/src/partition.py,sha256=BrIP6wFJvyR7Nus_3ElnfxknUXeCipK_E_bB8kZowfc,969
13
14
  ingestr/src/resource.py,sha256=ZqmZxFQVGlF8rFPhBiUB08HES0yoTj8sZ--jKfaaVps,1164
14
- ingestr/src/sources.py,sha256=Lj6G_dubjx6O6N-JzHlmWtgVWBUCfIQlKOmmI4PDji8,107644
15
+ ingestr/src/sources.py,sha256=jEJjJOcdpSRIztf355uaKanzAbj6GoJxlz4vSERW6KU,157053
15
16
  ingestr/src/table_definition.py,sha256=REbAbqdlmUMUuRh8nEQRreWjPVOQ5ZcfqGkScKdCrmk,390
16
17
  ingestr/src/time.py,sha256=H_Fk2J4ShXyUM-EMY7MqCLZQhlnZMZvO952bmZPc4yE,254
17
18
  ingestr/src/version.py,sha256=J_2xgZ0mKlvuHcjdKCx2nlioneLH0I47JiU_Slr_Nwc,189
18
- ingestr/src/adjust/__init__.py,sha256=ULjtJqrNS6XDvUyGl0tjl12-tLyXlCgeFe2icTbtu3Q,3255
19
+ ingestr/src/adjust/__init__.py,sha256=-DkqpkCuwohw7BlwB9ZvtpbwQAY1Gr8J1T4KyFwsA8E,3315
19
20
  ingestr/src/adjust/adjust_helpers.py,sha256=IHSS94A7enOWkZ8cP5iW3RdYt0Xl3qZGAmDc1Xy4qkI,3802
20
21
  ingestr/src/airtable/__init__.py,sha256=XzRsS39xszUlh_s7P1_zq5v8vLfjz3m-NtTPaa8TTZU,2818
22
+ ingestr/src/allium/__init__.py,sha256=pLNvKKy8OBVgUPK0zJQTASf6CCZIW17BfrVYXxyd5nc,4087
23
+ ingestr/src/anthropic/__init__.py,sha256=D23oY20fE_RP9yPVkx7i6l3G1IfRLrJ2XwA8y2ot7JM,8482
24
+ ingestr/src/anthropic/helpers.py,sha256=Co8kmWQwKMHxcUwDU9959LTU6rFxqDIIbIvVSMGatrc,16105
21
25
  ingestr/src/applovin/__init__.py,sha256=X_YCLppPrnL8KXfYWICE_uDfMzHHH3JZ-DBGZ1RlaOI,6984
22
26
  ingestr/src/applovin_max/__init__.py,sha256=fxXqsIibJarp5NOGe08G964HftwLDymTtYS_LqPJht4,3315
23
27
  ingestr/src/appsflyer/__init__.py,sha256=QoK-B3cYYMD3bqzQaLWNH6FkJyjRbzRkBF2n6urxubs,8071
24
28
  ingestr/src/appsflyer/client.py,sha256=E6xPW4KlbBnQZ0K4eq2Xgb3AmGrtrzIX9bX8EnQr-D4,3615
25
- ingestr/src/appstore/__init__.py,sha256=3P4VZH2WJF477QjW19jMTwu6L8DXcLkYSdutnvp3AmM,4742
29
+ ingestr/src/appstore/__init__.py,sha256=np8AkAIVZPnJt2pjHYgzEX9UhbxseMW9MKVnJ8qowUA,4781
26
30
  ingestr/src/appstore/client.py,sha256=qY9nBZPNIAveR-Dn-pW141Mr9xi9LMOz2HHfnfueHvE,3975
27
31
  ingestr/src/appstore/errors.py,sha256=KVpPWth5qlv6_QWEm3aJAt3cdf6miPJs0UDzxknx2Ms,481
28
32
  ingestr/src/appstore/models.py,sha256=tW1JSATHBIxZ6a77-RTCBQptJk6iRC8fWcmx4NW7SVA,1716
29
33
  ingestr/src/appstore/resources.py,sha256=DJxnNrBohVV0uSeruGV-N_e7UHSlhMhjhYNYdBuqECU,5375
30
34
  ingestr/src/arrow/__init__.py,sha256=8fEntgHseKjFMiPQIzxYzw_raicNsEgnveLi1IzBca0,2848
31
- ingestr/src/asana_source/__init__.py,sha256=QwQTCb5PXts8I4wLHG9UfRP-5ChfjSe88XAVfxMV5Ag,8183
35
+ ingestr/src/asana_source/__init__.py,sha256=p9p89e62Qd3YmrrCCkIclswciSX51pBOMCuT7Ukeq2I,8184
32
36
  ingestr/src/asana_source/helpers.py,sha256=PukcdDQWIGqnGxuuobbLw4hUy4-t6gxXg_XywR7Lg9M,375
33
37
  ingestr/src/asana_source/settings.py,sha256=-2tpdkwh04RvLKFvwQodnFLYn9MaxOO1hsebGnDQMTU,2829
34
38
  ingestr/src/attio/__init__.py,sha256=CLejJjp5vGkt6r18nfNNZ-Xjc1SZgQ5IlcBW5XFQR90,3243
35
39
  ingestr/src/attio/helpers.py,sha256=fCySmG5E6Iyh3Nm9a-HGbHNedxPH_2_otXYMTQsCibw,2185
36
- ingestr/src/chess/__init__.py,sha256=y0Q8aKBigeKf3N7wuB_gadMQjVJzBPUT8Jhp1ObEWjk,6812
40
+ ingestr/src/chess/__init__.py,sha256=mvMLZdexSgDAHIk7Ps18sOrCVGCYKq35PrG2Etgj_P8,6813
37
41
  ingestr/src/chess/helpers.py,sha256=v1HTImOMjAF7AzZUPDIuHu00e7ut0o5y1kWcVYo4QZw,549
38
42
  ingestr/src/chess/settings.py,sha256=p0RlCGgtXUacPDEvZmwzSWmzX0Apj1riwfz-nrMK89k,158
39
43
  ingestr/src/clickup/__init__.py,sha256=uvfAqNturT4bMvU4NS3E8BdL6nvDFzNuh7bMlih8HJk,2547
40
44
  ingestr/src/clickup/helpers.py,sha256=RzDKMUAHccuDhocIQ2ToBXfCERo8CBJqA3t-IPltBCE,1519
41
45
  ingestr/src/collector/spinner.py,sha256=_ZUqF5MI43hVIULdjF5s5mrAZbhEFXaiWirQmrv3Yk4,1201
46
+ ingestr/src/couchbase_source/__init__.py,sha256=IPmb55mBxGWtt_9ywbY6chAwUp6jRmJTu-qEVFBhJ_s,4381
47
+ ingestr/src/couchbase_source/helpers.py,sha256=RA0aFT0GfLJ2pHy7emvKmm0yVXgQOQ-hMVJvw-FExNo,4487
48
+ ingestr/src/cursor/__init__.py,sha256=sNVzCzIT9FxC3Q0Otydjg2_cCjj7HjRlT2u_7xfsx1o,1914
49
+ ingestr/src/cursor/helpers.py,sha256=gaNBA1uZJJCx0rGOfg5IMLtqLxQA1QulEi5t4qf2vbo,5781
50
+ ingestr/src/docebo/__init__.py,sha256=RBBjlt405PIIDOLEt78g9yBNJfhUMeJxR5DZD7oufXY,27543
51
+ ingestr/src/docebo/client.py,sha256=nki0kNQhN8VDz5cdqlQQPhr1JMPlcNEYKnWK3umAyOc,15663
52
+ ingestr/src/docebo/helpers.py,sha256=SaEjta6k3Lj-S5fvrheA5_xj7zfASMdOc_ihsqno5ko,3238
42
53
  ingestr/src/dynamodb/__init__.py,sha256=swhxkeYBbJ35jn1IghCtvYWT2BM33KynVCh_oR4z28A,2264
43
54
  ingestr/src/elasticsearch/__init__.py,sha256=m-q93HgUmTwGDUwHOjHawstWL06TC3WIX3H05szybrY,2556
44
- ingestr/src/facebook_ads/__init__.py,sha256=Lwo53pZ7KLoFfRKz35PaETZwG5gknHZPh5-li_wzEbE,9761
55
+ ingestr/src/elasticsearch/helpers.py,sha256=twlNMHcJ0cPvRRLWgH8HX9LZLIQewn6uZwFGRKIcB8w,4470
56
+ ingestr/src/facebook_ads/__init__.py,sha256=d0pTXmtNp6Qh65aY-qF2DPz3jgHkZm3pkQn1_a3G5v0,9892
45
57
  ingestr/src/facebook_ads/exceptions.py,sha256=4Nlbc0Mv3i5g-9AoyT-n1PIa8IDi3VCTfEAzholx4Wc,115
46
- ingestr/src/facebook_ads/helpers.py,sha256=NshS21can1xhRKQzg_o-c6qSxWoC3NnE3FwgJxUnygE,8239
58
+ ingestr/src/facebook_ads/helpers.py,sha256=c-WG008yU_zIdhFwljtqE2jfjVYuaVoNKldxcnJN3U4,9761
47
59
  ingestr/src/facebook_ads/settings.py,sha256=Bsic8RcmH-NfEZ7r_NGospTCmwISK9XaMT5y2NZirtg,4938
48
60
  ingestr/src/facebook_ads/utils.py,sha256=ES2ylPoW3j3fjp6OMUgp21n1cG1OktXsmWWMk5vBW_I,1590
49
- ingestr/src/filesystem/__init__.py,sha256=zkIwbRr0ir0EUdniI25p2zGiVc-7M9EmR351AjNb0eA,4163
61
+ ingestr/src/filesystem/__init__.py,sha256=42YAOHQxZ7TkTXC1eeaLUJpjqJ3l7DH7C8j927pV4pc,4353
50
62
  ingestr/src/filesystem/helpers.py,sha256=bg0muSHZr3hMa8H4jN2-LGWzI-SUoKlQNiWJ74-YYms,3211
51
63
  ingestr/src/filesystem/readers.py,sha256=a0fKkaRpnAOGsXI3EBNYZa7x6tlmAOsgRzb883StY30,3987
52
- ingestr/src/frankfurter/__init__.py,sha256=oVi4BiOxPRyckEVrBNunyMAHulPyMgyGRwBbhn-Xz6M,4987
53
- ingestr/src/frankfurter/helpers.py,sha256=SyrkRTDqvKdQxRHTV5kcSeVG3FEnaK5zxHyNyqtumZ0,1445
54
- ingestr/src/freshdesk/__init__.py,sha256=uFQW_cJyymxtHQiYb_xjzZAklc487L0n9GkgHgC7yAI,2618
55
- ingestr/src/freshdesk/freshdesk_client.py,sha256=3z5Yc008ADzRcJWtNc00PwjkLzG-RMI8jVIOOyYA-Rw,4088
64
+ ingestr/src/fluxx/__init__.py,sha256=ILpfk-5U5NPqVTuMuEOfzmkbojttHDLBL-NYmItRlAM,566443
65
+ ingestr/src/fluxx/helpers.py,sha256=zJmlQWwiv9snnLqTygiWVZy7-0rGi_K427hRUuZeHEM,6352
66
+ ingestr/src/frankfurter/__init__.py,sha256=gOdL8ZqgHHYZByjtfE3WX3BTRHdYqyn9FpQwzDHSAx0,5089
67
+ ingestr/src/frankfurter/helpers.py,sha256=SpRr992OcSf7IDI5y-ToUdO6m6sGpqFz59LTY0ojchI,1502
68
+ ingestr/src/freshdesk/__init__.py,sha256=OIP3GikA6BMh9sruU3jih-swdFNSposr48oQhy1WGNk,3145
69
+ ingestr/src/freshdesk/freshdesk_client.py,sha256=Fp2YBG3hMtR-t4XfjRjc7-wiUMHCIe9hnFhrGNNGwoA,5122
56
70
  ingestr/src/freshdesk/settings.py,sha256=0Wr_OMnUZcTlry7BmALssLxD2yh686JW4moLNv12Jnw,409
57
- ingestr/src/github/__init__.py,sha256=YmC8qIhm0Fw5QC6eG1JuqWSHuyC-kp77S7zeWGaPPto,7127
71
+ ingestr/src/fundraiseup/__init__.py,sha256=q3TQeP1HdbWNeXFMq-0-BdSo82Fq4Io1OEYOY1cAYcU,1743
72
+ ingestr/src/fundraiseup/client.py,sha256=klU57l8iJ5NAS1nTb_4UyVAerbPWpTa8PMHlpp9Riz0,2453
73
+ ingestr/src/github/__init__.py,sha256=C7b5j6CrxmTItS4tyDa3OYzdAw5c__xboOtoEJYe3wQ,7217
58
74
  ingestr/src/github/helpers.py,sha256=rpv_3HzuOl4PQ-FUeA66pev-pgze9SaE8RUHIPYfZ_A,6759
59
75
  ingestr/src/github/queries.py,sha256=W34C02jUEdjFmOE7f7u9xvYyBNDMfVZAu0JIRZI2mkU,2302
60
76
  ingestr/src/github/settings.py,sha256=N5ahWrDIQ_4IWV9i-hTXxyYduqY9Ym2BTwqsWxcDdJ8,258
@@ -63,7 +79,7 @@ ingestr/src/google_ads/field.py,sha256=uc8KEaYQrwgQoQPUdxIQWZxpFeZHbiV98FM0ZSael
63
79
  ingestr/src/google_ads/metrics.py,sha256=tAqpBpm-8l95oPT9cBxMWaEoDTNHVXnqUphYDHWKDiE,12099
64
80
  ingestr/src/google_ads/predicates.py,sha256=K4wTuqfmJ9ko1RKeHTBDfQO_mUADVyuRqtywBPP-72w,683
65
81
  ingestr/src/google_ads/reports.py,sha256=AVY1pPt5yaIFskQe1k5VW2Dhlux3bzewsHlDrdGEems,12686
66
- ingestr/src/google_analytics/__init__.py,sha256=8b9CBWJFrBpHVRl993Z7J01sKKbYyXEtngdfEUwqlfE,4343
82
+ ingestr/src/google_analytics/__init__.py,sha256=1JkT2OnZAVzNVH06br2Rrh5WyjO6GrNyf9F83rAKsrw,4343
67
83
  ingestr/src/google_analytics/helpers.py,sha256=tM7h_yughca3l7tnS_2XGIBM37mVm-Uewv7tK7XHVbc,10111
68
84
  ingestr/src/google_sheets/README.md,sha256=wFQhvmGpRA38Ba2N_WIax6duyD4c7c_pwvvprRfQDnw,5470
69
85
  ingestr/src/google_sheets/__init__.py,sha256=CL0HfY74uxX8-ge0ucI0VhWMYZVAfoX7WRPBitRi-CI,6647
@@ -72,28 +88,44 @@ ingestr/src/google_sheets/helpers/api_calls.py,sha256=RiVfdacbaneszhmuhYilkJnkc9
72
88
  ingestr/src/google_sheets/helpers/data_processing.py,sha256=RNt2MYfdJhk4bRahnQVezpNg2x9z0vx60YFq2ukZ8vI,11004
73
89
  ingestr/src/gorgias/__init__.py,sha256=_mFkMYwlY5OKEY0o_FK1OKol03A-8uk7bm1cKlmt5cs,21432
74
90
  ingestr/src/gorgias/helpers.py,sha256=DamuijnvhGY9hysQO4txrVMf4izkGbh5qfBKImdOINE,5427
75
- ingestr/src/hubspot/__init__.py,sha256=wqHefhc_YRI5dNFCcpvH-UUilNThE49sbGouSBiHYsw,11776
91
+ ingestr/src/hostaway/__init__.py,sha256=sq7qG5J4XcyoYoHBSgAszYPByN9bMLzWjhSmvzJuTeI,8887
92
+ ingestr/src/hostaway/client.py,sha256=omzoT4gPQ_nvMWDcm7-bm2AyFwwRDgV8D1sI0gkkydw,10452
93
+ ingestr/src/http/__init__.py,sha256=Y9mQIE0RolHOh6dPjW41qzYXSG8BC0GPKxEtz2CJGpU,902
94
+ ingestr/src/http/readers.py,sha256=rgBwYG5SOQ7P2uzBAFMOQIevKxV51ZW41VSiRTZ0Xvo,3863
95
+ ingestr/src/hubspot/__init__.py,sha256=FCqjLeOjijdc9JC_NoDwtRqy3FDyY-szDi6UV7CdDN0,11548
76
96
  ingestr/src/hubspot/helpers.py,sha256=k2b-lhxqBNKHoOSHoHegFSsk8xxjjGA0I04V0XyX2b4,7883
77
97
  ingestr/src/hubspot/settings.py,sha256=i73MkSiJfRLMFLfiJgYdhp-rhymHTfoqFzZ4uOJdFJM,2456
78
- ingestr/src/influxdb/__init__.py,sha256=sj_K4ShXECp6cW4xVVv2kCwQCFtTYD0dC9LOAEqFoVI,1289
98
+ ingestr/src/influxdb/__init__.py,sha256=cYsGnDPNHRTe9pp14ogDQgPTCI9TOdyJm1MaNuQLHdk,1290
79
99
  ingestr/src/influxdb/client.py,sha256=hCxSNREAWWEvvAV3RQbKaWp2-e_7EE8xmVRjTwLFEFo,1230
100
+ ingestr/src/intercom/__init__.py,sha256=rqorWFwcfcTYrCrpSsPPM2sGOc7qq5XbYZRCDVJXjyI,4451
101
+ ingestr/src/intercom/helpers.py,sha256=IljM0x4K70nuahidZaP7mtIlsHkPIcZq56j9mmuSck4,21074
102
+ ingestr/src/intercom/settings.py,sha256=u_4P2tZiYsnlGjMTN4Ttr4bLHh1b272Pu5Q9YFq3ZCE,7053
80
103
  ingestr/src/isoc_pulse/__init__.py,sha256=9b4eN4faatpiwTuRNPuYcEt1hEFDEjua9XhfakUigBk,4648
104
+ ingestr/src/jira_source/__init__.py,sha256=Hy-JUdo9Nu1Goti6zqWjG1GNnCzfv9cY85MFb-sqo-I,9814
105
+ ingestr/src/jira_source/helpers.py,sha256=vJ7fTGSQnLHKiwLQUPEpGNsHBRUyBZswL8R1A3Tz0GY,14636
106
+ ingestr/src/jira_source/settings.py,sha256=Ufb-sGS-x_STtWJ-y6k69hP1CVtat_J5MtFPn51TUGE,2861
81
107
  ingestr/src/kafka/__init__.py,sha256=QUHsGmdv5_E-3z0GDHXvbk39puwuGDBsyYSDhvbA89E,3595
82
108
  ingestr/src/kafka/helpers.py,sha256=V9WcVn3PKnEpggArHda4vnAcaV8VDuh__dSmRviJb5Y,7502
83
109
  ingestr/src/kinesis/__init__.py,sha256=YretSz4F28tbkcPhd55mBp2Xk7XE9unyWx0nmvl8iEc,6235
84
110
  ingestr/src/kinesis/helpers.py,sha256=SO2cFmWNGcykUYmjHdfxWsOQSkLQXyhFtfWnkcUOM0s,3152
85
- ingestr/src/klaviyo/__init__.py,sha256=o_noUgbxLk36s4f9W56_ibPorF0n7kVapPUlV0p-jfA,7875
111
+ ingestr/src/klaviyo/__init__.py,sha256=Tg5EqAgsEK8xM5RO2im8vFMzPGc7yDpSCUkprGjMooI,7870
86
112
  ingestr/src/klaviyo/client.py,sha256=tPj79ia7AW0ZOJhzlKNPCliGbdojRNwUFp8HvB2ym5s,7434
87
113
  ingestr/src/klaviyo/helpers.py,sha256=_i-SHffhv25feLDcjy6Blj1UxYLISCwVCMgGtrlnYHk,496
88
- ingestr/src/linear/__init__.py,sha256=Qbf8EPHVh-8pVNe_fqLVinds7qQ3O4ymDuPPPD560Ng,5953
89
- ingestr/src/linear/helpers.py,sha256=Mb7oKpUTRnHl-CvO1fubjJlJFDkhTuA7PUldWglvagI,2044
114
+ ingestr/src/linear/__init__.py,sha256=rufjwhLip7RK6j2DpFzCRQEvA_oOqgPEEdREJkc53_U,12295
115
+ ingestr/src/linear/helpers.py,sha256=J9lTuu8rHHM3YTA082_wfvByW6Teie4_44eYaVmDBhQ,3683
90
116
  ingestr/src/linkedin_ads/__init__.py,sha256=CAPWFyV24loziiphbLmODxZUXZJwm4JxlFkr56q0jfo,1855
91
117
  ingestr/src/linkedin_ads/dimension_time_enum.py,sha256=EmHRdkFyTAfo4chGjThrwqffWJxmAadZMbpTvf0xkQc,198
92
118
  ingestr/src/linkedin_ads/helpers.py,sha256=eUWudRVlXl4kqIhfXQ1eVsUpZwJn7UFqKSpnbLfxzds,4498
119
+ ingestr/src/mailchimp/__init__.py,sha256=-V4IacEJ8wvngHQsSuGu_Z4xAt1XtQIHigvOoWcndw0,3175
120
+ ingestr/src/mailchimp/helpers.py,sha256=KXchokX5ApLqpjIAHzKWkI23ETGmQMlUrbOC5rm7q6k,6166
121
+ ingestr/src/mailchimp/settings.py,sha256=0x9q-8tvieuDZb0H8GNdNWnRFmVDo2jK68IoBVdKE6k,4014
93
122
  ingestr/src/mixpanel/__init__.py,sha256=s1QtqMP0BTGW6YtdCabJFWj7lEn7KujzELwGpBOQgfs,1796
94
123
  ingestr/src/mixpanel/client.py,sha256=c_reouegOVYBOwHLfgYFwpmkba0Sxro1Zkml07NCYf0,3602
95
- ingestr/src/mongodb/__init__.py,sha256=T-RYPS_skl_2gNVfYWWXan2bVQYmm0bFBcCCqG5ejvg,7275
96
- ingestr/src/mongodb/helpers.py,sha256=H0GpOK3bPBhFWBEhJZOjywUBdzih6MOpmyVO_cKSN14,24178
124
+ ingestr/src/monday/__init__.py,sha256=ZNdGCC_1CEYlgxAef-5QO56Drm9IMP82-rZpEvbD8aY,6918
125
+ ingestr/src/monday/helpers.py,sha256=xkAYTFIwjbU-dQTa4d41oQm6kFvCHv74AhCmN-H8aPE,11572
126
+ ingestr/src/monday/settings.py,sha256=5TC0OrTHQO52AifwP3Z2xsh4D8SDUq0WxqY5AQMjcns,5667
127
+ ingestr/src/mongodb/__init__.py,sha256=6-DvvaKL7XOPPRwItI7lSpoMQLEPzYubV6dKhpzbuME,7494
128
+ ingestr/src/mongodb/helpers.py,sha256=BKb0F-AUWjFJikE9OPP9z5wFuMmJsf8YsyWhvQ9dC1k,38076
97
129
  ingestr/src/notion/__init__.py,sha256=36wUui8finbc85ObkRMq8boMraXMUehdABN_AMe_hzA,1834
98
130
  ingestr/src/notion/settings.py,sha256=MwQVZViJtnvOegfjXYc_pJ50oUYgSRPgwqu7TvpeMOA,82
99
131
  ingestr/src/notion/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -110,22 +142,30 @@ ingestr/src/pipedrive/typing.py,sha256=lEMXu4hhAA3XkhVSlBUa-juqyupisd3c-qSQKxFvz
110
142
  ingestr/src/pipedrive/helpers/__init__.py,sha256=UX1K_qnGXB0ShtnBOfp2XuVbK8RRoCK8TdEmIjRckgg,710
111
143
  ingestr/src/pipedrive/helpers/custom_fields_munger.py,sha256=rZ4AjdITHfJE2NNomCR7vMBS1KnWpEGVF6fADwsIHUE,4488
112
144
  ingestr/src/pipedrive/helpers/pages.py,sha256=Klpjw2OnMuhzit3PpiHKsfzGcJ3rQPSQBl3HhE3-6eA,3358
145
+ ingestr/src/plusvibeai/__init__.py,sha256=Uo-N2-1kbq5RJw8ym5tm8rqVchVbJJ2hOd6bwsg1zdM,10125
146
+ ingestr/src/plusvibeai/helpers.py,sha256=5hxxA2-XUtkZA1xrstZ39ilzUh4EouNDOiiL-NzGu9w,17939
147
+ ingestr/src/plusvibeai/settings.py,sha256=3Hb7jcUNshSlGO4E27yUe_8n3f0VArX9XTmkTkN-Tvo,5366
113
148
  ingestr/src/quickbooks/__init__.py,sha256=cZUuVCOTGPHTscRj6i0DytO63_fWF-4ieMxoU4PcyTg,3727
114
- ingestr/src/salesforce/__init__.py,sha256=2hik5pRrxVODdDTlUEMoyccNC07zozjnxkMHcjMT1qA,4558
149
+ ingestr/src/revenuecat/__init__.py,sha256=j75jkHBqd_9FsFKjsSLLwKrPcmUKOE3HJ95Qzonzmbk,2779
150
+ ingestr/src/revenuecat/helpers.py,sha256=ej_bR6cuNOer4bTQfd_IuyMmt-xevcPgvRShKlxO8Xo,7998
151
+ ingestr/src/salesforce/__init__.py,sha256=Ijveo8gyo_wLzQRBklxIm3RV0y2Gta9-mR44RbJljpI,4901
115
152
  ingestr/src/salesforce/helpers.py,sha256=QTdazBt-qRTBbCQMZnyclIaDQFmBixBy_RDKD00Lt-8,2492
116
- ingestr/src/shopify/__init__.py,sha256=dp6Ybk5LIKA5suzVt923v5LzHz5rMUuDfhjTNPqSjAc,62603
153
+ ingestr/src/shopify/__init__.py,sha256=RzSSG93g-Qlkz6TAxi1XasFDdxxtVXIo53ZTtjGczW4,62602
117
154
  ingestr/src/shopify/exceptions.py,sha256=BhV3lIVWeBt8Eh4CWGW_REFJpGCzvW6-62yZrBWa3nQ,50
118
155
  ingestr/src/shopify/helpers.py,sha256=NfHD6lWXe88ybR0ri-FCQuh2Vf8l5WG0a0FVjmdoSC4,6296
119
156
  ingestr/src/shopify/settings.py,sha256=StY0EPr7wFJ7KzRRDN4TKxV0_gkIS1wPj2eR4AYSsDk,141
120
157
  ingestr/src/slack/__init__.py,sha256=pyDukxcilqTAe_bBzfWJ8Vxi83S-XEdEFBH2pEgILrM,10113
121
158
  ingestr/src/slack/helpers.py,sha256=08TLK7vhFvH_uekdLVOLF3bTDe1zgH0QxHObXHzk1a8,6545
122
159
  ingestr/src/slack/settings.py,sha256=NhKn4y1zokEa5EmIZ05wtj_-I0GOASXZ5V81M1zXCtY,457
123
- ingestr/src/smartsheets/__init__.py,sha256=pdzSV7rA0XYD5Xa1u4zb6vziy5iFXIQNROkpJ9oYas0,1623
160
+ ingestr/src/smartsheets/__init__.py,sha256=RIEfN1T2TMFg8T0RvN4o6sqC58YusJRDrmE9Isos5P4,2375
161
+ ingestr/src/socrata_source/__init__.py,sha256=K5DVpsVXTMfunZd5YoEsn1nipfo1zavFS59g3m2tsc8,2984
162
+ ingestr/src/socrata_source/helpers.py,sha256=KbVojFSmMLXb0ajh8bhqfZfxDHH7rQ3nyI8p2jxVifA,2500
163
+ ingestr/src/socrata_source/settings.py,sha256=DLfu-4HOa5nR7h9tbOySEa2ye3w_Z6TYZ9_zPqWaNQk,220
124
164
  ingestr/src/solidgate/__init__.py,sha256=Ts83j-JSnFsFuF4tDhVOfZKg7H0-bIpfn3kg1ZOR58A,8003
125
165
  ingestr/src/solidgate/helpers.py,sha256=mAsW_1hpD7ab3Y2vw8fxHi4yD3aT1geLdIYZ7ycyxBc,5690
126
166
  ingestr/src/sql_database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
167
  ingestr/src/sql_database/callbacks.py,sha256=sEFFmXxAURY3yeBjnawigDtq9LBCvi8HFqG4kLd7tMU,2002
128
- ingestr/src/stripe_analytics/__init__.py,sha256=mK8dGKAlMPVqGE9gG30XfbvOvgVD0yWhNpt-D3iavDY,6385
168
+ ingestr/src/stripe_analytics/__init__.py,sha256=smTK8aqRsGnSdGdQAyyuItWT_k9CPKdlnTGh5DRCcDg,5144
129
169
  ingestr/src/stripe_analytics/helpers.py,sha256=KGtRcSrhKEqzJ3AWpgDV2o4cuBFaIwu2Gc1KgvVWTtg,11764
130
170
  ingestr/src/stripe_analytics/settings.py,sha256=xt1-ljwP4nLTNUa8l3KwFbtK8FtQHgHpzGF5uPKfRsw,2246
131
171
  ingestr/src/telemetry/event.py,sha256=W7bs4uVfPakQ5otmiqgqu1l5SqjYx1p87wudnWXckBc,949
@@ -134,6 +174,8 @@ ingestr/src/tiktok_ads/__init__.py,sha256=_upvSv79uktELTzg78VavYgQftfhp4YM6OXfpk
134
174
  ingestr/src/tiktok_ads/tiktok_helpers.py,sha256=jmWHvZzN1Vt_PWrJkgq5a2wIwon-OBEzXoZx0jEy-74,3905
135
175
  ingestr/src/trustpilot/__init__.py,sha256=ofhjep4qRPIi8q41qc97QVex8UbWF-Fd7gUsqeQlQX8,1279
136
176
  ingestr/src/trustpilot/client.py,sha256=zKYt5C7nrR83Id0KN49EPmtml8MEtlSPlAosEFU3VXY,1616
177
+ ingestr/src/wise/__init__.py,sha256=EiXWE89Jb2Do1t8HK1-GZRS2KwgaiThxsHVEpaBcoh4,2087
178
+ ingestr/src/wise/client.py,sha256=2hTCuOB24-HiwTp02o5i99KF5rjI0CXqgIb9V6gAjjE,2247
137
179
  ingestr/src/zendesk/__init__.py,sha256=tmJ_jdb6kpwmEKpcv6Im71-bOZI6h-Tcofe18OH4I24,17762
138
180
  ingestr/src/zendesk/settings.py,sha256=Vdj706nTJFQ-3KH4nO97iYCQuba3dV3E9gfnmLK6xwU,2294
139
181
  ingestr/src/zendesk/helpers/__init__.py,sha256=YTJejCiUjfIcsj9FrkY0l-JGYDI7RRte1Ydq5FDH_0c,888
@@ -150,9 +192,9 @@ ingestr/testdata/delete_insert_part2.csv,sha256=B_KUzpzbNdDY_n7wWop1mT2cz36TmayS
150
192
  ingestr/testdata/merge_expected.csv,sha256=DReHqWGnQMsf2PBv_Q2pfjsgvikYFnf1zYcQZ7ZqYN0,276
151
193
  ingestr/testdata/merge_part1.csv,sha256=Pw8Z9IDKcNU0qQHx1z6BUf4rF_-SxKGFOvymCt4OY9I,185
152
194
  ingestr/testdata/merge_part2.csv,sha256=T_GiWxA81SN63_tMOIuemcvboEFeAmbKc7xRXvL9esw,287
153
- ingestr/tests/unit/test_smartsheets.py,sha256=eiC2CCO4iNJcuN36ONvqmEDryCA1bA1REpayHpu42lk,5058
154
- ingestr-0.13.75.dist-info/METADATA,sha256=QFv-opDKJQ6lQkrSHN23_FM2-Lwiue1bbavMPc_ghe0,15093
155
- ingestr-0.13.75.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
156
- ingestr-0.13.75.dist-info/entry_points.txt,sha256=oPJy0KBnPWYjDtP1k8qwAihcTLHSZokSQvRAw_wtfJM,46
157
- ingestr-0.13.75.dist-info/licenses/LICENSE.md,sha256=cW8wIhn8HFE-KLStDF9jHQ1O_ARWP3kTpk_-eOccL24,1075
158
- ingestr-0.13.75.dist-info/RECORD,,
195
+ ingestr/tests/unit/test_smartsheets.py,sha256=zf3DXT29Y4TH2lNPBFphdjlaelUUyPJcsW2UO68RzDs,4862
196
+ ingestr-0.14.98.dist-info/METADATA,sha256=0vOiSrADz46mM9t5ltLm_SLdbLxqd2NEjQmMjj9G2og,15359
197
+ ingestr-0.14.98.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
198
+ ingestr-0.14.98.dist-info/entry_points.txt,sha256=oPJy0KBnPWYjDtP1k8qwAihcTLHSZokSQvRAw_wtfJM,46
199
+ ingestr-0.14.98.dist-info/licenses/LICENSE.md,sha256=cW8wIhn8HFE-KLStDF9jHQ1O_ARWP3kTpk_-eOccL24,1075
200
+ ingestr-0.14.98.dist-info/RECORD,,