ingestr 0.10.0rc0__tar.gz → 0.10.0rc1__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 (165) hide show
  1. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/Makefile +1 -1
  2. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/PKG-INFO +1 -1
  3. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/main.py +22 -1
  4. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/sources.py +10 -0
  5. ingestr-0.10.0rc1/ingestr/src/version.py +1 -0
  6. ingestr-0.10.0rc0/ingestr/src/version.py +0 -1
  7. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/.dockerignore +0 -0
  8. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/.github/workflows/deploy-docs.yml +0 -0
  9. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/.github/workflows/tests.yml +0 -0
  10. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/.gitignore +0 -0
  11. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/.python-version +0 -0
  12. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/.vale.ini +0 -0
  13. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/Dockerfile +0 -0
  14. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/LICENSE.md +0 -0
  15. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/README.md +0 -0
  16. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/.vitepress/config.mjs +0 -0
  17. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/.vitepress/theme/custom.css +0 -0
  18. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/.vitepress/theme/index.js +0 -0
  19. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/commands/example-uris.md +0 -0
  20. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/commands/ingest.md +0 -0
  21. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/getting-started/core-concepts.md +0 -0
  22. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/getting-started/incremental-loading.md +0 -0
  23. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/getting-started/quickstart.md +0 -0
  24. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/getting-started/telemetry.md +0 -0
  25. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/index.md +0 -0
  26. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/adjust.md +0 -0
  27. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/airtable.md +0 -0
  28. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/appsflyer.md +0 -0
  29. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/bigquery.md +0 -0
  30. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/chess.md +0 -0
  31. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/csv.md +0 -0
  32. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/databricks.md +0 -0
  33. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/duckdb.md +0 -0
  34. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/facebook-ads.md +0 -0
  35. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/gorgias.md +0 -0
  36. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/gsheets.md +0 -0
  37. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/hubspot.md +0 -0
  38. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/kafka.md +0 -0
  39. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/klaviyo.md +0 -0
  40. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/mongodb.md +0 -0
  41. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/mssql.md +0 -0
  42. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/mysql.md +0 -0
  43. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/notion.md +0 -0
  44. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/oracle.md +0 -0
  45. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/postgres.md +0 -0
  46. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/redshift.md +0 -0
  47. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/s3.md +0 -0
  48. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/sap-hana.md +0 -0
  49. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/shopify.md +0 -0
  50. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/slack.md +0 -0
  51. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/snowflake.md +0 -0
  52. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/sqlite.md +0 -0
  53. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/stripe.md +0 -0
  54. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/docs/supported-sources/zendesk.md +0 -0
  55. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/.gitignore +0 -0
  56. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/adjust/__init__.py +0 -0
  57. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/adjust/adjust_helpers.py +0 -0
  58. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/airtable/__init__.py +0 -0
  59. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/appsflyer/_init_.py +0 -0
  60. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/appsflyer/client.py +0 -0
  61. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/arrow/__init__.py +0 -0
  62. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/chess/__init__.py +0 -0
  63. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/chess/helpers.py +0 -0
  64. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/chess/settings.py +0 -0
  65. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/destinations.py +0 -0
  66. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/facebook_ads/__init__.py +0 -0
  67. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/facebook_ads/exceptions.py +0 -0
  68. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/facebook_ads/helpers.py +0 -0
  69. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/facebook_ads/settings.py +0 -0
  70. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/factory.py +0 -0
  71. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/filesystem/__init__.py +0 -0
  72. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/filesystem/helpers.py +0 -0
  73. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/filesystem/readers.py +0 -0
  74. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/google_sheets/README.md +0 -0
  75. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/google_sheets/__init__.py +0 -0
  76. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
  77. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
  78. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
  79. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/gorgias/__init__.py +0 -0
  80. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/gorgias/helpers.py +0 -0
  81. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/hubspot/__init__.py +0 -0
  82. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/hubspot/helpers.py +0 -0
  83. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/hubspot/settings.py +0 -0
  84. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/kafka/__init__.py +0 -0
  85. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/kafka/helpers.py +0 -0
  86. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/klaviyo/_init_.py +0 -0
  87. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/klaviyo/client.py +0 -0
  88. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/klaviyo/helpers.py +0 -0
  89. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/mongodb/__init__.py +0 -0
  90. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/mongodb/helpers.py +0 -0
  91. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/notion/__init__.py +0 -0
  92. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/notion/helpers/__init__.py +0 -0
  93. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/notion/helpers/client.py +0 -0
  94. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/notion/helpers/database.py +0 -0
  95. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/notion/settings.py +0 -0
  96. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/shopify/__init__.py +0 -0
  97. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/shopify/exceptions.py +0 -0
  98. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/shopify/helpers.py +0 -0
  99. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/shopify/settings.py +0 -0
  100. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/slack/__init__.py +0 -0
  101. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/slack/helpers.py +0 -0
  102. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/slack/settings.py +0 -0
  103. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/stripe_analytics/__init__.py +0 -0
  104. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/stripe_analytics/helpers.py +0 -0
  105. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/stripe_analytics/settings.py +0 -0
  106. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/table_definition.py +0 -0
  107. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/telemetry/event.py +0 -0
  108. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/testdata/fakebqcredentials.json +0 -0
  109. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/zendesk/__init__.py +0 -0
  110. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/zendesk/helpers/__init__.py +0 -0
  111. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/zendesk/helpers/api_helpers.py +0 -0
  112. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/zendesk/helpers/credentials.py +0 -0
  113. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/zendesk/helpers/talk_api.py +0 -0
  114. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/src/zendesk/settings.py +0 -0
  115. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/.gitignore +0 -0
  116. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/create_replace.csv +0 -0
  117. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/delete_insert_expected.csv +0 -0
  118. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/delete_insert_part1.csv +0 -0
  119. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/delete_insert_part2.csv +0 -0
  120. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/merge_expected.csv +0 -0
  121. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/merge_part1.csv +0 -0
  122. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/ingestr/testdata/merge_part2.csv +0 -0
  123. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/package-lock.json +0 -0
  124. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/package.json +0 -0
  125. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/pyproject.toml +0 -0
  126. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/requirements-dev.txt +0 -0
  127. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/requirements.txt +0 -0
  128. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/resources/demo.gif +0 -0
  129. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/resources/demo.tape +0 -0
  130. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/resources/ingestr.svg +0 -0
  131. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/AMPM.yml +0 -0
  132. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Acronyms.yml +0 -0
  133. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Colons.yml +0 -0
  134. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Contractions.yml +0 -0
  135. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/DateFormat.yml +0 -0
  136. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Ellipses.yml +0 -0
  137. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/EmDash.yml +0 -0
  138. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Exclamation.yml +0 -0
  139. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/FirstPerson.yml +0 -0
  140. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Gender.yml +0 -0
  141. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/GenderBias.yml +0 -0
  142. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/HeadingPunctuation.yml +0 -0
  143. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Headings.yml +0 -0
  144. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Latin.yml +0 -0
  145. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/LyHyphens.yml +0 -0
  146. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/OptionalPlurals.yml +0 -0
  147. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Ordinal.yml +0 -0
  148. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/OxfordComma.yml +0 -0
  149. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Parens.yml +0 -0
  150. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Passive.yml +0 -0
  151. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Periods.yml +0 -0
  152. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Quotes.yml +0 -0
  153. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Ranges.yml +0 -0
  154. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Semicolons.yml +0 -0
  155. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Slang.yml +0 -0
  156. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Spacing.yml +0 -0
  157. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Spelling.yml +0 -0
  158. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Units.yml +0 -0
  159. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/We.yml +0 -0
  160. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/Will.yml +0 -0
  161. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/WordList.yml +0 -0
  162. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/meta.json +0 -0
  163. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/Google/vocab.txt +0 -0
  164. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/styles/bruin/Ingestr.yml +0 -0
  165. {ingestr-0.10.0rc0 → ingestr-0.10.0rc1}/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 logical -x -rP -vv --tb=short --cov=ingestr --no-cov-on-fail
18
+ pytest -n auto -x -rP -vv --tb=short --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.0rc0
3
+ Version: 0.10.0rc1
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
@@ -112,6 +112,12 @@ class SchemaNaming(str, Enum):
112
112
  direct = "direct"
113
113
 
114
114
 
115
+ class SqlReflectionLevel(str, Enum):
116
+ minimal = "minimal"
117
+ full = "full"
118
+ full_with_precision = "full_with_precision"
119
+
120
+
115
121
  @app.command()
116
122
  def ingest(
117
123
  source_uri: Annotated[
@@ -259,6 +265,20 @@ def ingest(
259
265
  envvar="EXTRACT_PARALLELISM",
260
266
  ),
261
267
  ] = 5, # type: ignore
268
+ sql_reflection_level: Annotated[
269
+ SqlReflectionLevel,
270
+ typer.Option(
271
+ help="The reflection level to use when reflecting the table schema from the source",
272
+ envvar="SQL_REFLECTION_LEVEL",
273
+ ),
274
+ ] = SqlReflectionLevel.full, # type: ignore
275
+ sql_limit: Annotated[
276
+ Optional[int],
277
+ typer.Option(
278
+ help="The limit to use when fetching data from the source",
279
+ envvar="SQL_LIMIT",
280
+ ),
281
+ ] = None, # type: ignore
262
282
  ):
263
283
  import hashlib
264
284
  import tempfile
@@ -447,6 +467,8 @@ def ingest(
447
467
  interval_end=interval_end,
448
468
  sql_backend=sql_backend.value,
449
469
  page_size=page_size,
470
+ sql_reflection_level=sql_reflection_level.value,
471
+ sql_limit=sql_limit,
450
472
  )
451
473
 
452
474
  if original_incremental_strategy == IncrementalStrategy.delete_insert:
@@ -494,7 +516,6 @@ def ingest(
494
516
  elapsed = end_time - start_time
495
517
  elapsedHuman = f"in {humanize.precisedelta(elapsed)}"
496
518
 
497
- # remove the pipelines_dir folder if it was created by ingestr
498
519
  if is_pipelines_dir_temp:
499
520
  import shutil
500
521
 
@@ -67,6 +67,14 @@ class SqlSource:
67
67
  if uri.startswith("mysql://"):
68
68
  uri = uri.replace("mysql://", "mysql+pymysql://")
69
69
 
70
+ reflection_level = kwargs.get("sql_reflection_level")
71
+
72
+ query_adapter_callback = None
73
+ if kwargs.get("sql_limit"):
74
+
75
+ def query_adapter_callback(query, table):
76
+ return query.limit(kwargs.get("sql_limit"))
77
+
70
78
  table_instance = self.table_builder(
71
79
  credentials=ConnectionStringCredentials(uri),
72
80
  schema=table_fields.dataset,
@@ -74,6 +82,8 @@ class SqlSource:
74
82
  incremental=incremental,
75
83
  backend=kwargs.get("sql_backend", "sqlalchemy"),
76
84
  chunk_size=kwargs.get("page_size", None),
85
+ reflection_level=reflection_level,
86
+ query_adapter_callback=query_adapter_callback,
77
87
  )
78
88
 
79
89
  return table_instance
@@ -0,0 +1 @@
1
+ __version__ = "0.10.0rc1"
@@ -1 +0,0 @@
1
- __version__ = "0.10.0rc0"
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