ingestr 0.7.0__tar.gz → 0.7.1__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.
- {ingestr-0.7.0 → ingestr-0.7.1}/PKG-INFO +2 -1
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/main.py +15 -0
- ingestr-0.7.1/ingestr/src/version.py +1 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/requirements.txt +4 -3
- ingestr-0.7.0/ingestr/src/version.py +0 -1
- {ingestr-0.7.0 → ingestr-0.7.1}/.dockerignore +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/.github/workflows/deploy-docs.yml +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/.github/workflows/docker.yml +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/.github/workflows/tests.yml +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/.gitignore +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/.python-version +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/Dockerfile +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/LICENSE.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/Makefile +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/README.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/.vitepress/config.mjs +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/.vitepress/theme/custom.css +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/.vitepress/theme/index.js +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/commands/example-uris.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/commands/ingest.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/getting-started/core-concepts.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/getting-started/incremental-loading.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/getting-started/quickstart.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/getting-started/telemetry.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/index.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/bigquery.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/csv.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/databricks.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/duckdb.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/gorgias.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/gsheets.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/mongodb.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/mssql.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/mysql.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/notion.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/oracle.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/overview.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/postgres.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/redshift.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/sap-hana.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/shopify.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/snowflake.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/docs/supported-sources/sqlite.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/destinations.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/factory.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/google_sheets/README.md +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/google_sheets/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/google_sheets/helpers/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/google_sheets/helpers/api_calls.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/google_sheets/helpers/data_processing.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/gorgias/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/gorgias/helpers.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/mongodb/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/mongodb/helpers.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/notion/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/notion/helpers/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/notion/helpers/client.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/notion/helpers/database.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/notion/settings.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/shopify/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/shopify/exceptions.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/shopify/helpers.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/shopify/settings.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/sources.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/sql_database/__init__.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/sql_database/arrow_helpers.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/sql_database/helpers.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/sql_database/override.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/sql_database/schema_types.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/table_definition.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/telemetry/event.py +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/src/testdata/fakebqcredentials.json +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/.gitignore +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/create_replace.csv +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/delete_insert_expected.csv +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/delete_insert_part1.csv +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/delete_insert_part2.csv +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/merge_expected.csv +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/merge_part1.csv +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/ingestr/testdata/merge_part2.csv +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/package-lock.json +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/package.json +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/pyproject.toml +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/requirements-dev.txt +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/resources/demo.gif +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/resources/demo.tape +0 -0
- {ingestr-0.7.0 → ingestr-0.7.1}/resources/ingestr.svg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: ingestr
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.1
|
|
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
|
|
@@ -14,6 +14,7 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3
|
|
15
15
|
Classifier: Topic :: Database
|
|
16
16
|
Requires-Python: >=3.9
|
|
17
|
+
Requires-Dist: connectorx==0.3.3
|
|
17
18
|
Requires-Dist: cx-oracle==8.3.0
|
|
18
19
|
Requires-Dist: databricks-sql-connector==2.9.3
|
|
19
20
|
Requires-Dist: dlt==0.5.1
|
|
@@ -104,6 +104,7 @@ class LoaderFileFormat(str, Enum):
|
|
|
104
104
|
class SqlBackend(str, Enum):
|
|
105
105
|
sqlalchemy = "sqlalchemy"
|
|
106
106
|
pyarrow = "pyarrow"
|
|
107
|
+
connectorx = "connectorx"
|
|
107
108
|
|
|
108
109
|
|
|
109
110
|
class Progress(str, Enum):
|
|
@@ -111,6 +112,11 @@ class Progress(str, Enum):
|
|
|
111
112
|
log = "log"
|
|
112
113
|
|
|
113
114
|
|
|
115
|
+
class SchemaNaming(str, Enum):
|
|
116
|
+
default = "default"
|
|
117
|
+
direct = "direct"
|
|
118
|
+
|
|
119
|
+
|
|
114
120
|
@app.command()
|
|
115
121
|
def ingest(
|
|
116
122
|
source_uri: Annotated[
|
|
@@ -223,6 +229,13 @@ def ingest(
|
|
|
223
229
|
envvar="LOADER_FILE_SIZE",
|
|
224
230
|
),
|
|
225
231
|
] = 100000, # type: ignore
|
|
232
|
+
schema_naming: Annotated[
|
|
233
|
+
SchemaNaming,
|
|
234
|
+
typer.Option(
|
|
235
|
+
help="The naming convention to use when moving the tables from source to destination. The default behavior is explained here: https://dlthub.com/docs/general-usage/schema#naming-convention",
|
|
236
|
+
envvar="SCHEMA_NAMING",
|
|
237
|
+
),
|
|
238
|
+
] = SchemaNaming.default, # type: ignore
|
|
226
239
|
):
|
|
227
240
|
track(
|
|
228
241
|
"command_triggered",
|
|
@@ -234,6 +247,8 @@ def ingest(
|
|
|
234
247
|
dlt.config["normalize.parquet_normalizer.add_dlt_load_id"] = True
|
|
235
248
|
dlt.config["normalize.parquet_normalizer.add_dlt_id"] = True
|
|
236
249
|
dlt.config["data_writer.file_max_items"] = loader_file_size
|
|
250
|
+
if schema_naming != SchemaNaming.default:
|
|
251
|
+
dlt.config["schema.naming"] = schema_naming.value
|
|
237
252
|
|
|
238
253
|
try:
|
|
239
254
|
if not dest_table:
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.7.1"
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
connectorx==0.3.3
|
|
1
2
|
cx_Oracle==8.3.0
|
|
2
3
|
databricks-sql-connector==2.9.3
|
|
3
4
|
dlt==0.5.1
|
|
4
5
|
duckdb_engine==0.11.5
|
|
5
6
|
duckdb==0.10.2
|
|
6
|
-
google-cloud-bigquery-storage==2.24.0
|
|
7
7
|
google-api-python-client==2.130.0
|
|
8
|
+
google-cloud-bigquery-storage==2.24.0
|
|
9
|
+
mysql-connector-python==9.0.0
|
|
8
10
|
pendulum==3.0.0
|
|
9
11
|
psycopg2-binary==2.9.9
|
|
10
12
|
py-machineid==0.5.1
|
|
@@ -17,10 +19,9 @@ rich==13.7.1
|
|
|
17
19
|
rudder-sdk-python==2.1.0
|
|
18
20
|
snowflake-sqlalchemy==1.5.3
|
|
19
21
|
sqlalchemy-bigquery==1.11.0
|
|
22
|
+
sqlalchemy-hana==2.0.0
|
|
20
23
|
sqlalchemy-redshift==0.8.14
|
|
21
24
|
SQLAlchemy==1.4.52
|
|
22
25
|
sqlalchemy2-stubs==0.0.2a38
|
|
23
26
|
tqdm==4.66.2
|
|
24
27
|
typer==0.12.3
|
|
25
|
-
sqlalchemy-hana==2.0.0
|
|
26
|
-
mysql-connector-python==9.0.0
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "0.7.0"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|