ingestr 0.12.5__py3-none-any.whl → 0.12.7__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/main.py +1 -1
- ingestr/src/appstore/__init__.py +137 -0
- ingestr/src/appstore/client.py +126 -0
- ingestr/src/appstore/errors.py +15 -0
- ingestr/src/appstore/models.py +117 -0
- ingestr/src/appstore/resources.py +179 -0
- ingestr/src/asana_source/__init__.py +4 -1
- ingestr/src/errors.py +10 -0
- ingestr/src/facebook_ads/__init__.py +4 -1
- ingestr/src/factory.py +2 -0
- ingestr/src/filesystem/__init__.py +3 -1
- ingestr/src/github/__init__.py +7 -3
- ingestr/src/google_analytics/__init__.py +57 -21
- ingestr/src/google_analytics/{helpers/data_processing.py → helpers.py} +29 -33
- ingestr/src/gorgias/__init__.py +12 -4
- ingestr/src/hubspot/__init__.py +8 -1
- ingestr/src/klaviyo/_init_.py +78 -13
- ingestr/src/shopify/__init__.py +14 -0
- ingestr/src/slack/__init__.py +4 -0
- ingestr/src/sources.py +99 -10
- ingestr/src/stripe_analytics/__init__.py +4 -1
- ingestr/src/tiktok_ads/__init__.py +6 -1
- ingestr/src/version.py +1 -1
- ingestr/src/zendesk/__init__.py +6 -0
- {ingestr-0.12.5.dist-info → ingestr-0.12.7.dist-info}/METADATA +3 -1
- {ingestr-0.12.5.dist-info → ingestr-0.12.7.dist-info}/RECORD +29 -24
- ingestr/src/google_analytics/helpers/__init__.py +0 -70
- {ingestr-0.12.5.dist-info → ingestr-0.12.7.dist-info}/WHEEL +0 -0
- {ingestr-0.12.5.dist-info → ingestr-0.12.7.dist-info}/entry_points.txt +0 -0
- {ingestr-0.12.5.dist-info → ingestr-0.12.7.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -84,7 +84,10 @@ def incremental_stripe_source(
|
|
|
84
84
|
def incremental_resource(
|
|
85
85
|
endpoint: str,
|
|
86
86
|
created: Optional[Any] = dlt.sources.incremental(
|
|
87
|
-
"created",
|
|
87
|
+
"created",
|
|
88
|
+
initial_value=start_date_unix,
|
|
89
|
+
range_end="closed",
|
|
90
|
+
range_start="closed",
|
|
88
91
|
),
|
|
89
92
|
) -> Generator[Dict[Any, Any], Any, None]:
|
|
90
93
|
start_value = created.last_value
|
|
@@ -110,7 +110,12 @@ def tiktok_source(
|
|
|
110
110
|
)
|
|
111
111
|
def custom_reports(
|
|
112
112
|
datetime=(
|
|
113
|
-
dlt.sources.incremental(
|
|
113
|
+
dlt.sources.incremental(
|
|
114
|
+
incremental_loading_param,
|
|
115
|
+
start_date,
|
|
116
|
+
range_end="closed",
|
|
117
|
+
range_start="closed",
|
|
118
|
+
)
|
|
114
119
|
if is_incremental
|
|
115
120
|
else None
|
|
116
121
|
),
|
ingestr/src/version.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.12.
|
|
1
|
+
__version__ = "0.12.7"
|
ingestr/src/zendesk/__init__.py
CHANGED
|
@@ -260,6 +260,8 @@ def zendesk_support(
|
|
|
260
260
|
initial_value=start_date_ts,
|
|
261
261
|
end_value=end_date_ts,
|
|
262
262
|
allow_external_schedulers=True,
|
|
263
|
+
range_end="closed",
|
|
264
|
+
range_start="closed",
|
|
263
265
|
),
|
|
264
266
|
) -> Iterator[TDataItem]:
|
|
265
267
|
# URL For ticket events
|
|
@@ -294,6 +296,8 @@ def zendesk_support(
|
|
|
294
296
|
initial_value=start_date_obj,
|
|
295
297
|
end_value=end_date_obj,
|
|
296
298
|
allow_external_schedulers=True,
|
|
299
|
+
range_end="closed",
|
|
300
|
+
range_start="closed",
|
|
297
301
|
),
|
|
298
302
|
) -> Iterator[TDataItem]:
|
|
299
303
|
"""
|
|
@@ -340,6 +344,8 @@ def zendesk_support(
|
|
|
340
344
|
initial_value=start_date_iso_str,
|
|
341
345
|
end_value=end_date_iso_str,
|
|
342
346
|
allow_external_schedulers=True,
|
|
347
|
+
range_end="closed",
|
|
348
|
+
range_start="closed",
|
|
343
349
|
),
|
|
344
350
|
) -> Iterator[TDataItem]:
|
|
345
351
|
"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ingestr
|
|
3
|
-
Version: 0.12.
|
|
3
|
+
Version: 0.12.7
|
|
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
|
|
@@ -17,6 +17,7 @@ Requires-Python: >=3.9
|
|
|
17
17
|
Requires-Dist: asana==3.2.3
|
|
18
18
|
Requires-Dist: confluent-kafka>=2.6.1
|
|
19
19
|
Requires-Dist: databricks-sql-connector==2.9.3
|
|
20
|
+
Requires-Dist: dataclasses-json==0.6.7
|
|
20
21
|
Requires-Dist: dlt==1.5.0
|
|
21
22
|
Requires-Dist: duckdb-engine==0.13.5
|
|
22
23
|
Requires-Dist: duckdb==1.1.3
|
|
@@ -26,6 +27,7 @@ Requires-Dist: google-api-python-client==2.130.0
|
|
|
26
27
|
Requires-Dist: google-cloud-bigquery-storage==2.24.0
|
|
27
28
|
Requires-Dist: mysql-connector-python==9.1.0
|
|
28
29
|
Requires-Dist: pendulum==3.0.0
|
|
30
|
+
Requires-Dist: psutil==6.1.1
|
|
29
31
|
Requires-Dist: psycopg2-binary==2.9.10
|
|
30
32
|
Requires-Dist: py-machineid==0.6.0
|
|
31
33
|
Requires-Dist: pyairtable==2.3.3
|
|
@@ -1,52 +1,57 @@
|
|
|
1
|
-
ingestr/main.py,sha256=
|
|
1
|
+
ingestr/main.py,sha256=fRWnyoPzMvvxTa61EIAP_dsKu0B_0yOwoyt0Slq9WQU,24723
|
|
2
2
|
ingestr/src/.gitignore,sha256=8cX1AZTSI0TcdZFGTmS_oyBjpfCzhOEt0DdAo2dFIY8,203
|
|
3
3
|
ingestr/src/destinations.py,sha256=zcHJIIHAZmcD9sJomd6G1Bc-1KsxnBD2aByOSV_9L3g,8850
|
|
4
|
-
ingestr/src/
|
|
4
|
+
ingestr/src/errors.py,sha256=MrdLY5Gpr3g3qbYjl-U8-m8kxBJQOJo4ZVOsQpQbRR8,447
|
|
5
|
+
ingestr/src/factory.py,sha256=jjxieXpSK02tNcg7f_t5xxqs49EnI739smRLX8qLsUU,4582
|
|
5
6
|
ingestr/src/filters.py,sha256=0JQXeAr2APFMnW2sd-6BlAMWv93bXV17j8b5MM8sHmM,580
|
|
6
|
-
ingestr/src/sources.py,sha256=
|
|
7
|
+
ingestr/src/sources.py,sha256=dMXTfykbAZTN8SNpOWJbtl10krdJfg12S13at3Z4L38,53647
|
|
7
8
|
ingestr/src/table_definition.py,sha256=REbAbqdlmUMUuRh8nEQRreWjPVOQ5ZcfqGkScKdCrmk,390
|
|
8
9
|
ingestr/src/time.py,sha256=H_Fk2J4ShXyUM-EMY7MqCLZQhlnZMZvO952bmZPc4yE,254
|
|
9
|
-
ingestr/src/version.py,sha256=
|
|
10
|
+
ingestr/src/version.py,sha256=WvcWmk-c-I-XXiq6oM9Y1VYwNWFe64tXpnG_RI47HhE,23
|
|
10
11
|
ingestr/src/adjust/__init__.py,sha256=NaRNwDhItG8Q7vUHw7zQvyfWjmT32M0CSc5ufjmBM9U,3067
|
|
11
12
|
ingestr/src/adjust/adjust_helpers.py,sha256=-tmmxy9k3wms-ZEIgxmlp2cAQ2X_O1lgjY1128bbMu4,3224
|
|
12
13
|
ingestr/src/airtable/__init__.py,sha256=GHWYrjI2qhs_JihdNJysB0Ni3bzqT_MLXn_S9_Q5zRA,2775
|
|
13
14
|
ingestr/src/appsflyer/_init_.py,sha256=ne2-9FQ654Drtd3GkKQv8Bwb6LEqCnJw49MfO5Jyzgs,739
|
|
14
15
|
ingestr/src/appsflyer/client.py,sha256=TNmwakLzmO6DZW3wcfLfQRl7aNBHgFqSsk4ef-MmJ1w,3084
|
|
16
|
+
ingestr/src/appstore/__init__.py,sha256=s39r3YUjdfStA6lBcPzqQzestiojC3U41LB3F6Y8gG0,4538
|
|
17
|
+
ingestr/src/appstore/client.py,sha256=qY9nBZPNIAveR-Dn-pW141Mr9xi9LMOz2HHfnfueHvE,3975
|
|
18
|
+
ingestr/src/appstore/errors.py,sha256=KVpPWth5qlv6_QWEm3aJAt3cdf6miPJs0UDzxknx2Ms,481
|
|
19
|
+
ingestr/src/appstore/models.py,sha256=tW1JSATHBIxZ6a77-RTCBQptJk6iRC8fWcmx4NW7SVA,1716
|
|
20
|
+
ingestr/src/appstore/resources.py,sha256=DJxnNrBohVV0uSeruGV-N_e7UHSlhMhjhYNYdBuqECU,5375
|
|
15
21
|
ingestr/src/arrow/__init__.py,sha256=8fEntgHseKjFMiPQIzxYzw_raicNsEgnveLi1IzBca0,2848
|
|
16
|
-
ingestr/src/asana_source/__init__.py,sha256=
|
|
22
|
+
ingestr/src/asana_source/__init__.py,sha256=QwQTCb5PXts8I4wLHG9UfRP-5ChfjSe88XAVfxMV5Ag,8183
|
|
17
23
|
ingestr/src/asana_source/helpers.py,sha256=PukcdDQWIGqnGxuuobbLw4hUy4-t6gxXg_XywR7Lg9M,375
|
|
18
24
|
ingestr/src/asana_source/settings.py,sha256=-2tpdkwh04RvLKFvwQodnFLYn9MaxOO1hsebGnDQMTU,2829
|
|
19
25
|
ingestr/src/chess/__init__.py,sha256=y0Q8aKBigeKf3N7wuB_gadMQjVJzBPUT8Jhp1ObEWjk,6812
|
|
20
26
|
ingestr/src/chess/helpers.py,sha256=v1HTImOMjAF7AzZUPDIuHu00e7ut0o5y1kWcVYo4QZw,549
|
|
21
27
|
ingestr/src/chess/settings.py,sha256=p0RlCGgtXUacPDEvZmwzSWmzX0Apj1riwfz-nrMK89k,158
|
|
22
28
|
ingestr/src/dynamodb/__init__.py,sha256=swhxkeYBbJ35jn1IghCtvYWT2BM33KynVCh_oR4z28A,2264
|
|
23
|
-
ingestr/src/facebook_ads/__init__.py,sha256=
|
|
29
|
+
ingestr/src/facebook_ads/__init__.py,sha256=reEpSr4BaKA1wO3qVgCH51gW-TgWkbJ_g24UIhJWbac,9286
|
|
24
30
|
ingestr/src/facebook_ads/exceptions.py,sha256=4Nlbc0Mv3i5g-9AoyT-n1PIa8IDi3VCTfEAzholx4Wc,115
|
|
25
31
|
ingestr/src/facebook_ads/helpers.py,sha256=ZLbNHiKer5lPb4g3_435XeBJr57Wv0o1KTyBA1mQ100,9068
|
|
26
32
|
ingestr/src/facebook_ads/settings.py,sha256=1IxZeP_4rN3IBvAncNHOoqpzAirx0Hz-MUK_tl6UTFk,4881
|
|
27
|
-
ingestr/src/filesystem/__init__.py,sha256=
|
|
33
|
+
ingestr/src/filesystem/__init__.py,sha256=hcN_sO356ChTPyg72AufrikdkFBBIScTdxtGfDm-W0E,4221
|
|
28
34
|
ingestr/src/filesystem/helpers.py,sha256=bg0muSHZr3hMa8H4jN2-LGWzI-SUoKlQNiWJ74-YYms,3211
|
|
29
35
|
ingestr/src/filesystem/readers.py,sha256=a0fKkaRpnAOGsXI3EBNYZa7x6tlmAOsgRzb883StY30,3987
|
|
30
|
-
ingestr/src/github/__init__.py,sha256=
|
|
36
|
+
ingestr/src/github/__init__.py,sha256=xVijF-Wi4p88hkVJnKH-oTixismjD3aUcGqGa6Wr4e4,5889
|
|
31
37
|
ingestr/src/github/helpers.py,sha256=Tmnik9811zBWNO6cJwV9PFQxEx2j32LHAQCvNbubsEI,6759
|
|
32
38
|
ingestr/src/github/queries.py,sha256=W34C02jUEdjFmOE7f7u9xvYyBNDMfVZAu0JIRZI2mkU,2302
|
|
33
39
|
ingestr/src/github/settings.py,sha256=N5ahWrDIQ_4IWV9i-hTXxyYduqY9Ym2BTwqsWxcDdJ8,258
|
|
34
|
-
ingestr/src/google_analytics/__init__.py,sha256=
|
|
35
|
-
ingestr/src/google_analytics/helpers
|
|
36
|
-
ingestr/src/google_analytics/helpers/data_processing.py,sha256=fIdEKr9CmZN_s1T2i9BL8IYTPPqNoK6Vaquq2y8StfE,6072
|
|
40
|
+
ingestr/src/google_analytics/__init__.py,sha256=8Evpmoy464YpNbCI_NmvFHIzWCu7J7SjJw-RrPZ6AL8,3674
|
|
41
|
+
ingestr/src/google_analytics/helpers.py,sha256=vLmFyQ_IEJEK5LlxBJQeJw0VHaE5gRRZdBa54U72CaQ,5965
|
|
37
42
|
ingestr/src/google_sheets/README.md,sha256=wFQhvmGpRA38Ba2N_WIax6duyD4c7c_pwvvprRfQDnw,5470
|
|
38
43
|
ingestr/src/google_sheets/__init__.py,sha256=5qlX-6ilx5MW7klC7B_0jGSxloQSLkSESTh4nlY3Aos,6643
|
|
39
44
|
ingestr/src/google_sheets/helpers/__init__.py,sha256=5hXZrZK8cMO3UOuL-s4OKOpdACdihQD0hYYlSEu-iQ8,35
|
|
40
45
|
ingestr/src/google_sheets/helpers/api_calls.py,sha256=RiVfdacbaneszhmuhYilkJnkc9kowZvQUCUxz0G6SlI,5404
|
|
41
46
|
ingestr/src/google_sheets/helpers/data_processing.py,sha256=WYO6z4XjGcG0Hat2J2enb-eLX5mSNVb2vaqRE83FBWU,11000
|
|
42
|
-
ingestr/src/gorgias/__init__.py,sha256=
|
|
47
|
+
ingestr/src/gorgias/__init__.py,sha256=_mFkMYwlY5OKEY0o_FK1OKol03A-8uk7bm1cKlmt5cs,21432
|
|
43
48
|
ingestr/src/gorgias/helpers.py,sha256=DamuijnvhGY9hysQO4txrVMf4izkGbh5qfBKImdOINE,5427
|
|
44
|
-
ingestr/src/hubspot/__init__.py,sha256=
|
|
49
|
+
ingestr/src/hubspot/__init__.py,sha256=DXvn1yGToFUKk-1mMqqoN0OCLNpD16-2mPyEmkhyoVY,9876
|
|
45
50
|
ingestr/src/hubspot/helpers.py,sha256=PTn-UHJv1ENIvA5azUTaHCmFXgmHLJC1tUatQ1N-KFE,6727
|
|
46
51
|
ingestr/src/hubspot/settings.py,sha256=9P1OKiRL88kl_m8n1HhuG-Qpq9VGbqPLn5Q0QYneToU,2193
|
|
47
52
|
ingestr/src/kafka/__init__.py,sha256=wMCXdiraeKd1Kssi9WcVCGZaNGm2tJEtnNyuB4aR5_k,3541
|
|
48
53
|
ingestr/src/kafka/helpers.py,sha256=V9WcVn3PKnEpggArHda4vnAcaV8VDuh__dSmRviJb5Y,7502
|
|
49
|
-
ingestr/src/klaviyo/_init_.py,sha256=
|
|
54
|
+
ingestr/src/klaviyo/_init_.py,sha256=ucWHqBe8DQvXVpbmxKFAV5ljpCFb4ps_2QTD0OSiWxY,7905
|
|
50
55
|
ingestr/src/klaviyo/client.py,sha256=tPj79ia7AW0ZOJhzlKNPCliGbdojRNwUFp8HvB2ym5s,7434
|
|
51
56
|
ingestr/src/klaviyo/helpers.py,sha256=_i-SHffhv25feLDcjy6Blj1UxYLISCwVCMgGtrlnYHk,496
|
|
52
57
|
ingestr/src/mongodb/__init__.py,sha256=aMr1PFIDUMRv--ne61lR17HudsN-fsrzMeyxe9PqK2s,4335
|
|
@@ -56,23 +61,23 @@ ingestr/src/notion/settings.py,sha256=MwQVZViJtnvOegfjXYc_pJ50oUYgSRPgwqu7TvpeMO
|
|
|
56
61
|
ingestr/src/notion/helpers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
62
|
ingestr/src/notion/helpers/client.py,sha256=QXuudkf5Zzff98HRsCqA1g1EZWIrnfn1falPrnKg_y4,5500
|
|
58
63
|
ingestr/src/notion/helpers/database.py,sha256=gigPibTeVefP3lA-8w4aOwX67pj7RlciPk5koDs1ry8,2737
|
|
59
|
-
ingestr/src/shopify/__init__.py,sha256=
|
|
64
|
+
ingestr/src/shopify/__init__.py,sha256=PF_6VQnS065Br1UzSIekTVXBu3WtrMQL_v5CfbfaX5Y,63151
|
|
60
65
|
ingestr/src/shopify/exceptions.py,sha256=BhV3lIVWeBt8Eh4CWGW_REFJpGCzvW6-62yZrBWa3nQ,50
|
|
61
66
|
ingestr/src/shopify/helpers.py,sha256=NfHD6lWXe88ybR0ri-FCQuh2Vf8l5WG0a0FVjmdoSC4,6296
|
|
62
67
|
ingestr/src/shopify/settings.py,sha256=StY0EPr7wFJ7KzRRDN4TKxV0_gkIS1wPj2eR4AYSsDk,141
|
|
63
|
-
ingestr/src/slack/__init__.py,sha256=
|
|
68
|
+
ingestr/src/slack/__init__.py,sha256=pyDukxcilqTAe_bBzfWJ8Vxi83S-XEdEFBH2pEgILrM,10113
|
|
64
69
|
ingestr/src/slack/helpers.py,sha256=08TLK7vhFvH_uekdLVOLF3bTDe1zgH0QxHObXHzk1a8,6545
|
|
65
70
|
ingestr/src/slack/settings.py,sha256=NhKn4y1zokEa5EmIZ05wtj_-I0GOASXZ5V81M1zXCtY,457
|
|
66
71
|
ingestr/src/sql_database/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
72
|
ingestr/src/sql_database/callbacks.py,sha256=sEFFmXxAURY3yeBjnawigDtq9LBCvi8HFqG4kLd7tMU,2002
|
|
68
|
-
ingestr/src/stripe_analytics/__init__.py,sha256=
|
|
73
|
+
ingestr/src/stripe_analytics/__init__.py,sha256=0HCL0qsrh_si1RR3a4k9XS94VWQ4v9aG7CqXF-V-57M,4593
|
|
69
74
|
ingestr/src/stripe_analytics/helpers.py,sha256=iqZOyiGIOhOAhVXXU16DP0hkkTKcTrDu69vAJoTxgEo,1976
|
|
70
75
|
ingestr/src/stripe_analytics/settings.py,sha256=rl9L5XumxO0pjkZf7MGesXHp4QLRgnz3RWLuDWDBKXo,380
|
|
71
76
|
ingestr/src/telemetry/event.py,sha256=MpWc5tt0lSJ1pWKe9HQ11BHrcPBxSH40l4wjZi9u0tI,924
|
|
72
77
|
ingestr/src/testdata/fakebqcredentials.json,sha256=scc6TUc963KAbKTLZCfcmqVzbtzDCW1_8JNRnyAXyy8,628
|
|
73
|
-
ingestr/src/tiktok_ads/__init__.py,sha256=
|
|
78
|
+
ingestr/src/tiktok_ads/__init__.py,sha256=aEqCl3dTH6_d43s1jgAeG1UasEls_SlorORulYMwIL8,4590
|
|
74
79
|
ingestr/src/tiktok_ads/tiktok_helpers.py,sha256=cfdPflCeR_mCk5fxq0v4d7pzlvZDiAoz8bWQJYqKALM,3935
|
|
75
|
-
ingestr/src/zendesk/__init__.py,sha256=
|
|
80
|
+
ingestr/src/zendesk/__init__.py,sha256=tmJ_jdb6kpwmEKpcv6Im71-bOZI6h-Tcofe18OH4I24,17762
|
|
76
81
|
ingestr/src/zendesk/settings.py,sha256=Vdj706nTJFQ-3KH4nO97iYCQuba3dV3E9gfnmLK6xwU,2294
|
|
77
82
|
ingestr/src/zendesk/helpers/__init__.py,sha256=YTJejCiUjfIcsj9FrkY0l-JGYDI7RRte1Ydq5FDH_0c,888
|
|
78
83
|
ingestr/src/zendesk/helpers/api_helpers.py,sha256=dMkNn4ZQXgJTDOXAAXdmRt41phNFoRhYyPaLJih0pZY,4184
|
|
@@ -86,8 +91,8 @@ ingestr/testdata/delete_insert_part2.csv,sha256=B_KUzpzbNdDY_n7wWop1mT2cz36TmayS
|
|
|
86
91
|
ingestr/testdata/merge_expected.csv,sha256=DReHqWGnQMsf2PBv_Q2pfjsgvikYFnf1zYcQZ7ZqYN0,276
|
|
87
92
|
ingestr/testdata/merge_part1.csv,sha256=Pw8Z9IDKcNU0qQHx1z6BUf4rF_-SxKGFOvymCt4OY9I,185
|
|
88
93
|
ingestr/testdata/merge_part2.csv,sha256=T_GiWxA81SN63_tMOIuemcvboEFeAmbKc7xRXvL9esw,287
|
|
89
|
-
ingestr-0.12.
|
|
90
|
-
ingestr-0.12.
|
|
91
|
-
ingestr-0.12.
|
|
92
|
-
ingestr-0.12.
|
|
93
|
-
ingestr-0.12.
|
|
94
|
+
ingestr-0.12.7.dist-info/METADATA,sha256=5p9Igsh-xTJT1cNM_dsgAAFDTDuUQQSezkL9dz4JO3k,8024
|
|
95
|
+
ingestr-0.12.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
96
|
+
ingestr-0.12.7.dist-info/entry_points.txt,sha256=oPJy0KBnPWYjDtP1k8qwAihcTLHSZokSQvRAw_wtfJM,46
|
|
97
|
+
ingestr-0.12.7.dist-info/licenses/LICENSE.md,sha256=cW8wIhn8HFE-KLStDF9jHQ1O_ARWP3kTpk_-eOccL24,1075
|
|
98
|
+
ingestr-0.12.7.dist-info/RECORD,,
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"""Google analytics source helpers"""
|
|
2
|
-
|
|
3
|
-
from typing import Iterator, List
|
|
4
|
-
|
|
5
|
-
import dlt
|
|
6
|
-
from apiclient.discovery import Resource # type: ignore
|
|
7
|
-
from dlt.common import logger, pendulum
|
|
8
|
-
from dlt.common.typing import TDataItem
|
|
9
|
-
from google.analytics.data_v1beta.types import (
|
|
10
|
-
Dimension,
|
|
11
|
-
Metric,
|
|
12
|
-
)
|
|
13
|
-
from pendulum.datetime import DateTime
|
|
14
|
-
|
|
15
|
-
from .data_processing import get_report
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def basic_report(
|
|
19
|
-
client: Resource,
|
|
20
|
-
rows_per_page: int,
|
|
21
|
-
dimensions: List[str],
|
|
22
|
-
metrics: List[str],
|
|
23
|
-
property_id: int,
|
|
24
|
-
resource_name: str,
|
|
25
|
-
start_date: str,
|
|
26
|
-
last_date: dlt.sources.incremental[DateTime],
|
|
27
|
-
) -> Iterator[TDataItem]:
|
|
28
|
-
"""
|
|
29
|
-
Retrieves the data for a report given dimensions, metrics, and filters required for the report.
|
|
30
|
-
|
|
31
|
-
Args:
|
|
32
|
-
client: The Google Analytics client used to make requests.
|
|
33
|
-
dimensions: Dimensions for the report. See metadata for the full list of dimensions.
|
|
34
|
-
metrics: Metrics for the report. See metadata for the full list of metrics.
|
|
35
|
-
property_id: A reference to the Google Analytics project.
|
|
36
|
-
More info: https://developers.google.com/analytics/devguides/reporting/data/v1/property-id
|
|
37
|
-
rows_per_page: Controls how many rows are retrieved per page in the reports.
|
|
38
|
-
Default is 10000, maximum possible is 100000.
|
|
39
|
-
resource_name: The resource name used to save incremental into dlt state.
|
|
40
|
-
start_date: Incremental load start_date.
|
|
41
|
-
Default is taken from dlt state if it exists.
|
|
42
|
-
last_date: Incremental load end date.
|
|
43
|
-
Default is taken from dlt state if it exists.
|
|
44
|
-
|
|
45
|
-
Returns:
|
|
46
|
-
Generator of all rows of data in the report.
|
|
47
|
-
"""
|
|
48
|
-
|
|
49
|
-
# grab the start time from last dlt load if not filled, if that is also empty then use the first day of the millennium as the start time instead
|
|
50
|
-
if last_date.last_value:
|
|
51
|
-
if start_date != "2015-08-14":
|
|
52
|
-
logger.warning(
|
|
53
|
-
f"Using the starting date: {last_date.last_value} for incremental report: {resource_name} and ignoring start date passed as argument {start_date}"
|
|
54
|
-
)
|
|
55
|
-
start_date = last_date.last_value.to_date_string()
|
|
56
|
-
else:
|
|
57
|
-
start_date = start_date or "2015-08-14"
|
|
58
|
-
|
|
59
|
-
processed_response = get_report(
|
|
60
|
-
client=client,
|
|
61
|
-
property_id=property_id,
|
|
62
|
-
# fill dimensions and metrics with the proper api client objects
|
|
63
|
-
dimension_list=[Dimension(name=dimension) for dimension in dimensions],
|
|
64
|
-
metric_list=[Metric(name=metric) for metric in metrics],
|
|
65
|
-
limit=rows_per_page,
|
|
66
|
-
start_date=start_date,
|
|
67
|
-
# configure end_date to yesterday as a date string
|
|
68
|
-
end_date=pendulum.now().to_date_string(),
|
|
69
|
-
)
|
|
70
|
-
yield from processed_response
|
|
File without changes
|
|
File without changes
|
|
File without changes
|