ingestr 0.10.0rc1__tar.gz → 0.10.0rc2__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 (166) hide show
  1. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/Makefile +1 -1
  2. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/PKG-INFO +1 -1
  3. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/main.py +6 -3
  4. ingestr-0.10.0rc2/ingestr/src/filters.py +7 -0
  5. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/sources.py +8 -0
  6. ingestr-0.10.0rc2/ingestr/src/version.py +1 -0
  7. ingestr-0.10.0rc1/ingestr/src/version.py +0 -1
  8. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/.dockerignore +0 -0
  9. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/.github/workflows/deploy-docs.yml +0 -0
  10. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/.github/workflows/tests.yml +0 -0
  11. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/.gitignore +0 -0
  12. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/.python-version +0 -0
  13. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/.vale.ini +0 -0
  14. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/Dockerfile +0 -0
  15. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/LICENSE.md +0 -0
  16. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/README.md +0 -0
  17. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/.vitepress/config.mjs +0 -0
  18. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/.vitepress/theme/custom.css +0 -0
  19. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/.vitepress/theme/index.js +0 -0
  20. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/commands/example-uris.md +0 -0
  21. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/commands/ingest.md +0 -0
  22. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/getting-started/core-concepts.md +0 -0
  23. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/getting-started/incremental-loading.md +0 -0
  24. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/getting-started/quickstart.md +0 -0
  25. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/getting-started/telemetry.md +0 -0
  26. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/index.md +0 -0
  27. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/adjust.md +0 -0
  28. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/airtable.md +0 -0
  29. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/appsflyer.md +0 -0
  30. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/bigquery.md +0 -0
  31. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/chess.md +0 -0
  32. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/csv.md +0 -0
  33. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/databricks.md +0 -0
  34. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/duckdb.md +0 -0
  35. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/facebook-ads.md +0 -0
  36. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/gorgias.md +0 -0
  37. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/gsheets.md +0 -0
  38. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/hubspot.md +0 -0
  39. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/kafka.md +0 -0
  40. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/klaviyo.md +0 -0
  41. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/mongodb.md +0 -0
  42. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/mssql.md +0 -0
  43. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/mysql.md +0 -0
  44. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/notion.md +0 -0
  45. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/oracle.md +0 -0
  46. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/postgres.md +0 -0
  47. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/redshift.md +0 -0
  48. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/s3.md +0 -0
  49. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/sap-hana.md +0 -0
  50. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/shopify.md +0 -0
  51. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/slack.md +0 -0
  52. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/snowflake.md +0 -0
  53. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/sqlite.md +0 -0
  54. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/stripe.md +0 -0
  55. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/docs/supported-sources/zendesk.md +0 -0
  56. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/.gitignore +0 -0
  57. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/adjust/__init__.py +0 -0
  58. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/adjust/adjust_helpers.py +0 -0
  59. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/airtable/__init__.py +0 -0
  60. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/appsflyer/_init_.py +0 -0
  61. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/appsflyer/client.py +0 -0
  62. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/arrow/__init__.py +0 -0
  63. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/chess/__init__.py +0 -0
  64. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/chess/helpers.py +0 -0
  65. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/chess/settings.py +0 -0
  66. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/destinations.py +0 -0
  67. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/facebook_ads/__init__.py +0 -0
  68. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/facebook_ads/exceptions.py +0 -0
  69. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/facebook_ads/helpers.py +0 -0
  70. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/facebook_ads/settings.py +0 -0
  71. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/factory.py +0 -0
  72. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/filesystem/__init__.py +0 -0
  73. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/filesystem/helpers.py +0 -0
  74. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/filesystem/readers.py +0 -0
  75. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/google_sheets/README.md +0 -0
  76. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/google_sheets/__init__.py +0 -0
  77. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
  78. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
  79. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
  80. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/gorgias/__init__.py +0 -0
  81. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/gorgias/helpers.py +0 -0
  82. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/hubspot/__init__.py +0 -0
  83. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/hubspot/helpers.py +0 -0
  84. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/hubspot/settings.py +0 -0
  85. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/kafka/__init__.py +0 -0
  86. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/kafka/helpers.py +0 -0
  87. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/klaviyo/_init_.py +0 -0
  88. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/klaviyo/client.py +0 -0
  89. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/klaviyo/helpers.py +0 -0
  90. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/mongodb/__init__.py +0 -0
  91. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/mongodb/helpers.py +0 -0
  92. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/notion/__init__.py +0 -0
  93. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/notion/helpers/__init__.py +0 -0
  94. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/notion/helpers/client.py +0 -0
  95. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/notion/helpers/database.py +0 -0
  96. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/notion/settings.py +0 -0
  97. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/shopify/__init__.py +0 -0
  98. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/shopify/exceptions.py +0 -0
  99. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/shopify/helpers.py +0 -0
  100. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/shopify/settings.py +0 -0
  101. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/slack/__init__.py +0 -0
  102. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/slack/helpers.py +0 -0
  103. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/slack/settings.py +0 -0
  104. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/stripe_analytics/__init__.py +0 -0
  105. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/stripe_analytics/helpers.py +0 -0
  106. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/stripe_analytics/settings.py +0 -0
  107. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/table_definition.py +0 -0
  108. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/telemetry/event.py +0 -0
  109. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/testdata/fakebqcredentials.json +0 -0
  110. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/zendesk/__init__.py +0 -0
  111. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/zendesk/helpers/__init__.py +0 -0
  112. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
  113. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/zendesk/helpers/credentials.py +0 -0
  114. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
  115. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/src/zendesk/settings.py +0 -0
  116. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/.gitignore +0 -0
  117. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/create_replace.csv +0 -0
  118. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/delete_insert_expected.csv +0 -0
  119. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/delete_insert_part1.csv +0 -0
  120. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/delete_insert_part2.csv +0 -0
  121. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/merge_expected.csv +0 -0
  122. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/merge_part1.csv +0 -0
  123. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/ingestr/testdata/merge_part2.csv +0 -0
  124. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/package-lock.json +0 -0
  125. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/package.json +0 -0
  126. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/pyproject.toml +0 -0
  127. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/requirements-dev.txt +0 -0
  128. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/requirements.txt +0 -0
  129. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/resources/demo.gif +0 -0
  130. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/resources/demo.tape +0 -0
  131. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/resources/ingestr.svg +0 -0
  132. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/AMPM.yml +0 -0
  133. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Acronyms.yml +0 -0
  134. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Colons.yml +0 -0
  135. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Contractions.yml +0 -0
  136. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/DateFormat.yml +0 -0
  137. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Ellipses.yml +0 -0
  138. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/EmDash.yml +0 -0
  139. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Exclamation.yml +0 -0
  140. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/FirstPerson.yml +0 -0
  141. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Gender.yml +0 -0
  142. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/GenderBias.yml +0 -0
  143. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/HeadingPunctuation.yml +0 -0
  144. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Headings.yml +0 -0
  145. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Latin.yml +0 -0
  146. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/LyHyphens.yml +0 -0
  147. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/OptionalPlurals.yml +0 -0
  148. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Ordinal.yml +0 -0
  149. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/OxfordComma.yml +0 -0
  150. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Parens.yml +0 -0
  151. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Passive.yml +0 -0
  152. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Periods.yml +0 -0
  153. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Quotes.yml +0 -0
  154. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Ranges.yml +0 -0
  155. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Semicolons.yml +0 -0
  156. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Slang.yml +0 -0
  157. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Spacing.yml +0 -0
  158. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Spelling.yml +0 -0
  159. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Units.yml +0 -0
  160. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/We.yml +0 -0
  161. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/Will.yml +0 -0
  162. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/WordList.yml +0 -0
  163. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/meta.json +0 -0
  164. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/Google/vocab.txt +0 -0
  165. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/bruin/Ingestr.yml +0 -0
  166. {ingestr-0.10.0rc1 → ingestr-0.10.0rc2}/styles/config/vocabularies/bruin/accept.txt +0 -0
@@ -15,7 +15,7 @@ deps-ci:
15
15
  uv pip install --system -r requirements-dev.txt
16
16
 
17
17
  test-ci:
18
- pytest -n auto -x -rP -vv --tb=short --cov=ingestr --no-cov-on-fail
18
+ TESTCONTAINERS_RYUK_DISABLED=true pytest -n auto -x -rP -vv --tb=short --durations=10 --cov=ingestr --no-cov-on-fail
19
19
 
20
20
  test: venv
21
21
  . venv/bin/activate; $(MAKE) test-ci
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ingestr
3
- Version: 0.10.0rc1
3
+ Version: 0.10.0rc2
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
@@ -8,6 +8,7 @@ from rich.console import Console
8
8
  from rich.status import Status
9
9
  from typing_extensions import Annotated
10
10
 
11
+ from ingestr.src.filters import cast_set_to_list
11
12
  from ingestr.src.telemetry.event import track
12
13
 
13
14
  app = typer.Typer(
@@ -471,6 +472,8 @@ def ingest(
471
472
  sql_limit=sql_limit,
472
473
  )
473
474
 
475
+ dlt_source.add_map(cast_set_to_list)
476
+
474
477
  if original_incremental_strategy == IncrementalStrategy.delete_insert:
475
478
  dlt_source.incremental.primary_key = ()
476
479
 
@@ -501,9 +504,9 @@ def ingest(
501
504
  ),
502
505
  write_disposition=write_disposition, # type: ignore
503
506
  primary_key=(primary_key if primary_key and len(primary_key) > 0 else None), # type: ignore
504
- loader_file_format=loader_file_format.value
505
- if loader_file_format is not None
506
- else None, # type: ignore
507
+ loader_file_format=(
508
+ loader_file_format.value if loader_file_format is not None else None # type: ignore
509
+ ), # type: ignore
507
510
  columns=column_hints,
508
511
  )
509
512
 
@@ -0,0 +1,7 @@
1
+ def cast_set_to_list(row):
2
+ # this handles just the sqlalchemy backend for now
3
+ if isinstance(row, dict):
4
+ for key in row.keys():
5
+ if isinstance(row[key], set):
6
+ row[key] = list(row[key])
7
+ return row
@@ -12,6 +12,8 @@ from dlt.common.time import ensure_pendulum_datetime
12
12
  from dlt.common.typing import TSecretStrValue
13
13
  from dlt.sources.credentials import ConnectionStringCredentials
14
14
  from dlt.sources.sql_database import sql_table
15
+ from sqlalchemy import types as sa
16
+ from sqlalchemy.dialects import mysql
15
17
 
16
18
  from ingestr.src.adjust import REQUIRED_CUSTOM_DIMENSIONS, adjust_source
17
19
  from ingestr.src.adjust.adjust_helpers import parse_filters
@@ -75,6 +77,11 @@ class SqlSource:
75
77
  def query_adapter_callback(query, table):
76
78
  return query.limit(kwargs.get("sql_limit"))
77
79
 
80
+ def type_adapter_callback(sql_type):
81
+ if isinstance(sql_type, mysql.SET):
82
+ return sa.JSON
83
+ return sql_type
84
+
78
85
  table_instance = self.table_builder(
79
86
  credentials=ConnectionStringCredentials(uri),
80
87
  schema=table_fields.dataset,
@@ -84,6 +91,7 @@ class SqlSource:
84
91
  chunk_size=kwargs.get("page_size", None),
85
92
  reflection_level=reflection_level,
86
93
  query_adapter_callback=query_adapter_callback,
94
+ type_adapter_callback=type_adapter_callback,
87
95
  )
88
96
 
89
97
  return table_instance
@@ -0,0 +1 @@
1
+ __version__ = "0.10.0rc2"
@@ -1 +0,0 @@
1
- __version__ = "0.10.0rc1"
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