ingestr 0.13.76__tar.gz → 0.13.78__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 (321) hide show
  1. {ingestr-0.13.76 → ingestr-0.13.78}/PKG-INFO +1 -1
  2. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/github.md +6 -7
  3. ingestr-0.13.78/ingestr/src/buildinfo.py +1 -0
  4. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/github/__init__.py +6 -6
  5. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/github/helpers.py +0 -1
  6. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/mongodb/helpers.py +10 -2
  7. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/sources.py +2 -2
  8. ingestr-0.13.76/ingestr/src/buildinfo.py +0 -1
  9. {ingestr-0.13.76 → ingestr-0.13.78}/.dlt/config.toml +0 -0
  10. {ingestr-0.13.76 → ingestr-0.13.78}/.dockerignore +0 -0
  11. {ingestr-0.13.76 → ingestr-0.13.78}/.githooks/pre-commit-hook.sh +0 -0
  12. {ingestr-0.13.76 → ingestr-0.13.78}/.github/workflows/deploy-docs.yml +0 -0
  13. {ingestr-0.13.76 → ingestr-0.13.78}/.github/workflows/release.yml +0 -0
  14. {ingestr-0.13.76 → ingestr-0.13.78}/.github/workflows/secrets-scan.yml +0 -0
  15. {ingestr-0.13.76 → ingestr-0.13.78}/.github/workflows/tests.yml +0 -0
  16. {ingestr-0.13.76 → ingestr-0.13.78}/.gitignore +0 -0
  17. {ingestr-0.13.76 → ingestr-0.13.78}/.gitleaksignore +0 -0
  18. {ingestr-0.13.76 → ingestr-0.13.78}/.python-version +0 -0
  19. {ingestr-0.13.76 → ingestr-0.13.78}/.vale.ini +0 -0
  20. {ingestr-0.13.76 → ingestr-0.13.78}/Dockerfile +0 -0
  21. {ingestr-0.13.76 → ingestr-0.13.78}/LICENSE.md +0 -0
  22. {ingestr-0.13.76 → ingestr-0.13.78}/Makefile +0 -0
  23. {ingestr-0.13.76 → ingestr-0.13.78}/README.md +0 -0
  24. {ingestr-0.13.76 → ingestr-0.13.78}/docs/.vitepress/config.mjs +0 -0
  25. {ingestr-0.13.76 → ingestr-0.13.78}/docs/.vitepress/theme/custom.css +0 -0
  26. {ingestr-0.13.76 → ingestr-0.13.78}/docs/.vitepress/theme/index.js +0 -0
  27. {ingestr-0.13.76 → ingestr-0.13.78}/docs/commands/example-uris.md +0 -0
  28. {ingestr-0.13.76 → ingestr-0.13.78}/docs/commands/ingest.md +0 -0
  29. {ingestr-0.13.76 → ingestr-0.13.78}/docs/getting-started/core-concepts.md +0 -0
  30. {ingestr-0.13.76 → ingestr-0.13.78}/docs/getting-started/incremental-loading.md +0 -0
  31. {ingestr-0.13.76 → ingestr-0.13.78}/docs/getting-started/quickstart.md +0 -0
  32. {ingestr-0.13.76 → ingestr-0.13.78}/docs/getting-started/telemetry.md +0 -0
  33. {ingestr-0.13.76 → ingestr-0.13.78}/docs/index.md +0 -0
  34. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/applovin_max.png +0 -0
  35. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/athena.png +0 -0
  36. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/clickhouse_img.png +0 -0
  37. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/clickup_ingestion.png +0 -0
  38. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/cratedb-destination.png +0 -0
  39. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/cratedb-source.png +0 -0
  40. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/freshdesk_ingestion.png +0 -0
  41. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/gcp_spanner_ingestion.png +0 -0
  42. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/github.png +0 -0
  43. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/google_analytics_realtime_report.png +0 -0
  44. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/googleanalytics.png +0 -0
  45. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/ingestion_elasticsearch_img.png +0 -0
  46. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/kinesis.bigquery.png +0 -0
  47. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/linear.png +0 -0
  48. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/linkedin_ads.png +0 -0
  49. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/mixpanel_ingestion.png +0 -0
  50. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/personio.png +0 -0
  51. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/personio_duckdb.png +0 -0
  52. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/phantombuster.png +0 -0
  53. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/pipedrive.png +0 -0
  54. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/quickbook_ingestion.png +0 -0
  55. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/sftp.png +0 -0
  56. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/stripe_postgres.png +0 -0
  57. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/tiktok.png +0 -0
  58. {ingestr-0.13.76 → ingestr-0.13.78}/docs/media/zoom_ingestion.png +0 -0
  59. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/adjust.md +0 -0
  60. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/airtable.md +0 -0
  61. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/applovin.md +0 -0
  62. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/applovin_max.md +0 -0
  63. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/appsflyer.md +0 -0
  64. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/appstore.md +0 -0
  65. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/asana.md +0 -0
  66. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/athena.md +0 -0
  67. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/attio.md +0 -0
  68. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/bigquery.md +0 -0
  69. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/chess.md +0 -0
  70. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/clickhouse.md +0 -0
  71. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/clickup.md +0 -0
  72. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/cratedb.md +0 -0
  73. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/csv.md +0 -0
  74. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/custom_queries.md +0 -0
  75. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/databricks.md +0 -0
  76. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/db2.md +0 -0
  77. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/duckdb.md +0 -0
  78. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/dynamodb.md +0 -0
  79. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/elasticsearch.md +0 -0
  80. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/facebook-ads.md +0 -0
  81. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/frankfurter.md +0 -0
  82. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/freshdesk.md +0 -0
  83. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/gcs.md +0 -0
  84. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/google-ads.md +0 -0
  85. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/google_analytics.md +0 -0
  86. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/gorgias.md +0 -0
  87. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/gsheets.md +0 -0
  88. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/hubspot.md +0 -0
  89. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/influxdb.md +0 -0
  90. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/isoc-pulse.md +0 -0
  91. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/kafka.md +0 -0
  92. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/kinesis.md +0 -0
  93. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/klaviyo.md +0 -0
  94. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/linear.md +0 -0
  95. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/linkedin_ads.md +0 -0
  96. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/mixpanel.md +0 -0
  97. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/mongodb.md +0 -0
  98. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/mssql.md +0 -0
  99. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/mysql.md +0 -0
  100. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/notion.md +0 -0
  101. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/oracle.md +0 -0
  102. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/personio.md +0 -0
  103. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/phantombuster.md +0 -0
  104. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/pinterest.md +0 -0
  105. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/pipedrive.md +0 -0
  106. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/postgres.md +0 -0
  107. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/quickbooks.md +0 -0
  108. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/redshift.md +0 -0
  109. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/s3.md +0 -0
  110. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/salesforce.md +0 -0
  111. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/sap-hana.md +0 -0
  112. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/sftp.md +0 -0
  113. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/shopify.md +0 -0
  114. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/slack.md +0 -0
  115. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/smartsheets.md +0 -0
  116. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/snowflake.md +0 -0
  117. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/solidgate.md +0 -0
  118. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/spanner.md +0 -0
  119. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/sqlite.md +0 -0
  120. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/stripe.md +0 -0
  121. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/tiktok-ads.md +0 -0
  122. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/trustpilot.md +0 -0
  123. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/zendesk.md +0 -0
  124. {ingestr-0.13.76 → ingestr-0.13.78}/docs/supported-sources/zoom.md +0 -0
  125. {ingestr-0.13.76 → ingestr-0.13.78}/docs/tutorials/load-kinesis-bigquery.md +0 -0
  126. {ingestr-0.13.76 → ingestr-0.13.78}/docs/tutorials/load-personio-duckdb.md +0 -0
  127. {ingestr-0.13.76 → ingestr-0.13.78}/docs/tutorials/load-stripe-postgres.md +0 -0
  128. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/conftest.py +0 -0
  129. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/main.py +0 -0
  130. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/.gitignore +0 -0
  131. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/adjust/__init__.py +0 -0
  132. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/adjust/adjust_helpers.py +0 -0
  133. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/airtable/__init__.py +0 -0
  134. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/applovin/__init__.py +0 -0
  135. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/applovin_max/__init__.py +0 -0
  136. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/appsflyer/__init__.py +0 -0
  137. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/appsflyer/client.py +0 -0
  138. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/appstore/__init__.py +0 -0
  139. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/appstore/client.py +0 -0
  140. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/appstore/errors.py +0 -0
  141. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/appstore/models.py +0 -0
  142. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/appstore/resources.py +0 -0
  143. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/arrow/__init__.py +0 -0
  144. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/asana_source/__init__.py +0 -0
  145. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/asana_source/helpers.py +0 -0
  146. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/asana_source/settings.py +0 -0
  147. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/attio/__init__.py +0 -0
  148. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/attio/helpers.py +0 -0
  149. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/blob.py +0 -0
  150. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/chess/__init__.py +0 -0
  151. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/chess/helpers.py +0 -0
  152. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/chess/settings.py +0 -0
  153. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/clickup/__init__.py +0 -0
  154. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/clickup/helpers.py +0 -0
  155. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/collector/spinner.py +0 -0
  156. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/destinations.py +0 -0
  157. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/dynamodb/__init__.py +0 -0
  158. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/elasticsearch/__init__.py +0 -0
  159. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/errors.py +0 -0
  160. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/facebook_ads/__init__.py +0 -0
  161. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/facebook_ads/exceptions.py +0 -0
  162. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/facebook_ads/helpers.py +0 -0
  163. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/facebook_ads/settings.py +0 -0
  164. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/facebook_ads/utils.py +0 -0
  165. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/factory.py +0 -0
  166. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/filesystem/__init__.py +0 -0
  167. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/filesystem/helpers.py +0 -0
  168. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/filesystem/readers.py +0 -0
  169. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/filters.py +0 -0
  170. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/frankfurter/__init__.py +0 -0
  171. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/frankfurter/helpers.py +0 -0
  172. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/freshdesk/__init__.py +0 -0
  173. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/freshdesk/freshdesk_client.py +0 -0
  174. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/freshdesk/settings.py +0 -0
  175. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/github/queries.py +0 -0
  176. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/github/settings.py +0 -0
  177. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_ads/__init__.py +0 -0
  178. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_ads/field.py +0 -0
  179. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_ads/metrics.py +0 -0
  180. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_ads/predicates.py +0 -0
  181. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_ads/reports.py +0 -0
  182. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_analytics/__init__.py +0 -0
  183. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_analytics/helpers.py +0 -0
  184. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_sheets/README.md +0 -0
  185. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_sheets/__init__.py +0 -0
  186. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
  187. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
  188. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
  189. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/gorgias/__init__.py +0 -0
  190. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/gorgias/helpers.py +0 -0
  191. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/http_client.py +0 -0
  192. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/hubspot/__init__.py +0 -0
  193. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/hubspot/helpers.py +0 -0
  194. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/hubspot/settings.py +0 -0
  195. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/influxdb/__init__.py +0 -0
  196. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/influxdb/client.py +0 -0
  197. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/isoc_pulse/__init__.py +0 -0
  198. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/kafka/__init__.py +0 -0
  199. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/kafka/helpers.py +0 -0
  200. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/kinesis/__init__.py +0 -0
  201. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/kinesis/helpers.py +0 -0
  202. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/klaviyo/__init__.py +0 -0
  203. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/klaviyo/client.py +0 -0
  204. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/klaviyo/helpers.py +0 -0
  205. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/linear/__init__.py +0 -0
  206. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/linear/helpers.py +0 -0
  207. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/linkedin_ads/__init__.py +0 -0
  208. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/linkedin_ads/dimension_time_enum.py +0 -0
  209. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/linkedin_ads/helpers.py +0 -0
  210. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/loader.py +0 -0
  211. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/mixpanel/__init__.py +0 -0
  212. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/mixpanel/client.py +0 -0
  213. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/mongodb/__init__.py +0 -0
  214. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/notion/__init__.py +0 -0
  215. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/notion/helpers/__init__.py +0 -0
  216. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/notion/helpers/client.py +0 -0
  217. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/notion/helpers/database.py +0 -0
  218. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/notion/settings.py +0 -0
  219. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/partition.py +0 -0
  220. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/personio/__init__.py +0 -0
  221. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/personio/helpers.py +0 -0
  222. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/phantombuster/__init__.py +0 -0
  223. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/phantombuster/client.py +0 -0
  224. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/pinterest/__init__.py +0 -0
  225. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/pipedrive/__init__.py +0 -0
  226. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/pipedrive/helpers/__init__.py +0 -0
  227. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/pipedrive/helpers/custom_fields_munger.py +0 -0
  228. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/pipedrive/helpers/pages.py +0 -0
  229. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/pipedrive/settings.py +0 -0
  230. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/pipedrive/typing.py +0 -0
  231. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/quickbooks/__init__.py +0 -0
  232. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/resource.py +0 -0
  233. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/salesforce/__init__.py +0 -0
  234. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/salesforce/helpers.py +0 -0
  235. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/shopify/__init__.py +0 -0
  236. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/shopify/exceptions.py +0 -0
  237. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/shopify/helpers.py +0 -0
  238. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/shopify/settings.py +0 -0
  239. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/slack/__init__.py +0 -0
  240. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/slack/helpers.py +0 -0
  241. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/slack/settings.py +0 -0
  242. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/smartsheets/__init__.py +0 -0
  243. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/solidgate/__init__.py +0 -0
  244. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/solidgate/helpers.py +0 -0
  245. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/sql_database/__init__.py +0 -0
  246. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/sql_database/callbacks.py +0 -0
  247. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/stripe_analytics/__init__.py +0 -0
  248. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/stripe_analytics/helpers.py +0 -0
  249. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/stripe_analytics/settings.py +0 -0
  250. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/table_definition.py +0 -0
  251. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/telemetry/event.py +0 -0
  252. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/testdata/fakebqcredentials.json +0 -0
  253. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/tiktok_ads/__init__.py +0 -0
  254. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/tiktok_ads/tiktok_helpers.py +0 -0
  255. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/time.py +0 -0
  256. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/trustpilot/__init__.py +0 -0
  257. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/trustpilot/client.py +0 -0
  258. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/version.py +0 -0
  259. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zendesk/__init__.py +0 -0
  260. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zendesk/helpers/__init__.py +0 -0
  261. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
  262. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zendesk/helpers/credentials.py +0 -0
  263. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
  264. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zendesk/settings.py +0 -0
  265. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zoom/__init__.py +0 -0
  266. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/src/zoom/helpers.py +0 -0
  267. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/.gitignore +0 -0
  268. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/create_replace.csv +0 -0
  269. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/delete_insert_expected.csv +0 -0
  270. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/delete_insert_part1.csv +0 -0
  271. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/delete_insert_part2.csv +0 -0
  272. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/merge_expected.csv +0 -0
  273. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/merge_part1.csv +0 -0
  274. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/testdata/merge_part2.csv +0 -0
  275. {ingestr-0.13.76 → ingestr-0.13.78}/ingestr/tests/unit/test_smartsheets.py +0 -0
  276. {ingestr-0.13.76 → ingestr-0.13.78}/package-lock.json +0 -0
  277. {ingestr-0.13.76 → ingestr-0.13.78}/package.json +0 -0
  278. {ingestr-0.13.76 → ingestr-0.13.78}/pyproject.toml +0 -0
  279. {ingestr-0.13.76 → ingestr-0.13.78}/requirements-dev.txt +0 -0
  280. {ingestr-0.13.76 → ingestr-0.13.78}/requirements.in +0 -0
  281. {ingestr-0.13.76 → ingestr-0.13.78}/requirements.txt +0 -0
  282. {ingestr-0.13.76 → ingestr-0.13.78}/requirements_arm64.txt +0 -0
  283. {ingestr-0.13.76 → ingestr-0.13.78}/resources/demo.gif +0 -0
  284. {ingestr-0.13.76 → ingestr-0.13.78}/resources/demo.tape +0 -0
  285. {ingestr-0.13.76 → ingestr-0.13.78}/resources/ingestr.svg +0 -0
  286. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/AMPM.yml +0 -0
  287. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Acronyms.yml +0 -0
  288. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Colons.yml +0 -0
  289. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Contractions.yml +0 -0
  290. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/DateFormat.yml +0 -0
  291. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Ellipses.yml +0 -0
  292. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/EmDash.yml +0 -0
  293. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Exclamation.yml +0 -0
  294. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/FirstPerson.yml +0 -0
  295. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Gender.yml +0 -0
  296. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/GenderBias.yml +0 -0
  297. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/HeadingPunctuation.yml +0 -0
  298. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Headings.yml +0 -0
  299. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Latin.yml +0 -0
  300. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/LyHyphens.yml +0 -0
  301. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/OptionalPlurals.yml +0 -0
  302. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Ordinal.yml +0 -0
  303. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/OxfordComma.yml +0 -0
  304. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Parens.yml +0 -0
  305. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Passive.yml +0 -0
  306. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Periods.yml +0 -0
  307. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Quotes.yml +0 -0
  308. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Ranges.yml +0 -0
  309. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Semicolons.yml +0 -0
  310. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Slang.yml +0 -0
  311. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Spacing.yml +0 -0
  312. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Spelling.yml +0 -0
  313. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Units.yml +0 -0
  314. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/We.yml +0 -0
  315. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/Will.yml +0 -0
  316. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/WordList.yml +0 -0
  317. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/meta.json +0 -0
  318. {ingestr-0.13.76 → ingestr-0.13.78}/styles/Google/vocab.txt +0 -0
  319. {ingestr-0.13.76 → ingestr-0.13.78}/styles/bruin/Ingestr.yml +0 -0
  320. {ingestr-0.13.76 → ingestr-0.13.78}/styles/config/vocabularies/bruin/accept.txt +0 -0
  321. {ingestr-0.13.76 → ingestr-0.13.78}/test.env.template +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ingestr
3
- Version: 0.13.76
3
+ Version: 0.13.78
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
@@ -36,14 +36,13 @@ This is a sample command that will copy the data from the GitHub source to DuckD
36
36
  ## Tables
37
37
 
38
38
  GitHub source allows ingesting the following sources into separate tables:
39
+ | Table | PK | Inc Key | Inc Strategy | Details |
40
+ | --------------- | ----------- | --------------- | ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
41
+ | `issues` | - | – | replace | Retrieves GitHub issues along with their comments and reactions. Full reload on each run. |
42
+ | `pull_requests` | - | – | replace | Retrieves pull requests with comments and reactions. Full reload on each run. |
43
+ | `repo_events` | `id` | `created_at` | merge | Retrieves recent repository events. Appends only new events using `created_at` filter. Only events from the past 30 days allowed. |
44
+ | `stargazers` | - | – | replace | Retrieves stargazers. Full reload on each run. |
39
45
 
40
- - `issues`: Retrieves data about issues, their associated comments, and subsequent reactions
41
- - `pull_requests`: Retrieves all pull requests
42
- - `repo_events`: Retrieves all the repo events associated with the repository
43
- - `stargazers`: Retrieves all stargazers
44
46
 
45
47
  Use these as `--source-table` parameter in the `ingestr ingest` command.
46
-
47
- > [!WARNING]
48
- > GitHub does not support incremental loading for many endpoints in its APIs, which means ingestr will load endpoints incrementally if they support it, and do a full-refresh if not.
49
48
 
@@ -0,0 +1 @@
1
+ version = "v0.13.78"
@@ -72,7 +72,7 @@ def github_repo_events(
72
72
  name: str,
73
73
  access_token: str,
74
74
  start_date: pendulum.DateTime,
75
- end_date: pendulum.DateTime,
75
+ end_date: Optional[pendulum.DateTime] = None,
76
76
  ) -> DltResource:
77
77
  """Gets events for repository `name` with owner `owner` incrementally.
78
78
 
@@ -91,12 +91,12 @@ def github_repo_events(
91
91
  """
92
92
 
93
93
  # use naming function in table name to generate separate tables for each event
94
- @dlt.resource(primary_key="id", table_name=lambda i: i["type"])
94
+ @dlt.resource(primary_key= "id", table_name=lambda i: i["type"], write_disposition="merge")
95
95
  def repo_events(
96
96
  last_created_at: dlt.sources.incremental[str] = dlt.sources.incremental(
97
97
  "created_at",
98
98
  initial_value=start_date.isoformat(),
99
- end_value=end_date.isoformat(),
99
+ end_value=end_date.isoformat() if end_date else None,
100
100
  last_value_func=max,
101
101
  range_end="closed",
102
102
  range_start="closed",
@@ -105,7 +105,7 @@ def github_repo_events(
105
105
  repos_path = (
106
106
  f"/repos/{urllib.parse.quote(owner)}/{urllib.parse.quote(name)}/events"
107
107
  )
108
-
108
+
109
109
  # Get the date range from the incremental state
110
110
  start_filter = pendulum.parse(
111
111
  last_created_at.last_value or last_created_at.initial_value
@@ -113,9 +113,9 @@ def github_repo_events(
113
113
  end_filter = (
114
114
  pendulum.parse(last_created_at.end_value)
115
115
  if last_created_at.end_value
116
- else None
116
+ else pendulum.now()
117
117
  )
118
-
118
+
119
119
  for page in get_rest_pages(access_token, repos_path + "?per_page=100"):
120
120
  # Filter events by date range
121
121
  filtered_events = []
@@ -61,7 +61,6 @@ def get_stargazers(
61
61
  page_items,
62
62
  )
63
63
 
64
-
65
64
  def get_reactions_data(
66
65
  node_type: str,
67
66
  owner: str,
@@ -1,5 +1,6 @@
1
1
  """Mongo database source helpers"""
2
2
 
3
+ import json
3
4
  from itertools import islice
4
5
  from typing import (
5
6
  TYPE_CHECKING,
@@ -204,7 +205,14 @@ class CollectionLoader:
204
205
  cursor = self._limit(cursor, limit)
205
206
 
206
207
  while docs_slice := list(islice(cursor, self.chunk_size)):
207
- yield map_nested_in_place(convert_mongo_objs, docs_slice)
208
+ res = map_nested_in_place(convert_mongo_objs, docs_slice)
209
+ if len(res) > 0 and "_id" in res[0] and isinstance(res[0]["_id"], dict):
210
+ yield dlt.mark.with_hints(
211
+ res,
212
+ dlt.mark.make_hints(columns={"_id": {"data_type": "json"} }),
213
+ )
214
+ else:
215
+ yield res
208
216
 
209
217
 
210
218
  class CollectionLoaderParallel(CollectionLoader):
@@ -531,7 +539,7 @@ def collection_documents(
531
539
  LoaderClass = CollectionArrowLoader # type: ignore
532
540
  else:
533
541
  LoaderClass = CollectionLoader # type: ignore
534
-
542
+
535
543
  loader = LoaderClass(
536
544
  client, collection, incremental=incremental, chunk_size=chunk_size
537
545
  )
@@ -428,7 +428,7 @@ class MongoDbSource:
428
428
  connection_url=uri,
429
429
  database=table_fields.dataset,
430
430
  collection=table_fields.table,
431
- parallel=True,
431
+ parallel=False,
432
432
  incremental=incremental,
433
433
  )
434
434
  table_instance.max_table_nesting = 1
@@ -1817,7 +1817,7 @@ class GitHubSource:
1817
1817
  start_date = kwargs.get("interval_start") or pendulum.now().subtract(
1818
1818
  days=30
1819
1819
  )
1820
- end_date = kwargs.get("interval_end") or pendulum.now()
1820
+ end_date = kwargs.get("interval_end") or None
1821
1821
 
1822
1822
  if isinstance(start_date, str):
1823
1823
  start_date = pendulum.parse(start_date)
@@ -1 +0,0 @@
1
- version = "v0.13.76"
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
File without changes