omniload 0.0.0__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.
Files changed (239) hide show
  1. omniload/__init__.py +13 -0
  2. omniload/conftest.py +73 -0
  3. omniload/main.py +809 -0
  4. omniload/main_test.py +6468 -0
  5. omniload/src/adjust/__init__.py +108 -0
  6. omniload/src/adjust/adjust_helpers.py +122 -0
  7. omniload/src/adjust/adjust_helpers_test.py +15 -0
  8. omniload/src/airtable/__init__.py +84 -0
  9. omniload/src/allium/__init__.py +128 -0
  10. omniload/src/anthropic/__init__.py +277 -0
  11. omniload/src/anthropic/helpers.py +525 -0
  12. omniload/src/anthropic/helpers_test.py +522 -0
  13. omniload/src/applovin/__init__.py +316 -0
  14. omniload/src/applovin_max/__init__.py +117 -0
  15. omniload/src/appsflyer/__init__.py +325 -0
  16. omniload/src/appsflyer/client.py +110 -0
  17. omniload/src/appsflyer/client_test.py +56 -0
  18. omniload/src/appstore/__init__.py +142 -0
  19. omniload/src/appstore/client.py +126 -0
  20. omniload/src/appstore/errors.py +15 -0
  21. omniload/src/appstore/models.py +117 -0
  22. omniload/src/appstore/resources.py +179 -0
  23. omniload/src/arrow/__init__.py +81 -0
  24. omniload/src/asana_source/__init__.py +281 -0
  25. omniload/src/asana_source/helpers.py +30 -0
  26. omniload/src/asana_source/settings.py +158 -0
  27. omniload/src/attio/__init__.py +102 -0
  28. omniload/src/attio/helpers.py +65 -0
  29. omniload/src/blob.py +95 -0
  30. omniload/src/blob_test.py +36 -0
  31. omniload/src/bruin/__init__.py +76 -0
  32. omniload/src/chess/__init__.py +180 -0
  33. omniload/src/chess/helpers.py +35 -0
  34. omniload/src/chess/settings.py +18 -0
  35. omniload/src/clickup/__init__.py +85 -0
  36. omniload/src/clickup/helpers.py +47 -0
  37. omniload/src/collector/spinner.py +43 -0
  38. omniload/src/couchbase_source/__init__.py +118 -0
  39. omniload/src/couchbase_source/helpers.py +135 -0
  40. omniload/src/couchbase_source/helpers_test.py +170 -0
  41. omniload/src/cursor/__init__.py +83 -0
  42. omniload/src/cursor/helpers.py +188 -0
  43. omniload/src/customer_io/__init__.py +486 -0
  44. omniload/src/customer_io/helpers.py +530 -0
  45. omniload/src/destinations.py +982 -0
  46. omniload/src/destinations_test.py +227 -0
  47. omniload/src/docebo/__init__.py +589 -0
  48. omniload/src/docebo/client.py +435 -0
  49. omniload/src/docebo/helpers.py +97 -0
  50. omniload/src/docebo/helpers_test.py +190 -0
  51. omniload/src/dune/__init__.py +104 -0
  52. omniload/src/dune/helpers.py +108 -0
  53. omniload/src/dynamodb/__init__.py +86 -0
  54. omniload/src/elasticsearch/__init__.py +80 -0
  55. omniload/src/elasticsearch/helpers.py +141 -0
  56. omniload/src/errors.py +26 -0
  57. omniload/src/facebook_ads/__init__.py +403 -0
  58. omniload/src/facebook_ads/exceptions.py +19 -0
  59. omniload/src/facebook_ads/helpers.py +296 -0
  60. omniload/src/facebook_ads/helpers_test.py +208 -0
  61. omniload/src/facebook_ads/settings.py +224 -0
  62. omniload/src/facebook_ads/utils.py +53 -0
  63. omniload/src/factory.py +305 -0
  64. omniload/src/factory_test.py +13 -0
  65. omniload/src/filesystem/__init__.py +133 -0
  66. omniload/src/filesystem/helpers.py +114 -0
  67. omniload/src/filesystem/readers.py +187 -0
  68. omniload/src/filters.py +62 -0
  69. omniload/src/fireflies/__init__.py +151 -0
  70. omniload/src/fireflies/helpers.py +753 -0
  71. omniload/src/fireflies/helpers_test.py +515 -0
  72. omniload/src/fluxx/__init__.py +10013 -0
  73. omniload/src/fluxx/helpers.py +233 -0
  74. omniload/src/fluxx/helpers_test.py +287 -0
  75. omniload/src/frankfurter/__init__.py +157 -0
  76. omniload/src/frankfurter/helpers.py +48 -0
  77. omniload/src/freshdesk/__init__.py +103 -0
  78. omniload/src/freshdesk/freshdesk_client.py +151 -0
  79. omniload/src/freshdesk/settings.py +23 -0
  80. omniload/src/fundraiseup/__init__.py +95 -0
  81. omniload/src/fundraiseup/client.py +81 -0
  82. omniload/src/fundraiseup/client_test.py +463 -0
  83. omniload/src/github/__init__.py +202 -0
  84. omniload/src/github/helpers.py +207 -0
  85. omniload/src/github/queries.py +129 -0
  86. omniload/src/github/settings.py +24 -0
  87. omniload/src/google_ads/__init__.py +198 -0
  88. omniload/src/google_ads/field.py +17 -0
  89. omniload/src/google_ads/metrics.py +254 -0
  90. omniload/src/google_ads/predicates.py +37 -0
  91. omniload/src/google_ads/reports.py +411 -0
  92. omniload/src/google_ads/reports_test.py +212 -0
  93. omniload/src/google_ads/test_google_ads.py +184 -0
  94. omniload/src/google_analytics/__init__.py +144 -0
  95. omniload/src/google_analytics/helpers.py +312 -0
  96. omniload/src/google_analytics/helpers_test.py +78 -0
  97. omniload/src/google_sheets/__init__.py +166 -0
  98. omniload/src/google_sheets/helpers/__init__.py +15 -0
  99. omniload/src/google_sheets/helpers/api_calls.py +160 -0
  100. omniload/src/google_sheets/helpers/data_processing.py +316 -0
  101. omniload/src/gorgias/__init__.py +595 -0
  102. omniload/src/gorgias/helpers.py +166 -0
  103. omniload/src/gorgias/helpers_test.py +45 -0
  104. omniload/src/hostaway/__init__.py +302 -0
  105. omniload/src/hostaway/client.py +288 -0
  106. omniload/src/http/__init__.py +38 -0
  107. omniload/src/http/readers.py +146 -0
  108. omniload/src/http_client.py +24 -0
  109. omniload/src/hubspot/__init__.py +800 -0
  110. omniload/src/hubspot/helpers.py +417 -0
  111. omniload/src/hubspot/settings.py +329 -0
  112. omniload/src/indeed/__init__.py +153 -0
  113. omniload/src/indeed/helpers.py +228 -0
  114. omniload/src/influxdb/__init__.py +46 -0
  115. omniload/src/influxdb/client.py +34 -0
  116. omniload/src/intercom/__init__.py +142 -0
  117. omniload/src/intercom/helpers.py +674 -0
  118. omniload/src/intercom/helpers_test.py +249 -0
  119. omniload/src/intercom/settings.py +279 -0
  120. omniload/src/isoc_pulse/__init__.py +159 -0
  121. omniload/src/jira_source/__init__.py +377 -0
  122. omniload/src/jira_source/helpers.py +510 -0
  123. omniload/src/jira_source/settings.py +184 -0
  124. omniload/src/kafka/__init__.py +120 -0
  125. omniload/src/kafka/helpers.py +241 -0
  126. omniload/src/kinesis/__init__.py +153 -0
  127. omniload/src/kinesis/helpers.py +96 -0
  128. omniload/src/klaviyo/__init__.py +237 -0
  129. omniload/src/klaviyo/client.py +212 -0
  130. omniload/src/klaviyo/helpers.py +19 -0
  131. omniload/src/klaviyo/helpers_test.py +36 -0
  132. omniload/src/linear/__init__.py +634 -0
  133. omniload/src/linear/helpers.py +111 -0
  134. omniload/src/linkedin_ads/__init__.py +266 -0
  135. omniload/src/linkedin_ads/dimension_time_enum.py +17 -0
  136. omniload/src/linkedin_ads/helpers.py +246 -0
  137. omniload/src/linkedin_ads/helpers_test.py +141 -0
  138. omniload/src/loader.py +69 -0
  139. omniload/src/loader_test.py +73 -0
  140. omniload/src/mailchimp/__init__.py +126 -0
  141. omniload/src/mailchimp/helpers.py +226 -0
  142. omniload/src/mailchimp/helpers_test.py +303 -0
  143. omniload/src/mailchimp/settings.py +164 -0
  144. omniload/src/masking.py +344 -0
  145. omniload/src/masking_test.py +386 -0
  146. omniload/src/mixpanel/__init__.py +62 -0
  147. omniload/src/mixpanel/client.py +104 -0
  148. omniload/src/monday/__init__.py +246 -0
  149. omniload/src/monday/helpers.py +392 -0
  150. omniload/src/monday/settings.py +325 -0
  151. omniload/src/mongodb/__init__.py +281 -0
  152. omniload/src/mongodb/helpers.py +975 -0
  153. omniload/src/mongodb/helpers_test.py +455 -0
  154. omniload/src/notion/__init__.py +69 -0
  155. omniload/src/notion/helpers/__init__.py +14 -0
  156. omniload/src/notion/helpers/client.py +178 -0
  157. omniload/src/notion/helpers/database.py +92 -0
  158. omniload/src/notion/settings.py +17 -0
  159. omniload/src/partition.py +32 -0
  160. omniload/src/personio/__init__.py +345 -0
  161. omniload/src/personio/helpers.py +100 -0
  162. omniload/src/phantombuster/__init__.py +65 -0
  163. omniload/src/phantombuster/client.py +87 -0
  164. omniload/src/pinterest/__init__.py +82 -0
  165. omniload/src/pipedrive/__init__.py +212 -0
  166. omniload/src/pipedrive/helpers/__init__.py +37 -0
  167. omniload/src/pipedrive/helpers/custom_fields_munger.py +116 -0
  168. omniload/src/pipedrive/helpers/pages.py +129 -0
  169. omniload/src/pipedrive/settings.py +41 -0
  170. omniload/src/pipedrive/typing.py +17 -0
  171. omniload/src/plusvibeai/__init__.py +335 -0
  172. omniload/src/plusvibeai/helpers.py +544 -0
  173. omniload/src/plusvibeai/settings.py +252 -0
  174. omniload/src/primer/__init__.py +45 -0
  175. omniload/src/primer/helpers.py +79 -0
  176. omniload/src/primer/helpers_test.py +81 -0
  177. omniload/src/quickbooks/__init__.py +117 -0
  178. omniload/src/reddit_ads/__init__.py +183 -0
  179. omniload/src/reddit_ads/helpers.py +232 -0
  180. omniload/src/reddit_ads/helpers_test.py +181 -0
  181. omniload/src/resource.py +40 -0
  182. omniload/src/revenuecat/__init__.py +83 -0
  183. omniload/src/revenuecat/helpers.py +237 -0
  184. omniload/src/revenuecat/helpers_test.py +158 -0
  185. omniload/src/salesforce/__init__.py +170 -0
  186. omniload/src/salesforce/helpers.py +78 -0
  187. omniload/src/shopify/__init__.py +1953 -0
  188. omniload/src/shopify/exceptions.py +17 -0
  189. omniload/src/shopify/helpers.py +202 -0
  190. omniload/src/shopify/helpers_test.py +49 -0
  191. omniload/src/shopify/settings.py +19 -0
  192. omniload/src/slack/__init__.py +290 -0
  193. omniload/src/slack/helpers.py +218 -0
  194. omniload/src/slack/settings.py +36 -0
  195. omniload/src/smartsheets/__init__.py +82 -0
  196. omniload/src/smartsheets/test_smartsheets.py +133 -0
  197. omniload/src/snapchat_ads/__init__.py +455 -0
  198. omniload/src/snapchat_ads/client.py +72 -0
  199. omniload/src/snapchat_ads/helpers.py +630 -0
  200. omniload/src/snapchat_ads/helpers_test.py +248 -0
  201. omniload/src/snapchat_ads/settings.py +130 -0
  202. omniload/src/socrata_source/__init__.py +83 -0
  203. omniload/src/socrata_source/helpers.py +85 -0
  204. omniload/src/socrata_source/settings.py +8 -0
  205. omniload/src/solidgate/__init__.py +219 -0
  206. omniload/src/solidgate/helpers.py +154 -0
  207. omniload/src/sources.py +5408 -0
  208. omniload/src/sources_test.py +290 -0
  209. omniload/src/sql_database/__init__.py +0 -0
  210. omniload/src/sql_database/callbacks.py +66 -0
  211. omniload/src/stripe_analytics/__init__.py +183 -0
  212. omniload/src/stripe_analytics/helpers.py +386 -0
  213. omniload/src/stripe_analytics/helpers_test.py +130 -0
  214. omniload/src/stripe_analytics/settings.py +80 -0
  215. omniload/src/table_definition.py +15 -0
  216. omniload/src/tiktok_ads/__init__.py +150 -0
  217. omniload/src/tiktok_ads/tiktok_helpers.py +130 -0
  218. omniload/src/tiktok_ads/tiktok_helpers_test.py +56 -0
  219. omniload/src/time.py +11 -0
  220. omniload/src/trustpilot/__init__.py +48 -0
  221. omniload/src/trustpilot/client.py +48 -0
  222. omniload/src/wise/__init__.py +68 -0
  223. omniload/src/wise/client.py +63 -0
  224. omniload/src/zendesk/__init__.py +480 -0
  225. omniload/src/zendesk/helpers/__init__.py +39 -0
  226. omniload/src/zendesk/helpers/api_helpers.py +119 -0
  227. omniload/src/zendesk/helpers/credentials.py +68 -0
  228. omniload/src/zendesk/helpers/talk_api.py +132 -0
  229. omniload/src/zendesk/settings.py +71 -0
  230. omniload/src/zoom/__init__.py +99 -0
  231. omniload/src/zoom/helpers.py +102 -0
  232. omniload-0.0.0.dist-info/METADATA +243 -0
  233. omniload-0.0.0.dist-info/RECORD +239 -0
  234. omniload-0.0.0.dist-info/WHEEL +5 -0
  235. omniload-0.0.0.dist-info/entry_points.txt +2 -0
  236. omniload-0.0.0.dist-info/licenses/LICENSE.Apache-2.0 +176 -0
  237. omniload-0.0.0.dist-info/licenses/LICENSE.md +21 -0
  238. omniload-0.0.0.dist-info/licenses/NOTICE +35 -0
  239. omniload-0.0.0.dist-info/top_level.txt +1 -0
omniload/__init__.py ADDED
@@ -0,0 +1,13 @@
1
+ from importlib.metadata import PackageNotFoundError, version
2
+ from unittest import mock
3
+
4
+ __appname__ = "omniload"
5
+
6
+
7
+ try:
8
+ __version__ = version(__appname__)
9
+ except PackageNotFoundError: # pragma: no cover
10
+ __version__ = "0.0.0-dev"
11
+
12
+ # Turn off dlt's telemetry to tame three more requests per invocation.
13
+ mock.patch("dlt.common.runtime.telemetry._TELEMETRY_STARTED", True)
omniload/conftest.py ADDED
@@ -0,0 +1,73 @@
1
+ import os
2
+ import tempfile
3
+ from concurrent.futures import ThreadPoolExecutor
4
+
5
+ import pytest
6
+
7
+ from .main_test import DESTINATIONS, SOURCES # type: ignore
8
+
9
+
10
+ def pytest_configure(config):
11
+ if is_master(config):
12
+ config.shared_directory = tempfile.mkdtemp()
13
+
14
+
15
+ def pytest_configure_node(node):
16
+ """xdist hook"""
17
+ node.workerinput["shared_directory"] = node.config.shared_directory
18
+
19
+
20
+ @pytest.fixture(scope="session")
21
+ def shared_directory(request):
22
+ if is_master(request.config):
23
+ return request.config.shared_directory
24
+ else:
25
+ return request.config.workerinput["shared_directory"]
26
+
27
+
28
+ def is_master(config):
29
+ """True if the code running the given pytest.config object is running in a xdist master
30
+ node or not running xdist at all.
31
+ """
32
+ return not hasattr(config, "workerinput")
33
+
34
+
35
+ def start_containers(config):
36
+ if hasattr(config, "workerinput"):
37
+ return
38
+
39
+ unique_containers = set(SOURCES.values()) | set(DESTINATIONS.values())
40
+ for container in unique_containers:
41
+ container.container_lock_dir = config.shared_directory
42
+
43
+ with ThreadPoolExecutor() as executor:
44
+ for container in unique_containers:
45
+ executor.submit(container.start_fully)
46
+ # futures = [
47
+ # executor.submit(container.start_fully) for container in unique_containers
48
+ # ]
49
+ # # Wait for all futures to complete
50
+ # for future in futures:
51
+ # future.result()
52
+
53
+
54
+ def stop_containers(config):
55
+ if hasattr(config, "workerinput"):
56
+ return
57
+
58
+ should_manage_containers = os.environ.get("PYTEST_XDIST_WORKER", "gw0") == "gw0"
59
+ if not should_manage_containers:
60
+ return
61
+
62
+ unique_containers = set(SOURCES.values()) | set(DESTINATIONS.values())
63
+
64
+ for container in unique_containers:
65
+ container.stop_fully()
66
+
67
+
68
+ def pytest_sessionstart(session):
69
+ start_containers(session.config)
70
+
71
+
72
+ def pytest_sessionfinish(session, exitstatus):
73
+ stop_containers(session.config)