omniload 0.0.0.dev0__tar.gz → 0.1.0__tar.gz

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 (458) hide show
  1. {omniload-0.0.0.dev0 → omniload-0.1.0}/LICENSE.Apache-2.0 +0 -25
  2. omniload-0.1.0/MANIFEST.in +9 -0
  3. omniload-0.1.0/PKG-INFO +247 -0
  4. omniload-0.1.0/README.md +95 -0
  5. omniload-0.1.0/docs/conf.py +164 -0
  6. omniload-0.1.0/omniload/__init__.py +13 -0
  7. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/conftest.py +2 -1
  8. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/main.py +12 -14
  9. omniload-0.1.0/omniload/main_test.py +6531 -0
  10. omniload-0.1.0/omniload/src/adjust/adjust_helpers_test.py +15 -0
  11. omniload-0.1.0/omniload/src/anthropic/helpers_test.py +522 -0
  12. omniload-0.1.0/omniload/src/appsflyer/client_test.py +56 -0
  13. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/appstore/__init__.py +10 -6
  14. omniload-0.1.0/omniload/src/blob_test.py +36 -0
  15. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/collector/spinner.py +4 -3
  16. omniload-0.1.0/omniload/src/couchbase_source/helpers_test.py +170 -0
  17. omniload-0.1.0/omniload/src/destinations_test.py +227 -0
  18. omniload-0.1.0/omniload/src/docebo/helpers_test.py +190 -0
  19. omniload-0.1.0/omniload/src/facebook_ads/helpers_test.py +208 -0
  20. omniload-0.1.0/omniload/src/factory_test.py +13 -0
  21. omniload-0.1.0/omniload/src/fireflies/helpers_test.py +515 -0
  22. omniload-0.1.0/omniload/src/fluxx/helpers_test.py +287 -0
  23. omniload-0.1.0/omniload/src/fundraiseup/client_test.py +463 -0
  24. omniload-0.1.0/omniload/src/google_ads/reports_test.py +212 -0
  25. omniload-0.1.0/omniload/src/google_analytics/helpers_test.py +78 -0
  26. omniload-0.1.0/omniload/src/gorgias/helpers_test.py +45 -0
  27. omniload-0.1.0/omniload/src/intercom/helpers_test.py +249 -0
  28. omniload-0.1.0/omniload/src/klaviyo/helpers_test.py +36 -0
  29. omniload-0.1.0/omniload/src/linkedin_ads/helpers_test.py +141 -0
  30. omniload-0.1.0/omniload/src/loader_test.py +73 -0
  31. omniload-0.1.0/omniload/src/mailchimp/helpers_test.py +303 -0
  32. omniload-0.1.0/omniload/src/masking_test.py +386 -0
  33. omniload-0.1.0/omniload/src/mongodb/helpers_test.py +455 -0
  34. omniload-0.1.0/omniload/src/primer/helpers_test.py +81 -0
  35. omniload-0.1.0/omniload/src/reddit_ads/helpers_test.py +181 -0
  36. omniload-0.1.0/omniload/src/revenuecat/helpers_test.py +158 -0
  37. omniload-0.1.0/omniload/src/shopify/helpers_test.py +49 -0
  38. omniload-0.1.0/omniload/src/snapchat_ads/helpers_test.py +248 -0
  39. omniload-0.1.0/omniload/src/sources_test.py +290 -0
  40. omniload-0.1.0/omniload/src/stripe_analytics/helpers_test.py +130 -0
  41. omniload-0.1.0/omniload/src/tiktok_ads/tiktok_helpers_test.py +56 -0
  42. omniload-0.1.0/omniload.egg-info/PKG-INFO +247 -0
  43. omniload-0.1.0/omniload.egg-info/SOURCES.txt +244 -0
  44. omniload-0.1.0/omniload.egg-info/dependency_links.txt +1 -0
  45. omniload-0.1.0/omniload.egg-info/entry_points.txt +2 -0
  46. omniload-0.1.0/omniload.egg-info/requires.txt +95 -0
  47. omniload-0.1.0/omniload.egg-info/top_level.txt +6 -0
  48. omniload-0.1.0/pyproject.toml +373 -0
  49. omniload-0.1.0/setup.cfg +4 -0
  50. omniload-0.0.0.dev0/.dlt/config.toml +0 -3
  51. omniload-0.0.0.dev0/.dockerignore +0 -137
  52. omniload-0.0.0.dev0/.githooks/pre-commit-hook.sh +0 -23
  53. omniload-0.0.0.dev0/.github/workflows/deploy-docs.yml +0 -62
  54. omniload-0.0.0.dev0/.github/workflows/release.yml +0 -149
  55. omniload-0.0.0.dev0/.github/workflows/secrets-scan.yml +0 -12
  56. omniload-0.0.0.dev0/.github/workflows/tests.yml +0 -94
  57. omniload-0.0.0.dev0/.gitignore +0 -29
  58. omniload-0.0.0.dev0/.gitleaksignore +0 -7
  59. omniload-0.0.0.dev0/.npmrc +0 -1
  60. omniload-0.0.0.dev0/.vale.ini +0 -16
  61. omniload-0.0.0.dev0/Dockerfile +0 -61
  62. omniload-0.0.0.dev0/Makefile +0 -68
  63. omniload-0.0.0.dev0/PKG-INFO +0 -439
  64. omniload-0.0.0.dev0/README.md +0 -347
  65. omniload-0.0.0.dev0/docs/.vitepress/config.mjs +0 -223
  66. omniload-0.0.0.dev0/docs/.vitepress/theme/CopyPageButton.vue +0 -176
  67. omniload-0.0.0.dev0/docs/.vitepress/theme/Layout.vue +0 -27
  68. omniload-0.0.0.dev0/docs/.vitepress/theme/custom.css +0 -34
  69. omniload-0.0.0.dev0/docs/.vitepress/theme/index.js +0 -9
  70. omniload-0.0.0.dev0/docs/commands/example-uris.md +0 -5
  71. omniload-0.0.0.dev0/docs/commands/ingest.md +0 -132
  72. omniload-0.0.0.dev0/docs/getting-started/core-concepts.md +0 -41
  73. omniload-0.0.0.dev0/docs/getting-started/data-masking.md +0 -377
  74. omniload-0.0.0.dev0/docs/getting-started/incremental-loading.md +0 -228
  75. omniload-0.0.0.dev0/docs/getting-started/quickstart.md +0 -61
  76. omniload-0.0.0.dev0/docs/index.md +0 -39
  77. omniload-0.0.0.dev0/docs/media/applovin_max.png +0 -0
  78. omniload-0.0.0.dev0/docs/media/athena.png +0 -0
  79. omniload-0.0.0.dev0/docs/media/clickhouse_img.png +0 -0
  80. omniload-0.0.0.dev0/docs/media/clickup_ingestion.png +0 -0
  81. omniload-0.0.0.dev0/docs/media/cratedb-destination.png +0 -0
  82. omniload-0.0.0.dev0/docs/media/cratedb-source.png +0 -0
  83. omniload-0.0.0.dev0/docs/media/freshdesk_ingestion.png +0 -0
  84. omniload-0.0.0.dev0/docs/media/gcp_spanner_ingestion.png +0 -0
  85. omniload-0.0.0.dev0/docs/media/github.png +0 -0
  86. omniload-0.0.0.dev0/docs/media/google_analytics_realtime_report.png +0 -0
  87. omniload-0.0.0.dev0/docs/media/googleanalytics.png +0 -0
  88. omniload-0.0.0.dev0/docs/media/ingestion_elasticsearch_img.png +0 -0
  89. omniload-0.0.0.dev0/docs/media/kinesis.bigquery.png +0 -0
  90. omniload-0.0.0.dev0/docs/media/linear.png +0 -0
  91. omniload-0.0.0.dev0/docs/media/linkedin_ads.png +0 -0
  92. omniload-0.0.0.dev0/docs/media/mixpanel_ingestion.png +0 -0
  93. omniload-0.0.0.dev0/docs/media/personio.png +0 -0
  94. omniload-0.0.0.dev0/docs/media/personio_duckdb.png +0 -0
  95. omniload-0.0.0.dev0/docs/media/phantombuster.png +0 -0
  96. omniload-0.0.0.dev0/docs/media/pipedrive.png +0 -0
  97. omniload-0.0.0.dev0/docs/media/quickbook_ingestion.png +0 -0
  98. omniload-0.0.0.dev0/docs/media/sftp.png +0 -0
  99. omniload-0.0.0.dev0/docs/media/stripe_postgres.png +0 -0
  100. omniload-0.0.0.dev0/docs/media/tiktok.png +0 -0
  101. omniload-0.0.0.dev0/docs/media/wise_ingestion.png +0 -0
  102. omniload-0.0.0.dev0/docs/media/zoom_ingestion.png +0 -0
  103. omniload-0.0.0.dev0/docs/public/demo.gif +0 -0
  104. omniload-0.0.0.dev0/docs/supported-sources/adjust.md +0 -118
  105. omniload-0.0.0.dev0/docs/supported-sources/airtable.md +0 -57
  106. omniload-0.0.0.dev0/docs/supported-sources/allium.md +0 -164
  107. omniload-0.0.0.dev0/docs/supported-sources/anthropic.md +0 -356
  108. omniload-0.0.0.dev0/docs/supported-sources/appleads.md +0 -196
  109. omniload-0.0.0.dev0/docs/supported-sources/applovin.md +0 -144
  110. omniload-0.0.0.dev0/docs/supported-sources/applovin_max.md +0 -52
  111. omniload-0.0.0.dev0/docs/supported-sources/appsflyer.md +0 -93
  112. omniload-0.0.0.dev0/docs/supported-sources/appstore.md +0 -263
  113. omniload-0.0.0.dev0/docs/supported-sources/asana.md +0 -59
  114. omniload-0.0.0.dev0/docs/supported-sources/athena.md +0 -42
  115. omniload-0.0.0.dev0/docs/supported-sources/attio.md +0 -47
  116. omniload-0.0.0.dev0/docs/supported-sources/bigquery.md +0 -52
  117. omniload-0.0.0.dev0/docs/supported-sources/bruin.md +0 -48
  118. omniload-0.0.0.dev0/docs/supported-sources/chess.md +0 -38
  119. omniload-0.0.0.dev0/docs/supported-sources/clickhouse.md +0 -58
  120. omniload-0.0.0.dev0/docs/supported-sources/clickup.md +0 -45
  121. omniload-0.0.0.dev0/docs/supported-sources/couchbase.md +0 -136
  122. omniload-0.0.0.dev0/docs/supported-sources/cratedb.md +0 -147
  123. omniload-0.0.0.dev0/docs/supported-sources/csv.md +0 -9
  124. omniload-0.0.0.dev0/docs/supported-sources/cursor.md +0 -148
  125. omniload-0.0.0.dev0/docs/supported-sources/custom_queries.md +0 -50
  126. omniload-0.0.0.dev0/docs/supported-sources/customerio.md +0 -134
  127. omniload-0.0.0.dev0/docs/supported-sources/databricks.md +0 -44
  128. omniload-0.0.0.dev0/docs/supported-sources/db2.md +0 -28
  129. omniload-0.0.0.dev0/docs/supported-sources/docebo.md +0 -75
  130. omniload-0.0.0.dev0/docs/supported-sources/duckdb.md +0 -16
  131. omniload-0.0.0.dev0/docs/supported-sources/dune.md +0 -125
  132. omniload-0.0.0.dev0/docs/supported-sources/dynamodb.md +0 -114
  133. omniload-0.0.0.dev0/docs/supported-sources/elasticsearch.md +0 -80
  134. omniload-0.0.0.dev0/docs/supported-sources/facebook-ads.md +0 -249
  135. omniload-0.0.0.dev0/docs/supported-sources/fireflies.md +0 -108
  136. omniload-0.0.0.dev0/docs/supported-sources/fluxx.md +0 -307
  137. omniload-0.0.0.dev0/docs/supported-sources/frankfurter.md +0 -52
  138. omniload-0.0.0.dev0/docs/supported-sources/freshdesk.md +0 -49
  139. omniload-0.0.0.dev0/docs/supported-sources/fundraiseup.md +0 -83
  140. omniload-0.0.0.dev0/docs/supported-sources/g2.md +0 -55
  141. omniload-0.0.0.dev0/docs/supported-sources/gcs.md +0 -196
  142. omniload-0.0.0.dev0/docs/supported-sources/github.md +0 -48
  143. omniload-0.0.0.dev0/docs/supported-sources/google-ads.md +0 -266
  144. omniload-0.0.0.dev0/docs/supported-sources/google_analytics.md +0 -89
  145. omniload-0.0.0.dev0/docs/supported-sources/gorgias.md +0 -42
  146. omniload-0.0.0.dev0/docs/supported-sources/gsheets.md +0 -46
  147. omniload-0.0.0.dev0/docs/supported-sources/hostaway.md +0 -104
  148. omniload-0.0.0.dev0/docs/supported-sources/http.md +0 -123
  149. omniload-0.0.0.dev0/docs/supported-sources/hubspot.md +0 -208
  150. omniload-0.0.0.dev0/docs/supported-sources/indeed.md +0 -115
  151. omniload-0.0.0.dev0/docs/supported-sources/influxdb.md +0 -39
  152. omniload-0.0.0.dev0/docs/supported-sources/intercom.md +0 -57
  153. omniload-0.0.0.dev0/docs/supported-sources/isoc-pulse.md +0 -150
  154. omniload-0.0.0.dev0/docs/supported-sources/jira.md +0 -77
  155. omniload-0.0.0.dev0/docs/supported-sources/jobtread.md +0 -69
  156. omniload-0.0.0.dev0/docs/supported-sources/kafka.md +0 -38
  157. omniload-0.0.0.dev0/docs/supported-sources/kinesis.md +0 -43
  158. omniload-0.0.0.dev0/docs/supported-sources/klaviyo.md +0 -57
  159. omniload-0.0.0.dev0/docs/supported-sources/linear.md +0 -57
  160. omniload-0.0.0.dev0/docs/supported-sources/linkedin_ads.md +0 -170
  161. omniload-0.0.0.dev0/docs/supported-sources/mailchimp.md +0 -99
  162. omniload-0.0.0.dev0/docs/supported-sources/mixpanel.md +0 -50
  163. omniload-0.0.0.dev0/docs/supported-sources/monday.md +0 -59
  164. omniload-0.0.0.dev0/docs/supported-sources/mongodb.md +0 -226
  165. omniload-0.0.0.dev0/docs/supported-sources/motherduck.md +0 -46
  166. omniload-0.0.0.dev0/docs/supported-sources/mssql.md +0 -48
  167. omniload-0.0.0.dev0/docs/supported-sources/mysql.md +0 -20
  168. omniload-0.0.0.dev0/docs/supported-sources/notion.md +0 -32
  169. omniload-0.0.0.dev0/docs/supported-sources/oracle.md +0 -20
  170. omniload-0.0.0.dev0/docs/supported-sources/personio.md +0 -58
  171. omniload-0.0.0.dev0/docs/supported-sources/phantombuster.md +0 -42
  172. omniload-0.0.0.dev0/docs/supported-sources/pinterest.md +0 -30
  173. omniload-0.0.0.dev0/docs/supported-sources/pipedrive.md +0 -45
  174. omniload-0.0.0.dev0/docs/supported-sources/plusvibeai.md +0 -93
  175. omniload-0.0.0.dev0/docs/supported-sources/postgres.md +0 -21
  176. omniload-0.0.0.dev0/docs/supported-sources/posthog.md +0 -70
  177. omniload-0.0.0.dev0/docs/supported-sources/primer.md +0 -59
  178. omniload-0.0.0.dev0/docs/supported-sources/quickbooks.md +0 -51
  179. omniload-0.0.0.dev0/docs/supported-sources/rabbitmq.md +0 -49
  180. omniload-0.0.0.dev0/docs/supported-sources/reddit_ads.md +0 -150
  181. omniload-0.0.0.dev0/docs/supported-sources/redshift.md +0 -21
  182. omniload-0.0.0.dev0/docs/supported-sources/revenuecat.md +0 -62
  183. omniload-0.0.0.dev0/docs/supported-sources/s3.md +0 -213
  184. omniload-0.0.0.dev0/docs/supported-sources/salesforce.md +0 -90
  185. omniload-0.0.0.dev0/docs/supported-sources/sap-hana.md +0 -20
  186. omniload-0.0.0.dev0/docs/supported-sources/sftp.md +0 -43
  187. omniload-0.0.0.dev0/docs/supported-sources/shopify.md +0 -58
  188. omniload-0.0.0.dev0/docs/supported-sources/slack.md +0 -46
  189. omniload-0.0.0.dev0/docs/supported-sources/smartsheets.md +0 -47
  190. omniload-0.0.0.dev0/docs/supported-sources/snapchat-ads.md +0 -200
  191. omniload-0.0.0.dev0/docs/supported-sources/snowflake.md +0 -79
  192. omniload-0.0.0.dev0/docs/supported-sources/socrata.md +0 -128
  193. omniload-0.0.0.dev0/docs/supported-sources/solidgate.md +0 -50
  194. omniload-0.0.0.dev0/docs/supported-sources/spanner.md +0 -41
  195. omniload-0.0.0.dev0/docs/supported-sources/sqlite.md +0 -16
  196. omniload-0.0.0.dev0/docs/supported-sources/stripe.md +0 -146
  197. omniload-0.0.0.dev0/docs/supported-sources/surveymonkey.md +0 -62
  198. omniload-0.0.0.dev0/docs/supported-sources/tiktok-ads.md +0 -63
  199. omniload-0.0.0.dev0/docs/supported-sources/trino.md +0 -96
  200. omniload-0.0.0.dev0/docs/supported-sources/trustpilot.md +0 -36
  201. omniload-0.0.0.dev0/docs/supported-sources/wise.md +0 -49
  202. omniload-0.0.0.dev0/docs/supported-sources/zendesk.md +0 -87
  203. omniload-0.0.0.dev0/docs/supported-sources/zoom.md +0 -51
  204. omniload-0.0.0.dev0/docs/tutorials/load-kinesis-bigquery.md +0 -130
  205. omniload-0.0.0.dev0/docs/tutorials/load-personio-duckdb.md +0 -94
  206. omniload-0.0.0.dev0/docs/tutorials/load-stripe-postgres.md +0 -101
  207. omniload-0.0.0.dev0/omniload/src/.gitignore +0 -10
  208. omniload-0.0.0.dev0/omniload/src/google_sheets/README.md +0 -95
  209. omniload-0.0.0.dev0/omniload/src/testdata/fakebqcredentials.json +0 -14
  210. omniload-0.0.0.dev0/omniload/src/version.py +0 -6
  211. omniload-0.0.0.dev0/omniload/testdata/.gitignore +0 -2
  212. omniload-0.0.0.dev0/omniload/testdata/create_replace.csv +0 -21
  213. omniload-0.0.0.dev0/omniload/testdata/delete_insert_expected.csv +0 -6
  214. omniload-0.0.0.dev0/omniload/testdata/delete_insert_part1.csv +0 -5
  215. omniload-0.0.0.dev0/omniload/testdata/delete_insert_part2.csv +0 -6
  216. omniload-0.0.0.dev0/omniload/testdata/merge_expected.csv +0 -5
  217. omniload-0.0.0.dev0/omniload/testdata/merge_part1.csv +0 -4
  218. omniload-0.0.0.dev0/omniload/testdata/merge_part2.csv +0 -5
  219. omniload-0.0.0.dev0/package-lock.json +0 -2499
  220. omniload-0.0.0.dev0/package.json +0 -11
  221. omniload-0.0.0.dev0/pyproject.toml +0 -200
  222. omniload-0.0.0.dev0/requirements-dev.txt +0 -13
  223. omniload-0.0.0.dev0/requirements.txt +0 -66
  224. omniload-0.0.0.dev0/requirements_arm64.txt +0 -674
  225. omniload-0.0.0.dev0/resources/demo.gif +0 -0
  226. omniload-0.0.0.dev0/resources/demo.tape +0 -18
  227. omniload-0.0.0.dev0/styles/Google/AMPM.yml +0 -9
  228. omniload-0.0.0.dev0/styles/Google/Acronyms.yml +0 -64
  229. omniload-0.0.0.dev0/styles/Google/Colons.yml +0 -8
  230. omniload-0.0.0.dev0/styles/Google/Contractions.yml +0 -30
  231. omniload-0.0.0.dev0/styles/Google/DateFormat.yml +0 -9
  232. omniload-0.0.0.dev0/styles/Google/Ellipses.yml +0 -9
  233. omniload-0.0.0.dev0/styles/Google/EmDash.yml +0 -13
  234. omniload-0.0.0.dev0/styles/Google/Exclamation.yml +0 -12
  235. omniload-0.0.0.dev0/styles/Google/FirstPerson.yml +0 -13
  236. omniload-0.0.0.dev0/styles/Google/Gender.yml +0 -9
  237. omniload-0.0.0.dev0/styles/Google/GenderBias.yml +0 -43
  238. omniload-0.0.0.dev0/styles/Google/HeadingPunctuation.yml +0 -13
  239. omniload-0.0.0.dev0/styles/Google/Headings.yml +0 -29
  240. omniload-0.0.0.dev0/styles/Google/Latin.yml +0 -11
  241. omniload-0.0.0.dev0/styles/Google/LyHyphens.yml +0 -14
  242. omniload-0.0.0.dev0/styles/Google/OptionalPlurals.yml +0 -12
  243. omniload-0.0.0.dev0/styles/Google/Ordinal.yml +0 -7
  244. omniload-0.0.0.dev0/styles/Google/OxfordComma.yml +0 -7
  245. omniload-0.0.0.dev0/styles/Google/Parens.yml +0 -7
  246. omniload-0.0.0.dev0/styles/Google/Passive.yml +0 -184
  247. omniload-0.0.0.dev0/styles/Google/Periods.yml +0 -7
  248. omniload-0.0.0.dev0/styles/Google/Quotes.yml +0 -7
  249. omniload-0.0.0.dev0/styles/Google/Ranges.yml +0 -7
  250. omniload-0.0.0.dev0/styles/Google/Semicolons.yml +0 -8
  251. omniload-0.0.0.dev0/styles/Google/Slang.yml +0 -11
  252. omniload-0.0.0.dev0/styles/Google/Spacing.yml +0 -10
  253. omniload-0.0.0.dev0/styles/Google/Spelling.yml +0 -10
  254. omniload-0.0.0.dev0/styles/Google/Units.yml +0 -8
  255. omniload-0.0.0.dev0/styles/Google/We.yml +0 -11
  256. omniload-0.0.0.dev0/styles/Google/Will.yml +0 -7
  257. omniload-0.0.0.dev0/styles/Google/WordList.yml +0 -80
  258. omniload-0.0.0.dev0/styles/Google/meta.json +0 -4
  259. omniload-0.0.0.dev0/styles/Google/vocab.txt +0 -0
  260. omniload-0.0.0.dev0/styles/config/vocabularies/omniload/accept.txt +0 -52
  261. omniload-0.0.0.dev0/test.env.template +0 -4
  262. /omniload-0.0.0.dev0/LICENSE.md → /omniload-0.1.0/LICENSE +0 -0
  263. {omniload-0.0.0.dev0 → omniload-0.1.0}/NOTICE +0 -0
  264. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/adjust/__init__.py +0 -0
  265. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/adjust/adjust_helpers.py +0 -0
  266. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/airtable/__init__.py +0 -0
  267. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/allium/__init__.py +0 -0
  268. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/anthropic/__init__.py +0 -0
  269. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/anthropic/helpers.py +0 -0
  270. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/applovin/__init__.py +0 -0
  271. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/applovin_max/__init__.py +0 -0
  272. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/appsflyer/__init__.py +0 -0
  273. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/appsflyer/client.py +0 -0
  274. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/appstore/client.py +0 -0
  275. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/appstore/errors.py +0 -0
  276. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/appstore/models.py +0 -0
  277. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/appstore/resources.py +0 -0
  278. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/arrow/__init__.py +0 -0
  279. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/asana_source/__init__.py +0 -0
  280. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/asana_source/helpers.py +0 -0
  281. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/asana_source/settings.py +0 -0
  282. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/attio/__init__.py +0 -0
  283. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/attio/helpers.py +0 -0
  284. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/blob.py +0 -0
  285. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/bruin/__init__.py +0 -0
  286. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/chess/__init__.py +0 -0
  287. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/chess/helpers.py +0 -0
  288. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/chess/settings.py +0 -0
  289. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/clickup/__init__.py +0 -0
  290. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/clickup/helpers.py +0 -0
  291. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/couchbase_source/__init__.py +0 -0
  292. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/couchbase_source/helpers.py +0 -0
  293. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/cursor/__init__.py +0 -0
  294. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/cursor/helpers.py +0 -0
  295. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/customer_io/__init__.py +0 -0
  296. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/customer_io/helpers.py +0 -0
  297. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/destinations.py +0 -0
  298. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/docebo/__init__.py +0 -0
  299. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/docebo/client.py +0 -0
  300. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/docebo/helpers.py +0 -0
  301. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/dune/__init__.py +0 -0
  302. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/dune/helpers.py +0 -0
  303. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/dynamodb/__init__.py +0 -0
  304. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/elasticsearch/__init__.py +0 -0
  305. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/elasticsearch/helpers.py +0 -0
  306. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/errors.py +0 -0
  307. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/facebook_ads/__init__.py +0 -0
  308. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/facebook_ads/exceptions.py +0 -0
  309. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/facebook_ads/helpers.py +0 -0
  310. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/facebook_ads/settings.py +0 -0
  311. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/facebook_ads/utils.py +0 -0
  312. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/factory.py +0 -0
  313. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/filesystem/__init__.py +0 -0
  314. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/filesystem/helpers.py +0 -0
  315. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/filesystem/readers.py +0 -0
  316. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/filters.py +0 -0
  317. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/fireflies/__init__.py +0 -0
  318. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/fireflies/helpers.py +0 -0
  319. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/fluxx/__init__.py +0 -0
  320. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/fluxx/helpers.py +0 -0
  321. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/frankfurter/__init__.py +0 -0
  322. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/frankfurter/helpers.py +0 -0
  323. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/freshdesk/__init__.py +0 -0
  324. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/freshdesk/freshdesk_client.py +0 -0
  325. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/freshdesk/settings.py +0 -0
  326. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/fundraiseup/__init__.py +0 -0
  327. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/fundraiseup/client.py +0 -0
  328. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/github/__init__.py +0 -0
  329. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/github/helpers.py +0 -0
  330. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/github/queries.py +0 -0
  331. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/github/settings.py +0 -0
  332. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_ads/__init__.py +0 -0
  333. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_ads/field.py +0 -0
  334. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_ads/metrics.py +0 -0
  335. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_ads/predicates.py +0 -0
  336. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_ads/reports.py +0 -0
  337. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_ads/test_google_ads.py +0 -0
  338. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_analytics/__init__.py +0 -0
  339. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_analytics/helpers.py +0 -0
  340. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_sheets/__init__.py +0 -0
  341. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_sheets/helpers/__init__.py +0 -0
  342. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_sheets/helpers/api_calls.py +0 -0
  343. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/google_sheets/helpers/data_processing.py +0 -0
  344. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/gorgias/__init__.py +0 -0
  345. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/gorgias/helpers.py +0 -0
  346. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/hostaway/__init__.py +0 -0
  347. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/hostaway/client.py +0 -0
  348. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/http/__init__.py +0 -0
  349. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/http/readers.py +0 -0
  350. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/http_client.py +0 -0
  351. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/hubspot/__init__.py +0 -0
  352. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/hubspot/helpers.py +0 -0
  353. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/hubspot/settings.py +0 -0
  354. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/indeed/__init__.py +0 -0
  355. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/indeed/helpers.py +0 -0
  356. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/influxdb/__init__.py +0 -0
  357. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/influxdb/client.py +0 -0
  358. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/intercom/__init__.py +0 -0
  359. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/intercom/helpers.py +0 -0
  360. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/intercom/settings.py +0 -0
  361. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/isoc_pulse/__init__.py +0 -0
  362. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/jira_source/__init__.py +0 -0
  363. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/jira_source/helpers.py +0 -0
  364. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/jira_source/settings.py +0 -0
  365. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/kafka/__init__.py +0 -0
  366. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/kafka/helpers.py +0 -0
  367. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/kinesis/__init__.py +0 -0
  368. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/kinesis/helpers.py +0 -0
  369. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/klaviyo/__init__.py +0 -0
  370. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/klaviyo/client.py +0 -0
  371. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/klaviyo/helpers.py +0 -0
  372. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/linear/__init__.py +0 -0
  373. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/linear/helpers.py +0 -0
  374. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/linkedin_ads/__init__.py +0 -0
  375. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/linkedin_ads/dimension_time_enum.py +0 -0
  376. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/linkedin_ads/helpers.py +0 -0
  377. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/loader.py +0 -0
  378. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/mailchimp/__init__.py +0 -0
  379. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/mailchimp/helpers.py +0 -0
  380. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/mailchimp/settings.py +0 -0
  381. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/masking.py +0 -0
  382. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/mixpanel/__init__.py +0 -0
  383. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/mixpanel/client.py +0 -0
  384. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/monday/__init__.py +0 -0
  385. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/monday/helpers.py +0 -0
  386. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/monday/settings.py +0 -0
  387. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/mongodb/__init__.py +0 -0
  388. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/mongodb/helpers.py +0 -0
  389. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/notion/__init__.py +0 -0
  390. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/notion/helpers/__init__.py +0 -0
  391. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/notion/helpers/client.py +0 -0
  392. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/notion/helpers/database.py +0 -0
  393. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/notion/settings.py +0 -0
  394. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/partition.py +0 -0
  395. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/personio/__init__.py +0 -0
  396. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/personio/helpers.py +0 -0
  397. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/phantombuster/__init__.py +0 -0
  398. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/phantombuster/client.py +0 -0
  399. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/pinterest/__init__.py +0 -0
  400. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/pipedrive/__init__.py +0 -0
  401. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/pipedrive/helpers/__init__.py +0 -0
  402. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/pipedrive/helpers/custom_fields_munger.py +0 -0
  403. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/pipedrive/helpers/pages.py +0 -0
  404. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/pipedrive/settings.py +0 -0
  405. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/pipedrive/typing.py +0 -0
  406. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/plusvibeai/__init__.py +0 -0
  407. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/plusvibeai/helpers.py +0 -0
  408. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/plusvibeai/settings.py +0 -0
  409. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/primer/__init__.py +0 -0
  410. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/primer/helpers.py +0 -0
  411. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/quickbooks/__init__.py +0 -0
  412. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/reddit_ads/__init__.py +0 -0
  413. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/reddit_ads/helpers.py +0 -0
  414. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/resource.py +0 -0
  415. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/revenuecat/__init__.py +0 -0
  416. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/revenuecat/helpers.py +0 -0
  417. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/salesforce/__init__.py +0 -0
  418. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/salesforce/helpers.py +0 -0
  419. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/shopify/__init__.py +0 -0
  420. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/shopify/exceptions.py +0 -0
  421. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/shopify/helpers.py +0 -0
  422. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/shopify/settings.py +0 -0
  423. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/slack/__init__.py +0 -0
  424. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/slack/helpers.py +0 -0
  425. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/slack/settings.py +0 -0
  426. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/smartsheets/__init__.py +0 -0
  427. {omniload-0.0.0.dev0/omniload/tests/unit → omniload-0.1.0/omniload/src/smartsheets}/test_smartsheets.py +0 -0
  428. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/snapchat_ads/__init__.py +0 -0
  429. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/snapchat_ads/client.py +0 -0
  430. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/snapchat_ads/helpers.py +0 -0
  431. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/snapchat_ads/settings.py +0 -0
  432. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/socrata_source/__init__.py +0 -0
  433. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/socrata_source/helpers.py +0 -0
  434. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/socrata_source/settings.py +0 -0
  435. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/solidgate/__init__.py +0 -0
  436. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/solidgate/helpers.py +0 -0
  437. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/sources.py +0 -0
  438. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/sql_database/__init__.py +0 -0
  439. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/sql_database/callbacks.py +0 -0
  440. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/stripe_analytics/__init__.py +0 -0
  441. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/stripe_analytics/helpers.py +0 -0
  442. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/stripe_analytics/settings.py +0 -0
  443. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/table_definition.py +0 -0
  444. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/tiktok_ads/__init__.py +0 -0
  445. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/tiktok_ads/tiktok_helpers.py +0 -0
  446. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/time.py +0 -0
  447. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/trustpilot/__init__.py +0 -0
  448. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/trustpilot/client.py +0 -0
  449. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/wise/__init__.py +0 -0
  450. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/wise/client.py +0 -0
  451. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zendesk/__init__.py +0 -0
  452. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zendesk/helpers/__init__.py +0 -0
  453. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zendesk/helpers/api_helpers.py +0 -0
  454. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zendesk/helpers/credentials.py +0 -0
  455. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zendesk/helpers/talk_api.py +0 -0
  456. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zendesk/settings.py +0 -0
  457. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zoom/__init__.py +0 -0
  458. {omniload-0.0.0.dev0 → omniload-0.1.0}/omniload/src/zoom/helpers.py +0 -0
@@ -174,28 +174,3 @@
174
174
  of your accepting any such warranty or additional liability.
175
175
 
176
176
  END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "[]"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright 2023 The Contributors
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.
@@ -0,0 +1,9 @@
1
+ include *.md *.rst LICENSE*
2
+ recursive-include doc *.md *.rst
3
+
4
+ global-exclude *.db
5
+ prune */.idea
6
+ prune */__pycache__
7
+ prune release
8
+ prune tests
9
+ prune tmp
@@ -0,0 +1,247 @@
1
+ Metadata-Version: 2.4
2
+ Name: omniload
3
+ Version: 0.1.0
4
+ Summary: omniload is a polyglot data loader based on dlt. Copy data between any source and any destination.
5
+ Author: Mustafa Ersan, Sanju Shah Gupta, Saravjeet 'Aman' Singh
6
+ Author-email: Burak Karakan <burak.karakan@getbruin.com>
7
+ Maintainer-email: Andreas Motl <andreas.motl@panodata.org>
8
+ License-Expression: MIT
9
+ Project-URL: Changelog, https://omniload.readthedocs.io/changelog.html
10
+ Project-URL: Documentation, https://omniload.readthedocs.io/
11
+ Project-URL: Issues, https://github.com/panodata/omniload/issues
12
+ Project-URL: Repository, https://github.com/panodata/omniload
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Intended Audience :: Customer Service
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Intended Audience :: Education
18
+ Classifier: Intended Audience :: End Users/Desktop
19
+ Classifier: Intended Audience :: Information Technology
20
+ Classifier: Intended Audience :: Manufacturing
21
+ Classifier: Intended Audience :: Science/Research
22
+ Classifier: Intended Audience :: System Administrators
23
+ Classifier: Intended Audience :: Telecommunications Industry
24
+ Classifier: Operating System :: MacOS :: MacOS X
25
+ Classifier: Operating System :: Microsoft :: Windows
26
+ Classifier: Operating System :: OS Independent
27
+ Classifier: Operating System :: POSIX :: Linux
28
+ Classifier: Operating System :: Unix
29
+ Classifier: Programming Language :: Python
30
+ Classifier: Programming Language :: Python :: 3 :: Only
31
+ Classifier: Programming Language :: Python :: 3.10
32
+ Classifier: Programming Language :: Python :: 3.11
33
+ Classifier: Programming Language :: Python :: 3.12
34
+ Classifier: Programming Language :: Python :: 3.13
35
+ Classifier: Programming Language :: Python :: 3.14
36
+ Classifier: Topic :: Adaptive Technologies
37
+ Classifier: Topic :: Communications
38
+ Classifier: Topic :: Database
39
+ Classifier: Topic :: Documentation
40
+ Classifier: Topic :: Education
41
+ Classifier: Topic :: Internet
42
+ Classifier: Topic :: Internet :: WWW/HTTP
43
+ Classifier: Topic :: Office/Business
44
+ Classifier: Topic :: Scientific/Engineering
45
+ Classifier: Topic :: Software Development :: Libraries
46
+ Classifier: Topic :: Software Development :: Object Brokering
47
+ Classifier: Topic :: Software Development :: Pre-processors
48
+ Classifier: Topic :: Software Development :: Quality Assurance
49
+ Classifier: Topic :: Software Development :: Testing
50
+ Classifier: Topic :: Software Development :: Version Control
51
+ Classifier: Topic :: System :: Archiving
52
+ Classifier: Topic :: System :: Clustering
53
+ Classifier: Topic :: System :: Distributed Computing
54
+ Classifier: Topic :: System :: Logging
55
+ Classifier: Topic :: System :: Monitoring
56
+ Classifier: Topic :: System :: Networking
57
+ Classifier: Topic :: System :: Systems Administration
58
+ Classifier: Topic :: Text Processing
59
+ Classifier: Topic :: Utilities
60
+ Requires-Python: >=3.10
61
+ Description-Content-Type: text/markdown
62
+ License-File: LICENSE
63
+ License-File: LICENSE.Apache-2.0
64
+ License-File: NOTICE
65
+ Requires-Dist: aiohttp<4
66
+ Requires-Dist: asana<4
67
+ Requires-Dist: click<8.2
68
+ Requires-Dist: clickhouse-connect<1,>=0.8
69
+ Requires-Dist: clickhouse-driver<0.3
70
+ Requires-Dist: clickhouse-sqlalchemy<0.4
71
+ Requires-Dist: confluent-kafka<2.13
72
+ Requires-Dist: couchbase<5,>=4
73
+ Requires-Dist: databricks-sql-connector<5
74
+ Requires-Dist: databricks-sqlalchemy<3
75
+ Requires-Dist: dataclasses-json<0.7
76
+ Requires-Dist: dlt<1.22
77
+ Requires-Dist: dlt-cratedb<0.2
78
+ Requires-Dist: duckdb<1.6
79
+ Requires-Dist: duckdb-engine<0.18
80
+ Requires-Dist: elasticsearch<9
81
+ Requires-Dist: facebook-business<24
82
+ Requires-Dist: flatten-json<0.2
83
+ Requires-Dist: gcsfs
84
+ Requires-Dist: google-ads<29
85
+ Requires-Dist: google-analytics-data<0.19
86
+ Requires-Dist: google-api-python-client<3
87
+ Requires-Dist: google-auth<3
88
+ Requires-Dist: google-cloud-bigquery-storage<3
89
+ Requires-Dist: google-cloud-spanner<4
90
+ Requires-Dist: influxdb-client<2
91
+ Requires-Dist: mysql-connector-python<10
92
+ Requires-Dist: oracledb<4
93
+ Requires-Dist: pendulum<4,>=3
94
+ Requires-Dist: psycopg2-binary<3
95
+ Requires-Dist: py-machineid<2
96
+ Requires-Dist: pyairtable<3
97
+ Requires-Dist: pyarrow<25,>=18
98
+ Requires-Dist: pyathena<4
99
+ Requires-Dist: pymongo<5
100
+ Requires-Dist: pymysql<2
101
+ Requires-Dist: pyrate-limiter<4
102
+ Requires-Dist: python-quickbooks<0.10
103
+ Requires-Dist: requests<3
104
+ Requires-Dist: rudder-sdk-python<2.2
105
+ Requires-Dist: s3fs
106
+ Requires-Dist: simple-salesforce<2
107
+ Requires-Dist: smartsheet-python-sdk<4
108
+ Requires-Dist: snowflake-connector-python<5,>=3.18
109
+ Requires-Dist: snowflake-sqlalchemy<2
110
+ Requires-Dist: sqlalchemy<2.1
111
+ Requires-Dist: sqlalchemy-bigquery<2
112
+ Requires-Dist: sqlalchemy-cratedb<1
113
+ Requires-Dist: sqlalchemy-hana<5
114
+ Requires-Dist: sqlalchemy-redshift<2
115
+ Requires-Dist: sqlalchemy-spanner<2
116
+ Requires-Dist: stripe<11
117
+ Requires-Dist: tldextract<6
118
+ Requires-Dist: tqdm<5
119
+ Requires-Dist: trino[sqlalchemy]==0.337.0
120
+ Requires-Dist: typer<0.14
121
+ Requires-Dist: urllib3<2.8
122
+ Provides-Extra: develop
123
+ Requires-Dist: mypy<1.16; extra == "develop"
124
+ Requires-Dist: pkginfo<2; extra == "develop"
125
+ Requires-Dist: poethepoet<1; extra == "develop"
126
+ Requires-Dist: pyproject-fmt<3; extra == "develop"
127
+ Requires-Dist: pytest-repeat<1; extra == "develop"
128
+ Requires-Dist: ruff<0.16; extra == "develop"
129
+ Requires-Dist: validate-pyproject<1; extra == "develop"
130
+ Provides-Extra: full
131
+ Requires-Dist: omniload[ibm-db,odbc,oracle]; extra == "full"
132
+ Provides-Extra: ibm-db
133
+ Requires-Dist: ibm-db<4; platform_machine != "aarch64" and extra == "ibm-db"
134
+ Requires-Dist: ibm-db-sa<0.5; platform_machine != "aarch64" and extra == "ibm-db"
135
+ Provides-Extra: odbc
136
+ Requires-Dist: pyodbc<5.4; extra == "odbc"
137
+ Provides-Extra: oracle
138
+ Requires-Dist: oracledb>=2.0.0; extra == "oracle"
139
+ Provides-Extra: release
140
+ Requires-Dist: build<2; extra == "release"
141
+ Requires-Dist: twine<7; extra == "release"
142
+ Provides-Extra: test
143
+ Requires-Dist: pendulum[test]<4,>=3; extra == "test"
144
+ Requires-Dist: pytest<10; extra == "test"
145
+ Requires-Dist: pytest-asyncio<2; extra == "test"
146
+ Requires-Dist: pytest-cov<8; extra == "test"
147
+ Requires-Dist: pytest-xdist[psutil]<4; extra == "test"
148
+ Requires-Dist: testcontainers[mysql,postgres]<4.9; extra == "test"
149
+ Requires-Dist: types-requests<3; extra == "test"
150
+ Requires-Dist: verlib2; extra == "test"
151
+ Dynamic: license-file
152
+
153
+ <div align="center">
154
+
155
+ # omniload
156
+ <p>Copy data between any source and any destination.</p>
157
+ <img src="https://github.com/panodata/omniload/blob/main/resources/demo.gif?raw=true" width="750" />
158
+
159
+ [![License](https://img.shields.io/github/license/panodata/omniload.svg)](https://github.com/panodata/omniload/blob/main/LICENSE)
160
+ [![Downloads / month](https://pepy.tech/badge/omniload/month)](https://pepy.tech/project/omniload/)
161
+ [![Python versions](https://img.shields.io/pypi/pyversions/omniload.svg)](https://pypi.org/project/omniload/)
162
+
163
+ </div>
164
+
165
+ ## About
166
+
167
+ omniload is a polyglot data loader framework based on dlt.
168
+ It allows you to load data from any source into any destination,
169
+ either using a concise CLI from your shell,
170
+ or the Python API from your own applications.
171
+
172
+ omniload provides the same efficient incremental data loading modes
173
+ inherited by [dlt]: `append`, `merge`, and `delete+insert`.
174
+
175
+ ## Install
176
+ We recommend using [uv] to install or run `omniload`.
177
+
178
+ ```shell
179
+ pip install uv
180
+ uvx omniload
181
+ ```
182
+
183
+ Alternatively, if you'd like to install it globally:
184
+ ```shell
185
+ uv pip install --system omniload
186
+ ```
187
+
188
+ While installation with vanilla `pip` is possible, it's an order of magnitude slower.
189
+
190
+ ## Synopsis
191
+
192
+ The next command instructs omniload to read the table `public.some_data` from
193
+ your PostgreSQL instance, and to write the data to your BigQuery warehouse
194
+ under the schema `omniload` and table `some_data`.
195
+
196
+ ```shell
197
+ omniload ingest \
198
+ --source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' \
199
+ --source-table 'public.some_data' \
200
+ --dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' \
201
+ --dest-table 'omniload.some_data'
202
+ ```
203
+
204
+ ## Handbook
205
+
206
+ Please visit the [quickstart documentation], or inspect the
207
+ list of supported [sources and destinations].
208
+
209
+ ## Project
210
+
211
+ ### Contribute
212
+
213
+ Contributions are very much welcome. Please visit the [sandbox documentation]
214
+ to learn how to spin up a development environment on your workstation and submit
215
+ patches, or create a [ticket][Issues] to report a bug or propose a feature.
216
+
217
+ ### Status
218
+
219
+ Breaking changes should be expected until a 1.0 release, so version pinning is
220
+ strongly recommended, especially when using this software as a library.
221
+ For example:
222
+ ```shell
223
+ pip install 'omniload[full]==0.0.42'
224
+ ```
225
+
226
+ ### License
227
+
228
+ The project is licensed under the MIT License, see the [LICENSE] file for details.
229
+ Some components are licensed under the Apache 2.0 license, see the [NOTICE] file for details.
230
+
231
+ ### Acknowledgements
232
+
233
+ This project would not have been possible without the amazing work by the
234
+ authors and contributors to [SQLAlchemy], [dlt], and [ingestr], turtles all
235
+ the way down. Kudos.
236
+
237
+
238
+ [dlt]: https://github.com/dlt-hub/dlt
239
+ [quickstart documentation]: https://omniload.readthedocs.io/getting-started/quickstart.html
240
+ [ingestr]: https://bruin-data.github.io/ingestr/
241
+ [Issues]: https://github.com/panodata/omniload/issues
242
+ [LICENSE]: https://github.com/panodata/omniload/blob/main/LICENSE
243
+ [NOTICE]: https://github.com/panodata/omniload/blob/main/NOTICE
244
+ [sandbox documentation]: https://omniload.readthedocs.io/sandbox.html
245
+ [sources and destinations]: https://omniload.readthedocs.io/supported-sources/
246
+ [SQLAlchemy]: https://www.sqlalchemy.org/
247
+ [uv]: https://docs.astral.sh/uv/
@@ -0,0 +1,95 @@
1
+ <div align="center">
2
+
3
+ # omniload
4
+ <p>Copy data between any source and any destination.</p>
5
+ <img src="https://github.com/panodata/omniload/blob/main/resources/demo.gif?raw=true" width="750" />
6
+
7
+ [![License](https://img.shields.io/github/license/panodata/omniload.svg)](https://github.com/panodata/omniload/blob/main/LICENSE)
8
+ [![Downloads / month](https://pepy.tech/badge/omniload/month)](https://pepy.tech/project/omniload/)
9
+ [![Python versions](https://img.shields.io/pypi/pyversions/omniload.svg)](https://pypi.org/project/omniload/)
10
+
11
+ </div>
12
+
13
+ ## About
14
+
15
+ omniload is a polyglot data loader framework based on dlt.
16
+ It allows you to load data from any source into any destination,
17
+ either using a concise CLI from your shell,
18
+ or the Python API from your own applications.
19
+
20
+ omniload provides the same efficient incremental data loading modes
21
+ inherited by [dlt]: `append`, `merge`, and `delete+insert`.
22
+
23
+ ## Install
24
+ We recommend using [uv] to install or run `omniload`.
25
+
26
+ ```shell
27
+ pip install uv
28
+ uvx omniload
29
+ ```
30
+
31
+ Alternatively, if you'd like to install it globally:
32
+ ```shell
33
+ uv pip install --system omniload
34
+ ```
35
+
36
+ While installation with vanilla `pip` is possible, it's an order of magnitude slower.
37
+
38
+ ## Synopsis
39
+
40
+ The next command instructs omniload to read the table `public.some_data` from
41
+ your PostgreSQL instance, and to write the data to your BigQuery warehouse
42
+ under the schema `omniload` and table `some_data`.
43
+
44
+ ```shell
45
+ omniload ingest \
46
+ --source-uri 'postgresql://admin:admin@localhost:8837/web?sslmode=disable' \
47
+ --source-table 'public.some_data' \
48
+ --dest-uri 'bigquery://<your-project-name>?credentials_path=/path/to/service/account.json' \
49
+ --dest-table 'omniload.some_data'
50
+ ```
51
+
52
+ ## Handbook
53
+
54
+ Please visit the [quickstart documentation], or inspect the
55
+ list of supported [sources and destinations].
56
+
57
+ ## Project
58
+
59
+ ### Contribute
60
+
61
+ Contributions are very much welcome. Please visit the [sandbox documentation]
62
+ to learn how to spin up a development environment on your workstation and submit
63
+ patches, or create a [ticket][Issues] to report a bug or propose a feature.
64
+
65
+ ### Status
66
+
67
+ Breaking changes should be expected until a 1.0 release, so version pinning is
68
+ strongly recommended, especially when using this software as a library.
69
+ For example:
70
+ ```shell
71
+ pip install 'omniload[full]==0.0.42'
72
+ ```
73
+
74
+ ### License
75
+
76
+ The project is licensed under the MIT License, see the [LICENSE] file for details.
77
+ Some components are licensed under the Apache 2.0 license, see the [NOTICE] file for details.
78
+
79
+ ### Acknowledgements
80
+
81
+ This project would not have been possible without the amazing work by the
82
+ authors and contributors to [SQLAlchemy], [dlt], and [ingestr], turtles all
83
+ the way down. Kudos.
84
+
85
+
86
+ [dlt]: https://github.com/dlt-hub/dlt
87
+ [quickstart documentation]: https://omniload.readthedocs.io/getting-started/quickstart.html
88
+ [ingestr]: https://bruin-data.github.io/ingestr/
89
+ [Issues]: https://github.com/panodata/omniload/issues
90
+ [LICENSE]: https://github.com/panodata/omniload/blob/main/LICENSE
91
+ [NOTICE]: https://github.com/panodata/omniload/blob/main/NOTICE
92
+ [sandbox documentation]: https://omniload.readthedocs.io/sandbox.html
93
+ [sources and destinations]: https://omniload.readthedocs.io/supported-sources/
94
+ [SQLAlchemy]: https://www.sqlalchemy.org/
95
+ [uv]: https://docs.astral.sh/uv/
@@ -0,0 +1,164 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # For the full list of built-in configuration values, see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ # -- Project information -----------------------------------------------------
7
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
8
+
9
+ project = "omniload"
10
+ copyright = "2024-2026, The omniload developers" # noqa: A001
11
+ author = "The omniload developers"
12
+
13
+ # -- General configuration ---------------------------------------------------
14
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
15
+
16
+ extensions = [
17
+ "myst_parser",
18
+ "sphinx_copybutton",
19
+ "sphinx_design",
20
+ "sphinx_sitemap",
21
+ "sphinx.ext.intersphinx",
22
+ "sphinx.ext.todo",
23
+ "sphinx.ext.ifconfig",
24
+ "sphinxcontrib.mermaid",
25
+ "sphinxext.opengraph",
26
+ ]
27
+
28
+ templates_path = ["_templates"]
29
+ exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
30
+ suppress_warnings = [
31
+ "myst.header",
32
+ ]
33
+
34
+ # -- Options for HTML output -------------------------------------------------
35
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
36
+
37
+ # Where the documentation is published to. Needed for sphinx-sitemap.
38
+ html_baseurl = "https://omniload.readthedocs.io/"
39
+
40
+ # The theme to use for HTML and HTML Help pages. See the documentation for
41
+ # a list of builtin themes.
42
+ #
43
+ html_theme = "furo"
44
+
45
+ # Theme options are theme-specific and customize the look and feel of a theme
46
+ # further. For a list of options available for each theme, see the
47
+ # documentation.
48
+
49
+ html_title = "omniload"
50
+
51
+ html_theme_options = {
52
+ "sidebar_hide_name": False,
53
+ # https://github.com/pradyunsg/furo/blob/main/src/furo/assets/styles/variables/_colors.scss
54
+ }
55
+
56
+ # Add any paths that contain custom static files (such as style sheets) here,
57
+ # relative to this directory. They are copied after the builtin static files,
58
+ # so a file named "default.css" will overwrite the builtin "default.css".
59
+ html_static_path = ["_static"]
60
+
61
+ # Custom sidebar templates, must be a dictionary that maps document names
62
+ # to template names.
63
+ #
64
+ # The default sidebars (for documents that don't match any pattern) are
65
+ # defined by theme itself. Builtin themes are using these templates by
66
+ # default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
67
+ # 'searchbox.html']``.
68
+ #
69
+ # html_sidebars = {}
70
+
71
+ html_show_sourcelink = True
72
+
73
+
74
+ # -- Intersphinx ----------------------------------------------------------
75
+
76
+ intersphinx_mapping = {
77
+ "crash": ("https://cratedb.com/docs/crate/crash/en/latest/", None),
78
+ "cloud": ("https://cratedb.com/docs/cloud/en/latest/", None),
79
+ "croud": ("https://cratedb.com/docs/cloud/cli/en/latest/", None),
80
+ "guide": ("https://cratedb.com/docs/guide/", None),
81
+ "influxio": ("https://influxio.readthedocs.io/", None),
82
+ }
83
+ linkcheck_ignore = [
84
+ r"https://pulse.internetsociety.org/",
85
+ r"https://www.g2.com/",
86
+ r"https://www.trustpilot.com/",
87
+ r"https://developer.eu.surveymonkey.com/",
88
+ r"https://developer.salesforce.com/",
89
+ r"https://developers.facebook.com/",
90
+ r"https://docs.indeed.com/",
91
+ r"https://quickbooks.intuit.com/",
92
+ r"https://app.asana.com/",
93
+ r"https://developer.ca.surveymonkey.com/",
94
+ r"https://docs.customer.io/",
95
+ r"https://personio.de/",
96
+ r"https://www.adjust.com/",
97
+ r"https://support.appsflyer.com/",
98
+ r"https://help.docebo.com/",
99
+ r"https://www.reddit.com/",
100
+ ]
101
+ linkcheck_anchors_ignore_for_url = [
102
+ r"https://developers.zoom.us/",
103
+ r"https://docs.customer.io/",
104
+ r"https://github.com/",
105
+ r"https://support.appsflyer.com/",
106
+ r"https://support.axon.ai/",
107
+ r"https://developers.zoom.us/",
108
+ r"https://docs.customer.io/",
109
+ ]
110
+
111
+ # Disable caching remote inventories completely.
112
+ # http://www.sphinx-doc.org/en/stable/ext/intersphinx.html#confval-intersphinx_cache_limit
113
+ # intersphinx_cache_limit = 0
114
+
115
+
116
+ # -- Extension configuration -------------------------------------------------
117
+
118
+ sphinx_tabs_valid_builders = ["linkcheck"]
119
+ todo_include_todos = True
120
+
121
+ # Configure sphinx-copybutton
122
+ copybutton_remove_prompts = True
123
+ copybutton_line_continuation_character = "\\"
124
+ copybutton_prompt_text = (
125
+ r">>> |\.\.\. |\$ |sh\$ |PS> |cr> |mysql> |In \[\d*\]: | {2,5}\.\.\.: | {5,8}: "
126
+ )
127
+ copybutton_prompt_is_regexp = True
128
+
129
+ # Configure sphinxext-opengraph
130
+ ogp_site_url = "https://omniload.readthedocs.io/"
131
+ ogp_enable_meta_description = True
132
+ # ogp_image = "http://example.org/image.png"
133
+ # ogp_description_length = 300
134
+
135
+ # Configure sphinx-sitemap
136
+ sitemap_url_scheme = "{link}"
137
+ sitemap_excludes = [
138
+ "search.html",
139
+ "genindex.html",
140
+ "_snippet/*",
141
+ ]
142
+
143
+ # -- Options for MyST -------------------------------------------------
144
+
145
+ myst_heading_anchors = 3
146
+ myst_enable_extensions = [
147
+ "attrs_block",
148
+ "attrs_inline",
149
+ "colon_fence",
150
+ "deflist",
151
+ "fieldlist",
152
+ "html_admonition",
153
+ "html_image",
154
+ "linkify",
155
+ "replacements",
156
+ "strikethrough",
157
+ "substitution",
158
+ "tasklist",
159
+ ]
160
+ myst_substitutions = {}
161
+ myst_html_meta = {
162
+ "google-site-verification": "kDH2Ws762oLwf5V3l-fGrYR9-lgLF6S_Bpd4Dairh7A",
163
+ "msvalidate.01": "E9B1983DD903904FDB7F4E5612962EE7",
164
+ }
@@ -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)
@@ -3,7 +3,8 @@ import tempfile
3
3
  from concurrent.futures import ThreadPoolExecutor
4
4
 
5
5
  import pytest
6
- from main_test import DESTINATIONS, SOURCES # type: ignore
6
+
7
+ from .main_test import DESTINATIONS, SOURCES # type: ignore
7
8
 
8
9
 
9
10
  def pytest_configure(config):
@@ -4,7 +4,6 @@ from enum import Enum
4
4
  from typing import Optional
5
5
 
6
6
  import typer
7
- from rich.console import Console
8
7
  from typing_extensions import Annotated
9
8
 
10
9
  try:
@@ -22,9 +21,6 @@ app = typer.Typer(
22
21
  pretty_exceptions_enable=False,
23
22
  )
24
23
 
25
- console = Console()
26
- print = console.print
27
-
28
24
  DATE_FORMATS = [
29
25
  "%Y-%m-%d",
30
26
  "%Y-%m-%dT%H:%M:%S",
@@ -74,6 +70,7 @@ class SqlBackend(str, Enum):
74
70
  class Progress(str, Enum):
75
71
  interactive = "interactive"
76
72
  log = "log"
73
+ spinner = "spinner"
77
74
 
78
75
 
79
76
  class SchemaNaming(str, Enum):
@@ -168,11 +165,11 @@ def ingest(
168
165
  envvar=["CLUSTER_BY", "OMNILOAD_CLUSTER_BY"],
169
166
  ),
170
167
  ] = None, # type: ignore
171
- yes: Annotated[
168
+ dry_run: Annotated[
172
169
  Optional[bool],
173
170
  typer.Option(
174
- help="Skip the confirmation prompt and ingest right away",
175
- envvar=["SKIP_CONFIRMATION", "OMNILOAD_SKIP_CONFIRMATION"],
171
+ help="Display data transfer plan but don't invoke it",
172
+ envvar=["DRY_RUN", "OMNILOAD_DRY_RUN"],
176
173
  ),
177
174
  ] = False, # type: ignore
178
175
  full_refresh: Annotated[
@@ -297,7 +294,7 @@ def ingest(
297
294
  import humanize
298
295
  import typer
299
296
  from dlt.common.pipeline import LoadInfo
300
- from dlt.common.runtime.collector import Collector, LogCollector
297
+ from dlt.common.runtime.collector import Collector, LogCollector, TqdmCollector
301
298
  from dlt.common.schema.typing import TColumnSchema
302
299
  from dlt.pipeline.exceptions import PipelineStepFailed
303
300
 
@@ -439,9 +436,11 @@ def ingest(
439
436
  m = hashlib.sha256()
440
437
  m.update(dest_table.encode("utf-8"))
441
438
 
442
- progressInstance: Collector = SpinnerCollector()
439
+ progressInstance: Collector = TqdmCollector()
443
440
  if progress == Progress.log:
444
441
  progressInstance = LogCollector()
442
+ elif progress == Progress.spinner:
443
+ progressInstance = SpinnerCollector()
445
444
 
446
445
  is_pipelines_dir_temp = False
447
446
  if pipelines_dir is None:
@@ -512,10 +511,9 @@ def ingest(
512
511
  print(f"[bold yellow] Pipeline ID:[/bold yellow] {m.hexdigest()}")
513
512
  print()
514
513
 
515
- if not yes:
516
- continuePipeline = typer.confirm("Are you sure you would like to continue?")
517
- if not continuePipeline:
518
- raise typer.Abort()
514
+ if dry_run:
515
+ typer.echo("Skipping data transfer, because `--dry-run` was selected.")
516
+ raise typer.Exit(0)
519
517
 
520
518
  print()
521
519
  print("[bold green]Starting the ingestion...[/bold green]")
@@ -797,7 +795,7 @@ def example_uris():
797
795
 
798
796
  @app.command()
799
797
  def version():
800
- from omniload.src.version import __version__ # type: ignore
798
+ from omniload import __version__ # type: ignore
801
799
 
802
800
  print(f"v{__version__}")
803
801