etlplus 0.15.4__py3-none-any.whl → 0.15.5__py3-none-any.whl
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/api/auth.py +1 -1
- etlplus/api/config.py +2 -2
- etlplus/api/endpoint_client.py +4 -4
- etlplus/api/pagination/config.py +1 -1
- etlplus/api/pagination/paginator.py +6 -7
- etlplus/api/rate_limiting/config.py +4 -4
- etlplus/api/rate_limiting/rate_limiter.py +1 -1
- etlplus/api/retry_manager.py +2 -2
- etlplus/api/transport.py +1 -1
- etlplus/api/types.py +22 -12
- etlplus/api/utils.py +1 -1
- etlplus/cli/handlers.py +1 -1
- etlplus/cli/io.py +2 -2
- etlplus/cli/main.py +1 -1
- etlplus/database/ddl.py +2 -2
- etlplus/database/engine.py +1 -1
- etlplus/enums.py +1 -1
- etlplus/file/_imports.py +1 -0
- etlplus/file/_io.py +15 -6
- etlplus/file/accdb.py +3 -2
- etlplus/file/arrow.py +3 -2
- etlplus/file/avro.py +3 -2
- etlplus/file/bson.py +3 -2
- etlplus/file/cbor.py +3 -2
- etlplus/file/cfg.py +3 -2
- etlplus/file/conf.py +3 -2
- etlplus/file/core.py +11 -8
- etlplus/file/csv.py +3 -2
- etlplus/file/dat.py +3 -2
- etlplus/file/dta.py +3 -2
- etlplus/file/duckdb.py +3 -2
- etlplus/file/enums.py +1 -1
- etlplus/file/feather.py +3 -2
- etlplus/file/fwf.py +3 -2
- etlplus/file/gz.py +3 -2
- etlplus/file/hbs.py +3 -2
- etlplus/file/hdf5.py +3 -2
- etlplus/file/ini.py +3 -2
- etlplus/file/ion.py +3 -2
- etlplus/file/jinja2.py +3 -2
- etlplus/file/json.py +3 -2
- etlplus/file/log.py +3 -2
- etlplus/file/mat.py +3 -2
- etlplus/file/mdb.py +3 -2
- etlplus/file/msgpack.py +3 -2
- etlplus/file/mustache.py +3 -2
- etlplus/file/nc.py +3 -2
- etlplus/file/ndjson.py +3 -2
- etlplus/file/numbers.py +3 -2
- etlplus/file/ods.py +3 -2
- etlplus/file/orc.py +3 -2
- etlplus/file/parquet.py +3 -2
- etlplus/file/pb.py +3 -2
- etlplus/file/pbf.py +3 -2
- etlplus/file/properties.py +3 -2
- etlplus/file/proto.py +3 -2
- etlplus/file/psv.py +3 -2
- etlplus/file/rda.py +3 -2
- etlplus/file/rds.py +3 -2
- etlplus/file/sas7bdat.py +3 -2
- etlplus/file/sav.py +3 -2
- etlplus/file/sqlite.py +3 -2
- etlplus/file/stub.py +1 -0
- etlplus/file/sylk.py +3 -2
- etlplus/file/tab.py +3 -2
- etlplus/file/toml.py +3 -2
- etlplus/file/tsv.py +3 -2
- etlplus/file/txt.py +4 -3
- etlplus/file/vm.py +3 -2
- etlplus/file/wks.py +3 -2
- etlplus/file/xls.py +3 -2
- etlplus/file/xlsm.py +3 -2
- etlplus/file/xlsx.py +3 -2
- etlplus/file/xml.py +9 -3
- etlplus/file/xpt.py +3 -2
- etlplus/file/yaml.py +3 -2
- etlplus/file/zip.py +3 -2
- etlplus/file/zsav.py +3 -2
- etlplus/ops/extract.py +12 -0
- etlplus/ops/load.py +14 -1
- etlplus/ops/run.py +3 -3
- etlplus/ops/transform.py +2 -2
- etlplus/ops/utils.py +2 -2
- etlplus/utils.py +32 -32
- etlplus/workflow/jobs.py +1 -1
- {etlplus-0.15.4.dist-info → etlplus-0.15.5.dist-info}/METADATA +1 -1
- etlplus-0.15.5.dist-info/RECORD +134 -0
- {etlplus-0.15.4.dist-info → etlplus-0.15.5.dist-info}/WHEEL +1 -1
- etlplus-0.15.4.dist-info/RECORD +0 -134
- {etlplus-0.15.4.dist-info → etlplus-0.15.5.dist-info}/entry_points.txt +0 -0
- {etlplus-0.15.4.dist-info → etlplus-0.15.5.dist-info}/licenses/LICENSE +0 -0
- {etlplus-0.15.4.dist-info → etlplus-0.15.5.dist-info}/top_level.txt +0 -0
etlplus/ops/run.py
CHANGED
|
@@ -94,7 +94,7 @@ def run(
|
|
|
94
94
|
Run a pipeline job defined in a YAML configuration.
|
|
95
95
|
|
|
96
96
|
By default it reads the configuration from ``in/pipeline.yml``, but callers
|
|
97
|
-
can provide an explicit
|
|
97
|
+
can provide an explicit *config_path* to override this.
|
|
98
98
|
|
|
99
99
|
Parameters
|
|
100
100
|
----------
|
|
@@ -328,11 +328,11 @@ def run_pipeline(
|
|
|
328
328
|
Parameters
|
|
329
329
|
----------
|
|
330
330
|
source_type : DataConnectorType | str | None, optional
|
|
331
|
-
Connector type for extraction. When ``None``,
|
|
331
|
+
Connector type for extraction. When ``None``, *source* is assumed
|
|
332
332
|
to be pre-loaded data and extraction is skipped.
|
|
333
333
|
source : StrPath | JSONData | None, optional
|
|
334
334
|
Data source for extraction or the pre-loaded payload when
|
|
335
|
-
|
|
335
|
+
*source_type* is ``None``.
|
|
336
336
|
operations : PipelineConfig | None, optional
|
|
337
337
|
Transform configuration passed to :func:`etlplus.ops.transform`.
|
|
338
338
|
target_type : DataConnectorType | str | None, optional
|
etlplus/ops/transform.py
CHANGED
|
@@ -110,7 +110,7 @@ def _agg_count(
|
|
|
110
110
|
present: int,
|
|
111
111
|
) -> int:
|
|
112
112
|
"""
|
|
113
|
-
Return the provided presence count
|
|
113
|
+
Return the provided presence count *present*.
|
|
114
114
|
|
|
115
115
|
Parameters
|
|
116
116
|
----------
|
|
@@ -120,7 +120,7 @@ def _agg_count(
|
|
|
120
120
|
Returns
|
|
121
121
|
-------
|
|
122
122
|
int
|
|
123
|
-
The provided presence count
|
|
123
|
+
The provided presence count *present*.
|
|
124
124
|
"""
|
|
125
125
|
return present
|
|
126
126
|
|
etlplus/ops/utils.py
CHANGED
|
@@ -205,14 +205,14 @@ def maybe_validate(
|
|
|
205
205
|
Returns
|
|
206
206
|
-------
|
|
207
207
|
Any
|
|
208
|
-
|
|
208
|
+
*payload* when validation is skipped or when severity is ``"warn"``
|
|
209
209
|
and the validation fails. Returns the validator ``data`` payload when
|
|
210
210
|
validation succeeds.
|
|
211
211
|
|
|
212
212
|
Raises
|
|
213
213
|
------
|
|
214
214
|
ValueError
|
|
215
|
-
Raised when validation fails and
|
|
215
|
+
Raised when validation fails and *severity* is ``"error"``.
|
|
216
216
|
|
|
217
217
|
Examples
|
|
218
218
|
--------
|
etlplus/utils.py
CHANGED
|
@@ -76,8 +76,8 @@ def deep_substitute(
|
|
|
76
76
|
vars_map : StrAnyMap | None
|
|
77
77
|
Mapping of variable names to replacement values (lower precedence).
|
|
78
78
|
env_map : Mapping[str, str] | None
|
|
79
|
-
Mapping of environment variables overriding
|
|
80
|
-
|
|
79
|
+
Mapping of environment variables overriding *vars_map* values (higher
|
|
80
|
+
precedence).
|
|
81
81
|
|
|
82
82
|
Returns
|
|
83
83
|
-------
|
|
@@ -130,7 +130,7 @@ def coerce_dict(
|
|
|
130
130
|
value: Any,
|
|
131
131
|
) -> dict[str, Any]:
|
|
132
132
|
"""
|
|
133
|
-
Return a ``dict`` copy when
|
|
133
|
+
Return a ``dict`` copy when *value* is mapping-like.
|
|
134
134
|
|
|
135
135
|
Parameters
|
|
136
136
|
----------
|
|
@@ -140,7 +140,7 @@ def coerce_dict(
|
|
|
140
140
|
Returns
|
|
141
141
|
-------
|
|
142
142
|
dict[str, Any]
|
|
143
|
-
Shallow copy of
|
|
143
|
+
Shallow copy of *value* converted to a standard ``dict``.
|
|
144
144
|
"""
|
|
145
145
|
return dict(value) if isinstance(value, Mapping) else {}
|
|
146
146
|
|
|
@@ -170,7 +170,7 @@ def maybe_mapping(
|
|
|
170
170
|
value: Any,
|
|
171
171
|
) -> StrAnyMap | None:
|
|
172
172
|
"""
|
|
173
|
-
Return
|
|
173
|
+
Return *value* when it is mapping-like; otherwise ``None``.
|
|
174
174
|
|
|
175
175
|
Parameters
|
|
176
176
|
----------
|
|
@@ -189,7 +189,7 @@ def print_json(
|
|
|
189
189
|
obj: Any,
|
|
190
190
|
) -> None:
|
|
191
191
|
"""
|
|
192
|
-
Pretty-print
|
|
192
|
+
Pretty-print *obj* as UTF-8 JSON without ASCII escaping.
|
|
193
193
|
|
|
194
194
|
Parameters
|
|
195
195
|
----------
|
|
@@ -214,12 +214,12 @@ def to_float(
|
|
|
214
214
|
maximum: float | None = None,
|
|
215
215
|
) -> float | None:
|
|
216
216
|
"""
|
|
217
|
-
Coerce
|
|
217
|
+
Coerce *value* to a float with optional fallback and bounds.
|
|
218
218
|
|
|
219
219
|
Notes
|
|
220
220
|
-----
|
|
221
221
|
For strings, leading/trailing whitespace is ignored. Returns ``None``
|
|
222
|
-
when coercion fails and no
|
|
222
|
+
when coercion fails and no *default* is provided.
|
|
223
223
|
"""
|
|
224
224
|
return _normalize_number(
|
|
225
225
|
_coerce_float,
|
|
@@ -235,7 +235,7 @@ def to_maximum_float(
|
|
|
235
235
|
default: float,
|
|
236
236
|
) -> float:
|
|
237
237
|
"""
|
|
238
|
-
Return the greater of
|
|
238
|
+
Return the greater of *default* and *value* after float coercion.
|
|
239
239
|
|
|
240
240
|
Parameters
|
|
241
241
|
----------
|
|
@@ -247,7 +247,7 @@ def to_maximum_float(
|
|
|
247
247
|
Returns
|
|
248
248
|
-------
|
|
249
249
|
float
|
|
250
|
-
|
|
250
|
+
*default* if coercion fails; else ``max(coerced, default)``.
|
|
251
251
|
"""
|
|
252
252
|
result = to_float(value, default)
|
|
253
253
|
return max(_value_or_default(result, default), default)
|
|
@@ -258,7 +258,7 @@ def to_minimum_float(
|
|
|
258
258
|
default: float,
|
|
259
259
|
) -> float:
|
|
260
260
|
"""
|
|
261
|
-
Return the lesser of
|
|
261
|
+
Return the lesser of *default* and *value* after float coercion.
|
|
262
262
|
|
|
263
263
|
Parameters
|
|
264
264
|
----------
|
|
@@ -270,7 +270,7 @@ def to_minimum_float(
|
|
|
270
270
|
Returns
|
|
271
271
|
-------
|
|
272
272
|
float
|
|
273
|
-
|
|
273
|
+
*default* if coercion fails; else ``min(coerced, default)``.
|
|
274
274
|
"""
|
|
275
275
|
result = to_float(value, default)
|
|
276
276
|
return min(_value_or_default(result, default), default)
|
|
@@ -306,12 +306,12 @@ def to_int(
|
|
|
306
306
|
maximum: int | None = None,
|
|
307
307
|
) -> int | None:
|
|
308
308
|
"""
|
|
309
|
-
Coerce
|
|
309
|
+
Coerce *value* to an integer with optional fallback and bounds.
|
|
310
310
|
|
|
311
311
|
Notes
|
|
312
312
|
-----
|
|
313
313
|
For strings, leading/trailing whitespace is ignored. Returns ``None``
|
|
314
|
-
when coercion fails and no
|
|
314
|
+
when coercion fails and no *default* is provided.
|
|
315
315
|
"""
|
|
316
316
|
return _normalize_number(
|
|
317
317
|
_coerce_int,
|
|
@@ -327,7 +327,7 @@ def to_maximum_int(
|
|
|
327
327
|
default: int,
|
|
328
328
|
) -> int:
|
|
329
329
|
"""
|
|
330
|
-
Return the greater of
|
|
330
|
+
Return the greater of *default* and *value* after integer coercion.
|
|
331
331
|
|
|
332
332
|
Parameters
|
|
333
333
|
----------
|
|
@@ -339,7 +339,7 @@ def to_maximum_int(
|
|
|
339
339
|
Returns
|
|
340
340
|
-------
|
|
341
341
|
int
|
|
342
|
-
|
|
342
|
+
*default* if coercion fails; else ``max(coerced, default)``.
|
|
343
343
|
"""
|
|
344
344
|
result = to_int(value, default)
|
|
345
345
|
return max(_value_or_default(result, default), default)
|
|
@@ -350,7 +350,7 @@ def to_minimum_int(
|
|
|
350
350
|
default: int,
|
|
351
351
|
) -> int:
|
|
352
352
|
"""
|
|
353
|
-
Return the lesser of
|
|
353
|
+
Return the lesser of *default* and *value* after integer coercion.
|
|
354
354
|
|
|
355
355
|
Parameters
|
|
356
356
|
----------
|
|
@@ -362,7 +362,7 @@ def to_minimum_int(
|
|
|
362
362
|
Returns
|
|
363
363
|
-------
|
|
364
364
|
int
|
|
365
|
-
|
|
365
|
+
*default* if coercion fails; else ``min(coerced, default)``.
|
|
366
366
|
"""
|
|
367
367
|
result = to_int(value, default)
|
|
368
368
|
return min(_value_or_default(result, default), default)
|
|
@@ -375,21 +375,21 @@ def to_positive_int(
|
|
|
375
375
|
minimum: int = 1,
|
|
376
376
|
) -> int:
|
|
377
377
|
"""
|
|
378
|
-
Return a positive integer, falling back to
|
|
378
|
+
Return a positive integer, falling back to *minimum* when needed.
|
|
379
379
|
|
|
380
380
|
Parameters
|
|
381
381
|
----------
|
|
382
382
|
value : Any
|
|
383
383
|
Candidate input coerced with :func:`to_int`.
|
|
384
384
|
default : int
|
|
385
|
-
Fallback value when coercion fails; clamped by
|
|
385
|
+
Fallback value when coercion fails; clamped by *minimum*.
|
|
386
386
|
minimum : int
|
|
387
387
|
Inclusive lower bound for the result. Defaults to ``1``.
|
|
388
388
|
|
|
389
389
|
Returns
|
|
390
390
|
-------
|
|
391
391
|
int
|
|
392
|
-
Positive integer respecting
|
|
392
|
+
Positive integer respecting *minimum*.
|
|
393
393
|
"""
|
|
394
394
|
result = to_int(value, default, minimum=minimum)
|
|
395
395
|
return _value_or_default(result, minimum)
|
|
@@ -402,7 +402,7 @@ def to_number(
|
|
|
402
402
|
value: object,
|
|
403
403
|
) -> float | None:
|
|
404
404
|
"""
|
|
405
|
-
Coerce
|
|
405
|
+
Coerce *value* to a ``float`` using the internal float coercer.
|
|
406
406
|
|
|
407
407
|
Parameters
|
|
408
408
|
----------
|
|
@@ -466,7 +466,7 @@ def normalize_choice(
|
|
|
466
466
|
Returns
|
|
467
467
|
-------
|
|
468
468
|
str
|
|
469
|
-
Normalized mapped value or
|
|
469
|
+
Normalized mapped value or *default*.
|
|
470
470
|
"""
|
|
471
471
|
return mapping.get(normalize(value), default)
|
|
472
472
|
|
|
@@ -480,7 +480,7 @@ def _clamp(
|
|
|
480
480
|
maximum: Num | None,
|
|
481
481
|
) -> Num:
|
|
482
482
|
"""
|
|
483
|
-
Return
|
|
483
|
+
Return *value* constrained to the interval ``[minimum, maximum]``.
|
|
484
484
|
|
|
485
485
|
Parameters
|
|
486
486
|
----------
|
|
@@ -516,7 +516,7 @@ def _prepare_substitutions(
|
|
|
516
516
|
vars_map : StrAnyMap | None
|
|
517
517
|
Mapping of variable names to replacement values (lower precedence).
|
|
518
518
|
env_map : Mapping[str, Any] | None
|
|
519
|
-
Environment-backed values that override entries from
|
|
519
|
+
Environment-backed values that override entries from *vars_map*.
|
|
520
520
|
|
|
521
521
|
Returns
|
|
522
522
|
-------
|
|
@@ -535,7 +535,7 @@ def _replace_tokens(
|
|
|
535
535
|
substitutions: Iterable[tuple[str, Any]],
|
|
536
536
|
) -> str:
|
|
537
537
|
"""
|
|
538
|
-
Replace ``${VAR}`` tokens in
|
|
538
|
+
Replace ``${VAR}`` tokens in *text* using *substitutions*.
|
|
539
539
|
|
|
540
540
|
Parameters
|
|
541
541
|
----------
|
|
@@ -636,7 +636,7 @@ def _integral_from_float(
|
|
|
636
636
|
candidate: float | None,
|
|
637
637
|
) -> int | None:
|
|
638
638
|
"""
|
|
639
|
-
Return ``int(candidate)`` when
|
|
639
|
+
Return ``int(candidate)`` when *candidate* is integral.
|
|
640
640
|
|
|
641
641
|
Parameters
|
|
642
642
|
----------
|
|
@@ -646,7 +646,7 @@ def _integral_from_float(
|
|
|
646
646
|
Returns
|
|
647
647
|
-------
|
|
648
648
|
int | None
|
|
649
|
-
Integer form of
|
|
649
|
+
Integer form of *candidate*; else ``None`` if not integral.
|
|
650
650
|
"""
|
|
651
651
|
if candidate is None or not candidate.is_integer():
|
|
652
652
|
return None
|
|
@@ -662,7 +662,7 @@ def _normalize_number(
|
|
|
662
662
|
maximum: Num | None = None,
|
|
663
663
|
) -> Num | None:
|
|
664
664
|
"""
|
|
665
|
-
Coerce
|
|
665
|
+
Coerce *value* with *coercer* and optionally clamp it.
|
|
666
666
|
|
|
667
667
|
Parameters
|
|
668
668
|
----------
|
|
@@ -695,7 +695,7 @@ def _validate_bounds(
|
|
|
695
695
|
maximum: Num | None,
|
|
696
696
|
) -> tuple[Num | None, Num | None]:
|
|
697
697
|
"""
|
|
698
|
-
Ensure
|
|
698
|
+
Ensure *minimum* does not exceed *maximum*.
|
|
699
699
|
|
|
700
700
|
Parameters
|
|
701
701
|
----------
|
|
@@ -724,7 +724,7 @@ def _value_or_default(
|
|
|
724
724
|
default: Num,
|
|
725
725
|
) -> Num:
|
|
726
726
|
"""
|
|
727
|
-
Return
|
|
727
|
+
Return *value* if not ``None``; else *default*.
|
|
728
728
|
|
|
729
729
|
Parameters
|
|
730
730
|
----------
|
|
@@ -736,6 +736,6 @@ def _value_or_default(
|
|
|
736
736
|
Returns
|
|
737
737
|
-------
|
|
738
738
|
Num
|
|
739
|
-
|
|
739
|
+
*value* or *default*.
|
|
740
740
|
"""
|
|
741
741
|
return default if value is None else value
|
etlplus/workflow/jobs.py
CHANGED
|
@@ -51,7 +51,7 @@ def _coerce_optional_str(value: Any) -> str | None:
|
|
|
51
51
|
Returns
|
|
52
52
|
-------
|
|
53
53
|
str | None
|
|
54
|
-
``None`` when
|
|
54
|
+
``None`` when *value* is ``None``; otherwise a string value.
|
|
55
55
|
"""
|
|
56
56
|
if value is None:
|
|
57
57
|
return None
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
etlplus/README.md,sha256=JaMSomnMsHrTruDnonHqe83Rv4K0-e7Wy46tMeVoleU,1468
|
|
2
|
+
etlplus/__init__.py,sha256=mgTP4PJmRmsEjTCAizzzdtzAmhuHtarmPzphzdjvLgM,277
|
|
3
|
+
etlplus/__main__.py,sha256=btoROneNiigyfBU7BSzPKZ1R9gzBMpxcpsbPwmuHwTM,479
|
|
4
|
+
etlplus/__version__.py,sha256=1E0GMK_yUWCMQFKxXjTvyMwofi0qT2k4CDNiHWiymWE,327
|
|
5
|
+
etlplus/enums.py,sha256=__i7UfaZJwxrrQboaqiuWTHtDAOL_qCdHVNTN-o-w8k,7539
|
|
6
|
+
etlplus/mixins.py,sha256=ifGpHwWv7U00yqGf-kN93vJax2IiK4jaGtTsPsO3Oak,1350
|
|
7
|
+
etlplus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
+
etlplus/types.py,sha256=-knM5bWRq49k4o-KlW-GRsENcj2P-h6oPnEmuz3EJso,6214
|
|
9
|
+
etlplus/utils.py,sha256=X-k_Y8i6oDjlE5aQu9sw3gPw7O2ikiSn4uoheVv_ERc,17091
|
|
10
|
+
etlplus/api/README.md,sha256=amxS_eIcsnNuVvD0x_w8nkyfedOTYbhlY0gGhaFg0DE,8705
|
|
11
|
+
etlplus/api/__init__.py,sha256=PK2lQv1FbsE7ZZS_ejevFZQSuOUHGApBc22YfHAzMqA,4615
|
|
12
|
+
etlplus/api/auth.py,sha256=wgNC9WDrb-5QjI81q5jl7pQHwNNHq7lVUF7uWw2jRP0,12154
|
|
13
|
+
etlplus/api/config.py,sha256=0Exfn208ijFep3gdww2KdqPxO4NKA4FG_rcn5x5dHM4,17635
|
|
14
|
+
etlplus/api/endpoint_client.py,sha256=Nekx-8mpU41EtbOyOcW4mjmch1jyPqtHu60_rfxF0Pw,30697
|
|
15
|
+
etlplus/api/enums.py,sha256=Tvkru6V8fzQh2JM2FDLcA_yaPENOKz5JgzxLhieqEvc,1141
|
|
16
|
+
etlplus/api/errors.py,sha256=XjI2xW-sypMUNUbqfc2S57-IGyWnH3oCDFhCmKYYI_Q,4648
|
|
17
|
+
etlplus/api/request_manager.py,sha256=fhzPV5x7DqpKqoLvfDR8GKhBX_QBMtvZsRXxVnQQElY,18674
|
|
18
|
+
etlplus/api/retry_manager.py,sha256=aq9iNCxt-Puy4rAgKNtNucxw2eP1yqAKZ2lfgMkzbCk,11302
|
|
19
|
+
etlplus/api/transport.py,sha256=abm-_WieBDSSbFanBwhmudBuVVm7LjYUb8vrlMXo7SA,9408
|
|
20
|
+
etlplus/api/types.py,sha256=Ng1b83RaJSHn4jl-M1f1dsTgjXizQtrW4yOXAYjwk_4,7377
|
|
21
|
+
etlplus/api/utils.py,sha256=lNBfJKz3fJ4RhvnnX3uxVZC__6-WKksYMSGGYi0RRqM,26247
|
|
22
|
+
etlplus/api/pagination/__init__.py,sha256=a4UX2J0AG8RMvmHt_CCofUm5vSmFo6GAfkb8XnSXypM,1395
|
|
23
|
+
etlplus/api/pagination/client.py,sha256=yMEpWqRxTCD4zRc9OYtEyUtShpGH5atiHFEAt95v2FE,5394
|
|
24
|
+
etlplus/api/pagination/config.py,sha256=u2hk8QmiQoIKe16sPUB6SvVqiLkuq9lUaY4Pl5-lejk,13577
|
|
25
|
+
etlplus/api/pagination/paginator.py,sha256=B0OK_0FVmUz3-lCDeKgDOqYJOoEQtjO6I5eSmK58tbY,24433
|
|
26
|
+
etlplus/api/rate_limiting/__init__.py,sha256=ZySB1dZettEDnWvI1EHf_TZ9L08M_kKsNR-Y_lbU6kI,1070
|
|
27
|
+
etlplus/api/rate_limiting/config.py,sha256=Byc_kmnwFmjjfDEFIdc_sHc7Wnjde1NGgsjPHgE9_xo,9765
|
|
28
|
+
etlplus/api/rate_limiting/rate_limiter.py,sha256=uYxn-l2qwLUKVclDQ3vJIIP3fozJx2JlHhz7_zyXVbA,7033
|
|
29
|
+
etlplus/cli/README.md,sha256=8H_G2d3HteYIU6ReX9K9DM485QjWDT5vHMQbGD_vv20,1237
|
|
30
|
+
etlplus/cli/__init__.py,sha256=J97-Rv931IL1_b4AXnB7Fbbd7HKnHBpx18NQfC_kE6c,299
|
|
31
|
+
etlplus/cli/commands.py,sha256=HFlg29tO6Jwv1NXWAHmvniLCyRSlboL55Arn9B8nZAM,25028
|
|
32
|
+
etlplus/cli/constants.py,sha256=E6Uy4WauLa_0zkzxqImXh-bb1gKdb9sBZQVc8QOzr2Q,1943
|
|
33
|
+
etlplus/cli/handlers.py,sha256=uvbAyF6Ux8_5C-obCWZOrOP0QP0oiT-Km1hPhE8tDx0,18558
|
|
34
|
+
etlplus/cli/io.py,sha256=tGGNQ4ecezqj-mD285fgBVrYdphdeqApsyV9VojOj1I,7836
|
|
35
|
+
etlplus/cli/main.py,sha256=68_uJwmWajhOC9o4R_ns8IQloC9BFmAKC_9GlQOxKWg,5239
|
|
36
|
+
etlplus/cli/options.py,sha256=vfXT3YLh7wG1iC-aTdSg6ItMC8l6n0Lozmy53XjqLbA,1199
|
|
37
|
+
etlplus/cli/state.py,sha256=3Dq5BKct0uAvRajtc2yHbsX7wqepZOwlAMKsyvQcnqk,7918
|
|
38
|
+
etlplus/cli/types.py,sha256=tclhKVJXDqHzlTQBYKARfqMgDOcuBJ-Zej2pvFy96WM,652
|
|
39
|
+
etlplus/database/README.md,sha256=3Af5BEGLkBmMoGOLtS1GQuj4wKPh_CwSp5NEPMf2uaY,1435
|
|
40
|
+
etlplus/database/__init__.py,sha256=AKJsDl2RHuRGPS-eXgNJeh4aSncJP5Y0yLApBF6i7i8,1052
|
|
41
|
+
etlplus/database/ddl.py,sha256=-7EAbyLkU8m3eYlHSNLFOQr1I4fPEbF0hTyByzjyvsU,7909
|
|
42
|
+
etlplus/database/engine.py,sha256=eDFnp4vzhoKuyLJSeHYpndHLUr27neS7CgdvMw8mNok,4384
|
|
43
|
+
etlplus/database/orm.py,sha256=ZCHkeVEUns2eievlFzmLyVKA3YVPea1xs6vrcUBZ7Jw,10010
|
|
44
|
+
etlplus/database/schema.py,sha256=813C0Dd3WE53KTYot4dgjAxctgKXLXx-8_Rk_4r2e28,7022
|
|
45
|
+
etlplus/database/types.py,sha256=_pkQyC14TzAlgyeIqZG4F5LWYknZbHw3TW68Auk7Ya0,795
|
|
46
|
+
etlplus/file/README.md,sha256=ivU8svVs1fktQiW5ozvh1N-IOSLCAQ3oM9bW8DUFwIw,3630
|
|
47
|
+
etlplus/file/__init__.py,sha256=X03bosSM-uSd6dh3ur0un6_ozFRw2Tm4PE6kVUjtXK8,475
|
|
48
|
+
etlplus/file/_imports.py,sha256=Cozv7d5G2P9PNgy2M4vrz0Wzo7hx9FTC0WcGcuVqga0,3193
|
|
49
|
+
etlplus/file/_io.py,sha256=Z3aTujy0rpbMKJHvO2UZ6bA1ohO-6ZiemyxF4GsayRc,3951
|
|
50
|
+
etlplus/file/accdb.py,sha256=mMwnNXd3rB0Z_1uN6wpiF0jL4flUmZbMBoiIS3Fq5mg,1691
|
|
51
|
+
etlplus/file/arrow.py,sha256=nkSXiDCFOSbEJX387h-c91WeYPFZehj2r3_iznVy5HE,1704
|
|
52
|
+
etlplus/file/avro.py,sha256=GR9GbDNcQ7TpaPKhcC6JL79XicSmNDIhH3cP0QDmLJg,4447
|
|
53
|
+
etlplus/file/bson.py,sha256=CYpA1PSPzyM9Dtv5ik3RG0GUwLjucJGbrhyo7THcVa0,1623
|
|
54
|
+
etlplus/file/cbor.py,sha256=NNQkCRenh9YOYdeR-w-AbUfK9sjGkwoA0Idtr-dclm4,1677
|
|
55
|
+
etlplus/file/cfg.py,sha256=HuGuxNIKPWyg14mIBlVB5Ch_npf9zObRt2mgoymzB_A,1720
|
|
56
|
+
etlplus/file/conf.py,sha256=x6OH9in-VKkTIPtlwbYEsYDJ703oFJjUFHVCoFULhvk,1778
|
|
57
|
+
etlplus/file/core.py,sha256=IzcG4pQLq3QCQhswbgdWKxHSvmzvWzYweBrz7t6HDDo,8888
|
|
58
|
+
etlplus/file/csv.py,sha256=FTdxlVs3vsaj_t7vGY-unNiCpJI2TWuiaf2_8dJan6M,1754
|
|
59
|
+
etlplus/file/dat.py,sha256=o4FN-6_HCVXuD-If3aYfIqU4QTZMvECNZ5Yx4wr15ew,1652
|
|
60
|
+
etlplus/file/dta.py,sha256=7DuvvKSgbpBoKZHm7CWJ7NKstRasp0fUEj1XF02YgsE,1626
|
|
61
|
+
etlplus/file/duckdb.py,sha256=kCFxNUEI9gEeeMWJuCHyfKVsqvhij4Q7LJVpZ3AMDYw,1641
|
|
62
|
+
etlplus/file/enums.py,sha256=5cwIfcoYGEjaX0AzaJzY0PjztKykzFTQ1HBnb2NTEXs,11065
|
|
63
|
+
etlplus/file/feather.py,sha256=joOdQf_oIu__i8hwy5X4eK6MSqh6O0kKnub2VWD_Clg,2679
|
|
64
|
+
etlplus/file/fwf.py,sha256=ktXIKatOPUs6YeB30K7BNvfwwB4BkXoYEomsvCjk_ss,1599
|
|
65
|
+
etlplus/file/gz.py,sha256=NfiXiE37rS2YC7dk1YC1ELbbEpzJdypIy-no9cVoaco,2641
|
|
66
|
+
etlplus/file/hbs.py,sha256=jxAPY10R_2vhP-1QWGBmANCI1dJ9vetaLo5Mp8kMa3Y,1624
|
|
67
|
+
etlplus/file/hdf5.py,sha256=hjpBUue5ss6R8ljZ-gYxDxpOLGBKgNvmAvn97uNmYAw,1634
|
|
68
|
+
etlplus/file/ini.py,sha256=ZL_0Wq5-yNcveyKF-minH2AFh-RmspM06myHquAobao,1711
|
|
69
|
+
etlplus/file/ion.py,sha256=ZK0g-47GQi9fCDT4EeXCgiVbWmmj7SU1WHwt-CrLwCU,1720
|
|
70
|
+
etlplus/file/jinja2.py,sha256=TV-ZIzsJIg4hJyvWI7TWaMRjqL2s18Dg3ig3Hs50_pE,1640
|
|
71
|
+
etlplus/file/json.py,sha256=vY3UYjzQzmJUAY0avR2cm70hTTED4xEF38WEEj0DhDQ,2140
|
|
72
|
+
etlplus/file/log.py,sha256=6Te617oy8RWrzCa6hC0O65ygPIpfzkLBcP-x9glwM9g,1691
|
|
73
|
+
etlplus/file/mat.py,sha256=JbZ7SziCqYZR8LljyLoSn05_-bPSzNH16KNB-wvzdpM,1664
|
|
74
|
+
etlplus/file/mdb.py,sha256=Xlxx9RZlnErOrzYRFnzzOZltc99FalhoUY-oAiiQpPg,1667
|
|
75
|
+
etlplus/file/msgpack.py,sha256=GOYfgxyK2N8Opy8kLsz4uDhVrT1vyOcVQ4eJvdhrNdA,1668
|
|
76
|
+
etlplus/file/mustache.py,sha256=qOddtbtZwDyoXzHzqxpnUoO_lWKf3NPyfp-V21o0cRw,1657
|
|
77
|
+
etlplus/file/nc.py,sha256=a1_er7Fco0FVw3GtDrd_OzZAI7U_sP9x-wi9qRgebaw,1680
|
|
78
|
+
etlplus/file/ndjson.py,sha256=jpZgLZL-Vy4a6tsm5cxy0G9kW-x-X5kFSbnUn-XjIJw,2442
|
|
79
|
+
etlplus/file/numbers.py,sha256=HkG3ISk35FZnorwECuciIiI4HZWFp9E-mRhOfhYclx8,1620
|
|
80
|
+
etlplus/file/ods.py,sha256=MVEM1E2uLFmnTyCnyhljsrgdBC8psUGSVUGLmiuZTLM,1810
|
|
81
|
+
etlplus/file/orc.py,sha256=RdK4IERoLWnGSgpBclfDmwMmtac8VYyet3Z9AFCyj2E,2612
|
|
82
|
+
etlplus/file/parquet.py,sha256=6klk-GgNnFBbsRU0J8LiGm5c67A6FcX1AEZNf-cNSPM,2768
|
|
83
|
+
etlplus/file/pb.py,sha256=0OOSmuFUfmB-DZILSA9FO2JgXfJmt9TnigH3E2gW4AI,1625
|
|
84
|
+
etlplus/file/pbf.py,sha256=89fF58WkXmOBJh8Jh2zcA0cKBkB5neXMWyz95toPnXo,1630
|
|
85
|
+
etlplus/file/properties.py,sha256=4KSRGWo_-fthVdOnJKXqUvHA2I6igcGWW9fnWJK7oLA,1728
|
|
86
|
+
etlplus/file/proto.py,sha256=LjHFWVYEIyADwpd9Lzzd1FAcM8pFXN1pwoptxEDOvfQ,1678
|
|
87
|
+
etlplus/file/psv.py,sha256=J-fPTMgTZFHZWJL6kLKaFgLXhtEtK66hJW59YLaWe9E,1736
|
|
88
|
+
etlplus/file/rda.py,sha256=dSrHwLl_qu8bhnltWIuYqxpguP3JLH39JLOVxHsHLhE,1678
|
|
89
|
+
etlplus/file/rds.py,sha256=o1IKY6CmLXSp-Iv7kBDFkT8X5QVTy5uVAZMm-7sUo4Y,1635
|
|
90
|
+
etlplus/file/sas7bdat.py,sha256=yyX7YrnmZ91EY9WeTB_eZAqjCSEgD_9WTLGpD4Sv5AY,1716
|
|
91
|
+
etlplus/file/sav.py,sha256=ij02gnYOevRV9e8dbDwi3plulkw-qEQoxccvydHXZK4,1607
|
|
92
|
+
etlplus/file/sqlite.py,sha256=NRb93RuIDlu1eRMZnYDjDBhFO88gkDT7tvpmfgA4hQE,1662
|
|
93
|
+
etlplus/file/stub.py,sha256=4vlqjIo_bBy69dIU2y2iy5fqnezt_bOuS218zyijQfs,1749
|
|
94
|
+
etlplus/file/sylk.py,sha256=QwciGJVWxEKz3TH4s7hshHHLAfKiCqBxyV4umg9EVQI,1667
|
|
95
|
+
etlplus/file/tab.py,sha256=Y9u5J-efoKIMIYnARhrPXA2KEF0pJ7deZF4zkz7ZID0,1994
|
|
96
|
+
etlplus/file/toml.py,sha256=0kGJEF2353kNQWFbYd8G4XWjuPHvdl7vPILCWglsyk0,1636
|
|
97
|
+
etlplus/file/tsv.py,sha256=SUe-UeL3zExX2idvpHiMWuRm5VQ8AyqqlNJckc9CDCU,1776
|
|
98
|
+
etlplus/file/txt.py,sha256=Ys7MmKBOiHQnRK0Bb3VuIIny2_1Ejr-V_YdPlUfOEjc,2321
|
|
99
|
+
etlplus/file/vm.py,sha256=K3EE-4TpXECcHxS1EEVmLOidkqj-MJeeztTRTRUaQ1o,1599
|
|
100
|
+
etlplus/file/wks.py,sha256=dZtf_6ObJVUj_m7XIUAzuTDQkmYk0mhA9LF3rVltatI,1665
|
|
101
|
+
etlplus/file/xls.py,sha256=dNfhaDSbSy-xQrE3qriCrmfXRQY7HqAtog91b-7RmpA,1782
|
|
102
|
+
etlplus/file/xlsm.py,sha256=pZHybknmipUHEwjQBHWiU4HfVMLkGG7Zxe3rxBrxPT0,1748
|
|
103
|
+
etlplus/file/xlsx.py,sha256=UOwz-IIeRU2GyAI8Upx2hn7v3KPZalpIaGO9hXuaOGo,2192
|
|
104
|
+
etlplus/file/xml.py,sha256=lor8KsclDSy1tdOExL1GmYpaQVcZGRNEwOd2liiPPbk,4389
|
|
105
|
+
etlplus/file/xpt.py,sha256=L70o8cIGWPeBdbfVJk-b9I9PE2MICtLkwhJjzqIeBgU,1712
|
|
106
|
+
etlplus/file/yaml.py,sha256=b_SxDSEQPVXQv9a9Ih4wAcI940pE5Ksy5pQE6K6ckhw,2062
|
|
107
|
+
etlplus/file/zip.py,sha256=8wnmnGW_pGTx65736CzAG67XIi5y98KxucRT8sNDeuQ,4195
|
|
108
|
+
etlplus/file/zsav.py,sha256=5hMuBjYeHw--UL2ZCCDn6TzJkr_YNhdQhvKI6nr3WW0,1674
|
|
109
|
+
etlplus/ops/README.md,sha256=8omi7DYZhelc26JKk8Cm8QR8I3OGwziysPj1ivx41iQ,1380
|
|
110
|
+
etlplus/ops/__init__.py,sha256=NIIr2f-AZj5B0piBt6gjv46Yn0SzGYxEe6BPoopRh38,1702
|
|
111
|
+
etlplus/ops/extract.py,sha256=Z3ZCQxeXhTP08YBzKwF0mUsyTGhoxt8WACAjW6jPwpw,5990
|
|
112
|
+
etlplus/ops/load.py,sha256=IHVqw4HhXo7k9MVnMRLKv74s-duUTGvGwPaOLZ1kS90,8532
|
|
113
|
+
etlplus/ops/run.py,sha256=QFD_Yqdpz3oRArF962fZhYtYKDvgnCBbiBvPV-q8RCU,13522
|
|
114
|
+
etlplus/ops/transform.py,sha256=H9DxAA-c9kwklAnmiZK21w7FMJnHfu0bLcguXfIGE-k,25417
|
|
115
|
+
etlplus/ops/utils.py,sha256=lJmrO1KDob-xZU8Gc2SvZvMgdYLsVoaz-fTV42KkLVo,10835
|
|
116
|
+
etlplus/ops/validate.py,sha256=-OLAwQNNCmmDbmj0SB7zzYXDkJfcyBP_z9nTpqImLP0,13271
|
|
117
|
+
etlplus/templates/README.md,sha256=IfPXlj1TGVA-uFWosHJhE2rabFW-znxOlOMazO9Z5cE,1361
|
|
118
|
+
etlplus/templates/__init__.py,sha256=tsniN7XJYs3NwYxJ6c2HD5upHP3CDkLx-bQCMt97UOM,106
|
|
119
|
+
etlplus/templates/ddl.sql.j2,sha256=s8fMWvcb4eaJVXkifuib1aQPljtZ8buuyB_uA-ZdU3Q,4734
|
|
120
|
+
etlplus/templates/view.sql.j2,sha256=Iy8DHfhq5yyvrUKDxqp_aHIEXY4Tm6j4wT7YDEFWAhk,2180
|
|
121
|
+
etlplus/workflow/README.md,sha256=D1oloiJCOHiqpqgv3m3qpRSIUOMIQcWtIsOPv7KkNI0,1652
|
|
122
|
+
etlplus/workflow/__init__.py,sha256=LxI9VGlDBUc9ADoK8JNn3oVsGeaz1Uhjonn4Y5KIJdM,967
|
|
123
|
+
etlplus/workflow/connector.py,sha256=vnzq9-qcU4ThWeI3ZJcL8iCoaKWrSEtZ9Jixn4il2KE,9995
|
|
124
|
+
etlplus/workflow/dag.py,sha256=kp31dORgk0GHbct_bipU5hu_0elwBtwLsXGjMWuhFHI,2503
|
|
125
|
+
etlplus/workflow/jobs.py,sha256=onvzsZpTpZUWIivIGR4SjbUPSZ1X0nXpxAW0O0VumhQ,8945
|
|
126
|
+
etlplus/workflow/pipeline.py,sha256=eF6OYMXZ_YdDPZ5FJC6OTCAM-zsb8HxhX3IHpbb_N8w,9631
|
|
127
|
+
etlplus/workflow/profile.py,sha256=dZ6P50k_ZqXnrbgrbODUqgVkymbchcEqfZR-ExjTd3M,1935
|
|
128
|
+
etlplus/workflow/types.py,sha256=Lv1MLyM45Ob5AsMQQBqzbUaD8g7HMVxu_HoQGPeiugU,2771
|
|
129
|
+
etlplus-0.15.5.dist-info/licenses/LICENSE,sha256=MuNO63i6kWmgnV2pbP2SLqP54mk1BGmu7CmbtxMmT-U,1069
|
|
130
|
+
etlplus-0.15.5.dist-info/METADATA,sha256=mbVvp8bhCzfXrKAhOsy-t_b_cnfIVo7xAwBtLv5nwPk,28114
|
|
131
|
+
etlplus-0.15.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
132
|
+
etlplus-0.15.5.dist-info/entry_points.txt,sha256=6w-2-jzuPa55spzK34h-UKh2JTEShh38adFRONNP9QE,45
|
|
133
|
+
etlplus-0.15.5.dist-info/top_level.txt,sha256=aWWF-udn_sLGuHTM6W6MLh99ArS9ROkUWO8Mi8y1_2U,8
|
|
134
|
+
etlplus-0.15.5.dist-info/RECORD,,
|
etlplus-0.15.4.dist-info/RECORD
DELETED
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
etlplus/README.md,sha256=JaMSomnMsHrTruDnonHqe83Rv4K0-e7Wy46tMeVoleU,1468
|
|
2
|
-
etlplus/__init__.py,sha256=mgTP4PJmRmsEjTCAizzzdtzAmhuHtarmPzphzdjvLgM,277
|
|
3
|
-
etlplus/__main__.py,sha256=btoROneNiigyfBU7BSzPKZ1R9gzBMpxcpsbPwmuHwTM,479
|
|
4
|
-
etlplus/__version__.py,sha256=1E0GMK_yUWCMQFKxXjTvyMwofi0qT2k4CDNiHWiymWE,327
|
|
5
|
-
etlplus/enums.py,sha256=ZxObavNilITJNT4Mf2hBy1s4kKtTFUTmrc8_whkxKNg,7541
|
|
6
|
-
etlplus/mixins.py,sha256=ifGpHwWv7U00yqGf-kN93vJax2IiK4jaGtTsPsO3Oak,1350
|
|
7
|
-
etlplus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
8
|
-
etlplus/types.py,sha256=-knM5bWRq49k4o-KlW-GRsENcj2P-h6oPnEmuz3EJso,6214
|
|
9
|
-
etlplus/utils.py,sha256=JVOBPyjIv1C9EZWZuYdqCISS-Dpa-PHrFvvruu1R0HA,17171
|
|
10
|
-
etlplus/api/README.md,sha256=amxS_eIcsnNuVvD0x_w8nkyfedOTYbhlY0gGhaFg0DE,8705
|
|
11
|
-
etlplus/api/__init__.py,sha256=PK2lQv1FbsE7ZZS_ejevFZQSuOUHGApBc22YfHAzMqA,4615
|
|
12
|
-
etlplus/api/auth.py,sha256=GOO5on-LoMS1GXTAhtK9rFcfpjbBcNeA6NE5UZwIq0g,12158
|
|
13
|
-
etlplus/api/config.py,sha256=_8_iXpaHXQN6RQ1z0e3q0LTY936IYsc1SVcE6_sPT6E,17639
|
|
14
|
-
etlplus/api/endpoint_client.py,sha256=OPAvw3NkpSzeITqgRP1reyqX9Nc_XC8lAj6Yp7nV4Tw,30705
|
|
15
|
-
etlplus/api/enums.py,sha256=Tvkru6V8fzQh2JM2FDLcA_yaPENOKz5JgzxLhieqEvc,1141
|
|
16
|
-
etlplus/api/errors.py,sha256=XjI2xW-sypMUNUbqfc2S57-IGyWnH3oCDFhCmKYYI_Q,4648
|
|
17
|
-
etlplus/api/request_manager.py,sha256=fhzPV5x7DqpKqoLvfDR8GKhBX_QBMtvZsRXxVnQQElY,18674
|
|
18
|
-
etlplus/api/retry_manager.py,sha256=0GDhJVyIlb1Ww35JUWlYoa8QYUPjKLBtxQeZj3TdLbY,11306
|
|
19
|
-
etlplus/api/transport.py,sha256=DVWzWFZLfQQXaTJ60w-SzdXRxiOE8llPprpUB5CtSyg,9410
|
|
20
|
-
etlplus/api/types.py,sha256=geuKmnf6C2P9_tpRpOF90Uu7J160OL3RQpQ_CgJsSrM,6695
|
|
21
|
-
etlplus/api/utils.py,sha256=U39OXcrPiLD9m0Y03pACXIIOyuuDPO6RRKuTcwEayBE,26249
|
|
22
|
-
etlplus/api/pagination/__init__.py,sha256=a4UX2J0AG8RMvmHt_CCofUm5vSmFo6GAfkb8XnSXypM,1395
|
|
23
|
-
etlplus/api/pagination/client.py,sha256=yMEpWqRxTCD4zRc9OYtEyUtShpGH5atiHFEAt95v2FE,5394
|
|
24
|
-
etlplus/api/pagination/config.py,sha256=3dXDJ-nMbO9Zk6i344n4roBFbUlHsa294D1_plPmm6E,13579
|
|
25
|
-
etlplus/api/pagination/paginator.py,sha256=wtdY_er4yfjx5yTUQJ1gPq-IuWmpLAHeG5buBQZJm54,24453
|
|
26
|
-
etlplus/api/rate_limiting/__init__.py,sha256=ZySB1dZettEDnWvI1EHf_TZ9L08M_kKsNR-Y_lbU6kI,1070
|
|
27
|
-
etlplus/api/rate_limiting/config.py,sha256=eB-dSOG-c5awYeEpnDsQJ5pO8BJtEpGYxOunBetWiB0,9775
|
|
28
|
-
etlplus/api/rate_limiting/rate_limiter.py,sha256=heAasm1KLeBFmoJKPz6W-eQbNuahMgG1E9-z8zGEUro,7035
|
|
29
|
-
etlplus/cli/README.md,sha256=8H_G2d3HteYIU6ReX9K9DM485QjWDT5vHMQbGD_vv20,1237
|
|
30
|
-
etlplus/cli/__init__.py,sha256=J97-Rv931IL1_b4AXnB7Fbbd7HKnHBpx18NQfC_kE6c,299
|
|
31
|
-
etlplus/cli/commands.py,sha256=HFlg29tO6Jwv1NXWAHmvniLCyRSlboL55Arn9B8nZAM,25028
|
|
32
|
-
etlplus/cli/constants.py,sha256=E6Uy4WauLa_0zkzxqImXh-bb1gKdb9sBZQVc8QOzr2Q,1943
|
|
33
|
-
etlplus/cli/handlers.py,sha256=hXsgG3c6n8JDN4U3Svq6i2r21vetw5NcmXE1bGSwb9w,18560
|
|
34
|
-
etlplus/cli/io.py,sha256=EFaBPYaBOyOllfMQWXgTjy-MPiGfNejicpD7ROrPyAE,7840
|
|
35
|
-
etlplus/cli/main.py,sha256=d5yhCS6aNo_TKMvhdTS7qeJm4yb1S58gGBrUoBV7SCs,5241
|
|
36
|
-
etlplus/cli/options.py,sha256=vfXT3YLh7wG1iC-aTdSg6ItMC8l6n0Lozmy53XjqLbA,1199
|
|
37
|
-
etlplus/cli/state.py,sha256=3Dq5BKct0uAvRajtc2yHbsX7wqepZOwlAMKsyvQcnqk,7918
|
|
38
|
-
etlplus/cli/types.py,sha256=tclhKVJXDqHzlTQBYKARfqMgDOcuBJ-Zej2pvFy96WM,652
|
|
39
|
-
etlplus/database/README.md,sha256=3Af5BEGLkBmMoGOLtS1GQuj4wKPh_CwSp5NEPMf2uaY,1435
|
|
40
|
-
etlplus/database/__init__.py,sha256=AKJsDl2RHuRGPS-eXgNJeh4aSncJP5Y0yLApBF6i7i8,1052
|
|
41
|
-
etlplus/database/ddl.py,sha256=0dEM9SJMMabkhI_h-Fc0j9a1Sl5lSyZdI0bIeBVGm10,7913
|
|
42
|
-
etlplus/database/engine.py,sha256=gWgTjGoo1HYHrBuYX5l2P8avAR3XithzAiqUOpLHP-8,4386
|
|
43
|
-
etlplus/database/orm.py,sha256=ZCHkeVEUns2eievlFzmLyVKA3YVPea1xs6vrcUBZ7Jw,10010
|
|
44
|
-
etlplus/database/schema.py,sha256=813C0Dd3WE53KTYot4dgjAxctgKXLXx-8_Rk_4r2e28,7022
|
|
45
|
-
etlplus/database/types.py,sha256=_pkQyC14TzAlgyeIqZG4F5LWYknZbHw3TW68Auk7Ya0,795
|
|
46
|
-
etlplus/file/README.md,sha256=ivU8svVs1fktQiW5ozvh1N-IOSLCAQ3oM9bW8DUFwIw,3630
|
|
47
|
-
etlplus/file/__init__.py,sha256=X03bosSM-uSd6dh3ur0un6_ozFRw2Tm4PE6kVUjtXK8,475
|
|
48
|
-
etlplus/file/_imports.py,sha256=9e8CWjyNIRcmiULEPuwtnJELUOXd4EvVv_vDnDYiB9c,3121
|
|
49
|
-
etlplus/file/_io.py,sha256=2Dj7MH6r-yp_SsCe5GmuNN7Ta70qYzF_jKoMgnD3rME,3925
|
|
50
|
-
etlplus/file/accdb.py,sha256=xdBLrXHDonVJ1Z6-qZRrLBXpUwqw5nZYxDuxYMJHzVs,1681
|
|
51
|
-
etlplus/file/arrow.py,sha256=rYPqoCAI3cBHETYN3c0Xi7R5Nq7_prIdyESm3ll3Zos,1694
|
|
52
|
-
etlplus/file/avro.py,sha256=yFQMnWPcvC0CbDCyagoB9SHRIuvl2SXIoQJTBIlw4dA,4437
|
|
53
|
-
etlplus/file/bson.py,sha256=okCWQveCnaRxJ47Oy7-HpByEkiwmiSLSWc0a9eISuVg,1613
|
|
54
|
-
etlplus/file/cbor.py,sha256=hpXTqQ-ei4jYKt6-zq3frDXy-SWRpx1ThQUce6b01xU,1667
|
|
55
|
-
etlplus/file/cfg.py,sha256=cT2RKFgEMsAJaT9_EIPvYCzS4F9HdRJhEZTDMCVMZ4s,1710
|
|
56
|
-
etlplus/file/conf.py,sha256=TKkiuGf_r4pNlxKEgxn8d1Pza-4oeWZiYjvlpMk-un4,1768
|
|
57
|
-
etlplus/file/core.py,sha256=71AFsVwvAP6crsAphMkAmhqTwk_-TkEw9eByG6gwzpA,8862
|
|
58
|
-
etlplus/file/csv.py,sha256=6zXt7OKXm_6k8MrDyw8DdEwpQQrmrxG6myrDplF87_E,1744
|
|
59
|
-
etlplus/file/dat.py,sha256=j-GpY49SmkZtDUzZK6CbrHY9k6N83pyGcMqVGgJZ9cs,1642
|
|
60
|
-
etlplus/file/dta.py,sha256=cEprcahuYEncDYEBZiEoHyg-1jgBsr9eCHPLdI-naXM,1616
|
|
61
|
-
etlplus/file/duckdb.py,sha256=hQ8PWcvYILpkgPEtWeqbT_0yhQpJN9bJh1OwQQCcRD4,1631
|
|
62
|
-
etlplus/file/enums.py,sha256=d3VGF1IbI2Vye3A9WLeMyo5dqlo2Q1TrUp9GaG7a62g,11067
|
|
63
|
-
etlplus/file/feather.py,sha256=U19T5V_08ooK1STclE9nDvsnUFzu7nvQvi6J09iC-_0,2669
|
|
64
|
-
etlplus/file/fwf.py,sha256=WLbvL94cyLCOYfhABJvoIQc1fljtz3yOuA7X4Fc4QGo,1589
|
|
65
|
-
etlplus/file/gz.py,sha256=NKsvIV7TIWn8USbvuZmRH9hr6OrXh4TzTfDykHD41Kk,2631
|
|
66
|
-
etlplus/file/hbs.py,sha256=iz0tIVNmsCYjTLnE5x-m3Smh5QKbfuQA-sgOHOZ_T3g,1614
|
|
67
|
-
etlplus/file/hdf5.py,sha256=SZ-UbXTJGOYA82hdma7AFulWo9emH5Kih_RXC7f-Bfk,1624
|
|
68
|
-
etlplus/file/ini.py,sha256=HlvQyQC00oBD8KFBfznPjBx9wF1ZwXH7Yo1JaXqCq8I,1701
|
|
69
|
-
etlplus/file/ion.py,sha256=9q938jROTAcuUT5sRYvS1qIeoz9p8KkVWYDDS2-2A_4,1710
|
|
70
|
-
etlplus/file/jinja2.py,sha256=FFqGQjBnRgPQ-oJ3WqiKspJMj6g_J0fDKGwsoOJAEzk,1630
|
|
71
|
-
etlplus/file/json.py,sha256=m4eM8cPGHYAEppwLqBdq-t9gC2GtKPLptRTBeBfRimY,2130
|
|
72
|
-
etlplus/file/log.py,sha256=OmsGijXZn1VhN7BUklF8saoktxkmHh1MPLI_BbGDLyc,1681
|
|
73
|
-
etlplus/file/mat.py,sha256=u3jWMK8c4k9L0uVRiQSd7JgVQF-efoJj3QiKYtt1arA,1654
|
|
74
|
-
etlplus/file/mdb.py,sha256=hSCaxBbc_b9dGTBpR-Gb0UTY2r3zYUxoEiKuwpnx0kI,1657
|
|
75
|
-
etlplus/file/msgpack.py,sha256=9PTitVGnZM0yB2iiwsgLokai6DRmp2l2zfhyjEcajg8,1658
|
|
76
|
-
etlplus/file/mustache.py,sha256=F-xVUH69evPQkunUx746B4rnOHxgAUP6KVpexK3zI_Q,1647
|
|
77
|
-
etlplus/file/nc.py,sha256=3RFCl7OvCFAiwyVJJHF5_oa3UdGtDGsVU69OTMpiOdk,1670
|
|
78
|
-
etlplus/file/ndjson.py,sha256=fSMAAdyucGIVl6zVqylWSBosOg899wgIpIWCGm2HOWU,2432
|
|
79
|
-
etlplus/file/numbers.py,sha256=RSRC6sFYyWxmeTHWM7-D14MQQlDaz-FVehbSyG9u9Ds,1610
|
|
80
|
-
etlplus/file/ods.py,sha256=6XsWkcrBsvQxzMdeMulqwExl3BjRe8gR-kNu0-hiRPE,1800
|
|
81
|
-
etlplus/file/orc.py,sha256=fOO2jQwUr5FHbDve7ztmrE1Mb8uBMQtDo0yp-elVn8Q,2602
|
|
82
|
-
etlplus/file/parquet.py,sha256=nzMrUNQux7Of8Nn0c4d2WYuIJQwZY_xQiO_AuVMCzrI,2758
|
|
83
|
-
etlplus/file/pb.py,sha256=sg72vrjbp7azgEK_oRigmNdSqtEnsrBF24VjOohZhow,1615
|
|
84
|
-
etlplus/file/pbf.py,sha256=lcdehGK_g2drs0VFqTAxZO9-sv65SAkW894ttmlBG8I,1620
|
|
85
|
-
etlplus/file/properties.py,sha256=zsdaIWbSGGXH1bvlI8XPtc0eQCb-CeeA5CHJaqupNrE,1718
|
|
86
|
-
etlplus/file/proto.py,sha256=QnZMGYHmr6jyiQ08W7hx_MHzNDrPEmMmnbttNRlY4Pg,1668
|
|
87
|
-
etlplus/file/psv.py,sha256=-pfGvLSNOMWVl1mGoKJ_Rh5p5wDyCaxLEd09U23Iub0,1726
|
|
88
|
-
etlplus/file/rda.py,sha256=oFbnf6SQrbgKdNDvQ94aeubwVlSEY0K_2BMIEqp22pY,1668
|
|
89
|
-
etlplus/file/rds.py,sha256=9E2IfTaI6XRqfwdy-m-6laG7cTq9tlm8kMhldLJznPw,1625
|
|
90
|
-
etlplus/file/sas7bdat.py,sha256=y_SOBwGPksIvMdO60PoYIVrmppWKvZQfhJSHMABDDlg,1706
|
|
91
|
-
etlplus/file/sav.py,sha256=9cd1curI6gkhXNJPTQP30CUwXdH45qGmPau5JCNmxqg,1597
|
|
92
|
-
etlplus/file/sqlite.py,sha256=3YRGMB5cRwdZeUVq3J_jSKauad7s8wWHWviqx7yfrUw,1652
|
|
93
|
-
etlplus/file/stub.py,sha256=UPiKD_CYkz66X6bZtSqWX3ShBFrMlf-Se83z4qYnIR4,1733
|
|
94
|
-
etlplus/file/sylk.py,sha256=ZqWNAuJenydVYG75a4atRtSQ1iPAscvx-v6lUqdDqvg,1657
|
|
95
|
-
etlplus/file/tab.py,sha256=yIbgIM8jkbOmCmewYnDeL4751tHSjVszMIxNlm9C3q8,1984
|
|
96
|
-
etlplus/file/toml.py,sha256=Z9UgUJ-PKdlA78osRyARK5AVN7AepSuq4dbUUXTGNAE,1626
|
|
97
|
-
etlplus/file/tsv.py,sha256=hKlJd8Q7waZs9_jhRANhmb-fQdPsbvaVG46gYuNVtq0,1766
|
|
98
|
-
etlplus/file/txt.py,sha256=46gSCxPn3SsixtR3RQ-kziaY5cnApHgRbW7UP__9ryE,2313
|
|
99
|
-
etlplus/file/vm.py,sha256=_EiHtFOxcSwoLb5qegZ0sDr5z9TwKQPbB-MQolb6I2A,1589
|
|
100
|
-
etlplus/file/wks.py,sha256=QwsjgcIpaYMZb-NEzgNSRKdBEqhahuoTeAVA5VEmsag,1655
|
|
101
|
-
etlplus/file/xls.py,sha256=P94lEH8ZMex_G5x1hotidcj-dvGHAnUY7ouzvSYaV7o,1772
|
|
102
|
-
etlplus/file/xlsm.py,sha256=6meoukAvpEIm_mvVomIo2oefPYfmHHXfE1XmFfeFpvY,1738
|
|
103
|
-
etlplus/file/xlsx.py,sha256=vtiAS8Ng9FV1vCWYTd1YO2ORKIJG3HDfmqy3NkVpt0A,2182
|
|
104
|
-
etlplus/file/xml.py,sha256=p5P60DiV6hyiz-t970d0d0ZXB41gVvAm3MT7dTMULa8,4360
|
|
105
|
-
etlplus/file/xpt.py,sha256=JLqOkZ60awNsPXSqLKcPUwqZLPhPR05zk4EVRdEfvoU,1702
|
|
106
|
-
etlplus/file/yaml.py,sha256=P9xzginPVVyvIPbFAp6MYWwARhK50GzgMbjZB7HwOrs,2052
|
|
107
|
-
etlplus/file/zip.py,sha256=nd26V3S0edklriKnKOGDTLlO8RBXTda_zLLEQrJgKL4,4185
|
|
108
|
-
etlplus/file/zsav.py,sha256=2WxjXamvzj0adDbWGMWM3-cj_LsCRjyZz4J907lNkPk,1664
|
|
109
|
-
etlplus/ops/README.md,sha256=8omi7DYZhelc26JKk8Cm8QR8I3OGwziysPj1ivx41iQ,1380
|
|
110
|
-
etlplus/ops/__init__.py,sha256=NIIr2f-AZj5B0piBt6gjv46Yn0SzGYxEe6BPoopRh38,1702
|
|
111
|
-
etlplus/ops/extract.py,sha256=OJozX25qTjME7m9aTdVPJScT3GHHgopGM8uHo_rHm1Y,5783
|
|
112
|
-
etlplus/ops/load.py,sha256=RgEKnVygRN2cPDpzihU8UsIhd4eVoj0cPe0jBuNC0u4,8328
|
|
113
|
-
etlplus/ops/run.py,sha256=JOPQxrciRUQ67FJhUcZ-pW1aiYGZUdxHLwhzWLNCaDo,13528
|
|
114
|
-
etlplus/ops/transform.py,sha256=1P43WYUaw872JDU86FhbbbkP8xnBWpgEPn2Q-z4ywls,25421
|
|
115
|
-
etlplus/ops/utils.py,sha256=mNUcbnLl3M6rA_BPoUqG-IFPqT1zrp_EkQTs7uvzBIQ,10839
|
|
116
|
-
etlplus/ops/validate.py,sha256=-OLAwQNNCmmDbmj0SB7zzYXDkJfcyBP_z9nTpqImLP0,13271
|
|
117
|
-
etlplus/templates/README.md,sha256=IfPXlj1TGVA-uFWosHJhE2rabFW-znxOlOMazO9Z5cE,1361
|
|
118
|
-
etlplus/templates/__init__.py,sha256=tsniN7XJYs3NwYxJ6c2HD5upHP3CDkLx-bQCMt97UOM,106
|
|
119
|
-
etlplus/templates/ddl.sql.j2,sha256=s8fMWvcb4eaJVXkifuib1aQPljtZ8buuyB_uA-ZdU3Q,4734
|
|
120
|
-
etlplus/templates/view.sql.j2,sha256=Iy8DHfhq5yyvrUKDxqp_aHIEXY4Tm6j4wT7YDEFWAhk,2180
|
|
121
|
-
etlplus/workflow/README.md,sha256=D1oloiJCOHiqpqgv3m3qpRSIUOMIQcWtIsOPv7KkNI0,1652
|
|
122
|
-
etlplus/workflow/__init__.py,sha256=LxI9VGlDBUc9ADoK8JNn3oVsGeaz1Uhjonn4Y5KIJdM,967
|
|
123
|
-
etlplus/workflow/connector.py,sha256=vnzq9-qcU4ThWeI3ZJcL8iCoaKWrSEtZ9Jixn4il2KE,9995
|
|
124
|
-
etlplus/workflow/dag.py,sha256=kp31dORgk0GHbct_bipU5hu_0elwBtwLsXGjMWuhFHI,2503
|
|
125
|
-
etlplus/workflow/jobs.py,sha256=5_jhPoT2hCGTgsbK_lIPKrB94f7tzOEUJxtU3tpvTjg,8947
|
|
126
|
-
etlplus/workflow/pipeline.py,sha256=eF6OYMXZ_YdDPZ5FJC6OTCAM-zsb8HxhX3IHpbb_N8w,9631
|
|
127
|
-
etlplus/workflow/profile.py,sha256=dZ6P50k_ZqXnrbgrbODUqgVkymbchcEqfZR-ExjTd3M,1935
|
|
128
|
-
etlplus/workflow/types.py,sha256=Lv1MLyM45Ob5AsMQQBqzbUaD8g7HMVxu_HoQGPeiugU,2771
|
|
129
|
-
etlplus-0.15.4.dist-info/licenses/LICENSE,sha256=MuNO63i6kWmgnV2pbP2SLqP54mk1BGmu7CmbtxMmT-U,1069
|
|
130
|
-
etlplus-0.15.4.dist-info/METADATA,sha256=B7LuY1d_eg8Dm4d3s2fAV9US4PiE66qBmwS7VH7MZOo,28114
|
|
131
|
-
etlplus-0.15.4.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
|
|
132
|
-
etlplus-0.15.4.dist-info/entry_points.txt,sha256=6w-2-jzuPa55spzK34h-UKh2JTEShh38adFRONNP9QE,45
|
|
133
|
-
etlplus-0.15.4.dist-info/top_level.txt,sha256=aWWF-udn_sLGuHTM6W6MLh99ArS9ROkUWO8Mi8y1_2U,8
|
|
134
|
-
etlplus-0.15.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|