etlplus 0.4.5__tar.gz → 0.6.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.
- {etlplus-0.4.5 → etlplus-0.6.1}/.pre-commit-config.yaml +5 -1
- etlplus-0.6.1/MANIFEST.in +12 -0
- {etlplus-0.4.5/etlplus.egg-info → etlplus-0.6.1}/PKG-INFO +62 -1
- {etlplus-0.4.5 → etlplus-0.6.1}/README.md +61 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/docs/pipeline-guide.md +8 -7
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/cli/app.py +257 -129
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/cli/handlers.py +244 -135
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/cli/main.py +205 -50
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/config/pipeline.py +11 -0
- etlplus-0.6.1/etlplus/database/__init__.py +23 -0
- etlplus-0.6.1/etlplus/database/ddl.py +311 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/run.py +2 -4
- etlplus-0.6.1/etlplus/templates/__init__.py +5 -0
- etlplus-0.6.1/etlplus/templates/ddl.sql.j2 +128 -0
- etlplus-0.6.1/etlplus/templates/view.sql.j2 +69 -0
- {etlplus-0.4.5 → etlplus-0.6.1/etlplus.egg-info}/PKG-INFO +62 -1
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus.egg-info/SOURCES.txt +8 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/README.md +4 -4
- etlplus-0.6.1/examples/configs/ddl_spec.yml +67 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/pyproject.toml +1 -1
- {etlplus-0.4.5 → etlplus-0.6.1}/setup.py +4 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_pipeline_smoke.py +4 -3
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/cli/test_u_cli_app.py +254 -202
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/cli/test_u_cli_handlers.py +182 -90
- etlplus-0.6.1/tests/unit/cli/test_u_cli_main.py +293 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/config/test_u_pipeline.py +30 -0
- etlplus-0.6.1/tests/unit/database/test_u_database_ddl.py +265 -0
- etlplus-0.4.5/tests/unit/cli/test_u_cli_main.py +0 -170
- {etlplus-0.4.5 → etlplus-0.6.1}/.coveragerc +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/.editorconfig +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/.gitattributes +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/.github/actions/python-bootstrap/action.yml +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/.github/workflows/ci.yml +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/.gitignore +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/.ruff.toml +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/CODE_OF_CONDUCT.md +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/CONTRIBUTING.md +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/DEMO.md +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/LICENSE +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/Makefile +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/REFERENCES.md +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/docs/snippets/installation_version.md +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/__main__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/__version__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/README.md +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/auth.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/config.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/endpoint_client.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/errors.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/pagination/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/pagination/client.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/pagination/config.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/pagination/paginator.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/rate_limiting/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/rate_limiting/config.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/rate_limiting/rate_limiter.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/request_manager.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/retry_manager.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/transport.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/api/types.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/cli/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/config/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/config/connector.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/config/jobs.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/config/profile.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/config/types.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/config/utils.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/enums.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/extract.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/file.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/load.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/mixins.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/py.typed +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/run_helpers.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/transform.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/types.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/utils.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/validate.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/validation/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus/validation/utils.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus.egg-info/dependency_links.txt +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus.egg-info/entry_points.txt +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus.egg-info/requires.txt +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/etlplus.egg-info/top_level.txt +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/configs/pipeline.yml +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/data/sample.csv +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/data/sample.json +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/data/sample.xml +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/data/sample.xsd +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/data/sample.yaml +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/examples/quickstart_python.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/pytest.ini +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/setup.cfg +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/__init__.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/conftest.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/conftest.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_cli.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_examples_data_parity.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_pagination_strategy.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_pipeline_yaml_load.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_run.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_run_profile_pagination_defaults.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/integration/test_i_run_profile_rate_limit_defaults.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/conftest.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_auth.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_config.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_endpoint_client.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_mocks.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_pagination_client.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_pagination_config.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_paginator.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_rate_limit_config.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_rate_limiter.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_request_manager.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_retry_manager.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_transport.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/api/test_u_types.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/cli/conftest.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/config/test_u_config_utils.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/config/test_u_connector.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/config/test_u_jobs.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/conftest.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_enums.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_extract.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_file.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_load.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_main.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_mixins.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_run.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_run_helpers.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_transform.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_utils.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_validate.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/test_u_version.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tests/unit/validation/test_u_validation_utils.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tools/run_pipeline.py +0 -0
- {etlplus-0.4.5 → etlplus-0.6.1}/tools/update_demo_snippets.py +0 -0
|
@@ -159,7 +159,11 @@ repos:
|
|
|
159
159
|
rev: v1.19.0
|
|
160
160
|
hooks:
|
|
161
161
|
- id: mypy
|
|
162
|
-
args:
|
|
162
|
+
args:
|
|
163
|
+
- --cache-dir=.mypy_cache/pre-commit
|
|
164
|
+
- --ignore-missing-imports
|
|
165
|
+
- --install-types
|
|
166
|
+
- --non-interactive
|
|
163
167
|
|
|
164
168
|
- repo: https://github.com/pycqa/flake8
|
|
165
169
|
rev: 7.3.0
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# MANIFEST.in
|
|
2
|
+
# ETLPlus
|
|
3
|
+
#
|
|
4
|
+
# Copyright © 2026 Dagitali LLC. All rights reserved.
|
|
5
|
+
#
|
|
6
|
+
# Contains commands that allow lists of files to be discovered and manipulated.
|
|
7
|
+
#
|
|
8
|
+
# See:
|
|
9
|
+
# 1. https://setuptools.pypa.io/en/latest/userguide/miscellaneous.html
|
|
10
|
+
|
|
11
|
+
# Include Jinja template files in the etlplus package
|
|
12
|
+
recursive-include etlplus/templates *.j2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: etlplus
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: A Swiss Army knife for simple ETL operations
|
|
5
5
|
Home-page: https://github.com/Dagitali/ETLPlus
|
|
6
6
|
Author: ETLPlus Team
|
|
@@ -61,6 +61,8 @@ package and command-line interface for data extraction, validation, transformati
|
|
|
61
61
|
- [Quickstart](#quickstart)
|
|
62
62
|
- [Usage](#usage)
|
|
63
63
|
- [Command Line Interface](#command-line-interface)
|
|
64
|
+
- [Inspect Pipelines](#inspect-pipelines)
|
|
65
|
+
- [Render SQL DDL](#render-sql-ddl)
|
|
64
66
|
- [Extract Data](#extract-data)
|
|
65
67
|
- [Validate Data](#validate-data)
|
|
66
68
|
- [Transform Data](#transform-data)
|
|
@@ -88,6 +90,14 @@ package and command-line interface for data extraction, validation, transformati
|
|
|
88
90
|
|
|
89
91
|
## Features
|
|
90
92
|
|
|
93
|
+
- **Check** data pipeline definitions before running them:
|
|
94
|
+
- Summarize jobs, sources, targets, and transforms
|
|
95
|
+
- Confirm configuration changes by printing focused sections on demand
|
|
96
|
+
|
|
97
|
+
- **Render** SQL DDL from shared table specs:
|
|
98
|
+
- Generate CREATE TABLE or view statements
|
|
99
|
+
- Swap templates or direct output to files for database migrations
|
|
100
|
+
|
|
91
101
|
- **Extract** data from multiple sources:
|
|
92
102
|
- Files (CSV, JSON, XML, YAML)
|
|
93
103
|
- Databases (connection string support)
|
|
@@ -169,6 +179,44 @@ etlplus --help
|
|
|
169
179
|
etlplus --version
|
|
170
180
|
```
|
|
171
181
|
|
|
182
|
+
#### Check Pipelines
|
|
183
|
+
|
|
184
|
+
Use `etlplus check` to explore pipeline YAML definitions without running them. The command can print
|
|
185
|
+
job names, summarize configured sources and targets, or drill into specific sections.
|
|
186
|
+
|
|
187
|
+
List jobs and show a pipeline summary:
|
|
188
|
+
```bash
|
|
189
|
+
etlplus check --config examples/configs/pipeline.yml --jobs
|
|
190
|
+
etlplus check --config examples/configs/pipeline.yml --summary
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Show sources or transforms for troubleshooting:
|
|
194
|
+
```bash
|
|
195
|
+
etlplus check --config examples/configs/pipeline.yml --sources
|
|
196
|
+
etlplus check --config examples/configs/pipeline.yml --transforms
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
#### Render SQL DDL
|
|
200
|
+
|
|
201
|
+
Use `etlplus render` to turn table schema specs into ready-to-run SQL. Render from a pipeline config
|
|
202
|
+
or from a standalone schema file, and choose the built-in `ddl` or `view` templates (or provide your
|
|
203
|
+
own).
|
|
204
|
+
|
|
205
|
+
Render all tables defined in a pipeline:
|
|
206
|
+
```bash
|
|
207
|
+
etlplus render --config examples/configs/pipeline.yml --template ddl
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Render a single table in that pipeline:
|
|
211
|
+
```bash
|
|
212
|
+
etlplus render --config examples/configs/pipeline.yml --table customers --template view
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Render from a standalone table spec to a file:
|
|
216
|
+
```bash
|
|
217
|
+
etlplus render --spec schemas/customer.yml --template view -o temp/customer_view.sql
|
|
218
|
+
```
|
|
219
|
+
|
|
172
220
|
#### Extract Data
|
|
173
221
|
|
|
174
222
|
Note: For file sources, the format is normally inferred from the filename extension. Use
|
|
@@ -306,6 +354,19 @@ For YAML-driven pipelines executed end-to-end (extract → validate → transfor
|
|
|
306
354
|
- Authoring: [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
|
|
307
355
|
- Runner API and internals: [`docs/run-module.md`](docs/run-module.md)
|
|
308
356
|
|
|
357
|
+
CLI quick reference for pipelines:
|
|
358
|
+
|
|
359
|
+
```bash
|
|
360
|
+
# List jobs or show a pipeline summary
|
|
361
|
+
etlplus check --config examples/configs/pipeline.yml --jobs
|
|
362
|
+
etlplus check --config examples/configs/pipeline.yml --summary
|
|
363
|
+
|
|
364
|
+
# Run a job
|
|
365
|
+
etlplus run --config examples/configs/pipeline.yml --job file_to_file_customers
|
|
366
|
+
|
|
367
|
+
# Deprecated shim (will be removed): etlplus pipeline
|
|
368
|
+
```
|
|
369
|
+
|
|
309
370
|
### Complete ETL Pipeline Example
|
|
310
371
|
|
|
311
372
|
```bash
|
|
@@ -19,6 +19,8 @@ package and command-line interface for data extraction, validation, transformati
|
|
|
19
19
|
- [Quickstart](#quickstart)
|
|
20
20
|
- [Usage](#usage)
|
|
21
21
|
- [Command Line Interface](#command-line-interface)
|
|
22
|
+
- [Inspect Pipelines](#inspect-pipelines)
|
|
23
|
+
- [Render SQL DDL](#render-sql-ddl)
|
|
22
24
|
- [Extract Data](#extract-data)
|
|
23
25
|
- [Validate Data](#validate-data)
|
|
24
26
|
- [Transform Data](#transform-data)
|
|
@@ -46,6 +48,14 @@ package and command-line interface for data extraction, validation, transformati
|
|
|
46
48
|
|
|
47
49
|
## Features
|
|
48
50
|
|
|
51
|
+
- **Check** data pipeline definitions before running them:
|
|
52
|
+
- Summarize jobs, sources, targets, and transforms
|
|
53
|
+
- Confirm configuration changes by printing focused sections on demand
|
|
54
|
+
|
|
55
|
+
- **Render** SQL DDL from shared table specs:
|
|
56
|
+
- Generate CREATE TABLE or view statements
|
|
57
|
+
- Swap templates or direct output to files for database migrations
|
|
58
|
+
|
|
49
59
|
- **Extract** data from multiple sources:
|
|
50
60
|
- Files (CSV, JSON, XML, YAML)
|
|
51
61
|
- Databases (connection string support)
|
|
@@ -127,6 +137,44 @@ etlplus --help
|
|
|
127
137
|
etlplus --version
|
|
128
138
|
```
|
|
129
139
|
|
|
140
|
+
#### Check Pipelines
|
|
141
|
+
|
|
142
|
+
Use `etlplus check` to explore pipeline YAML definitions without running them. The command can print
|
|
143
|
+
job names, summarize configured sources and targets, or drill into specific sections.
|
|
144
|
+
|
|
145
|
+
List jobs and show a pipeline summary:
|
|
146
|
+
```bash
|
|
147
|
+
etlplus check --config examples/configs/pipeline.yml --jobs
|
|
148
|
+
etlplus check --config examples/configs/pipeline.yml --summary
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Show sources or transforms for troubleshooting:
|
|
152
|
+
```bash
|
|
153
|
+
etlplus check --config examples/configs/pipeline.yml --sources
|
|
154
|
+
etlplus check --config examples/configs/pipeline.yml --transforms
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### Render SQL DDL
|
|
158
|
+
|
|
159
|
+
Use `etlplus render` to turn table schema specs into ready-to-run SQL. Render from a pipeline config
|
|
160
|
+
or from a standalone schema file, and choose the built-in `ddl` or `view` templates (or provide your
|
|
161
|
+
own).
|
|
162
|
+
|
|
163
|
+
Render all tables defined in a pipeline:
|
|
164
|
+
```bash
|
|
165
|
+
etlplus render --config examples/configs/pipeline.yml --template ddl
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Render a single table in that pipeline:
|
|
169
|
+
```bash
|
|
170
|
+
etlplus render --config examples/configs/pipeline.yml --table customers --template view
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Render from a standalone table spec to a file:
|
|
174
|
+
```bash
|
|
175
|
+
etlplus render --spec schemas/customer.yml --template view -o temp/customer_view.sql
|
|
176
|
+
```
|
|
177
|
+
|
|
130
178
|
#### Extract Data
|
|
131
179
|
|
|
132
180
|
Note: For file sources, the format is normally inferred from the filename extension. Use
|
|
@@ -264,6 +312,19 @@ For YAML-driven pipelines executed end-to-end (extract → validate → transfor
|
|
|
264
312
|
- Authoring: [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
|
|
265
313
|
- Runner API and internals: [`docs/run-module.md`](docs/run-module.md)
|
|
266
314
|
|
|
315
|
+
CLI quick reference for pipelines:
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# List jobs or show a pipeline summary
|
|
319
|
+
etlplus check --config examples/configs/pipeline.yml --jobs
|
|
320
|
+
etlplus check --config examples/configs/pipeline.yml --summary
|
|
321
|
+
|
|
322
|
+
# Run a job
|
|
323
|
+
etlplus run --config examples/configs/pipeline.yml --job file_to_file_customers
|
|
324
|
+
|
|
325
|
+
# Deprecated shim (will be removed): etlplus pipeline
|
|
326
|
+
```
|
|
327
|
+
|
|
267
328
|
### Complete ETL Pipeline Example
|
|
268
329
|
|
|
269
330
|
```bash
|
|
@@ -378,31 +378,32 @@ jobs:
|
|
|
378
378
|
Once you have a pipeline YAML, you can run jobs either from the
|
|
379
379
|
command line or directly from Python.
|
|
380
380
|
|
|
381
|
-
### CLI: `etlplus
|
|
381
|
+
### CLI: `etlplus check` (inspect) and `etlplus run` (execute)
|
|
382
382
|
|
|
383
|
-
List jobs
|
|
383
|
+
List jobs or show a summary from a pipeline file:
|
|
384
384
|
|
|
385
385
|
```bash
|
|
386
|
-
etlplus
|
|
386
|
+
etlplus check --config examples/configs/pipeline.yml --jobs
|
|
387
|
+
etlplus check --config examples/configs/pipeline.yml --summary
|
|
387
388
|
```
|
|
388
389
|
|
|
389
390
|
Run a specific job end-to-end (extract → validate → transform → load):
|
|
390
391
|
|
|
391
392
|
```bash
|
|
392
|
-
etlplus pipeline --config examples/configs/pipeline.yml --run file_to_file_customers
|
|
393
|
-
|
|
394
|
-
# Equivalent, using the dedicated run command
|
|
395
393
|
etlplus run --config examples/configs/pipeline.yml --job file_to_file_customers
|
|
396
394
|
```
|
|
397
395
|
|
|
398
396
|
Notes:
|
|
399
397
|
|
|
400
|
-
-
|
|
398
|
+
- These commands read the same YAML schema described in this guide.
|
|
401
399
|
- Environment-variable substitution (e.g. `${GITHUB_TOKEN}`) is applied the same way as when loading
|
|
402
400
|
configs via the Python API.
|
|
403
401
|
- For more details on the orchestration implementation, see
|
|
404
402
|
[Runner internals: etlplus.run](run-module.md).
|
|
405
403
|
|
|
404
|
+
Deprecated: `etlplus pipeline` is still available as a shim but will be removed in a future release;
|
|
405
|
+
prefer `check` and `run`.
|
|
406
|
+
|
|
406
407
|
### Python: `etlplus.run.run`
|
|
407
408
|
|
|
408
409
|
To trigger a job programmatically, use the high-level runner function exposed by the package:
|