ingestr 0.13.82__tar.gz → 0.13.83__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.

Potentially problematic release.


This version of ingestr might be problematic. Click here for more details.

Files changed (326) hide show
  1. {ingestr-0.13.82 → ingestr-0.13.83}/PKG-INFO +1 -1
  2. {ingestr-0.13.82 → ingestr-0.13.83}/docs/.vitepress/config.mjs +1 -0
  3. ingestr-0.13.83/docs/media/wise_ingestion.png +0 -0
  4. ingestr-0.13.83/docs/supported-sources/wise.md +49 -0
  5. ingestr-0.13.83/ingestr/src/buildinfo.py +1 -0
  6. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/factory.py +2 -0
  7. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/sources.py +38 -0
  8. ingestr-0.13.83/ingestr/src/wise/__init__.py +68 -0
  9. ingestr-0.13.83/ingestr/src/wise/client.py +63 -0
  10. {ingestr-0.13.82 → ingestr-0.13.83}/pyproject.toml +4 -2
  11. ingestr-0.13.82/ingestr/src/buildinfo.py +0 -1
  12. {ingestr-0.13.82 → ingestr-0.13.83}/.dlt/config.toml +0 -0
  13. {ingestr-0.13.82 → ingestr-0.13.83}/.dockerignore +0 -0
  14. {ingestr-0.13.82 → ingestr-0.13.83}/.githooks/pre-commit-hook.sh +0 -0
  15. {ingestr-0.13.82 → ingestr-0.13.83}/.github/workflows/deploy-docs.yml +0 -0
  16. {ingestr-0.13.82 → ingestr-0.13.83}/.github/workflows/release.yml +0 -0
  17. {ingestr-0.13.82 → ingestr-0.13.83}/.github/workflows/secrets-scan.yml +0 -0
  18. {ingestr-0.13.82 → ingestr-0.13.83}/.github/workflows/tests.yml +0 -0
  19. {ingestr-0.13.82 → ingestr-0.13.83}/.gitignore +0 -0
  20. {ingestr-0.13.82 → ingestr-0.13.83}/.gitleaksignore +0 -0
  21. {ingestr-0.13.82 → ingestr-0.13.83}/.python-version +0 -0
  22. {ingestr-0.13.82 → ingestr-0.13.83}/.vale.ini +0 -0
  23. {ingestr-0.13.82 → ingestr-0.13.83}/Dockerfile +0 -0
  24. {ingestr-0.13.82 → ingestr-0.13.83}/LICENSE.md +0 -0
  25. {ingestr-0.13.82 → ingestr-0.13.83}/Makefile +0 -0
  26. {ingestr-0.13.82 → ingestr-0.13.83}/README.md +0 -0
  27. {ingestr-0.13.82 → ingestr-0.13.83}/docs/.vitepress/theme/custom.css +0 -0
  28. {ingestr-0.13.82 → ingestr-0.13.83}/docs/.vitepress/theme/index.js +0 -0
  29. {ingestr-0.13.82 → ingestr-0.13.83}/docs/commands/example-uris.md +0 -0
  30. {ingestr-0.13.82 → ingestr-0.13.83}/docs/commands/ingest.md +0 -0
  31. {ingestr-0.13.82 → ingestr-0.13.83}/docs/getting-started/core-concepts.md +0 -0
  32. {ingestr-0.13.82 → ingestr-0.13.83}/docs/getting-started/incremental-loading.md +0 -0
  33. {ingestr-0.13.82 → ingestr-0.13.83}/docs/getting-started/quickstart.md +0 -0
  34. {ingestr-0.13.82 → ingestr-0.13.83}/docs/getting-started/telemetry.md +0 -0
  35. {ingestr-0.13.82 → ingestr-0.13.83}/docs/index.md +0 -0
  36. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/applovin_max.png +0 -0
  37. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/athena.png +0 -0
  38. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/clickhouse_img.png +0 -0
  39. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/clickup_ingestion.png +0 -0
  40. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/cratedb-destination.png +0 -0
  41. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/cratedb-source.png +0 -0
  42. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/freshdesk_ingestion.png +0 -0
  43. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/gcp_spanner_ingestion.png +0 -0
  44. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/github.png +0 -0
  45. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/google_analytics_realtime_report.png +0 -0
  46. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/googleanalytics.png +0 -0
  47. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/ingestion_elasticsearch_img.png +0 -0
  48. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/kinesis.bigquery.png +0 -0
  49. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/linear.png +0 -0
  50. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/linkedin_ads.png +0 -0
  51. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/mixpanel_ingestion.png +0 -0
  52. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/personio.png +0 -0
  53. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/personio_duckdb.png +0 -0
  54. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/phantombuster.png +0 -0
  55. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/pipedrive.png +0 -0
  56. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/quickbook_ingestion.png +0 -0
  57. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/sftp.png +0 -0
  58. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/stripe_postgres.png +0 -0
  59. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/tiktok.png +0 -0
  60. {ingestr-0.13.82 → ingestr-0.13.83}/docs/media/zoom_ingestion.png +0 -0
  61. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/adjust.md +0 -0
  62. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/airtable.md +0 -0
  63. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/applovin.md +0 -0
  64. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/applovin_max.md +0 -0
  65. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/appsflyer.md +0 -0
  66. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/appstore.md +0 -0
  67. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/asana.md +0 -0
  68. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/athena.md +0 -0
  69. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/attio.md +0 -0
  70. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/bigquery.md +0 -0
  71. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/chess.md +0 -0
  72. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/clickhouse.md +0 -0
  73. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/clickup.md +0 -0
  74. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/cratedb.md +0 -0
  75. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/csv.md +0 -0
  76. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/custom_queries.md +0 -0
  77. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/databricks.md +0 -0
  78. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/db2.md +0 -0
  79. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/duckdb.md +0 -0
  80. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/dynamodb.md +0 -0
  81. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/elasticsearch.md +0 -0
  82. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/facebook-ads.md +0 -0
  83. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/frankfurter.md +0 -0
  84. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/freshdesk.md +0 -0
  85. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/gcs.md +0 -0
  86. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/github.md +0 -0
  87. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/google-ads.md +0 -0
  88. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/google_analytics.md +0 -0
  89. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/gorgias.md +0 -0
  90. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/gsheets.md +0 -0
  91. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/hubspot.md +0 -0
  92. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/influxdb.md +0 -0
  93. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/isoc-pulse.md +0 -0
  94. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/kafka.md +0 -0
  95. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/kinesis.md +0 -0
  96. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/klaviyo.md +0 -0
  97. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/linear.md +0 -0
  98. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/linkedin_ads.md +0 -0
  99. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/mixpanel.md +0 -0
  100. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/mongodb.md +0 -0
  101. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/motherduck.md +0 -0
  102. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/mssql.md +0 -0
  103. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/mysql.md +0 -0
  104. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/notion.md +0 -0
  105. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/oracle.md +0 -0
  106. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/personio.md +0 -0
  107. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/phantombuster.md +0 -0
  108. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/pinterest.md +0 -0
  109. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/pipedrive.md +0 -0
  110. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/postgres.md +0 -0
  111. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/quickbooks.md +0 -0
  112. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/redshift.md +0 -0
  113. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/s3.md +0 -0
  114. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/salesforce.md +0 -0
  115. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/sap-hana.md +0 -0
  116. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/sftp.md +0 -0
  117. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/shopify.md +0 -0
  118. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/slack.md +0 -0
  119. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/smartsheets.md +0 -0
  120. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/snowflake.md +0 -0
  121. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/solidgate.md +0 -0
  122. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/spanner.md +0 -0
  123. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/sqlite.md +0 -0
  124. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/stripe.md +0 -0
  125. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/tiktok-ads.md +0 -0
  126. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/trustpilot.md +0 -0
  127. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/zendesk.md +0 -0
  128. {ingestr-0.13.82 → ingestr-0.13.83}/docs/supported-sources/zoom.md +0 -0
  129. {ingestr-0.13.82 → ingestr-0.13.83}/docs/tutorials/load-kinesis-bigquery.md +0 -0
  130. {ingestr-0.13.82 → ingestr-0.13.83}/docs/tutorials/load-personio-duckdb.md +0 -0
  131. {ingestr-0.13.82 → ingestr-0.13.83}/docs/tutorials/load-stripe-postgres.md +0 -0
  132. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/conftest.py +0 -0
  133. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/main.py +0 -0
  134. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/.gitignore +0 -0
  135. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/adjust/__init__.py +0 -0
  136. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/adjust/adjust_helpers.py +0 -0
  137. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/airtable/__init__.py +0 -0
  138. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/applovin/__init__.py +0 -0
  139. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/applovin_max/__init__.py +0 -0
  140. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/appsflyer/__init__.py +0 -0
  141. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/appsflyer/client.py +0 -0
  142. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/appstore/__init__.py +0 -0
  143. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/appstore/client.py +0 -0
  144. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/appstore/errors.py +0 -0
  145. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/appstore/models.py +0 -0
  146. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/appstore/resources.py +0 -0
  147. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/arrow/__init__.py +0 -0
  148. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/asana_source/__init__.py +0 -0
  149. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/asana_source/helpers.py +0 -0
  150. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/asana_source/settings.py +0 -0
  151. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/attio/__init__.py +0 -0
  152. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/attio/helpers.py +0 -0
  153. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/blob.py +0 -0
  154. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/chess/__init__.py +0 -0
  155. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/chess/helpers.py +0 -0
  156. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/chess/settings.py +0 -0
  157. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/clickup/__init__.py +0 -0
  158. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/clickup/helpers.py +0 -0
  159. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/collector/spinner.py +0 -0
  160. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/destinations.py +0 -0
  161. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/dynamodb/__init__.py +0 -0
  162. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/elasticsearch/__init__.py +0 -0
  163. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/errors.py +0 -0
  164. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/facebook_ads/__init__.py +0 -0
  165. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/facebook_ads/exceptions.py +0 -0
  166. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/facebook_ads/helpers.py +0 -0
  167. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/facebook_ads/settings.py +0 -0
  168. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/facebook_ads/utils.py +0 -0
  169. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/filesystem/__init__.py +0 -0
  170. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/filesystem/helpers.py +0 -0
  171. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/filesystem/readers.py +0 -0
  172. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/filters.py +0 -0
  173. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/frankfurter/__init__.py +0 -0
  174. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/frankfurter/helpers.py +0 -0
  175. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/freshdesk/__init__.py +0 -0
  176. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/freshdesk/freshdesk_client.py +0 -0
  177. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/freshdesk/settings.py +0 -0
  178. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/github/__init__.py +0 -0
  179. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/github/helpers.py +0 -0
  180. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/github/queries.py +0 -0
  181. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/github/settings.py +0 -0
  182. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_ads/__init__.py +0 -0
  183. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_ads/field.py +0 -0
  184. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_ads/metrics.py +0 -0
  185. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_ads/predicates.py +0 -0
  186. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_ads/reports.py +0 -0
  187. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_analytics/__init__.py +0 -0
  188. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_analytics/helpers.py +0 -0
  189. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_sheets/README.md +0 -0
  190. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_sheets/__init__.py +0 -0
  191. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
  192. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
  193. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
  194. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/gorgias/__init__.py +0 -0
  195. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/gorgias/helpers.py +0 -0
  196. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/http_client.py +0 -0
  197. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/hubspot/__init__.py +0 -0
  198. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/hubspot/helpers.py +0 -0
  199. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/hubspot/settings.py +0 -0
  200. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/influxdb/__init__.py +0 -0
  201. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/influxdb/client.py +0 -0
  202. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/isoc_pulse/__init__.py +0 -0
  203. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/kafka/__init__.py +0 -0
  204. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/kafka/helpers.py +0 -0
  205. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/kinesis/__init__.py +0 -0
  206. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/kinesis/helpers.py +0 -0
  207. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/klaviyo/__init__.py +0 -0
  208. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/klaviyo/client.py +0 -0
  209. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/klaviyo/helpers.py +0 -0
  210. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/linear/__init__.py +0 -0
  211. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/linear/helpers.py +0 -0
  212. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/linkedin_ads/__init__.py +0 -0
  213. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/linkedin_ads/dimension_time_enum.py +0 -0
  214. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/linkedin_ads/helpers.py +0 -0
  215. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/loader.py +0 -0
  216. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/mixpanel/__init__.py +0 -0
  217. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/mixpanel/client.py +0 -0
  218. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/mongodb/__init__.py +0 -0
  219. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/mongodb/helpers.py +0 -0
  220. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/notion/__init__.py +0 -0
  221. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/notion/helpers/__init__.py +0 -0
  222. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/notion/helpers/client.py +0 -0
  223. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/notion/helpers/database.py +0 -0
  224. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/notion/settings.py +0 -0
  225. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/partition.py +0 -0
  226. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/personio/__init__.py +0 -0
  227. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/personio/helpers.py +0 -0
  228. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/phantombuster/__init__.py +0 -0
  229. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/phantombuster/client.py +0 -0
  230. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/pinterest/__init__.py +0 -0
  231. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/pipedrive/__init__.py +0 -0
  232. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/pipedrive/helpers/__init__.py +0 -0
  233. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/pipedrive/helpers/custom_fields_munger.py +0 -0
  234. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/pipedrive/helpers/pages.py +0 -0
  235. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/pipedrive/settings.py +0 -0
  236. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/pipedrive/typing.py +0 -0
  237. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/quickbooks/__init__.py +0 -0
  238. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/resource.py +0 -0
  239. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/salesforce/__init__.py +0 -0
  240. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/salesforce/helpers.py +0 -0
  241. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/shopify/__init__.py +0 -0
  242. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/shopify/exceptions.py +0 -0
  243. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/shopify/helpers.py +0 -0
  244. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/shopify/settings.py +0 -0
  245. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/slack/__init__.py +0 -0
  246. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/slack/helpers.py +0 -0
  247. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/slack/settings.py +0 -0
  248. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/smartsheets/__init__.py +0 -0
  249. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/solidgate/__init__.py +0 -0
  250. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/solidgate/helpers.py +0 -0
  251. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/sql_database/__init__.py +0 -0
  252. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/sql_database/callbacks.py +0 -0
  253. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/stripe_analytics/__init__.py +0 -0
  254. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/stripe_analytics/helpers.py +0 -0
  255. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/stripe_analytics/settings.py +0 -0
  256. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/table_definition.py +0 -0
  257. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/telemetry/event.py +0 -0
  258. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/testdata/fakebqcredentials.json +0 -0
  259. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/tiktok_ads/__init__.py +0 -0
  260. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/tiktok_ads/tiktok_helpers.py +0 -0
  261. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/time.py +0 -0
  262. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/trustpilot/__init__.py +0 -0
  263. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/trustpilot/client.py +0 -0
  264. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/version.py +0 -0
  265. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zendesk/__init__.py +0 -0
  266. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zendesk/helpers/__init__.py +0 -0
  267. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
  268. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zendesk/helpers/credentials.py +0 -0
  269. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
  270. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zendesk/settings.py +0 -0
  271. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zoom/__init__.py +0 -0
  272. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/src/zoom/helpers.py +0 -0
  273. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/.gitignore +0 -0
  274. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/create_replace.csv +0 -0
  275. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/delete_insert_expected.csv +0 -0
  276. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/delete_insert_part1.csv +0 -0
  277. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/delete_insert_part2.csv +0 -0
  278. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/merge_expected.csv +0 -0
  279. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/merge_part1.csv +0 -0
  280. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/testdata/merge_part2.csv +0 -0
  281. {ingestr-0.13.82 → ingestr-0.13.83}/ingestr/tests/unit/test_smartsheets.py +0 -0
  282. {ingestr-0.13.82 → ingestr-0.13.83}/package-lock.json +0 -0
  283. {ingestr-0.13.82 → ingestr-0.13.83}/package.json +0 -0
  284. {ingestr-0.13.82 → ingestr-0.13.83}/requirements-dev.txt +0 -0
  285. {ingestr-0.13.82 → ingestr-0.13.83}/requirements.in +0 -0
  286. {ingestr-0.13.82 → ingestr-0.13.83}/requirements.txt +0 -0
  287. {ingestr-0.13.82 → ingestr-0.13.83}/requirements_arm64.txt +0 -0
  288. {ingestr-0.13.82 → ingestr-0.13.83}/resources/demo.gif +0 -0
  289. {ingestr-0.13.82 → ingestr-0.13.83}/resources/demo.tape +0 -0
  290. {ingestr-0.13.82 → ingestr-0.13.83}/resources/ingestr.svg +0 -0
  291. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/AMPM.yml +0 -0
  292. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Acronyms.yml +0 -0
  293. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Colons.yml +0 -0
  294. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Contractions.yml +0 -0
  295. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/DateFormat.yml +0 -0
  296. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Ellipses.yml +0 -0
  297. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/EmDash.yml +0 -0
  298. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Exclamation.yml +0 -0
  299. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/FirstPerson.yml +0 -0
  300. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Gender.yml +0 -0
  301. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/GenderBias.yml +0 -0
  302. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/HeadingPunctuation.yml +0 -0
  303. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Headings.yml +0 -0
  304. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Latin.yml +0 -0
  305. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/LyHyphens.yml +0 -0
  306. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/OptionalPlurals.yml +0 -0
  307. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Ordinal.yml +0 -0
  308. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/OxfordComma.yml +0 -0
  309. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Parens.yml +0 -0
  310. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Passive.yml +0 -0
  311. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Periods.yml +0 -0
  312. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Quotes.yml +0 -0
  313. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Ranges.yml +0 -0
  314. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Semicolons.yml +0 -0
  315. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Slang.yml +0 -0
  316. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Spacing.yml +0 -0
  317. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Spelling.yml +0 -0
  318. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Units.yml +0 -0
  319. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/We.yml +0 -0
  320. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/Will.yml +0 -0
  321. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/WordList.yml +0 -0
  322. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/meta.json +0 -0
  323. {ingestr-0.13.82 → ingestr-0.13.83}/styles/Google/vocab.txt +0 -0
  324. {ingestr-0.13.82 → ingestr-0.13.83}/styles/bruin/Ingestr.yml +0 -0
  325. {ingestr-0.13.82 → ingestr-0.13.83}/styles/config/vocabularies/bruin/accept.txt +0 -0
  326. {ingestr-0.13.82 → ingestr-0.13.83}/test.env.template +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ingestr
3
- Version: 0.13.82
3
+ Version: 0.13.83
4
4
  Summary: ingestr is a command-line application that ingests data from various sources and stores them in any database.
5
5
  Project-URL: Homepage, https://github.com/bruin-data/ingestr
6
6
  Project-URL: Issues, https://github.com/bruin-data/ingestr/issues
@@ -155,6 +155,7 @@ export default defineConfig({
155
155
  { text: "Solidgate", link: "/supported-sources/solidgate.md" },
156
156
  { text: "Stripe", link: "/supported-sources/stripe.md" },
157
157
  { text: "TikTok Ads", link: "/supported-sources/tiktok-ads.md" },
158
+ { text: "Wise", link: "/supported-sources/wise.md" },
158
159
  { text: "Zendesk", link: "/supported-sources/zendesk.md" },
159
160
  { text: "Zoom", link: "/supported-sources/zoom.md" },
160
161
  ],
@@ -0,0 +1,49 @@
1
+ # Wise
2
+
3
+ [Wise](https://wise.com/) is a global financial technology company that provides international money transfers, multi-currency accounts, and business payment solutions.
4
+
5
+ ingestr supports Wise as a source.
6
+
7
+ ## URI format
8
+
9
+ ```plaintext
10
+ wise://?api_key=<api_token>
11
+ ```
12
+
13
+ URI parameters:
14
+
15
+ - `api_key`: Wise API token.
16
+
17
+ ### Please follow the steps below to get a Wise API token
18
+ - Go to wise.com and log in.
19
+ - Click on your profile picture.
20
+ - From the dropdown, choose "Settings".
21
+ - In the left-hand menu, click "API Tokens".
22
+ - Click "Create API Token".
23
+ - Give it a name.
24
+ - Click "Create".
25
+ Copy the token and save it securely..
26
+
27
+ ## Example
28
+
29
+ Copy transfers from Wise into a DuckDB database:
30
+
31
+ ```sh
32
+ ingestr ingest \
33
+ --source-uri 'wise://?api_key=mytoken' \
34
+ --source-table transfers \
35
+ --dest-uri duckdb:///wise.duckdb \
36
+ --dest-table wise.transfers
37
+ ```
38
+
39
+ ## Tables
40
+
41
+ Wise source allows ingesting the following sources into separate tables:
42
+ | Table | PK | Inc Key | Inc Strategy | Details |
43
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
44
+ | `profiles` | `id` | – | merge | Retrieves all profiles associated with the user. |
45
+ | `transfers` | `id` | `created` | merge | Lists all transfers for including status and details associated with the user. |
46
+ | `balances` | `id` | `modificationTime` | merge | Retrieve the user's multi-currency account balance accounts. It returns all balance accounts the profile has.
47
+
48
+
49
+ <img alt="wise_ingestion_img" src="../media/wise_ingestion.png" />
@@ -0,0 +1 @@
1
+ version = "v0.13.83"
@@ -73,6 +73,7 @@ from ingestr.src.sources import (
73
73
  StripeAnalyticsSource,
74
74
  TikTokSource,
75
75
  TrustpilotSource,
76
+ WiseSource,
76
77
  ZendeskSource,
77
78
  ZoomSource,
78
79
  )
@@ -192,6 +193,7 @@ class SourceDestinationFactory:
192
193
  "zoom": ZoomSource,
193
194
  "clickup": ClickupSource,
194
195
  "influxdb": InfluxDBSource,
196
+ "wise": WiseSource,
195
197
  }
196
198
  destinations: Dict[str, Type[DestinationProtocol]] = {
197
199
  "bigquery": BigQueryDestination,
@@ -3386,3 +3386,41 @@ class InfluxDBSource:
3386
3386
  start_date=start_date,
3387
3387
  end_date=end_date,
3388
3388
  ).with_resources(table)
3389
+
3390
+
3391
+ class WiseSource:
3392
+ def handles_incrementality(self) -> bool:
3393
+ return True
3394
+
3395
+ def dlt_source(self, uri: str, table: str, **kwargs):
3396
+ parsed = urlparse(uri)
3397
+ params = parse_qs(parsed.query)
3398
+ api_key = params.get("api_key")
3399
+
3400
+ if not api_key:
3401
+ raise MissingValueError("api_key", "Wise")
3402
+
3403
+ if table not in ["profiles", "transfers", "balances"]:
3404
+ raise ValueError(
3405
+ f"Resource '{table}' is not supported for Wise source yet, if you are interested in it please create a GitHub issue at https://github.com/bruin-data/ingestr"
3406
+ )
3407
+
3408
+ start_date = kwargs.get("interval_start")
3409
+ if start_date:
3410
+ start_date = ensure_pendulum_datetime(start_date).in_timezone("UTC")
3411
+ else:
3412
+ start_date = pendulum.datetime(2020, 1, 1).in_timezone("UTC")
3413
+
3414
+ end_date = kwargs.get("interval_end")
3415
+ if end_date:
3416
+ end_date = ensure_pendulum_datetime(end_date).in_timezone("UTC")
3417
+ else:
3418
+ end_date = None
3419
+
3420
+ from ingestr.src.wise import wise_source
3421
+
3422
+ return wise_source(
3423
+ api_key=api_key[0],
3424
+ start_date=start_date,
3425
+ end_date=end_date,
3426
+ ).with_resources(table)
@@ -0,0 +1,68 @@
1
+ from typing import Iterable
2
+
3
+ import dlt
4
+ import pendulum
5
+ from dlt.common.typing import TDataItem
6
+ from dlt.sources import DltResource
7
+
8
+ from .client import WiseClient
9
+
10
+
11
+ @dlt.source(max_table_nesting=0)
12
+ def wise_source(
13
+ api_key: str,
14
+ start_date: pendulum.DateTime,
15
+ end_date: pendulum.DateTime | None = None,
16
+ ) -> Iterable[DltResource]:
17
+ client = WiseClient(api_key)
18
+
19
+ # List of all profiles belonging to user.
20
+ @dlt.resource(write_disposition="merge", name="profiles", primary_key="id")
21
+ def profiles() -> Iterable[TDataItem]:
22
+ yield from client.fetch_profiles()
23
+
24
+ # List transfers for a profile.
25
+ @dlt.resource(write_disposition="merge", name="transfers", primary_key="id")
26
+ def transfers(
27
+ profiles=profiles,
28
+ datetime=dlt.sources.incremental(
29
+ "created",
30
+ initial_value=start_date,
31
+ end_value=end_date,
32
+ range_end="closed",
33
+ range_start="closed",
34
+ ),
35
+ ):
36
+ if datetime.end_value is None:
37
+ end_dt = pendulum.now(tz="UTC")
38
+ else:
39
+ end_dt = datetime.end_value
40
+
41
+ start_dt = datetime.last_value
42
+
43
+ for profile in profiles:
44
+ yield from client.fetch_transfers(profile["id"], start_dt, end_dt)
45
+
46
+ # Retrieve the user's multi-currency account balance accounts. It returns all balance accounts the profile has.
47
+ @dlt.resource(write_disposition="merge", name="balances", primary_key="id")
48
+ def balances(
49
+ profiles=profiles,
50
+ datetime=dlt.sources.incremental(
51
+ "modificationTime",
52
+ initial_value=start_date,
53
+ end_value=end_date,
54
+ range_end="closed",
55
+ range_start="closed",
56
+ ),
57
+ ) -> Iterable[TDataItem]:
58
+ if datetime.end_value is None:
59
+ end_dt = pendulum.now(tz="UTC")
60
+ else:
61
+ end_dt = datetime.end_value
62
+
63
+ start_dt = datetime.last_value
64
+
65
+ for profile in profiles:
66
+ yield from client.fetch_balances(profile["id"], start_dt, end_dt)
67
+
68
+ return profiles, transfers, balances
@@ -0,0 +1,63 @@
1
+ from typing import Iterable
2
+
3
+ import pendulum
4
+ from dlt.sources.helpers.requests import Client
5
+
6
+
7
+ class WiseClient:
8
+ BASE_URL = "https://api.transferwise.com"
9
+
10
+ def __init__(self, api_key: str) -> None:
11
+ self.session = Client(raise_for_status=False).session
12
+ self.session.headers.update({"Authorization": f"Bearer {api_key}"})
13
+
14
+ # https://docs.wise.com/api-docs/api-reference/profile#list-profiles
15
+ def fetch_profiles(self) -> Iterable[dict]:
16
+ url = f"{self.BASE_URL}/v2/profiles"
17
+ resp = self.session.get(url)
18
+ resp.raise_for_status()
19
+ for profile in resp.json():
20
+ yield profile
21
+
22
+ # https://docs.wise.com/api-docs/api-reference/transfer#list-transfers
23
+ def fetch_transfers(
24
+ self, profile_id: str, start_time=pendulum.DateTime, end_time=pendulum.DateTime
25
+ ):
26
+ offset = 0
27
+
28
+ while True:
29
+ data = self.session.get(
30
+ f"{self.BASE_URL}/v1/transfers",
31
+ params={
32
+ "profile": profile_id,
33
+ "createdDateStart": start_time.to_date_string(),
34
+ "createdDateEnd": end_time.to_date_string(),
35
+ "limit": 100,
36
+ "offset": offset,
37
+ },
38
+ )
39
+ response_data = data.json()
40
+
41
+ if not response_data or len(response_data) == 0:
42
+ break
43
+
44
+ for transfer in response_data:
45
+ transfer["created"] = pendulum.parse(transfer["created"])
46
+
47
+ yield transfer
48
+ offset += 100
49
+
50
+ # https://docs.wise.com/api-docs/api-reference/balance#list
51
+ def fetch_balances(
52
+ self, profile_id: str, start_time=pendulum.DateTime, end_time=pendulum.DateTime
53
+ ) -> Iterable[dict]:
54
+ url = f"{self.BASE_URL}/v4/profiles/{profile_id}/balances"
55
+ resp = self.session.get(url, params={"types": "STANDARD,SAVINGS"})
56
+ resp.raise_for_status()
57
+ for balance in resp.json():
58
+ balance["modificationTime"] = pendulum.parse(balance["modificationTime"])
59
+ if (
60
+ balance["modificationTime"] > start_time
61
+ and balance["modificationTime"] < end_time
62
+ ):
63
+ yield balance
@@ -93,7 +93,8 @@ exclude = [
93
93
  'src/zoom/.*',
94
94
  'src/clickup/.*',
95
95
  'src/influxdb/.*',
96
- 'src/freshdesk/.*'
96
+ 'src/freshdesk/.*',
97
+ 'src/wise/.*'
97
98
  ]
98
99
 
99
100
  [[tool.mypy.overrides]]
@@ -125,7 +126,8 @@ module = [
125
126
  "ingestr.src.zoom.*",
126
127
  "ingestr.src.clickup.*",
127
128
  "ingestr.src.influxdb",
128
- "ingestr.src.freshdesk"
129
+ "ingestr.src.freshdesk",
130
+ "ingestr.src.wise"
129
131
  ]
130
132
  follow_imports = "skip"
131
133
 
@@ -1 +0,0 @@
1
- version = "v0.13.82"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes