ingestr 0.13.41__tar.gz → 0.13.42__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 (276) hide show
  1. {ingestr-0.13.41 → ingestr-0.13.42}/Makefile +1 -1
  2. {ingestr-0.13.41 → ingestr-0.13.42}/PKG-INFO +1 -1
  3. ingestr-0.13.42/ingestr/src/buildinfo.py +1 -0
  4. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/factory.py +1 -0
  5. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/mongodb/__init__.py +66 -6
  6. ingestr-0.13.42/ingestr/src/mongodb/helpers.py +669 -0
  7. ingestr-0.13.41/ingestr/src/buildinfo.py +0 -1
  8. ingestr-0.13.41/ingestr/src/mongodb/helpers.py +0 -166
  9. {ingestr-0.13.41 → ingestr-0.13.42}/.dockerignore +0 -0
  10. {ingestr-0.13.41 → ingestr-0.13.42}/.githooks/pre-commit-hook.sh +0 -0
  11. {ingestr-0.13.41 → ingestr-0.13.42}/.github/workflows/deploy-docs.yml +0 -0
  12. {ingestr-0.13.41 → ingestr-0.13.42}/.github/workflows/release.yml +0 -0
  13. {ingestr-0.13.41 → ingestr-0.13.42}/.github/workflows/secrets-scan.yml +0 -0
  14. {ingestr-0.13.41 → ingestr-0.13.42}/.github/workflows/tests.yml +0 -0
  15. {ingestr-0.13.41 → ingestr-0.13.42}/.gitignore +0 -0
  16. {ingestr-0.13.41 → ingestr-0.13.42}/.gitleaksignore +0 -0
  17. {ingestr-0.13.41 → ingestr-0.13.42}/.python-version +0 -0
  18. {ingestr-0.13.41 → ingestr-0.13.42}/.vale.ini +0 -0
  19. {ingestr-0.13.41 → ingestr-0.13.42}/Dockerfile +0 -0
  20. {ingestr-0.13.41 → ingestr-0.13.42}/LICENSE.md +0 -0
  21. {ingestr-0.13.41 → ingestr-0.13.42}/README.md +0 -0
  22. {ingestr-0.13.41 → ingestr-0.13.42}/docs/.vitepress/config.mjs +0 -0
  23. {ingestr-0.13.41 → ingestr-0.13.42}/docs/.vitepress/theme/custom.css +0 -0
  24. {ingestr-0.13.41 → ingestr-0.13.42}/docs/.vitepress/theme/index.js +0 -0
  25. {ingestr-0.13.41 → ingestr-0.13.42}/docs/commands/example-uris.md +0 -0
  26. {ingestr-0.13.41 → ingestr-0.13.42}/docs/commands/ingest.md +0 -0
  27. {ingestr-0.13.41 → ingestr-0.13.42}/docs/getting-started/core-concepts.md +0 -0
  28. {ingestr-0.13.41 → ingestr-0.13.42}/docs/getting-started/incremental-loading.md +0 -0
  29. {ingestr-0.13.41 → ingestr-0.13.42}/docs/getting-started/quickstart.md +0 -0
  30. {ingestr-0.13.41 → ingestr-0.13.42}/docs/getting-started/telemetry.md +0 -0
  31. {ingestr-0.13.41 → ingestr-0.13.42}/docs/index.md +0 -0
  32. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/applovin_max.png +0 -0
  33. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/athena.png +0 -0
  34. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/clickhouse_img.png +0 -0
  35. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/freshdesk_ingestion.png +0 -0
  36. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/github.png +0 -0
  37. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/google_analytics_realtime_report.png +0 -0
  38. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/googleanalytics.png +0 -0
  39. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/ingestion_elasticsearch_img.png +0 -0
  40. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/kinesis.bigquery.png +0 -0
  41. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/linkedin_ads.png +0 -0
  42. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/personio.png +0 -0
  43. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/personio_duckdb.png +0 -0
  44. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/phantombuster.png +0 -0
  45. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/pipedrive.png +0 -0
  46. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/spanner_ingestion.png +0 -0
  47. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/stripe_postgres.png +0 -0
  48. {ingestr-0.13.41 → ingestr-0.13.42}/docs/media/tiktok.png +0 -0
  49. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/adjust.md +0 -0
  50. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/airtable.md +0 -0
  51. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/applovin.md +0 -0
  52. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/applovin_max.md +0 -0
  53. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/appsflyer.md +0 -0
  54. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/appstore.md +0 -0
  55. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/asana.md +0 -0
  56. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/athena.md +0 -0
  57. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/bigquery.md +0 -0
  58. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/chess.md +0 -0
  59. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/clickhouse.md +0 -0
  60. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/csv.md +0 -0
  61. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/custom_queries.md +0 -0
  62. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/databricks.md +0 -0
  63. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/db2.md +0 -0
  64. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/duckdb.md +0 -0
  65. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/dynamodb.md +0 -0
  66. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/elasticsearch.md +0 -0
  67. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/facebook-ads.md +0 -0
  68. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/frankfurter.md +0 -0
  69. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/freshdesk.md +0 -0
  70. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/gcs.md +0 -0
  71. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/github.md +0 -0
  72. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/google-ads.md +0 -0
  73. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/google_analytics.md +0 -0
  74. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/gorgias.md +0 -0
  75. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/gsheets.md +0 -0
  76. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/hubspot.md +0 -0
  77. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/kafka.md +0 -0
  78. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/kinesis.md +0 -0
  79. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/klaviyo.md +0 -0
  80. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/linkedin_ads.md +0 -0
  81. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/mongodb.md +0 -0
  82. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/mssql.md +0 -0
  83. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/mysql.md +0 -0
  84. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/notion.md +0 -0
  85. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/oracle.md +0 -0
  86. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/personio.md +0 -0
  87. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/phantombuster.md +0 -0
  88. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/pipedrive.md +0 -0
  89. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/postgres.md +0 -0
  90. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/redshift.md +0 -0
  91. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/s3.md +0 -0
  92. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/salesforce.md +0 -0
  93. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/sap-hana.md +0 -0
  94. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/shopify.md +0 -0
  95. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/slack.md +0 -0
  96. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/snowflake.md +0 -0
  97. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/spanner.md +0 -0
  98. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/sqlite.md +0 -0
  99. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/stripe.md +0 -0
  100. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/tiktok-ads.md +0 -0
  101. {ingestr-0.13.41 → ingestr-0.13.42}/docs/supported-sources/zendesk.md +0 -0
  102. {ingestr-0.13.41 → ingestr-0.13.42}/docs/tutorials/load-kinesis-bigquery.md +0 -0
  103. {ingestr-0.13.41 → ingestr-0.13.42}/docs/tutorials/load-personio-duckdb.md +0 -0
  104. {ingestr-0.13.41 → ingestr-0.13.42}/docs/tutorials/load-stripe-postgres.md +0 -0
  105. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/conftest.py +0 -0
  106. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/main.py +0 -0
  107. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/.gitignore +0 -0
  108. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/adjust/__init__.py +0 -0
  109. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/adjust/adjust_helpers.py +0 -0
  110. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/airtable/__init__.py +0 -0
  111. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/applovin/__init__.py +0 -0
  112. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/applovin_max/__init__.py +0 -0
  113. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/appsflyer/__init__.py +0 -0
  114. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/appsflyer/client.py +0 -0
  115. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/appstore/__init__.py +0 -0
  116. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/appstore/client.py +0 -0
  117. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/appstore/errors.py +0 -0
  118. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/appstore/models.py +0 -0
  119. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/appstore/resources.py +0 -0
  120. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/arrow/__init__.py +0 -0
  121. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/asana_source/__init__.py +0 -0
  122. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/asana_source/helpers.py +0 -0
  123. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/asana_source/settings.py +0 -0
  124. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/blob.py +0 -0
  125. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/chess/__init__.py +0 -0
  126. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/chess/helpers.py +0 -0
  127. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/chess/settings.py +0 -0
  128. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/collector/spinner.py +0 -0
  129. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/destinations.py +0 -0
  130. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/dynamodb/__init__.py +0 -0
  131. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/elasticsearch/__init__.py +0 -0
  132. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/errors.py +0 -0
  133. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/facebook_ads/__init__.py +0 -0
  134. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/facebook_ads/exceptions.py +0 -0
  135. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/facebook_ads/helpers.py +0 -0
  136. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/facebook_ads/settings.py +0 -0
  137. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/filesystem/__init__.py +0 -0
  138. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/filesystem/helpers.py +0 -0
  139. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/filesystem/readers.py +0 -0
  140. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/filters.py +0 -0
  141. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/frankfurter/__init__.py +0 -0
  142. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/frankfurter/helpers.py +0 -0
  143. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/freshdesk/__init__.py +0 -0
  144. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/freshdesk/freshdesk_client.py +0 -0
  145. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/freshdesk/settings.py +0 -0
  146. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/github/__init__.py +0 -0
  147. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/github/helpers.py +0 -0
  148. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/github/queries.py +0 -0
  149. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/github/settings.py +0 -0
  150. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_ads/__init__.py +0 -0
  151. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_ads/field.py +0 -0
  152. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_ads/metrics.py +0 -0
  153. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_ads/predicates.py +0 -0
  154. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_ads/reports.py +0 -0
  155. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_analytics/__init__.py +0 -0
  156. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_analytics/helpers.py +0 -0
  157. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_sheets/README.md +0 -0
  158. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_sheets/__init__.py +0 -0
  159. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
  160. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
  161. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
  162. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/gorgias/__init__.py +0 -0
  163. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/gorgias/helpers.py +0 -0
  164. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/hubspot/__init__.py +0 -0
  165. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/hubspot/helpers.py +0 -0
  166. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/hubspot/settings.py +0 -0
  167. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/kafka/__init__.py +0 -0
  168. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/kafka/helpers.py +0 -0
  169. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/kinesis/__init__.py +0 -0
  170. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/kinesis/helpers.py +0 -0
  171. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/klaviyo/__init__.py +0 -0
  172. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/klaviyo/client.py +0 -0
  173. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/klaviyo/helpers.py +0 -0
  174. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/linkedin_ads/__init__.py +0 -0
  175. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/linkedin_ads/dimension_time_enum.py +0 -0
  176. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/linkedin_ads/helpers.py +0 -0
  177. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/loader.py +0 -0
  178. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/notion/__init__.py +0 -0
  179. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/notion/helpers/__init__.py +0 -0
  180. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/notion/helpers/client.py +0 -0
  181. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/notion/helpers/database.py +0 -0
  182. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/notion/settings.py +0 -0
  183. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/partition.py +0 -0
  184. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/personio/__init__.py +0 -0
  185. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/personio/helpers.py +0 -0
  186. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/phantombuster/__init__.py +0 -0
  187. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/phantombuster/client.py +0 -0
  188. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/pipedrive/__init__.py +0 -0
  189. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/pipedrive/helpers/__init__.py +0 -0
  190. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/pipedrive/helpers/custom_fields_munger.py +0 -0
  191. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/pipedrive/helpers/pages.py +0 -0
  192. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/pipedrive/settings.py +0 -0
  193. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/pipedrive/typing.py +0 -0
  194. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/resource.py +0 -0
  195. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/salesforce/__init__.py +0 -0
  196. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/salesforce/helpers.py +0 -0
  197. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/shopify/__init__.py +0 -0
  198. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/shopify/exceptions.py +0 -0
  199. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/shopify/helpers.py +0 -0
  200. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/shopify/settings.py +0 -0
  201. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/slack/__init__.py +0 -0
  202. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/slack/helpers.py +0 -0
  203. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/slack/settings.py +0 -0
  204. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/sources.py +0 -0
  205. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/sql_database/__init__.py +0 -0
  206. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/sql_database/callbacks.py +0 -0
  207. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/stripe_analytics/__init__.py +0 -0
  208. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/stripe_analytics/helpers.py +0 -0
  209. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/stripe_analytics/settings.py +0 -0
  210. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/table_definition.py +0 -0
  211. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/telemetry/event.py +0 -0
  212. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/testdata/fakebqcredentials.json +0 -0
  213. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/tiktok_ads/__init__.py +0 -0
  214. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/tiktok_ads/tiktok_helpers.py +0 -0
  215. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/time.py +0 -0
  216. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/version.py +0 -0
  217. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/zendesk/__init__.py +0 -0
  218. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/zendesk/helpers/__init__.py +0 -0
  219. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
  220. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/zendesk/helpers/credentials.py +0 -0
  221. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
  222. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/src/zendesk/settings.py +0 -0
  223. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/.gitignore +0 -0
  224. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/create_replace.csv +0 -0
  225. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/delete_insert_expected.csv +0 -0
  226. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/delete_insert_part1.csv +0 -0
  227. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/delete_insert_part2.csv +0 -0
  228. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/merge_expected.csv +0 -0
  229. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/merge_part1.csv +0 -0
  230. {ingestr-0.13.41 → ingestr-0.13.42}/ingestr/testdata/merge_part2.csv +0 -0
  231. {ingestr-0.13.41 → ingestr-0.13.42}/package-lock.json +0 -0
  232. {ingestr-0.13.41 → ingestr-0.13.42}/package.json +0 -0
  233. {ingestr-0.13.41 → ingestr-0.13.42}/pyproject.toml +0 -0
  234. {ingestr-0.13.41 → ingestr-0.13.42}/requirements-dev.txt +0 -0
  235. {ingestr-0.13.41 → ingestr-0.13.42}/requirements.in +0 -0
  236. {ingestr-0.13.41 → ingestr-0.13.42}/requirements.txt +0 -0
  237. {ingestr-0.13.41 → ingestr-0.13.42}/requirements_arm64.txt +0 -0
  238. {ingestr-0.13.41 → ingestr-0.13.42}/resources/demo.gif +0 -0
  239. {ingestr-0.13.41 → ingestr-0.13.42}/resources/demo.tape +0 -0
  240. {ingestr-0.13.41 → ingestr-0.13.42}/resources/ingestr.svg +0 -0
  241. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/AMPM.yml +0 -0
  242. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Acronyms.yml +0 -0
  243. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Colons.yml +0 -0
  244. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Contractions.yml +0 -0
  245. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/DateFormat.yml +0 -0
  246. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Ellipses.yml +0 -0
  247. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/EmDash.yml +0 -0
  248. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Exclamation.yml +0 -0
  249. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/FirstPerson.yml +0 -0
  250. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Gender.yml +0 -0
  251. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/GenderBias.yml +0 -0
  252. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/HeadingPunctuation.yml +0 -0
  253. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Headings.yml +0 -0
  254. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Latin.yml +0 -0
  255. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/LyHyphens.yml +0 -0
  256. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/OptionalPlurals.yml +0 -0
  257. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Ordinal.yml +0 -0
  258. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/OxfordComma.yml +0 -0
  259. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Parens.yml +0 -0
  260. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Passive.yml +0 -0
  261. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Periods.yml +0 -0
  262. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Quotes.yml +0 -0
  263. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Ranges.yml +0 -0
  264. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Semicolons.yml +0 -0
  265. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Slang.yml +0 -0
  266. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Spacing.yml +0 -0
  267. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Spelling.yml +0 -0
  268. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Units.yml +0 -0
  269. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/We.yml +0 -0
  270. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/Will.yml +0 -0
  271. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/WordList.yml +0 -0
  272. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/meta.json +0 -0
  273. {ingestr-0.13.41 → ingestr-0.13.42}/styles/Google/vocab.txt +0 -0
  274. {ingestr-0.13.41 → ingestr-0.13.42}/styles/bruin/Ingestr.yml +0 -0
  275. {ingestr-0.13.41 → ingestr-0.13.42}/styles/config/vocabularies/bruin/accept.txt +0 -0
  276. {ingestr-0.13.41 → ingestr-0.13.42}/test.env.template +0 -0
@@ -8,7 +8,7 @@ venv: venv/touchfile
8
8
 
9
9
  venv/touchfile: requirements-dev.txt requirements.txt
10
10
  test -d venv || python3 -m venv venv
11
- . venv/bin/activate; pip install uv; $(MAKE) deps
11
+ . venv/bin/activate; pip install --disable-pip-version-check uv; $(MAKE) deps
12
12
  touch venv/touchfile
13
13
 
14
14
  lock-deps:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ingestr
3
- Version: 0.13.41
3
+ Version: 0.13.42
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
@@ -0,0 +1 @@
1
+ version = "v0.13.42"
@@ -120,6 +120,7 @@ class SourceDestinationFactory:
120
120
  sources: Dict[str, Type[SourceProtocol]] = {
121
121
  "csv": LocalCsvSource,
122
122
  "mongodb": MongoDbSource,
123
+ "mongodb+srv": MongoDbSource,
123
124
  "notion": NotionSource,
124
125
  "gsheets": GoogleSheetsSource,
125
126
  "shopify": ShopifySource,
@@ -1,8 +1,9 @@
1
1
  """Source that loads collections form any a mongo database, supports incremental loads."""
2
2
 
3
- from typing import Any, Iterable, List, Optional
3
+ from typing import Any, Dict, Iterable, List, Mapping, Optional, Union
4
4
 
5
5
  import dlt
6
+ from dlt.common.data_writers import TDataItemFormat
6
7
  from dlt.sources import DltResource
7
8
 
8
9
  from .helpers import (
@@ -21,6 +22,10 @@ def mongodb(
21
22
  incremental: Optional[dlt.sources.incremental] = None, # type: ignore[type-arg]
22
23
  write_disposition: Optional[str] = dlt.config.value,
23
24
  parallel: Optional[bool] = dlt.config.value,
25
+ limit: Optional[int] = None,
26
+ filter_: Optional[Dict[str, Any]] = None,
27
+ projection: Optional[Union[Mapping[str, Any], Iterable[str]]] = None,
28
+ pymongoarrow_schema: Optional[Any] = None,
24
29
  ) -> Iterable[DltResource]:
25
30
  """
26
31
  A DLT source which loads data from a mongo database using PyMongo.
@@ -34,6 +39,18 @@ def mongodb(
34
39
  E.g., `incremental=dlt.sources.incremental('updated_at', pendulum.parse('2022-01-01T00:00:00Z'))`
35
40
  write_disposition (str): Write disposition of the resource.
36
41
  parallel (Optional[bool]): Option to enable parallel loading for the collection. Default is False.
42
+ limit (Optional[int]):
43
+ The maximum number of documents to load. The limit is
44
+ applied to each requested collection separately.
45
+ filter_ (Optional[Dict[str, Any]]): The filter to apply to the collection.
46
+ projection: (Optional[Union[Mapping[str, Any], Iterable[str]]]): The projection to select fields of a collection
47
+ when loading the collection. Supported inputs:
48
+ include (list) - ["year", "title"]
49
+ include (dict) - {"year": True, "title": True}
50
+ exclude (dict) - {"released": False, "runtime": False}
51
+ Note: Can't mix include and exclude statements '{"title": True, "released": False}`
52
+ pymongoarrow_schema (pymongoarrow.schema.Schema): Mapping of expected field types of a collection to convert BSON to Arrow
53
+
37
54
  Returns:
38
55
  Iterable[DltResource]: A list of DLT resources for each collection to be loaded.
39
56
  """
@@ -58,19 +75,36 @@ def mongodb(
58
75
  primary_key="_id",
59
76
  write_disposition=write_disposition,
60
77
  spec=MongoDbCollectionConfiguration,
61
- )(client, collection, incremental=incremental, parallel=parallel)
78
+ )(
79
+ client,
80
+ collection,
81
+ incremental=incremental,
82
+ parallel=parallel,
83
+ limit=limit,
84
+ filter_=filter_ or {},
85
+ projection=projection,
86
+ pymongoarrow_schema=pymongoarrow_schema,
87
+ )
62
88
 
63
89
 
64
- @dlt.common.configuration.with_config(
65
- sections=("sources", "mongodb"), spec=MongoDbCollectionResourceConfiguration
90
+ @dlt.resource(
91
+ name=lambda args: args["collection"],
92
+ standalone=True,
93
+ spec=MongoDbCollectionResourceConfiguration,
66
94
  )
67
95
  def mongodb_collection(
68
- connection_url: str = dlt.config.value,
96
+ connection_url: str = dlt.secrets.value,
69
97
  database: Optional[str] = dlt.config.value,
70
98
  collection: str = dlt.config.value,
71
99
  incremental: Optional[dlt.sources.incremental] = None, # type: ignore[type-arg]
72
100
  write_disposition: Optional[str] = dlt.config.value,
73
101
  parallel: Optional[bool] = False,
102
+ limit: Optional[int] = None,
103
+ chunk_size: Optional[int] = 10000,
104
+ data_item_format: Optional[TDataItemFormat] = "object",
105
+ filter_: Optional[Dict[str, Any]] = None,
106
+ projection: Optional[Union[Mapping[str, Any], Iterable[str]]] = dlt.config.value,
107
+ pymongoarrow_schema: Optional[Any] = None,
74
108
  ) -> Any:
75
109
  """
76
110
  A DLT source which loads a collection from a mongo database using PyMongo.
@@ -83,6 +117,21 @@ def mongodb_collection(
83
117
  E.g., `incremental=dlt.sources.incremental('updated_at', pendulum.parse('2022-01-01T00:00:00Z'))`
84
118
  write_disposition (str): Write disposition of the resource.
85
119
  parallel (Optional[bool]): Option to enable parallel loading for the collection. Default is False.
120
+ limit (Optional[int]): The number of documents load.
121
+ chunk_size (Optional[int]): The number of documents load in each batch.
122
+ data_item_format (Optional[TDataItemFormat]): The data format to use for loading.
123
+ Supported formats:
124
+ object - Python objects (dicts, lists).
125
+ arrow - Apache Arrow tables.
126
+ filter_ (Optional[Dict[str, Any]]): The filter to apply to the collection.
127
+ projection: (Optional[Union[Mapping[str, Any], Iterable[str]]]): The projection to select fields
128
+ when loading the collection. Supported inputs:
129
+ include (list) - ["year", "title"]
130
+ include (dict) - {"year": True, "title": True}
131
+ exclude (dict) - {"released": False, "runtime": False}
132
+ Note: Can't mix include and exclude statements '{"title": True, "released": False}`
133
+ pymongoarrow_schema (pymongoarrow.schema.Schema): Mapping of expected field types to convert BSON to Arrow
134
+
86
135
  Returns:
87
136
  Iterable[DltResource]: A list of DLT resources for each collection to be loaded.
88
137
  """
@@ -100,4 +149,15 @@ def mongodb_collection(
100
149
  name=collection_obj.name,
101
150
  primary_key="_id",
102
151
  write_disposition=write_disposition,
103
- )(client, collection_obj, incremental=incremental, parallel=parallel)
152
+ )(
153
+ client,
154
+ collection_obj,
155
+ incremental=incremental,
156
+ parallel=parallel,
157
+ limit=limit,
158
+ chunk_size=chunk_size,
159
+ data_item_format=data_item_format,
160
+ filter_=filter_ or {},
161
+ projection=projection,
162
+ pymongoarrow_schema=pymongoarrow_schema,
163
+ )