etlplus 0.16.0__py3-none-any.whl → 0.16.7__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.
Files changed (98) hide show
  1. etlplus/README.md +24 -2
  2. etlplus/__init__.py +2 -0
  3. etlplus/api/__init__.py +14 -14
  4. etlplus/api/auth.py +9 -6
  5. etlplus/api/config.py +6 -6
  6. etlplus/api/endpoint_client.py +16 -16
  7. etlplus/api/enums.py +2 -2
  8. etlplus/api/errors.py +4 -4
  9. etlplus/api/pagination/__init__.py +6 -6
  10. etlplus/api/pagination/config.py +11 -9
  11. etlplus/api/rate_limiting/__init__.py +2 -2
  12. etlplus/api/rate_limiting/config.py +10 -10
  13. etlplus/api/rate_limiting/rate_limiter.py +2 -2
  14. etlplus/api/request_manager.py +4 -4
  15. etlplus/api/retry_manager.py +6 -6
  16. etlplus/api/transport.py +10 -10
  17. etlplus/api/types.py +47 -26
  18. etlplus/api/utils.py +49 -49
  19. etlplus/cli/README.md +9 -7
  20. etlplus/cli/commands.py +22 -22
  21. etlplus/cli/handlers.py +12 -13
  22. etlplus/cli/main.py +1 -1
  23. etlplus/{workflow/pipeline.py → config.py} +54 -91
  24. etlplus/connector/__init__.py +6 -6
  25. etlplus/connector/api.py +7 -7
  26. etlplus/connector/database.py +3 -3
  27. etlplus/connector/file.py +3 -3
  28. etlplus/connector/types.py +2 -2
  29. etlplus/database/README.md +7 -7
  30. etlplus/enums.py +35 -167
  31. etlplus/file/README.md +7 -5
  32. etlplus/file/accdb.py +2 -1
  33. etlplus/file/arrow.py +2 -1
  34. etlplus/file/bson.py +2 -1
  35. etlplus/file/cbor.py +2 -1
  36. etlplus/file/cfg.py +1 -1
  37. etlplus/file/conf.py +1 -1
  38. etlplus/file/dat.py +1 -1
  39. etlplus/file/dta.py +1 -1
  40. etlplus/file/duckdb.py +2 -1
  41. etlplus/file/enums.py +1 -1
  42. etlplus/file/fwf.py +2 -1
  43. etlplus/file/hbs.py +2 -1
  44. etlplus/file/hdf5.py +2 -1
  45. etlplus/file/ini.py +2 -1
  46. etlplus/file/ion.py +1 -1
  47. etlplus/file/jinja2.py +2 -1
  48. etlplus/file/log.py +1 -1
  49. etlplus/file/mat.py +1 -1
  50. etlplus/file/mdb.py +2 -1
  51. etlplus/file/msgpack.py +2 -1
  52. etlplus/file/mustache.py +2 -1
  53. etlplus/file/nc.py +1 -1
  54. etlplus/file/numbers.py +2 -1
  55. etlplus/file/ods.py +2 -1
  56. etlplus/file/pb.py +2 -1
  57. etlplus/file/pbf.py +2 -1
  58. etlplus/file/properties.py +2 -1
  59. etlplus/file/proto.py +2 -1
  60. etlplus/file/psv.py +2 -1
  61. etlplus/file/rda.py +2 -1
  62. etlplus/file/rds.py +1 -1
  63. etlplus/file/sas7bdat.py +2 -1
  64. etlplus/file/sav.py +1 -1
  65. etlplus/file/sqlite.py +2 -1
  66. etlplus/file/sylk.py +2 -1
  67. etlplus/file/tab.py +2 -1
  68. etlplus/file/toml.py +2 -1
  69. etlplus/file/vm.py +2 -1
  70. etlplus/file/wks.py +2 -1
  71. etlplus/file/xls.py +1 -1
  72. etlplus/file/xlsm.py +2 -2
  73. etlplus/file/xpt.py +2 -1
  74. etlplus/file/zsav.py +2 -1
  75. etlplus/ops/README.md +10 -9
  76. etlplus/ops/__init__.py +1 -0
  77. etlplus/ops/enums.py +173 -0
  78. etlplus/ops/extract.py +209 -22
  79. etlplus/ops/load.py +140 -34
  80. etlplus/ops/run.py +88 -103
  81. etlplus/ops/transform.py +46 -27
  82. etlplus/ops/types.py +147 -0
  83. etlplus/ops/utils.py +5 -5
  84. etlplus/ops/validate.py +13 -13
  85. etlplus/templates/README.md +11 -9
  86. etlplus/types.py +5 -102
  87. etlplus/workflow/README.md +0 -24
  88. etlplus/workflow/__init__.py +2 -4
  89. etlplus/workflow/dag.py +23 -1
  90. etlplus/workflow/jobs.py +15 -28
  91. etlplus/workflow/profile.py +4 -2
  92. {etlplus-0.16.0.dist-info → etlplus-0.16.7.dist-info}/METADATA +32 -28
  93. etlplus-0.16.7.dist-info/RECORD +143 -0
  94. etlplus-0.16.0.dist-info/RECORD +0 -141
  95. {etlplus-0.16.0.dist-info → etlplus-0.16.7.dist-info}/WHEEL +0 -0
  96. {etlplus-0.16.0.dist-info → etlplus-0.16.7.dist-info}/entry_points.txt +0 -0
  97. {etlplus-0.16.0.dist-info → etlplus-0.16.7.dist-info}/licenses/LICENSE +0 -0
  98. {etlplus-0.16.0.dist-info → etlplus-0.16.7.dist-info}/top_level.txt +0 -0
@@ -18,6 +18,7 @@ from typing import Self
18
18
 
19
19
  from ..types import StrAnyMap
20
20
  from ..utils import cast_str_dict
21
+ from ..utils import maybe_mapping
21
22
 
22
23
  # SECTION: EXPORTS ========================================================== #
23
24
 
@@ -56,7 +57,8 @@ class ProfileConfig:
56
57
  cls,
57
58
  obj: StrAnyMap | None,
58
59
  ) -> Self:
59
- """Parse a mapping into a :class:`ProfileConfig` instance.
60
+ """
61
+ Parse a mapping into a :class:`ProfileConfig` instance.
60
62
 
61
63
  Parameters
62
64
  ----------
@@ -73,7 +75,7 @@ class ProfileConfig:
73
75
  return cls()
74
76
 
75
77
  # Coerce all env values to strings using shared helper.
76
- env = cast_str_dict(obj.get('env'))
78
+ env = cast_str_dict(maybe_mapping(obj.get('env')))
77
79
 
78
80
  return cls(
79
81
  default_target=obj.get('default_target'),
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: etlplus
3
- Version: 0.16.0
3
+ Version: 0.16.7
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
@@ -141,7 +141,7 @@ ETLPlus supports Python 3.13 and above.
141
141
 
142
142
  - **Extract** data from multiple sources:
143
143
  - Files (CSV, JSON, XML, YAML)
144
- - Databases (connection string support)
144
+ - Databases (connection string support; extract is a placeholder today)
145
145
  - REST APIs (GET)
146
146
 
147
147
  - **Validate** data with flexible rules:
@@ -161,7 +161,7 @@ ETLPlus supports Python 3.13 and above.
161
161
 
162
162
  - **Load** data to multiple targets:
163
163
  - Files (CSV, JSON, XML, YAML)
164
- - Databases (connection string support)
164
+ - Databases (connection string support; load is a placeholder today)
165
165
  - REST APIs (PATCH, POST, PUT)
166
166
 
167
167
  ## Installation
@@ -188,7 +188,7 @@ etlplus --help
188
188
  etlplus --version
189
189
 
190
190
  # One-liner: extract CSV, filter, select, and write JSON
191
- etlplus extract file examples/data/sample.csv \
191
+ etlplus extract examples/data/sample.csv \
192
192
  | etlplus transform --operations '{"filter": {"field": "age", "op": "gt", "value": 25}, "select": ["name", "email"]}' \
193
193
  - temp/sample_output.json
194
194
  ```
@@ -218,8 +218,9 @@ include GET for extract and PATCH/POST/PUT for load.
218
218
 
219
219
  ### Databases (`database`)
220
220
 
221
- Database connectors use connection strings for extraction and loading, and
222
- DDL can be rendered from table specs for migrations or schema checks.
221
+ Database connectors use connection strings for extraction and loading, and DDL can be rendered from
222
+ table specs for migrations or schema checks. Database extract/load operations are currently
223
+ placeholders; plan to integrate a database client in your runner.
223
224
 
224
225
  ### Files (`file`)
225
226
 
@@ -298,7 +299,7 @@ Recognized file formats are listed in the tables below. Support for reading to o
298
299
  | `numbers` | N | N | Apple Numbers |
299
300
  | `ods` | N | N | OpenDocument |
300
301
  | `wks` | N | N | Lotus 1-2-3 |
301
- | `xls` | Y | Y | Microsoft Excel (BIFF) |
302
+ | `xls` | Y | N | Microsoft Excel (BIFF; read-only) |
302
303
  | `xlsm` | N | N | Microsoft Excel Macro-Enabled (Open XML) |
303
304
  | `xlsx` | Y | Y | Microsoft Excel (Open XML) |
304
305
 
@@ -320,8 +321,8 @@ Recognized file formats are listed in the tables below. Support for reading to o
320
321
 
321
322
  #### Logs and Event Streams
322
323
 
323
- | Format | Supported | Description |
324
- | --- | --- | --- |
324
+ | Format | Read | Write | Description |
325
+ | --- | --- | --- | --- |
325
326
  | `log` | N | N | Generic log file |
326
327
 
327
328
  #### Data Archives
@@ -354,13 +355,15 @@ etlplus --help
354
355
  etlplus --version
355
356
  ```
356
357
 
357
- The CLI is implemented with Typer (Click-based). There is no argparse compatibility layer, so rely
358
- on the documented commands/flags and run `etlplus <command> --help` for current options.
358
+ The CLI is implemented with Typer (Click-based). The legacy argparse parser has been removed
359
+ (`create_parser` now raises), so rely on the documented commands/flags and run `etlplus <command>
360
+ --help` for current options.
359
361
 
360
362
  **Example error messages:**
361
363
 
362
364
  - If you omit a required argument: `Error: Missing required argument 'SOURCE'.`
363
- - If you place an option before its argument: `Error: Option '--source-format' must follow the 'SOURCE' argument.`
365
+ - If you place an option before its argument: `Error: Option '--source-format' must follow the
366
+ 'SOURCE' argument.`
364
367
 
365
368
  #### Argument Order and Required Options
366
369
 
@@ -424,27 +427,27 @@ specific parser.
424
427
 
425
428
  Extract from JSON file:
426
429
  ```bash
427
- etlplus extract file examples/data/sample.json
430
+ etlplus extract examples/data/sample.json
428
431
  ```
429
432
 
430
433
  Extract from CSV file:
431
434
  ```bash
432
- etlplus extract file examples/data/sample.csv
435
+ etlplus extract examples/data/sample.csv
433
436
  ```
434
437
 
435
438
  Extract from XML file:
436
439
  ```bash
437
- etlplus extract file examples/data/sample.xml
440
+ etlplus extract examples/data/sample.xml
438
441
  ```
439
442
 
440
443
  Extract from REST API:
441
444
  ```bash
442
- etlplus extract api https://api.example.com/data
445
+ etlplus extract https://api.example.com/data
443
446
  ```
444
447
 
445
448
  Save extracted data to file:
446
449
  ```bash
447
- etlplus extract file examples/data/sample.csv > temp/sample_output.json
450
+ etlplus extract examples/data/sample.csv > temp/sample_output.json
448
451
  ```
449
452
 
450
453
  #### Validate Data
@@ -510,13 +513,13 @@ etlplus transform \
510
513
 
511
514
  Load to JSON file:
512
515
  ```bash
513
- etlplus extract file examples/data/sample.json \
516
+ etlplus extract examples/data/sample.json \
514
517
  | etlplus load temp/sample_output.json --target-type file
515
518
  ```
516
519
 
517
520
  Load to CSV file:
518
521
  ```bash
519
- etlplus extract file examples/data/sample.csv \
522
+ etlplus extract examples/data/sample.csv \
520
523
  | etlplus load temp/sample_output.csv --target-type file
521
524
  ```
522
525
 
@@ -553,13 +556,13 @@ operations = {
553
556
  transformed = transform(data, operations)
554
557
 
555
558
  # Load data
556
- load(transformed, "file", "temp/sample_output.json", format="json")
559
+ load(transformed, "file", "temp/sample_output.json", file_format="json")
557
560
  ```
558
561
 
559
562
  For YAML-driven pipelines executed end-to-end (extract → validate → transform → load), see:
560
563
 
561
564
  - Authoring: [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
562
- - Runner API and internals: [`docs/run-module.md`](docs/run-module.md)
565
+ - Runner API and internals: see `etlplus.ops.run` docstrings and `docs/pipeline-guide.md`.
563
566
 
564
567
  CLI quick reference for pipelines:
565
568
 
@@ -576,7 +579,7 @@ etlplus run --config examples/configs/pipeline.yml --job file_to_file_customers
576
579
 
577
580
  ```bash
578
581
  # 1. Extract from CSV
579
- etlplus extract file examples/data/sample.csv > temp/sample_extracted.json
582
+ etlplus extract examples/data/sample.csv > temp/sample_extracted.json
580
583
 
581
584
  # 2. Transform (filter and select fields)
582
585
  etlplus transform \
@@ -611,7 +614,7 @@ etlplus load output.bin --target-type file --target-format csv < data.json
611
614
 
612
615
  # Leave the flags off when extensions already match the desired format
613
616
  etlplus extract data.csv --source-type file
614
- etlplus load data.json --target-type file < data.json
617
+ etlplus load output.json --target-type file < data.json
615
618
  ```
616
619
 
617
620
  ## Transformation Operations
@@ -706,8 +709,9 @@ Looking for the HTTP client and pagination helpers? See the dedicated docs in
706
709
 
707
710
  Curious how the pipeline runner composes API requests, pagination, and load calls?
708
711
 
709
- - Runner overview and helpers: [`docs/run-module.md`](docs/run-module.md)
710
- - Unified "connector" vocabulary (API/File/DB): `etlplus/config/connector.py`
712
+ - Runner overview and helpers: see `etlplus.ops.run` docstrings and
713
+ [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
714
+ - Unified "connector" vocabulary (API/File/DB): `etlplus/connector`
711
715
  - API/file targets reuse the same shapes as sources; API targets typically set a `method`.
712
716
 
713
717
  ### Running Tests
@@ -721,7 +725,7 @@ pytest tests/ -v
721
725
  We split tests into two layers:
722
726
 
723
727
  - **Unit (`tests/unit/`)**: single function or class, no real I/O, fast, uses stubs/monkeypatch
724
- (e.g. `etlplus.cli.create_parser`, transform + validate helpers).
728
+ (e.g. small helpers in `etlplus.utils`, transform + validate helpers).
725
729
  - **Integration (`tests/integration/`)**: end-to-end flows (CLI `main()`, pipeline `run()`,
726
730
  pagination + rate limit defaults, file/API connector interactions) may touch temp files and use
727
731
  fake clients.
@@ -808,7 +812,7 @@ Navigate to detailed documentation for each subpackage:
808
812
  - [etlplus.cli](etlplus/cli/README.md): Command-line interface definitions for `etlplus`
809
813
  - [etlplus.database](etlplus/database/README.md): Database engine, schema, and ORM helpers
810
814
  - [etlplus.templates](etlplus/templates/README.md): SQL and DDL template helpers
811
- - [etlplus.validation](etlplus/validation/README.md): Data validation utilities and helpers
815
+ - [etlplus.ops](etlplus/ops/README.md): Extract/validate/transform/load primitives
812
816
  - [etlplus.workflow](etlplus/workflow/README.md): Helpers for data connectors, pipelines, jobs, and
813
817
  profiles
814
818
 
@@ -824,7 +828,7 @@ Navigate to detailed documentation for each subpackage:
824
828
  - API client docs: [`etlplus/api/README.md`](etlplus/api/README.md)
825
829
  - Examples: [`examples/README.md`](examples/README.md)
826
830
  - Pipeline authoring guide: [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
827
- - Runner internals: [`docs/run-module.md`](docs/run-module.md)
831
+ - Runner internals: see `etlplus.ops.run` docstrings and [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
828
832
  - Design notes (Mapping inputs, dict outputs): [`docs/pipeline-guide.md#design-notes-mapping-inputs-dict-outputs`](docs/pipeline-guide.md#design-notes-mapping-inputs-dict-outputs)
829
833
  - Typing philosophy: [`CONTRIBUTING.md#typing-philosophy`](CONTRIBUTING.md#typing-philosophy)
830
834
  - Demo and walkthrough: [`DEMO.md`](DEMO.md)
@@ -0,0 +1,143 @@
1
+ etlplus/README.md,sha256=0q3QrboL0YCP1idUVRTw5IKDV2XPBCh44lLb-JUZBFw,1852
2
+ etlplus/__init__.py,sha256=yHZt-sjjfPjB_CrNhcT9bcMlZCfwiul39ZhQ2VfxpRs,318
3
+ etlplus/__main__.py,sha256=btoROneNiigyfBU7BSzPKZ1R9gzBMpxcpsbPwmuHwTM,479
4
+ etlplus/__version__.py,sha256=1E0GMK_yUWCMQFKxXjTvyMwofi0qT2k4CDNiHWiymWE,327
5
+ etlplus/config.py,sha256=6BCI9hC1yWYAy5WclIHJlg90FYeWn5vAVrT1NWUTwpE,8817
6
+ etlplus/enums.py,sha256=MfQhy3XDpN7oqLrF7_WwZojl7n8cW3RAzsZGRnAbWgc,4073
7
+ etlplus/mixins.py,sha256=ifGpHwWv7U00yqGf-kN93vJax2IiK4jaGtTsPsO3Oak,1350
8
+ etlplus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
+ etlplus/types.py,sha256=Op2H1dcmv0Srm9prFnBZjt7f1S4Mqrus7XrdsjoZkIM,3461
10
+ etlplus/utils.py,sha256=X-k_Y8i6oDjlE5aQu9sw3gPw7O2ikiSn4uoheVv_ERc,17091
11
+ etlplus/api/README.md,sha256=amxS_eIcsnNuVvD0x_w8nkyfedOTYbhlY0gGhaFg0DE,8705
12
+ etlplus/api/__init__.py,sha256=eIHkdNBZv6ViB_5MhW3f3vWMYJLFoF4Tr3Wnb3O7B4E,4647
13
+ etlplus/api/auth.py,sha256=PZEJIBwLwnUGfF76s32a5GnLcpDvu4ghEd-wEAHx4rU,12260
14
+ etlplus/api/config.py,sha256=WmH1GOQxoBAr3vUsmYIyMbXSt7kiyNbtKjyMS1dqt-A,17653
15
+ etlplus/api/endpoint_client.py,sha256=UtvK4h_-fxINM-5QcumkcLJsL0Uw4L0L_4RMxC024Yk,30737
16
+ etlplus/api/enums.py,sha256=YaeFbsmiP1uZIhRBxFjqFRyCDiVvE5KVWNtbWRUXkkQ,1142
17
+ etlplus/api/errors.py,sha256=8LuZfExUpZ67PPqPr6SdAmFA-wc0ocw4JHoBYyEcg0s,4664
18
+ etlplus/api/request_manager.py,sha256=K3tlRFflUM-_S-optnHzJx_AWcbd0ZQGVX_NytkN4zg,18690
19
+ etlplus/api/retry_manager.py,sha256=RV5xkmbExNHF_b-IN5RWx2wawiJzeklc9miGXPQb7U4,11326
20
+ etlplus/api/transport.py,sha256=f9hgtlnz5fFUsMYWdwAkSsdULJSv-276ekP8u_k3e4Y,9448
21
+ etlplus/api/types.py,sha256=gxwmgPDra7OfAPjJv2Mq45axd_s4TiGAqYtMCx167UM,8008
22
+ etlplus/api/utils.py,sha256=cxQYV0iAbhr65_yvhSii5jhfNcVQGgdwuwO86PJVD-s,26415
23
+ etlplus/api/pagination/__init__.py,sha256=K76nkMnMyM81wzbKTQynq1rRv81ndEUVEuF6cmPzvKQ,1401
24
+ etlplus/api/pagination/client.py,sha256=yMEpWqRxTCD4zRc9OYtEyUtShpGH5atiHFEAt95v2FE,5394
25
+ etlplus/api/pagination/config.py,sha256=pt4yAGr03Esr1gEZg3Nm6kfBOM1FpWwf_t6XTpvBd4s,13596
26
+ etlplus/api/pagination/paginator.py,sha256=B0OK_0FVmUz3-lCDeKgDOqYJOoEQtjO6I5eSmK58tbY,24433
27
+ etlplus/api/rate_limiting/__init__.py,sha256=8VIjkW2wGjTFJjjAqOBSFKcKsBFuYndS4o33PLSo_q8,1072
28
+ etlplus/api/rate_limiting/config.py,sha256=U8T8BxrX87uFR-ksTG1FkmxoVr-FTaLIa0wWeXIcZss,9775
29
+ etlplus/api/rate_limiting/rate_limiter.py,sha256=qmOf15qvhFk2htMsGcHfgzATqOBd2BdrG8ShadfOIgY,7035
30
+ etlplus/cli/README.md,sha256=FKZ5KV--khWolN0CZsmcq026HPoCkVjKHBsT2k8hBBI,1444
31
+ etlplus/cli/__init__.py,sha256=J97-Rv931IL1_b4AXnB7Fbbd7HKnHBpx18NQfC_kE6c,299
32
+ etlplus/cli/commands.py,sha256=Mbnu_YYUrOumbDjkul9x5VjP8VXW5u08xNi4nLF9Yyo,25048
33
+ etlplus/cli/constants.py,sha256=0F7dXIQKWUhhVu2Us527GJeknJIWpBqz7CK2e5OQgcE,1947
34
+ etlplus/cli/handlers.py,sha256=JdN7W7mqmQL9xyU7PkBtsQf7eu3j5-E2AhAQvbfy-4g,18470
35
+ etlplus/cli/io.py,sha256=tGGNQ4ecezqj-mD285fgBVrYdphdeqApsyV9VojOj1I,7836
36
+ etlplus/cli/main.py,sha256=TwIog4jZTft86D_FEYWsNQu8XiU-MtoQFL6DNmVS_w0,5236
37
+ etlplus/cli/options.py,sha256=vfXT3YLh7wG1iC-aTdSg6ItMC8l6n0Lozmy53XjqLbA,1199
38
+ etlplus/cli/state.py,sha256=3Dq5BKct0uAvRajtc2yHbsX7wqepZOwlAMKsyvQcnqk,7918
39
+ etlplus/cli/types.py,sha256=tclhKVJXDqHzlTQBYKARfqMgDOcuBJ-Zej2pvFy96WM,652
40
+ etlplus/connector/__init__.py,sha256=C1nMuEvCnYS07kpoP91aWEg1utV1D4bO603OzveF7s0,1012
41
+ etlplus/connector/api.py,sha256=uXoQvOGGnZEP96H0O19nMgu7uiBfTqEFNuFl0r9oBbQ,4531
42
+ etlplus/connector/connector.py,sha256=OQP4kK_1O6g9FnDBrE3L58LOSfImsK5EBHtKI4N71u8,574
43
+ etlplus/connector/core.py,sha256=0GeXjlZFnyS-4j7jR_AtclQtELE6x-vodHJ4rfjFLL8,2795
44
+ etlplus/connector/database.py,sha256=Y8fzcbzucIZW64g9zkqO-M_H02CiW5lB0IDk0RynWJo,3014
45
+ etlplus/connector/enums.py,sha256=43NziUOpol4YvBtM13WJJzY1EAQOjaWESxLl7J2ZT8U,1069
46
+ etlplus/connector/file.py,sha256=AsEXUHOokP2s5NQoTazF3Skz7qMj-1FNdvRZj9LfdbM,2858
47
+ etlplus/connector/types.py,sha256=51UPD4edtMRiRL35ZVfbmKTodhrLUiRP5P067SZGzms,953
48
+ etlplus/connector/utils.py,sha256=fS2hPAfuhKTg_L2xDxF5fJnsO1SuuDIiEWU7GuaJKUM,2933
49
+ etlplus/database/README.md,sha256=suWTTipq1pcswlhZT_qHaOnsgPeqMjttX3MV0w40jdY,1429
50
+ etlplus/database/__init__.py,sha256=AKJsDl2RHuRGPS-eXgNJeh4aSncJP5Y0yLApBF6i7i8,1052
51
+ etlplus/database/ddl.py,sha256=-7EAbyLkU8m3eYlHSNLFOQr1I4fPEbF0hTyByzjyvsU,7909
52
+ etlplus/database/engine.py,sha256=eDFnp4vzhoKuyLJSeHYpndHLUr27neS7CgdvMw8mNok,4384
53
+ etlplus/database/orm.py,sha256=ZCHkeVEUns2eievlFzmLyVKA3YVPea1xs6vrcUBZ7Jw,10010
54
+ etlplus/database/schema.py,sha256=813C0Dd3WE53KTYot4dgjAxctgKXLXx-8_Rk_4r2e28,7022
55
+ etlplus/database/types.py,sha256=_pkQyC14TzAlgyeIqZG4F5LWYknZbHw3TW68Auk7Ya0,795
56
+ etlplus/file/README.md,sha256=gjmreSBxq6MS8P5njTRskcQNk2RS5eMOngAUTh68VTI,3847
57
+ etlplus/file/__init__.py,sha256=X03bosSM-uSd6dh3ur0un6_ozFRw2Tm4PE6kVUjtXK8,475
58
+ etlplus/file/_imports.py,sha256=Cozv7d5G2P9PNgy2M4vrz0Wzo7hx9FTC0WcGcuVqga0,3193
59
+ etlplus/file/_io.py,sha256=Z3aTujy0rpbMKJHvO2UZ6bA1ohO-6ZiemyxF4GsayRc,3951
60
+ etlplus/file/accdb.py,sha256=6BiYRSlmJlEFyxktQk4pcEW9nWdKL59wQ6gH5YnWAfM,1718
61
+ etlplus/file/arrow.py,sha256=vQxcZQvQdPLw-WdrdPORqLrKaXwrX2sjJTND2Mbz5nE,1731
62
+ etlplus/file/avro.py,sha256=GR9GbDNcQ7TpaPKhcC6JL79XicSmNDIhH3cP0QDmLJg,4447
63
+ etlplus/file/bson.py,sha256=IpR0d1JkBox6yRP-6wlS-C1Oe9VxOyj52Oo6mGDSelA,1650
64
+ etlplus/file/cbor.py,sha256=-6UukC1OysWcgLxO5KxRPFIMa8JON3XiYsRBEn8zqBc,1704
65
+ etlplus/file/cfg.py,sha256=8StrkG4b_N2My9niqQ1J8eDmCafIyg-wiDINfDbXGwk,1747
66
+ etlplus/file/conf.py,sha256=7GatAdy0VGmCCYL92CKBcuqIkXrgwprvnXn7i36C5pQ,1805
67
+ etlplus/file/core.py,sha256=IzcG4pQLq3QCQhswbgdWKxHSvmzvWzYweBrz7t6HDDo,8888
68
+ etlplus/file/csv.py,sha256=FTdxlVs3vsaj_t7vGY-unNiCpJI2TWuiaf2_8dJan6M,1754
69
+ etlplus/file/dat.py,sha256=ceUDuhFjwqJiO3I_T0pm1WmCr8_WhOB6-0mL-h0wx3k,1679
70
+ etlplus/file/dta.py,sha256=tmbhF2F5wRCoJk3nMEj4dvXzWAD-tnuNOBQL9KxIB9o,1653
71
+ etlplus/file/duckdb.py,sha256=lzE3Ik9gk07-YkpxwB7XY7WAJhzeiOPtjAnviINs6Jo,1668
72
+ etlplus/file/enums.py,sha256=48Hb0Pgt-eDC29EQK5A9kCydQtJ1aZXD7g-q0WCiCfM,11086
73
+ etlplus/file/feather.py,sha256=joOdQf_oIu__i8hwy5X4eK6MSqh6O0kKnub2VWD_Clg,2679
74
+ etlplus/file/fwf.py,sha256=uI6mjpGL0wPyiYe39j--G_6HoXEbe1yWkbyk1jRCc0c,1626
75
+ etlplus/file/gz.py,sha256=NfiXiE37rS2YC7dk1YC1ELbbEpzJdypIy-no9cVoaco,2641
76
+ etlplus/file/hbs.py,sha256=gu9dffaEJDjXvNwkBNytYexf6YJB2THB0IySua6wX8o,1651
77
+ etlplus/file/hdf5.py,sha256=SliDFNhG14U0Bd6BlD2IkTO_PFwo7jxeauc_FNgyOy4,1661
78
+ etlplus/file/ini.py,sha256=qup40MuIXwcXisw4ODnzwqjvHRTaZofLhYtaZHgAaes,1738
79
+ etlplus/file/ion.py,sha256=LmfU1WKHDEQMShPVW1jZU5CKPRpD0qacznx_6N_ZnfE,1747
80
+ etlplus/file/jinja2.py,sha256=-BDMtFks3VhUQixydBM9cNqJrQZBOa_NCoYZ4xXwgdc,1667
81
+ etlplus/file/json.py,sha256=vY3UYjzQzmJUAY0avR2cm70hTTED4xEF38WEEj0DhDQ,2140
82
+ etlplus/file/log.py,sha256=1DkPzzI2GhtYwCCBLQbCmUELuQFKJaIHpGWPYGcCMhg,1718
83
+ etlplus/file/mat.py,sha256=BH8jdpNc-za5Ci30rLTl0DYnFhP5w-xL_V2i7k7_YvI,1691
84
+ etlplus/file/mdb.py,sha256=lFqkTHmcaWNlaNkwu_qqlc7XSq82yoOBxUz_YbArfV8,1694
85
+ etlplus/file/msgpack.py,sha256=YU6DhPtBPULiOMHto0r_ioHqt1ILZi1OEfLye5y64-o,1695
86
+ etlplus/file/mustache.py,sha256=nfrmN0EZbId-3rZSvustHw3VVVO9fz03K4PILOCSklQ,1684
87
+ etlplus/file/nc.py,sha256=EQYwR5053a_yKNShYQ-sAWTK69goDPTrgK6F_2Puf44,1707
88
+ etlplus/file/ndjson.py,sha256=jpZgLZL-Vy4a6tsm5cxy0G9kW-x-X5kFSbnUn-XjIJw,2442
89
+ etlplus/file/numbers.py,sha256=Fo58Kshl5c489H2yYsxIMWfS0Wp3e0viUyoZfVcEcQI,1647
90
+ etlplus/file/ods.py,sha256=DBDJh5_O19s3XEfSgfrfX5ze5-gsIqfkdvS42D91I5E,1837
91
+ etlplus/file/orc.py,sha256=RdK4IERoLWnGSgpBclfDmwMmtac8VYyet3Z9AFCyj2E,2612
92
+ etlplus/file/parquet.py,sha256=6klk-GgNnFBbsRU0J8LiGm5c67A6FcX1AEZNf-cNSPM,2768
93
+ etlplus/file/pb.py,sha256=1Yb9dmU9zKT0uCSrb7towV_0l9pPUv-HKfrQEtCkBLs,1652
94
+ etlplus/file/pbf.py,sha256=eOGQhxgqRZ39tHAgO1ZU9J6LLQoiT6kcokujczASWJI,1657
95
+ etlplus/file/properties.py,sha256=DLIJNBDVhNyDZTBAui2u6KtsjSfj9-NqJ21t6QjAUaU,1755
96
+ etlplus/file/proto.py,sha256=cVsztidiWEMRhseZ64ODIVaWaZZwoxQgmdqtezCrB_8,1705
97
+ etlplus/file/psv.py,sha256=Vf99_4QXPFBQJ1Itp3p7cT1YHlgu_4eT1HQUk9_BXU8,1763
98
+ etlplus/file/rda.py,sha256=WCqM3vgCZa8hJYvszCenPhaflg62SuskUMC4VK4gfqs,1705
99
+ etlplus/file/rds.py,sha256=fVkvggU67QZniQMZQXzi-obos9xyuHwz13e62OSMfLU,1662
100
+ etlplus/file/sas7bdat.py,sha256=VoqHQ4BH8WEjlgl0Za6g3hfQMhNQjVxYEP5BxBAqXqc,1743
101
+ etlplus/file/sav.py,sha256=anStccP9vInq_44_litvWMPCGoQm-yAU0sZ0PpKsr2g,1634
102
+ etlplus/file/sqlite.py,sha256=nrUHC7dqwiPHsNoxRMvo7DwTiqOXxAs6TPq7HQbwdCw,1689
103
+ etlplus/file/stub.py,sha256=4vlqjIo_bBy69dIU2y2iy5fqnezt_bOuS218zyijQfs,1749
104
+ etlplus/file/sylk.py,sha256=PCs_cA5lap6taf9bK5JY50seixomrsQE0wUrsFvXEmc,1694
105
+ etlplus/file/tab.py,sha256=Hz7YjKP68OXwwd7EVl_U0O3WvsoPwerOddGL63p3-7Q,2021
106
+ etlplus/file/toml.py,sha256=KGxqNX7V3ajsqSagU8aIBxwMrbxFPAleLKiljyAcqNA,1663
107
+ etlplus/file/tsv.py,sha256=SUe-UeL3zExX2idvpHiMWuRm5VQ8AyqqlNJckc9CDCU,1776
108
+ etlplus/file/txt.py,sha256=Ys7MmKBOiHQnRK0Bb3VuIIny2_1Ejr-V_YdPlUfOEjc,2321
109
+ etlplus/file/vm.py,sha256=psRbD1mH5QyLNlX1txpn4eghUawdIA30aIjf-wP0szQ,1626
110
+ etlplus/file/wks.py,sha256=BblAhTzAXn93LK1xdkdWcYypYfZa2PxqvgVCuC_sq6w,1692
111
+ etlplus/file/xls.py,sha256=OK0_MZYaPWFDWbAdp-suz2wSg89px1EWT4kY2e9R3pg,1799
112
+ etlplus/file/xlsm.py,sha256=BDux1Tm7iccmbvtKk_X5bPET0PpF0IW9c7ympIJroEo,1775
113
+ etlplus/file/xlsx.py,sha256=UOwz-IIeRU2GyAI8Upx2hn7v3KPZalpIaGO9hXuaOGo,2192
114
+ etlplus/file/xml.py,sha256=lor8KsclDSy1tdOExL1GmYpaQVcZGRNEwOd2liiPPbk,4389
115
+ etlplus/file/xpt.py,sha256=9lW8ievpqF4PKPFRWH0ZlmGe7BR8TP_ETRogNQ79TOA,1739
116
+ etlplus/file/yaml.py,sha256=b_SxDSEQPVXQv9a9Ih4wAcI940pE5Ksy5pQE6K6ckhw,2062
117
+ etlplus/file/zip.py,sha256=8wnmnGW_pGTx65736CzAG67XIi5y98KxucRT8sNDeuQ,4195
118
+ etlplus/file/zsav.py,sha256=WasYgfogIQAvm4LWkDWgeeeyYWvY4MSoh-SrScqqBOM,1701
119
+ etlplus/ops/README.md,sha256=SP1yW0aATvMp_HEslSjf2Hff-At96QDkfXxh3FcDbO0,1465
120
+ etlplus/ops/__init__.py,sha256=r5_-pPhSLCD1nq1EbN0rQrLOGpudueeIxCH_JvT2bt0,1718
121
+ etlplus/ops/enums.py,sha256=dC_8CfaTiB2i83Az-oG-2hkjMuAfDADNbcMF2f94UeU,4014
122
+ etlplus/ops/extract.py,sha256=fPk8LLjEmCZ5U59IUm15vG5aXTmduteCqtsVIlxvvxI,11022
123
+ etlplus/ops/load.py,sha256=yicciVwomUKkdbhuRqbavKBNpT2Hg813BnQzG6IgF4o,10811
124
+ etlplus/ops/run.py,sha256=4HWelMevW0pW_76lJkoMcbzeQMiThMbxzO09wx6yoHg,11278
125
+ etlplus/ops/transform.py,sha256=-41uw_pwOGsMTUYxtXaeYOmTF_fTkN-L4Q9KT1OFe78,25671
126
+ etlplus/ops/types.py,sha256=Cvp8AJzJhJ1iYjyHd7j9ZLioxE2NdK__3g6fOI0qq6Q,4198
127
+ etlplus/ops/utils.py,sha256=9UXym1W4qCMxBkcqCPUmI1QJ27yh1kOAbVnI1KsAGwE,10855
128
+ etlplus/ops/validate.py,sha256=VtMhrH6itd_PFH4IhBOndvJpxxOPI56OAJhnrSyT_6U,13323
129
+ etlplus/templates/README.md,sha256=hkeFypVEhxygSB4H40BuGJmZHzs8DbpPnhGt9mvgY_c,1478
130
+ etlplus/templates/__init__.py,sha256=tsniN7XJYs3NwYxJ6c2HD5upHP3CDkLx-bQCMt97UOM,106
131
+ etlplus/templates/ddl.sql.j2,sha256=s8fMWvcb4eaJVXkifuib1aQPljtZ8buuyB_uA-ZdU3Q,4734
132
+ etlplus/templates/view.sql.j2,sha256=Iy8DHfhq5yyvrUKDxqp_aHIEXY4Tm6j4wT7YDEFWAhk,2180
133
+ etlplus/workflow/README.md,sha256=QelyVFGX-sZM9mx3v6BXkzX36hv6MI1yK4eCPSOKNwI,1050
134
+ etlplus/workflow/__init__.py,sha256=XgCQr684om0rONrQZ61yQ0r4qqFQL0iLAAB2Mn2BRSE,594
135
+ etlplus/workflow/dag.py,sha256=-f1x8N1eb-PUuiOwEvFLmJwfR7JaMDJihlCHlhrFhgE,2937
136
+ etlplus/workflow/jobs.py,sha256=hLE9QJUzQaI0aOEon0P-xxxa6xHp997ANei4F310WRY,8711
137
+ etlplus/workflow/profile.py,sha256=FQU3bzBZ9_yjKC9kCXKN1FQDS9zjNUjtWB1r3UL95_Q,1993
138
+ etlplus-0.16.7.dist-info/licenses/LICENSE,sha256=MuNO63i6kWmgnV2pbP2SLqP54mk1BGmu7CmbtxMmT-U,1069
139
+ etlplus-0.16.7.dist-info/METADATA,sha256=F2JOWX7lBq84wFev4eeGCXXsnXuOpxulCkBMjsBoxnE,28401
140
+ etlplus-0.16.7.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
141
+ etlplus-0.16.7.dist-info/entry_points.txt,sha256=6w-2-jzuPa55spzK34h-UKh2JTEShh38adFRONNP9QE,45
142
+ etlplus-0.16.7.dist-info/top_level.txt,sha256=aWWF-udn_sLGuHTM6W6MLh99ArS9ROkUWO8Mi8y1_2U,8
143
+ etlplus-0.16.7.dist-info/RECORD,,
@@ -1,141 +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=8-uUOKe68cPzlmUg-e7gavkC95kbTJXRpRzvXehIsRk,6841
6
- etlplus/mixins.py,sha256=ifGpHwWv7U00yqGf-kN93vJax2IiK4jaGtTsPsO3Oak,1350
7
- etlplus/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- etlplus/types.py,sha256=vB1Sh_5771eVv8-RClJatBQ7PcsScY6C2MvJqnI8IG8,6216
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=0F7dXIQKWUhhVu2Us527GJeknJIWpBqz7CK2e5OQgcE,1947
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/connector/__init__.py,sha256=KMBUPBFU1xA4aVkA2RxrdZ3IR6yWHr-F86GYK05wyKg,1006
40
- etlplus/connector/api.py,sha256=vkeoqR94cVtEW4uKeVzuXKji08ojzd0fyqhtLSQ0V1k,4524
41
- etlplus/connector/connector.py,sha256=OQP4kK_1O6g9FnDBrE3L58LOSfImsK5EBHtKI4N71u8,574
42
- etlplus/connector/core.py,sha256=0GeXjlZFnyS-4j7jR_AtclQtELE6x-vodHJ4rfjFLL8,2795
43
- etlplus/connector/database.py,sha256=fK_b4r5NsFTTUv0GHoEen7sVX45wVy1JLKds0qxfVM8,3011
44
- etlplus/connector/enums.py,sha256=43NziUOpol4YvBtM13WJJzY1EAQOjaWESxLl7J2ZT8U,1069
45
- etlplus/connector/file.py,sha256=c8zBKRYnrXXqLZRpB_FRBMFlel5BU6GFEDFdfX6uk9c,2855
46
- etlplus/connector/types.py,sha256=j8eet-a701VC6VQa1pIYLt4HdDcQp8druXtOCb7UMLw,945
47
- etlplus/connector/utils.py,sha256=fS2hPAfuhKTg_L2xDxF5fJnsO1SuuDIiEWU7GuaJKUM,2933
48
- etlplus/database/README.md,sha256=3Af5BEGLkBmMoGOLtS1GQuj4wKPh_CwSp5NEPMf2uaY,1435
49
- etlplus/database/__init__.py,sha256=AKJsDl2RHuRGPS-eXgNJeh4aSncJP5Y0yLApBF6i7i8,1052
50
- etlplus/database/ddl.py,sha256=-7EAbyLkU8m3eYlHSNLFOQr1I4fPEbF0hTyByzjyvsU,7909
51
- etlplus/database/engine.py,sha256=eDFnp4vzhoKuyLJSeHYpndHLUr27neS7CgdvMw8mNok,4384
52
- etlplus/database/orm.py,sha256=ZCHkeVEUns2eievlFzmLyVKA3YVPea1xs6vrcUBZ7Jw,10010
53
- etlplus/database/schema.py,sha256=813C0Dd3WE53KTYot4dgjAxctgKXLXx-8_Rk_4r2e28,7022
54
- etlplus/database/types.py,sha256=_pkQyC14TzAlgyeIqZG4F5LWYknZbHw3TW68Auk7Ya0,795
55
- etlplus/file/README.md,sha256=ivU8svVs1fktQiW5ozvh1N-IOSLCAQ3oM9bW8DUFwIw,3630
56
- etlplus/file/__init__.py,sha256=X03bosSM-uSd6dh3ur0un6_ozFRw2Tm4PE6kVUjtXK8,475
57
- etlplus/file/_imports.py,sha256=Cozv7d5G2P9PNgy2M4vrz0Wzo7hx9FTC0WcGcuVqga0,3193
58
- etlplus/file/_io.py,sha256=Z3aTujy0rpbMKJHvO2UZ6bA1ohO-6ZiemyxF4GsayRc,3951
59
- etlplus/file/accdb.py,sha256=mMwnNXd3rB0Z_1uN6wpiF0jL4flUmZbMBoiIS3Fq5mg,1691
60
- etlplus/file/arrow.py,sha256=nkSXiDCFOSbEJX387h-c91WeYPFZehj2r3_iznVy5HE,1704
61
- etlplus/file/avro.py,sha256=GR9GbDNcQ7TpaPKhcC6JL79XicSmNDIhH3cP0QDmLJg,4447
62
- etlplus/file/bson.py,sha256=CYpA1PSPzyM9Dtv5ik3RG0GUwLjucJGbrhyo7THcVa0,1623
63
- etlplus/file/cbor.py,sha256=NNQkCRenh9YOYdeR-w-AbUfK9sjGkwoA0Idtr-dclm4,1677
64
- etlplus/file/cfg.py,sha256=HuGuxNIKPWyg14mIBlVB5Ch_npf9zObRt2mgoymzB_A,1720
65
- etlplus/file/conf.py,sha256=x6OH9in-VKkTIPtlwbYEsYDJ703oFJjUFHVCoFULhvk,1778
66
- etlplus/file/core.py,sha256=IzcG4pQLq3QCQhswbgdWKxHSvmzvWzYweBrz7t6HDDo,8888
67
- etlplus/file/csv.py,sha256=FTdxlVs3vsaj_t7vGY-unNiCpJI2TWuiaf2_8dJan6M,1754
68
- etlplus/file/dat.py,sha256=o4FN-6_HCVXuD-If3aYfIqU4QTZMvECNZ5Yx4wr15ew,1652
69
- etlplus/file/dta.py,sha256=7DuvvKSgbpBoKZHm7CWJ7NKstRasp0fUEj1XF02YgsE,1626
70
- etlplus/file/duckdb.py,sha256=kCFxNUEI9gEeeMWJuCHyfKVsqvhij4Q7LJVpZ3AMDYw,1641
71
- etlplus/file/enums.py,sha256=5cwIfcoYGEjaX0AzaJzY0PjztKykzFTQ1HBnb2NTEXs,11065
72
- etlplus/file/feather.py,sha256=joOdQf_oIu__i8hwy5X4eK6MSqh6O0kKnub2VWD_Clg,2679
73
- etlplus/file/fwf.py,sha256=ktXIKatOPUs6YeB30K7BNvfwwB4BkXoYEomsvCjk_ss,1599
74
- etlplus/file/gz.py,sha256=NfiXiE37rS2YC7dk1YC1ELbbEpzJdypIy-no9cVoaco,2641
75
- etlplus/file/hbs.py,sha256=jxAPY10R_2vhP-1QWGBmANCI1dJ9vetaLo5Mp8kMa3Y,1624
76
- etlplus/file/hdf5.py,sha256=hjpBUue5ss6R8ljZ-gYxDxpOLGBKgNvmAvn97uNmYAw,1634
77
- etlplus/file/ini.py,sha256=ZL_0Wq5-yNcveyKF-minH2AFh-RmspM06myHquAobao,1711
78
- etlplus/file/ion.py,sha256=ZK0g-47GQi9fCDT4EeXCgiVbWmmj7SU1WHwt-CrLwCU,1720
79
- etlplus/file/jinja2.py,sha256=TV-ZIzsJIg4hJyvWI7TWaMRjqL2s18Dg3ig3Hs50_pE,1640
80
- etlplus/file/json.py,sha256=vY3UYjzQzmJUAY0avR2cm70hTTED4xEF38WEEj0DhDQ,2140
81
- etlplus/file/log.py,sha256=6Te617oy8RWrzCa6hC0O65ygPIpfzkLBcP-x9glwM9g,1691
82
- etlplus/file/mat.py,sha256=JbZ7SziCqYZR8LljyLoSn05_-bPSzNH16KNB-wvzdpM,1664
83
- etlplus/file/mdb.py,sha256=Xlxx9RZlnErOrzYRFnzzOZltc99FalhoUY-oAiiQpPg,1667
84
- etlplus/file/msgpack.py,sha256=GOYfgxyK2N8Opy8kLsz4uDhVrT1vyOcVQ4eJvdhrNdA,1668
85
- etlplus/file/mustache.py,sha256=qOddtbtZwDyoXzHzqxpnUoO_lWKf3NPyfp-V21o0cRw,1657
86
- etlplus/file/nc.py,sha256=a1_er7Fco0FVw3GtDrd_OzZAI7U_sP9x-wi9qRgebaw,1680
87
- etlplus/file/ndjson.py,sha256=jpZgLZL-Vy4a6tsm5cxy0G9kW-x-X5kFSbnUn-XjIJw,2442
88
- etlplus/file/numbers.py,sha256=HkG3ISk35FZnorwECuciIiI4HZWFp9E-mRhOfhYclx8,1620
89
- etlplus/file/ods.py,sha256=MVEM1E2uLFmnTyCnyhljsrgdBC8psUGSVUGLmiuZTLM,1810
90
- etlplus/file/orc.py,sha256=RdK4IERoLWnGSgpBclfDmwMmtac8VYyet3Z9AFCyj2E,2612
91
- etlplus/file/parquet.py,sha256=6klk-GgNnFBbsRU0J8LiGm5c67A6FcX1AEZNf-cNSPM,2768
92
- etlplus/file/pb.py,sha256=0OOSmuFUfmB-DZILSA9FO2JgXfJmt9TnigH3E2gW4AI,1625
93
- etlplus/file/pbf.py,sha256=89fF58WkXmOBJh8Jh2zcA0cKBkB5neXMWyz95toPnXo,1630
94
- etlplus/file/properties.py,sha256=4KSRGWo_-fthVdOnJKXqUvHA2I6igcGWW9fnWJK7oLA,1728
95
- etlplus/file/proto.py,sha256=LjHFWVYEIyADwpd9Lzzd1FAcM8pFXN1pwoptxEDOvfQ,1678
96
- etlplus/file/psv.py,sha256=J-fPTMgTZFHZWJL6kLKaFgLXhtEtK66hJW59YLaWe9E,1736
97
- etlplus/file/rda.py,sha256=dSrHwLl_qu8bhnltWIuYqxpguP3JLH39JLOVxHsHLhE,1678
98
- etlplus/file/rds.py,sha256=o1IKY6CmLXSp-Iv7kBDFkT8X5QVTy5uVAZMm-7sUo4Y,1635
99
- etlplus/file/sas7bdat.py,sha256=yyX7YrnmZ91EY9WeTB_eZAqjCSEgD_9WTLGpD4Sv5AY,1716
100
- etlplus/file/sav.py,sha256=ij02gnYOevRV9e8dbDwi3plulkw-qEQoxccvydHXZK4,1607
101
- etlplus/file/sqlite.py,sha256=NRb93RuIDlu1eRMZnYDjDBhFO88gkDT7tvpmfgA4hQE,1662
102
- etlplus/file/stub.py,sha256=4vlqjIo_bBy69dIU2y2iy5fqnezt_bOuS218zyijQfs,1749
103
- etlplus/file/sylk.py,sha256=QwciGJVWxEKz3TH4s7hshHHLAfKiCqBxyV4umg9EVQI,1667
104
- etlplus/file/tab.py,sha256=Y9u5J-efoKIMIYnARhrPXA2KEF0pJ7deZF4zkz7ZID0,1994
105
- etlplus/file/toml.py,sha256=0kGJEF2353kNQWFbYd8G4XWjuPHvdl7vPILCWglsyk0,1636
106
- etlplus/file/tsv.py,sha256=SUe-UeL3zExX2idvpHiMWuRm5VQ8AyqqlNJckc9CDCU,1776
107
- etlplus/file/txt.py,sha256=Ys7MmKBOiHQnRK0Bb3VuIIny2_1Ejr-V_YdPlUfOEjc,2321
108
- etlplus/file/vm.py,sha256=K3EE-4TpXECcHxS1EEVmLOidkqj-MJeeztTRTRUaQ1o,1599
109
- etlplus/file/wks.py,sha256=dZtf_6ObJVUj_m7XIUAzuTDQkmYk0mhA9LF3rVltatI,1665
110
- etlplus/file/xls.py,sha256=dNfhaDSbSy-xQrE3qriCrmfXRQY7HqAtog91b-7RmpA,1782
111
- etlplus/file/xlsm.py,sha256=pZHybknmipUHEwjQBHWiU4HfVMLkGG7Zxe3rxBrxPT0,1748
112
- etlplus/file/xlsx.py,sha256=UOwz-IIeRU2GyAI8Upx2hn7v3KPZalpIaGO9hXuaOGo,2192
113
- etlplus/file/xml.py,sha256=lor8KsclDSy1tdOExL1GmYpaQVcZGRNEwOd2liiPPbk,4389
114
- etlplus/file/xpt.py,sha256=L70o8cIGWPeBdbfVJk-b9I9PE2MICtLkwhJjzqIeBgU,1712
115
- etlplus/file/yaml.py,sha256=b_SxDSEQPVXQv9a9Ih4wAcI940pE5Ksy5pQE6K6ckhw,2062
116
- etlplus/file/zip.py,sha256=8wnmnGW_pGTx65736CzAG67XIi5y98KxucRT8sNDeuQ,4195
117
- etlplus/file/zsav.py,sha256=5hMuBjYeHw--UL2ZCCDn6TzJkr_YNhdQhvKI6nr3WW0,1674
118
- etlplus/ops/README.md,sha256=8omi7DYZhelc26JKk8Cm8QR8I3OGwziysPj1ivx41iQ,1380
119
- etlplus/ops/__init__.py,sha256=NIIr2f-AZj5B0piBt6gjv46Yn0SzGYxEe6BPoopRh38,1702
120
- etlplus/ops/extract.py,sha256=xNHcKdx8LrnvIMWUFG-SmszpAlclz2jhvKFfX-sFGLI,5994
121
- etlplus/ops/load.py,sha256=sxADrZ0CE4NfJ7T4Chwa6ckTkK3gSjYRdJW4qL-B61k,8536
122
- etlplus/ops/run.py,sha256=x7bYrokpBE4XRfl6Rq7xeD3s-5A9P4HUVlufj_PxoTw,13526
123
- etlplus/ops/transform.py,sha256=H9DxAA-c9kwklAnmiZK21w7FMJnHfu0bLcguXfIGE-k,25417
124
- etlplus/ops/utils.py,sha256=lJmrO1KDob-xZU8Gc2SvZvMgdYLsVoaz-fTV42KkLVo,10835
125
- etlplus/ops/validate.py,sha256=-OLAwQNNCmmDbmj0SB7zzYXDkJfcyBP_z9nTpqImLP0,13271
126
- etlplus/templates/README.md,sha256=IfPXlj1TGVA-uFWosHJhE2rabFW-znxOlOMazO9Z5cE,1361
127
- etlplus/templates/__init__.py,sha256=tsniN7XJYs3NwYxJ6c2HD5upHP3CDkLx-bQCMt97UOM,106
128
- etlplus/templates/ddl.sql.j2,sha256=s8fMWvcb4eaJVXkifuib1aQPljtZ8buuyB_uA-ZdU3Q,4734
129
- etlplus/templates/view.sql.j2,sha256=Iy8DHfhq5yyvrUKDxqp_aHIEXY4Tm6j4wT7YDEFWAhk,2180
130
- etlplus/workflow/README.md,sha256=D1oloiJCOHiqpqgv3m3qpRSIUOMIQcWtIsOPv7KkNI0,1652
131
- etlplus/workflow/__init__.py,sha256=PWWAv4Bb94hls8YDZXU5DY5aXMbtSYOLYHqGRThxoA4,668
132
- etlplus/workflow/dag.py,sha256=kp31dORgk0GHbct_bipU5hu_0elwBtwLsXGjMWuhFHI,2503
133
- etlplus/workflow/jobs.py,sha256=onvzsZpTpZUWIivIGR4SjbUPSZ1X0nXpxAW0O0VumhQ,8945
134
- etlplus/workflow/pipeline.py,sha256=7bGvMywBu_H6XLsYjeNBS_NmVH7Bo7BmuzkWm-BAXMI,9633
135
- etlplus/workflow/profile.py,sha256=dZ6P50k_ZqXnrbgrbODUqgVkymbchcEqfZR-ExjTd3M,1935
136
- etlplus-0.16.0.dist-info/licenses/LICENSE,sha256=MuNO63i6kWmgnV2pbP2SLqP54mk1BGmu7CmbtxMmT-U,1069
137
- etlplus-0.16.0.dist-info/METADATA,sha256=soyAK0MDUoH-U0-WQt40XS6zH8L8Q5dywyHtEO3cUGo,28114
138
- etlplus-0.16.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
139
- etlplus-0.16.0.dist-info/entry_points.txt,sha256=6w-2-jzuPa55spzK34h-UKh2JTEShh38adFRONNP9QE,45
140
- etlplus-0.16.0.dist-info/top_level.txt,sha256=aWWF-udn_sLGuHTM6W6MLh99ArS9ROkUWO8Mi8y1_2U,8
141
- etlplus-0.16.0.dist-info/RECORD,,