omniload 0.2.0__tar.gz → 0.3.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 (251) hide show
  1. {omniload-0.2.0 → omniload-0.3.0}/PKG-INFO +55 -17
  2. {omniload-0.2.0 → omniload-0.3.0}/README.md +50 -13
  3. {omniload-0.2.0 → omniload-0.3.0}/docs/conf.py +1 -0
  4. omniload-0.3.0/omniload/__init__.py +37 -0
  5. omniload-0.3.0/omniload/api.py +564 -0
  6. omniload-0.3.0/omniload/main.py +372 -0
  7. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/clickup/helpers.py +1 -1
  8. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/errors.py +23 -1
  9. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/frankfurter/__init__.py +5 -10
  10. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/frankfurter/helpers.py +1 -1
  11. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/freshdesk/__init__.py +5 -11
  12. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/sources.py +4 -1
  13. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/table_definition.py +1 -0
  14. {omniload-0.2.0 → omniload-0.3.0}/omniload.egg-info/PKG-INFO +55 -17
  15. {omniload-0.2.0 → omniload-0.3.0}/omniload.egg-info/SOURCES.txt +1 -34
  16. {omniload-0.2.0 → omniload-0.3.0}/omniload.egg-info/requires.txt +4 -3
  17. {omniload-0.2.0 → omniload-0.3.0}/omniload.egg-info/top_level.txt +1 -0
  18. {omniload-0.2.0 → omniload-0.3.0}/pyproject.toml +6 -5
  19. omniload-0.2.0/omniload/__init__.py +0 -13
  20. omniload-0.2.0/omniload/conftest.py +0 -73
  21. omniload-0.2.0/omniload/main.py +0 -808
  22. omniload-0.2.0/omniload/main_test.py +0 -6691
  23. omniload-0.2.0/omniload/src/adjust/adjust_helpers_test.py +0 -15
  24. omniload-0.2.0/omniload/src/anthropic/helpers_test.py +0 -524
  25. omniload-0.2.0/omniload/src/appsflyer/client_test.py +0 -58
  26. omniload-0.2.0/omniload/src/blob_test.py +0 -36
  27. omniload-0.2.0/omniload/src/couchbase_source/helpers_test.py +0 -170
  28. omniload-0.2.0/omniload/src/destinations_test.py +0 -243
  29. omniload-0.2.0/omniload/src/docebo/helpers_test.py +0 -190
  30. omniload-0.2.0/omniload/src/facebook_ads/helpers_test.py +0 -208
  31. omniload-0.2.0/omniload/src/factory_test.py +0 -13
  32. omniload-0.2.0/omniload/src/fireflies/helpers_test.py +0 -515
  33. omniload-0.2.0/omniload/src/fluxx/helpers_test.py +0 -287
  34. omniload-0.2.0/omniload/src/fundraiseup/client_test.py +0 -463
  35. omniload-0.2.0/omniload/src/google_ads/reports_test.py +0 -212
  36. omniload-0.2.0/omniload/src/google_ads/test_google_ads.py +0 -184
  37. omniload-0.2.0/omniload/src/google_analytics/helpers_test.py +0 -78
  38. omniload-0.2.0/omniload/src/gorgias/helpers_test.py +0 -45
  39. omniload-0.2.0/omniload/src/intercom/helpers_test.py +0 -249
  40. omniload-0.2.0/omniload/src/klaviyo/helpers_test.py +0 -36
  41. omniload-0.2.0/omniload/src/linkedin_ads/helpers_test.py +0 -141
  42. omniload-0.2.0/omniload/src/loader_test.py +0 -73
  43. omniload-0.2.0/omniload/src/mailchimp/helpers_test.py +0 -303
  44. omniload-0.2.0/omniload/src/masking_test.py +0 -386
  45. omniload-0.2.0/omniload/src/mongodb/helpers_test.py +0 -455
  46. omniload-0.2.0/omniload/src/primer/helpers_test.py +0 -81
  47. omniload-0.2.0/omniload/src/reddit_ads/helpers_test.py +0 -181
  48. omniload-0.2.0/omniload/src/revenuecat/helpers_test.py +0 -158
  49. omniload-0.2.0/omniload/src/shopify/helpers_test.py +0 -49
  50. omniload-0.2.0/omniload/src/smartsheets/test_smartsheets.py +0 -134
  51. omniload-0.2.0/omniload/src/snapchat_ads/helpers_test.py +0 -248
  52. omniload-0.2.0/omniload/src/sources_test.py +0 -314
  53. omniload-0.2.0/omniload/src/stripe_analytics/helpers_test.py +0 -130
  54. omniload-0.2.0/omniload/src/tiktok_ads/tiktok_helpers_test.py +0 -56
  55. {omniload-0.2.0 → omniload-0.3.0}/LICENSE +0 -0
  56. {omniload-0.2.0 → omniload-0.3.0}/LICENSE.Apache-2.0 +0 -0
  57. {omniload-0.2.0 → omniload-0.3.0}/MANIFEST.in +0 -0
  58. {omniload-0.2.0 → omniload-0.3.0}/NOTICE +0 -0
  59. {omniload-0.2.0 → omniload-0.3.0}/omniload/py.typed +0 -0
  60. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/adjust/__init__.py +0 -0
  61. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/adjust/adjust_helpers.py +0 -0
  62. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/airtable/__init__.py +0 -0
  63. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/allium/__init__.py +0 -0
  64. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/anthropic/__init__.py +0 -0
  65. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/anthropic/helpers.py +0 -0
  66. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/applovin/__init__.py +0 -0
  67. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/applovin_max/__init__.py +0 -0
  68. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/appsflyer/__init__.py +0 -0
  69. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/appsflyer/client.py +0 -0
  70. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/appstore/__init__.py +0 -0
  71. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/appstore/client.py +0 -0
  72. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/appstore/errors.py +0 -0
  73. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/appstore/models.py +0 -0
  74. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/appstore/resources.py +0 -0
  75. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/arrow/__init__.py +0 -0
  76. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/asana_source/__init__.py +0 -0
  77. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/asana_source/helpers.py +0 -0
  78. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/asana_source/settings.py +0 -0
  79. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/attio/__init__.py +0 -0
  80. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/attio/helpers.py +0 -0
  81. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/blob.py +0 -0
  82. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/bruin/__init__.py +0 -0
  83. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/chess/__init__.py +0 -0
  84. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/chess/helpers.py +0 -0
  85. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/chess/settings.py +0 -0
  86. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/clickup/__init__.py +0 -0
  87. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/collector/spinner.py +0 -0
  88. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/couchbase_source/__init__.py +0 -0
  89. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/couchbase_source/helpers.py +0 -0
  90. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/cursor/__init__.py +0 -0
  91. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/cursor/helpers.py +0 -0
  92. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/customer_io/__init__.py +0 -0
  93. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/customer_io/helpers.py +0 -0
  94. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/destinations.py +0 -0
  95. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/docebo/__init__.py +0 -0
  96. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/docebo/client.py +0 -0
  97. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/docebo/helpers.py +0 -0
  98. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/dune/__init__.py +0 -0
  99. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/dune/helpers.py +0 -0
  100. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/dynamodb/__init__.py +0 -0
  101. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/elasticsearch/__init__.py +0 -0
  102. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/elasticsearch/helpers.py +0 -0
  103. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/facebook_ads/__init__.py +0 -0
  104. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/facebook_ads/exceptions.py +0 -0
  105. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/facebook_ads/helpers.py +0 -0
  106. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/facebook_ads/settings.py +0 -0
  107. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/facebook_ads/utils.py +0 -0
  108. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/factory.py +0 -0
  109. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/filesystem/__init__.py +0 -0
  110. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/filesystem/helpers.py +0 -0
  111. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/filesystem/readers.py +0 -0
  112. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/filters.py +0 -0
  113. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/fireflies/__init__.py +0 -0
  114. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/fireflies/helpers.py +0 -0
  115. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/fluxx/__init__.py +0 -0
  116. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/fluxx/helpers.py +0 -0
  117. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/freshdesk/freshdesk_client.py +0 -0
  118. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/freshdesk/settings.py +0 -0
  119. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/fundraiseup/__init__.py +0 -0
  120. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/fundraiseup/client.py +0 -0
  121. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/github/__init__.py +0 -0
  122. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/github/helpers.py +0 -0
  123. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/github/queries.py +0 -0
  124. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/github/settings.py +0 -0
  125. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_ads/__init__.py +0 -0
  126. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_ads/field.py +0 -0
  127. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_ads/metrics.py +0 -0
  128. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_ads/predicates.py +0 -0
  129. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_ads/reports.py +0 -0
  130. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_analytics/__init__.py +0 -0
  131. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_analytics/helpers.py +0 -0
  132. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_sheets/__init__.py +0 -0
  133. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_sheets/helpers/__init__.py +0 -0
  134. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_sheets/helpers/api_calls.py +0 -0
  135. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/google_sheets/helpers/data_processing.py +0 -0
  136. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/gorgias/__init__.py +0 -0
  137. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/gorgias/helpers.py +0 -0
  138. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/hostaway/__init__.py +0 -0
  139. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/hostaway/client.py +0 -0
  140. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/http/__init__.py +0 -0
  141. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/http/readers.py +0 -0
  142. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/http_client.py +0 -0
  143. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/hubspot/__init__.py +0 -0
  144. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/hubspot/helpers.py +0 -0
  145. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/hubspot/settings.py +0 -0
  146. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/indeed/__init__.py +0 -0
  147. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/indeed/helpers.py +0 -0
  148. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/influxdb/__init__.py +0 -0
  149. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/influxdb/client.py +0 -0
  150. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/intercom/__init__.py +0 -0
  151. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/intercom/helpers.py +0 -0
  152. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/intercom/settings.py +0 -0
  153. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/isoc_pulse/__init__.py +0 -0
  154. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/jira_source/__init__.py +0 -0
  155. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/jira_source/helpers.py +0 -0
  156. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/jira_source/settings.py +0 -0
  157. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/kafka/__init__.py +0 -0
  158. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/kafka/helpers.py +0 -0
  159. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/kafka/model.py +0 -0
  160. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/kinesis/__init__.py +0 -0
  161. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/kinesis/helpers.py +0 -0
  162. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/klaviyo/__init__.py +0 -0
  163. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/klaviyo/client.py +0 -0
  164. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/klaviyo/helpers.py +0 -0
  165. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/linear/__init__.py +0 -0
  166. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/linear/helpers.py +0 -0
  167. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/linkedin_ads/__init__.py +0 -0
  168. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/linkedin_ads/dimension_time_enum.py +0 -0
  169. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/linkedin_ads/helpers.py +0 -0
  170. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/loader.py +0 -0
  171. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/mailchimp/__init__.py +0 -0
  172. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/mailchimp/helpers.py +0 -0
  173. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/mailchimp/settings.py +0 -0
  174. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/masking.py +0 -0
  175. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/mixpanel/__init__.py +0 -0
  176. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/mixpanel/client.py +0 -0
  177. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/monday/__init__.py +0 -0
  178. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/monday/helpers.py +0 -0
  179. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/monday/settings.py +0 -0
  180. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/mongodb/__init__.py +0 -0
  181. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/mongodb/helpers.py +0 -0
  182. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/notion/__init__.py +0 -0
  183. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/notion/helpers/__init__.py +0 -0
  184. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/notion/helpers/client.py +0 -0
  185. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/notion/helpers/database.py +0 -0
  186. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/notion/settings.py +0 -0
  187. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/partition.py +0 -0
  188. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/personio/__init__.py +0 -0
  189. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/personio/helpers.py +0 -0
  190. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/phantombuster/__init__.py +0 -0
  191. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/phantombuster/client.py +0 -0
  192. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/pinterest/__init__.py +0 -0
  193. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/pipedrive/__init__.py +0 -0
  194. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/pipedrive/helpers/__init__.py +0 -0
  195. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/pipedrive/helpers/custom_fields_munger.py +0 -0
  196. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/pipedrive/helpers/pages.py +0 -0
  197. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/pipedrive/settings.py +0 -0
  198. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/pipedrive/typing.py +0 -0
  199. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/plusvibeai/__init__.py +0 -0
  200. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/plusvibeai/helpers.py +0 -0
  201. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/plusvibeai/settings.py +0 -0
  202. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/primer/__init__.py +0 -0
  203. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/primer/helpers.py +0 -0
  204. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/quickbooks/__init__.py +0 -0
  205. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/reddit_ads/__init__.py +0 -0
  206. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/reddit_ads/helpers.py +0 -0
  207. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/resource.py +0 -0
  208. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/revenuecat/__init__.py +0 -0
  209. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/revenuecat/helpers.py +0 -0
  210. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/salesforce/__init__.py +0 -0
  211. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/salesforce/helpers.py +0 -0
  212. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/shopify/__init__.py +0 -0
  213. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/shopify/exceptions.py +0 -0
  214. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/shopify/helpers.py +0 -0
  215. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/shopify/settings.py +0 -0
  216. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/slack/__init__.py +0 -0
  217. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/slack/helpers.py +0 -0
  218. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/slack/settings.py +0 -0
  219. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/smartsheets/__init__.py +0 -0
  220. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/snapchat_ads/__init__.py +0 -0
  221. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/snapchat_ads/client.py +0 -0
  222. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/snapchat_ads/helpers.py +0 -0
  223. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/snapchat_ads/settings.py +0 -0
  224. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/socrata_source/__init__.py +0 -0
  225. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/socrata_source/helpers.py +0 -0
  226. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/socrata_source/settings.py +0 -0
  227. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/solidgate/__init__.py +0 -0
  228. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/solidgate/helpers.py +0 -0
  229. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/sql_database/__init__.py +0 -0
  230. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/sql_database/callbacks.py +0 -0
  231. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/stripe_analytics/__init__.py +0 -0
  232. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/stripe_analytics/helpers.py +0 -0
  233. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/stripe_analytics/settings.py +0 -0
  234. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/tiktok_ads/__init__.py +0 -0
  235. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/tiktok_ads/tiktok_helpers.py +0 -0
  236. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/time.py +0 -0
  237. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/trustpilot/__init__.py +0 -0
  238. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/trustpilot/client.py +0 -0
  239. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/wise/__init__.py +0 -0
  240. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/wise/client.py +0 -0
  241. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zendesk/__init__.py +0 -0
  242. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zendesk/helpers/__init__.py +0 -0
  243. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zendesk/helpers/api_helpers.py +0 -0
  244. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zendesk/helpers/credentials.py +0 -0
  245. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zendesk/helpers/talk_api.py +0 -0
  246. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zendesk/settings.py +0 -0
  247. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zoom/__init__.py +0 -0
  248. {omniload-0.2.0 → omniload-0.3.0}/omniload/src/zoom/helpers.py +0 -0
  249. {omniload-0.2.0 → omniload-0.3.0}/omniload.egg-info/dependency_links.txt +0 -0
  250. {omniload-0.2.0 → omniload-0.3.0}/omniload.egg-info/entry_points.txt +0 -0
  251. {omniload-0.2.0 → omniload-0.3.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omniload
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: omniload is a polyglot data loader based on dlt. Copy data between any source and any destination.
5
5
  Author: Mustafa Ersan, Sanju Shah Gupta, Saravjeet 'Aman' Singh
6
6
  Author-email: Burak Karakan <burak.karakan@getbruin.com>
@@ -65,7 +65,7 @@ License-File: NOTICE
65
65
  Requires-Dist: aiohttp<4
66
66
  Requires-Dist: asana<3.3
67
67
  Requires-Dist: click<8.5
68
- Requires-Dist: clickhouse-connect<1,>=0.8
68
+ Requires-Dist: clickhouse-connect<2,>=0.8
69
69
  Requires-Dist: clickhouse-driver<0.3
70
70
  Requires-Dist: clickhouse-sqlalchemy<0.4
71
71
  Requires-Dist: confluent-kafka<2.15
@@ -73,7 +73,7 @@ Requires-Dist: couchbase<5,>=4
73
73
  Requires-Dist: databricks-sql-connector<5
74
74
  Requires-Dist: databricks-sqlalchemy<3
75
75
  Requires-Dist: dataclasses-json<0.7
76
- Requires-Dist: dlt<1.22
76
+ Requires-Dist: dlt<1.29
77
77
  Requires-Dist: dlt-cratedb<0.2
78
78
  Requires-Dist: duckdb<1.6
79
79
  Requires-Dist: duckdb-engine<0.18
@@ -128,7 +128,7 @@ Requires-Dist: poethepoet<1; extra == "develop"
128
128
  Requires-Dist: pyproject-fmt<3; extra == "develop"
129
129
  Requires-Dist: pytest-repeat<1; extra == "develop"
130
130
  Requires-Dist: ruff<0.16; extra == "develop"
131
- Requires-Dist: ty==0.0.51; extra == "develop"
131
+ Requires-Dist: ty==0.0.52; extra == "develop"
132
132
  Requires-Dist: validate-pyproject<1; extra == "develop"
133
133
  Provides-Extra: full
134
134
  Requires-Dist: omniload[ibm-db,odbc,oracle]; extra == "full"
@@ -143,6 +143,7 @@ Provides-Extra: release
143
143
  Requires-Dist: build<2; extra == "release"
144
144
  Requires-Dist: twine<7; extra == "release"
145
145
  Provides-Extra: test
146
+ Requires-Dist: boto3<2; extra == "test"
146
147
  Requires-Dist: pendulum[test]<4,>=3; extra == "test"
147
148
  Requires-Dist: pytest<10; extra == "test"
148
149
  Requires-Dist: pytest-asyncio<2; extra == "test"
@@ -167,34 +168,49 @@ Dynamic: license-file
167
168
 
168
169
  ## About
169
170
 
170
- omniload is a polyglot data loader framework based on dlt.
171
- It allows you to load data from any source into any destination,
172
- either using a concise CLI from your shell,
173
- or the Python API from your own applications.
171
+ omniload is a polyglot data loader framework based on [dlt], the
172
+ open-source Python library for building data pipelines. dlt does the
173
+ heavy lifting (schema inference, normalization, and incremental load
174
+ state); omniload wraps it behind a single CLI and a URI scheme, so you
175
+ can copy data between any source and any destination without writing
176
+ pipeline code, either from your shell or the Python API.
174
177
 
175
178
  omniload provides the same efficient incremental data loading modes
176
- inherited by [dlt]: `append`, `merge`, and `delete+insert`.
179
+ inherited by dlt: `append`, `merge`, and `delete+insert`.
177
180
 
178
181
  ## Install
179
- We recommend using [uv] to install or run `omniload`.
182
+
183
+ ### Container
184
+
185
+ For running `omniload` in a container environment, use the provided OCI
186
+ images.
180
187
 
181
188
  ```shell
182
- pip install uv
189
+ docker run --rm ghcr.io/panodata/omniload:latest version
190
+ ```
191
+
192
+ ### Package
193
+
194
+ For running or installing the `omniload` Python package,
195
+ we are recommending to use [uv]. [^1][^2]
196
+ ```shell
183
197
  uvx omniload
184
198
  ```
185
199
 
186
- Alternatively, if you'd like to install it globally:
200
+ Alternatively, if you like to install it account-wide on your system:
187
201
  ```shell
188
- uv pip install --system omniload
202
+ uv tool install omniload
189
203
  ```
190
204
 
191
- While installation with vanilla `pip` is possible, it's an order of magnitude slower.
205
+ [^1]: You can install `uv` using `pip install uv`, or another method that matches your operating system.
206
+ [^2]: While installing `omniload` with vanilla `pip` is possible, it is an order of magnitude slower.
192
207
 
193
208
  ## Synopsis
194
209
 
195
- The next command instructs omniload to read the table `public.some_data` from
196
- your PostgreSQL instance, and to write the data to your BigQuery warehouse
197
- under the schema `omniload` and table `some_data`.
210
+ ### CLI
211
+
212
+ Instruct omniload to read from the PostgreSQL table `public.some_data`,
213
+ and write to the BigQuery warehouse table `omniload.some_data`.
198
214
 
199
215
  ```shell
200
216
  omniload ingest \
@@ -204,6 +220,27 @@ omniload ingest \
204
220
  --dest-table 'omniload.some_data'
205
221
  ```
206
222
 
223
+ ### Python API
224
+
225
+ Using `omniload.run_ingest`, you can run the same
226
+ ingestion from your own application. The keyword arguments map one-to-one to the
227
+ CLI options, and it returns the dlt `LoadInfo` for the run (or `None` for a dry run).
228
+
229
+ ```python
230
+ from omniload import run_ingest
231
+
232
+ info = run_ingest(
233
+ source_uri="sqlite:///./source.db",
234
+ dest_uri="duckdb:///./warehouse.duckdb",
235
+ source_table="main.some_table",
236
+ dest_table="public.some_table",
237
+ )
238
+ print(info)
239
+ ```
240
+
241
+ See the [Python API documentation] for dry runs, error handling, and passing
242
+ enum options as strings.
243
+
207
244
  ## Handbook
208
245
 
209
246
  Please visit the [quickstart documentation], or inspect the
@@ -240,6 +277,7 @@ the way down. Kudos.
240
277
 
241
278
  [dlt]: https://github.com/dlt-hub/dlt
242
279
  [quickstart documentation]: https://omniload.readthedocs.io/getting-started/quickstart.html
280
+ [Python API documentation]: https://omniload.readthedocs.io/getting-started/python-api.html
243
281
  [ingestr]: https://bruin-data.github.io/ingestr/
244
282
  [Issues]: https://github.com/panodata/omniload/issues
245
283
  [LICENSE]: https://github.com/panodata/omniload/blob/main/LICENSE
@@ -12,34 +12,49 @@
12
12
 
13
13
  ## About
14
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.
15
+ omniload is a polyglot data loader framework based on [dlt], the
16
+ open-source Python library for building data pipelines. dlt does the
17
+ heavy lifting (schema inference, normalization, and incremental load
18
+ state); omniload wraps it behind a single CLI and a URI scheme, so you
19
+ can copy data between any source and any destination without writing
20
+ pipeline code, either from your shell or the Python API.
19
21
 
20
22
  omniload provides the same efficient incremental data loading modes
21
- inherited by [dlt]: `append`, `merge`, and `delete+insert`.
23
+ inherited by dlt: `append`, `merge`, and `delete+insert`.
22
24
 
23
25
  ## Install
24
- We recommend using [uv] to install or run `omniload`.
26
+
27
+ ### Container
28
+
29
+ For running `omniload` in a container environment, use the provided OCI
30
+ images.
25
31
 
26
32
  ```shell
27
- pip install uv
33
+ docker run --rm ghcr.io/panodata/omniload:latest version
34
+ ```
35
+
36
+ ### Package
37
+
38
+ For running or installing the `omniload` Python package,
39
+ we are recommending to use [uv]. [^1][^2]
40
+ ```shell
28
41
  uvx omniload
29
42
  ```
30
43
 
31
- Alternatively, if you'd like to install it globally:
44
+ Alternatively, if you like to install it account-wide on your system:
32
45
  ```shell
33
- uv pip install --system omniload
46
+ uv tool install omniload
34
47
  ```
35
48
 
36
- While installation with vanilla `pip` is possible, it's an order of magnitude slower.
49
+ [^1]: You can install `uv` using `pip install uv`, or another method that matches your operating system.
50
+ [^2]: While installing `omniload` with vanilla `pip` is possible, it is an order of magnitude slower.
37
51
 
38
52
  ## Synopsis
39
53
 
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`.
54
+ ### CLI
55
+
56
+ Instruct omniload to read from the PostgreSQL table `public.some_data`,
57
+ and write to the BigQuery warehouse table `omniload.some_data`.
43
58
 
44
59
  ```shell
45
60
  omniload ingest \
@@ -49,6 +64,27 @@ omniload ingest \
49
64
  --dest-table 'omniload.some_data'
50
65
  ```
51
66
 
67
+ ### Python API
68
+
69
+ Using `omniload.run_ingest`, you can run the same
70
+ ingestion from your own application. The keyword arguments map one-to-one to the
71
+ CLI options, and it returns the dlt `LoadInfo` for the run (or `None` for a dry run).
72
+
73
+ ```python
74
+ from omniload import run_ingest
75
+
76
+ info = run_ingest(
77
+ source_uri="sqlite:///./source.db",
78
+ dest_uri="duckdb:///./warehouse.duckdb",
79
+ source_table="main.some_table",
80
+ dest_table="public.some_table",
81
+ )
82
+ print(info)
83
+ ```
84
+
85
+ See the [Python API documentation] for dry runs, error handling, and passing
86
+ enum options as strings.
87
+
52
88
  ## Handbook
53
89
 
54
90
  Please visit the [quickstart documentation], or inspect the
@@ -85,6 +121,7 @@ the way down. Kudos.
85
121
 
86
122
  [dlt]: https://github.com/dlt-hub/dlt
87
123
  [quickstart documentation]: https://omniload.readthedocs.io/getting-started/quickstart.html
124
+ [Python API documentation]: https://omniload.readthedocs.io/getting-started/python-api.html
88
125
  [ingestr]: https://bruin-data.github.io/ingestr/
89
126
  [Issues]: https://github.com/panodata/omniload/issues
90
127
  [LICENSE]: https://github.com/panodata/omniload/blob/main/LICENSE
@@ -97,6 +97,7 @@ linkcheck_ignore = [
97
97
  r"https://support.appsflyer.com/",
98
98
  r"https://help.docebo.com/",
99
99
  r"https://www.reddit.com/",
100
+ r"https://www.linkedin.com/developers.*",
100
101
  ]
101
102
  linkcheck_anchors_ignore_for_url = [
102
103
  r"https://developers.zoom.us/",
@@ -0,0 +1,37 @@
1
+ from importlib.metadata import PackageNotFoundError, version
2
+ from unittest import mock
3
+
4
+ from omniload.api import (
5
+ IncrementalStrategy,
6
+ LoaderFileFormat,
7
+ Progress,
8
+ SchemaNaming,
9
+ SqlBackend,
10
+ SqlReflectionLevel,
11
+ run_ingest,
12
+ )
13
+ from omniload.src.errors import IngestJobError, ValidationError
14
+
15
+ __appname__ = "omniload"
16
+
17
+
18
+ try:
19
+ __version__ = version(__appname__)
20
+ except PackageNotFoundError: # pragma: no cover
21
+ __version__ = "0.0.0-dev"
22
+
23
+ # Turn off dlt's telemetry to tame three more requests per invocation.
24
+ mock.patch("dlt.common.runtime.telemetry._TELEMETRY_STARTED", True)
25
+
26
+ __all__ = [
27
+ "IncrementalStrategy",
28
+ "IngestJobError",
29
+ "LoaderFileFormat",
30
+ "Progress",
31
+ "SchemaNaming",
32
+ "SqlBackend",
33
+ "SqlReflectionLevel",
34
+ "ValidationError",
35
+ "__version__",
36
+ "run_ingest",
37
+ ]