etlplus 0.4.5__tar.gz → 0.5.5__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.
Files changed (137) hide show
  1. {etlplus-0.4.5 → etlplus-0.5.5}/.pre-commit-config.yaml +5 -1
  2. etlplus-0.5.5/MANIFEST.in +12 -0
  3. {etlplus-0.4.5/etlplus.egg-info → etlplus-0.5.5}/PKG-INFO +62 -1
  4. {etlplus-0.4.5 → etlplus-0.5.5}/README.md +61 -0
  5. {etlplus-0.4.5 → etlplus-0.5.5}/docs/pipeline-guide.md +8 -7
  6. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/cli/app.py +257 -129
  7. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/cli/handlers.py +244 -135
  8. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/cli/main.py +205 -50
  9. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/config/pipeline.py +11 -0
  10. etlplus-0.5.5/etlplus/ddl.py +197 -0
  11. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/run.py +2 -4
  12. etlplus-0.5.5/etlplus/templates/__init__.py +5 -0
  13. etlplus-0.5.5/etlplus/templates/ddl.sql.j2 +128 -0
  14. etlplus-0.5.5/etlplus/templates/view.sql.j2 +69 -0
  15. {etlplus-0.4.5 → etlplus-0.5.5/etlplus.egg-info}/PKG-INFO +62 -1
  16. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus.egg-info/SOURCES.txt +6 -0
  17. {etlplus-0.4.5 → etlplus-0.5.5}/examples/README.md +4 -4
  18. etlplus-0.5.5/examples/configs/ddl_spec.yml +67 -0
  19. {etlplus-0.4.5 → etlplus-0.5.5}/pyproject.toml +1 -1
  20. {etlplus-0.4.5 → etlplus-0.5.5}/setup.py +4 -0
  21. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_pipeline_smoke.py +4 -3
  22. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/cli/test_u_cli_app.py +253 -201
  23. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/cli/test_u_cli_handlers.py +181 -89
  24. etlplus-0.5.5/tests/unit/cli/test_u_cli_main.py +293 -0
  25. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/config/test_u_pipeline.py +30 -0
  26. etlplus-0.4.5/tests/unit/cli/test_u_cli_main.py +0 -170
  27. {etlplus-0.4.5 → etlplus-0.5.5}/.coveragerc +0 -0
  28. {etlplus-0.4.5 → etlplus-0.5.5}/.editorconfig +0 -0
  29. {etlplus-0.4.5 → etlplus-0.5.5}/.gitattributes +0 -0
  30. {etlplus-0.4.5 → etlplus-0.5.5}/.github/actions/python-bootstrap/action.yml +0 -0
  31. {etlplus-0.4.5 → etlplus-0.5.5}/.github/workflows/ci.yml +0 -0
  32. {etlplus-0.4.5 → etlplus-0.5.5}/.gitignore +0 -0
  33. {etlplus-0.4.5 → etlplus-0.5.5}/.ruff.toml +0 -0
  34. {etlplus-0.4.5 → etlplus-0.5.5}/CODE_OF_CONDUCT.md +0 -0
  35. {etlplus-0.4.5 → etlplus-0.5.5}/CONTRIBUTING.md +0 -0
  36. {etlplus-0.4.5 → etlplus-0.5.5}/DEMO.md +0 -0
  37. {etlplus-0.4.5 → etlplus-0.5.5}/LICENSE +0 -0
  38. {etlplus-0.4.5 → etlplus-0.5.5}/Makefile +0 -0
  39. {etlplus-0.4.5 → etlplus-0.5.5}/REFERENCES.md +0 -0
  40. {etlplus-0.4.5 → etlplus-0.5.5}/docs/snippets/installation_version.md +0 -0
  41. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/__init__.py +0 -0
  42. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/__main__.py +0 -0
  43. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/__version__.py +0 -0
  44. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/README.md +0 -0
  45. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/__init__.py +0 -0
  46. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/auth.py +0 -0
  47. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/config.py +0 -0
  48. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/endpoint_client.py +0 -0
  49. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/errors.py +0 -0
  50. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/pagination/__init__.py +0 -0
  51. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/pagination/client.py +0 -0
  52. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/pagination/config.py +0 -0
  53. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/pagination/paginator.py +0 -0
  54. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/rate_limiting/__init__.py +0 -0
  55. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/rate_limiting/config.py +0 -0
  56. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/rate_limiting/rate_limiter.py +0 -0
  57. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/request_manager.py +0 -0
  58. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/retry_manager.py +0 -0
  59. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/transport.py +0 -0
  60. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/api/types.py +0 -0
  61. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/cli/__init__.py +0 -0
  62. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/config/__init__.py +0 -0
  63. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/config/connector.py +0 -0
  64. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/config/jobs.py +0 -0
  65. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/config/profile.py +0 -0
  66. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/config/types.py +0 -0
  67. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/config/utils.py +0 -0
  68. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/enums.py +0 -0
  69. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/extract.py +0 -0
  70. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/file.py +0 -0
  71. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/load.py +0 -0
  72. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/mixins.py +0 -0
  73. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/py.typed +0 -0
  74. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/run_helpers.py +0 -0
  75. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/transform.py +0 -0
  76. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/types.py +0 -0
  77. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/utils.py +0 -0
  78. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/validate.py +0 -0
  79. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/validation/__init__.py +0 -0
  80. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus/validation/utils.py +0 -0
  81. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus.egg-info/dependency_links.txt +0 -0
  82. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus.egg-info/entry_points.txt +0 -0
  83. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus.egg-info/requires.txt +0 -0
  84. {etlplus-0.4.5 → etlplus-0.5.5}/etlplus.egg-info/top_level.txt +0 -0
  85. {etlplus-0.4.5 → etlplus-0.5.5}/examples/configs/pipeline.yml +0 -0
  86. {etlplus-0.4.5 → etlplus-0.5.5}/examples/data/sample.csv +0 -0
  87. {etlplus-0.4.5 → etlplus-0.5.5}/examples/data/sample.json +0 -0
  88. {etlplus-0.4.5 → etlplus-0.5.5}/examples/data/sample.xml +0 -0
  89. {etlplus-0.4.5 → etlplus-0.5.5}/examples/data/sample.xsd +0 -0
  90. {etlplus-0.4.5 → etlplus-0.5.5}/examples/data/sample.yaml +0 -0
  91. {etlplus-0.4.5 → etlplus-0.5.5}/examples/quickstart_python.py +0 -0
  92. {etlplus-0.4.5 → etlplus-0.5.5}/pytest.ini +0 -0
  93. {etlplus-0.4.5 → etlplus-0.5.5}/setup.cfg +0 -0
  94. {etlplus-0.4.5 → etlplus-0.5.5}/tests/__init__.py +0 -0
  95. {etlplus-0.4.5 → etlplus-0.5.5}/tests/conftest.py +0 -0
  96. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/conftest.py +0 -0
  97. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_cli.py +0 -0
  98. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_examples_data_parity.py +0 -0
  99. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_pagination_strategy.py +0 -0
  100. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_pipeline_yaml_load.py +0 -0
  101. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_run.py +0 -0
  102. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_run_profile_pagination_defaults.py +0 -0
  103. {etlplus-0.4.5 → etlplus-0.5.5}/tests/integration/test_i_run_profile_rate_limit_defaults.py +0 -0
  104. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/conftest.py +0 -0
  105. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_auth.py +0 -0
  106. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_config.py +0 -0
  107. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_endpoint_client.py +0 -0
  108. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_mocks.py +0 -0
  109. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_pagination_client.py +0 -0
  110. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_pagination_config.py +0 -0
  111. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_paginator.py +0 -0
  112. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_rate_limit_config.py +0 -0
  113. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_rate_limiter.py +0 -0
  114. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_request_manager.py +0 -0
  115. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_retry_manager.py +0 -0
  116. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_transport.py +0 -0
  117. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/api/test_u_types.py +0 -0
  118. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/cli/conftest.py +0 -0
  119. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/config/test_u_config_utils.py +0 -0
  120. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/config/test_u_connector.py +0 -0
  121. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/config/test_u_jobs.py +0 -0
  122. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/conftest.py +0 -0
  123. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_enums.py +0 -0
  124. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_extract.py +0 -0
  125. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_file.py +0 -0
  126. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_load.py +0 -0
  127. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_main.py +0 -0
  128. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_mixins.py +0 -0
  129. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_run.py +0 -0
  130. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_run_helpers.py +0 -0
  131. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_transform.py +0 -0
  132. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_utils.py +0 -0
  133. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_validate.py +0 -0
  134. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/test_u_version.py +0 -0
  135. {etlplus-0.4.5 → etlplus-0.5.5}/tests/unit/validation/test_u_validation_utils.py +0 -0
  136. {etlplus-0.4.5 → etlplus-0.5.5}/tools/run_pipeline.py +0 -0
  137. {etlplus-0.4.5 → etlplus-0.5.5}/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: [--ignore-missing-imports, --install-types, --non-interactive]
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.4.5
3
+ Version: 0.5.5
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 pipeline` and `etlplus run`
381
+ ### CLI: `etlplus check` (inspect) and `etlplus run` (execute)
382
382
 
383
- List jobs defined in a pipeline file:
383
+ List jobs or show a summary from a pipeline file:
384
384
 
385
385
  ```bash
386
- etlplus pipeline --config examples/configs/pipeline.yml --list
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
- - Both commands read the same YAML schema described in this guide.
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: