etlplus 0.11.10__py3-none-any.whl → 0.11.12__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/README.md ADDED
@@ -0,0 +1,37 @@
1
+ # etlplus package
2
+
3
+ The `etlplus` package provides a unified Python API and CLI for ETL operations: extraction,
4
+ validation, transformation, and loading of data from files, APIs, and databases.
5
+
6
+ - Top-level entry points for extract, validate, transform, and load
7
+ - Utilities for pipeline orchestration and helpers
8
+ - Exposes all subpackages for advanced usage
9
+
10
+ Back to project overview: see the top-level [README](../README.md).
11
+
12
+ ## Subpackages
13
+
14
+ - [etlplus.api](api/README.md): Lightweight HTTP client and paginated REST helpers
15
+ - [etlplus.file](file/README.md): Unified file format support and helpers
16
+ - [etlplus.config](config/README.md): Configuration helpers for connectors, pipelines, jobs, and
17
+ profiles
18
+ - [etlplus.cli](cli/README.md): Command-line interface for ETLPlus workflows
19
+ - [etlplus.database](database/README.md): Database engine, schema, and ORM helpers
20
+ - [etlplus.templates](templates/README.md): SQL and DDL template helpers
21
+ - [etlplus.validation](validation/README.md): Data validation utilities and helpers
22
+
23
+ ## Quickstart
24
+
25
+ ```python
26
+ from etlplus import extract, validate, transform, load
27
+
28
+ data = extract("file", "input.csv")
29
+ filtered = transform(data, {"filter": {"field": "age", "op": "gt", "value": 25}})
30
+ assert validate(filtered, {"age": {"type": "number", "min": 0}})["valid"]
31
+ load(filtered, "file", "output.json", file_format="json")
32
+ ```
33
+
34
+ ## See Also
35
+
36
+ - [Top-level project README](../README.md)
37
+ - [API reference](../docs/README.md)
etlplus/api/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # etlplus.api module.
1
+ # etlplus.api subpackage
2
2
 
3
- Focused documentation for the `etlplus.api` subpackage: a lightweight HTTP client and helpers for
4
- paginated REST endpoints.
3
+ Documentation for the `etlplus.api` subpackage: a lightweight HTTP client and helpers for paginated
4
+ REST endpoints.
5
5
 
6
6
  - Provides a small `EndpointClient` for calling JSON APIs
7
7
  - Supports page-, offset-, and cursor-based pagination via `PaginationConfig`
@@ -12,6 +12,20 @@ paginated REST endpoints.
12
12
 
13
13
  Back to project overview: see the top-level [README](../../README.md).
14
14
 
15
+ - [etlplus.api subpackage](#etlplusapi-subpackage)
16
+ - [Installation](#installation)
17
+ - [Quickstart](#quickstart)
18
+ - [Overriding Rate Limits Per Call](#overriding-rate-limits-per-call)
19
+ - [Choosing `records_path` and `cursor_path`](#choosing-records_path-and-cursor_path)
20
+ - [Cursor-Based Pagination Example](#cursor-based-pagination-example)
21
+ - [Offset-based pagination example](#offset-based-pagination-example)
22
+ - [Authentication](#authentication)
23
+ - [Errors and Rate Limiting](#errors-and-rate-limiting)
24
+ - [Types and Transport](#types-and-transport)
25
+ - [Supporting Modules](#supporting-modules)
26
+ - [Minimal Contract](#minimal-contract)
27
+ - [See also](#see-also)
28
+
15
29
  ## Installation
16
30
 
17
31
  `etlplus.api` ships as part of the `etlplus` package. Install the package as usual:
@@ -233,3 +247,6 @@ providers can fall back to their own defaults. If you already possess a static t
233
247
  ## See also
234
248
 
235
249
  - Top-level CLI and library usage in the main [README](../../README.md)
250
+
251
+
252
+ [def]: #installation
etlplus/cli/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # etlplus.cli subpackage
2
+
3
+ Documentation for the `etlplus.cli` subpackage: command-line interface for ETLPlus workflows.
4
+
5
+ - Provides a CLI for running ETL pipelines, jobs, and utilities
6
+ - Supports commands for running, validating, and inspecting pipelines
7
+ - Includes options for configuration, state, and output control
8
+ - Exposes handlers for custom command integration
9
+
10
+ Back to project overview: see the top-level [README](../../README.md).
11
+
12
+ - [etlplus.cli subpackage](#etlpluscli-subpackage)
13
+ - [Available Commands](#available-commands)
14
+ - [Command Options](#command-options)
15
+ - [Example: Running a Pipeline](#example-running-a-pipeline)
16
+ - [See Also](#see-also)
17
+
18
+ ## Available Commands
19
+
20
+ - **run**: Execute a pipeline or job
21
+ - **validate**: Validate pipeline or config files
22
+ - **inspect**: Show pipeline/job details
23
+
24
+ ## Command Options
25
+
26
+ - `--config`: Path to config file
27
+ - `--state`: Path to state file
28
+ - `--output`: Output file or format
29
+
30
+ ## Example: Running a Pipeline
31
+
32
+ ```bash
33
+ etlplus run --config configs/pipeline.yml --output results.json
34
+ ```
35
+
36
+ ## See Also
37
+
38
+ - Top-level CLI and library usage in the main [README](../../README.md)
39
+ - Command handlers in [handlers.py](handlers.py)
40
+ - Command options in [options.py](options.py)
@@ -0,0 +1,52 @@
1
+ # etlplus.config subpackage
2
+
3
+ Documentation for the `etlplus.config` subpackage: configuration helpers for connectors, pipelines,
4
+ jobs, and profiles.
5
+
6
+ - Provides classes and utilities for managing ETL pipeline configuration
7
+ - Supports YAML/JSON config loading and validation
8
+ - Includes helpers for connectors, jobs, pipelines, and profiles
9
+ - Exposes type definitions for config schemas
10
+
11
+ Back to project overview: see the top-level [README](../../README.md).
12
+
13
+ - [etlplus.config subpackage](#etlplusconfig-subpackage)
14
+ - [Supported Configuration Types](#supported-configuration-types)
15
+ - [Loading and Validating Configs](#loading-and-validating-configs)
16
+ - [Example: Loading a Pipeline Config](#example-loading-a-pipeline-config)
17
+ - [See Also](#see-also)
18
+
19
+ ## Supported Configuration Types
20
+
21
+ - **Connector**: Connection details for databases, files, or APIs
22
+ - **Job**: ETL job definitions and scheduling
23
+ - **Pipeline**: End-to-end pipeline configuration
24
+ - **Profile**: User or environment-specific settings
25
+
26
+ ## Loading and Validating Configs
27
+
28
+ Use the provided classes to load and validate configuration files:
29
+
30
+ ```python
31
+ from etlplus.config import PipelineConfig
32
+
33
+ cfg = PipelineConfig.from_yaml("pipeline.yml")
34
+ ```
35
+
36
+ - Supports YAML and JSON formats
37
+ - Validates against expected schema
38
+
39
+ ## Example: Loading a Pipeline Config
40
+
41
+ ```python
42
+ from etlplus.config import PipelineConfig
43
+
44
+ pipeline = PipelineConfig.from_yaml("configs/pipeline.yml")
45
+ print(pipeline)
46
+ ```
47
+
48
+ ## See Also
49
+
50
+ - Top-level CLI and library usage in the main [README](../../README.md)
51
+ - Config type definitions in [types.py](types.py)
52
+ - Config utilities in [utils.py](utils.py)
@@ -0,0 +1,48 @@
1
+ # etlplus.database subpackage
2
+
3
+ Documentation for the `etlplus.database` subpackage: database engine, schema, and ORM helpers.
4
+
5
+ - Provides database engine and connection management
6
+ - Supports schema definition and DDL generation
7
+ - Includes lightweight ORM utilities for tabular data
8
+ - Exposes type definitions for database objects
9
+
10
+ Back to project overview: see the top-level [README](../../README.md).
11
+
12
+ - [etlplus.database subpackage](#etlplusdatabase-subpackage)
13
+ - [Database Engine and Connections](#database-engine-and-connections)
14
+ - [Schema and DDL Helpers](#schema-and-ddl-helpers)
15
+ - [ORM Utilities](#orm-utilities)
16
+ - [Example: Creating a Table](#example-creating-a-table)
17
+ - [See Also](#see-also)
18
+
19
+ ## Database Engine and Connections
20
+
21
+ - Manage connections to supported databases
22
+ - Configure engines for different backends
23
+
24
+ ## Schema and DDL Helpers
25
+
26
+ - Define table schemas and columns
27
+ - Generate DDL statements for supported databases
28
+
29
+ ## ORM Utilities
30
+
31
+ - Map rows to Python objects
32
+ - Simple CRUD helpers for tabular data
33
+
34
+ ## Example: Creating a Table
35
+
36
+ ```python
37
+ from etlplus.database import Schema, Engine
38
+
39
+ engine = Engine.connect("sqlite:///example.db")
40
+ schema = Schema.from_dict({"name": "users", "columns": [ ... ]})
41
+ engine.create_table(schema)
42
+ ```
43
+
44
+ ## See Also
45
+
46
+ - Top-level CLI and library usage in the main [README](../../README.md)
47
+ - Schema helpers in [schema.py](schema.py)
48
+ - ORM utilities in [orm.py](orm.py)
etlplus/file/README.md ADDED
@@ -0,0 +1,105 @@
1
+ # etlplus.file subpackage
2
+
3
+ Documentation for the `etlplus.file` subpackage: unified file format support and helpers for reading
4
+ and writing data files.
5
+
6
+ - Provides a consistent interface for reading and writing files in various formats
7
+ - Supports all formats defined in `FileFormat` (see below)
8
+ - Includes helpers for inferring file format and compression from filenames, extensions, or MIME
9
+ types
10
+ - Exposes a `File` class with instance methods for reading and writing data
11
+
12
+ Back to project overview: see the top-level [README](../../README.md).
13
+
14
+ - [etlplus.file subpackage](#etlplusfile-subpackage)
15
+ - [Supported File Formats](#supported-file-formats)
16
+ - [Inferring File Format and Compression](#inferring-file-format-and-compression)
17
+ - [Reading and Writing Files](#reading-and-writing-files)
18
+ - [Reading a File](#reading-a-file)
19
+ - [Writing a File](#writing-a-file)
20
+ - [File Instance Methods](#file-instance-methods)
21
+ - [Example: Reading and Writing](#example-reading-and-writing)
22
+ - [See Also](#see-also)
23
+
24
+ ## Supported File Formats
25
+
26
+ The following formats are defined in `FileFormat` and supported for reading and writing:
27
+
28
+ | Format | Description |
29
+ |-----------|---------------------------------------------|
30
+ | avro | Apache Avro binary serialization |
31
+ | csv | Comma-separated values text files |
32
+ | feather | Apache Arrow Feather columnar format |
33
+ | gz | Gzip-compressed files (see Compression) |
34
+ | json | Standard JSON files |
35
+ | ndjson | Newline-delimited JSON (JSON Lines) |
36
+ | orc | Apache ORC columnar format |
37
+ | parquet | Apache Parquet columnar format |
38
+ | tsv | Tab-separated values text files |
39
+ | txt | Plain text files |
40
+ | xls | Microsoft Excel (legacy .xls) |
41
+ | xlsx | Microsoft Excel (modern .xlsx) |
42
+ | zip | ZIP-compressed files (see Compression) |
43
+ | xml | XML files |
44
+ | yaml | YAML files |
45
+
46
+ Compression formats (gz, zip) are also supported as wrappers for other formats.
47
+
48
+ ## Inferring File Format and Compression
49
+
50
+ Use `infer_file_format_and_compression(value, filename=None)` to infer the file format and
51
+ compression from a filename, extension, or MIME type. Returns a tuple `(file_format,
52
+ compression_format)`.
53
+
54
+ ## Reading and Writing Files
55
+
56
+ The main entry point for file operations is the `File` class. To read or write files:
57
+
58
+ ### Reading a File
59
+
60
+ ```python
61
+ from etlplus.file import File
62
+
63
+ f = File("data/sample.csv")
64
+ data = f.read()
65
+ ```
66
+
67
+ - The `read()` method automatically detects the format and compression.
68
+ - Returns parsed data (e.g., list of dicts for tabular formats).
69
+
70
+ ### Writing a File
71
+
72
+ ```python
73
+ from etlplus.file import File
74
+
75
+ f = File("output.json")
76
+ f.write(data)
77
+ ```
78
+
79
+ - The `write()` method serializes and writes data in the appropriate format.
80
+ - Supports all formats listed above.
81
+
82
+ ## File Instance Methods
83
+
84
+ - `read()`: Reads and parses the file, returning structured data.
85
+ - `write(data)`: Writes structured data to the file in the detected format.
86
+
87
+ ## Example: Reading and Writing
88
+
89
+ ```python
90
+ from etlplus.file import File
91
+
92
+ # Read CSV
93
+ csv_file = File("data.csv")
94
+ rows = csv_file.read()
95
+
96
+ # Write JSON
97
+ json_file = File("output.json")
98
+ json_file.write(rows)
99
+ ```
100
+
101
+ ## See Also
102
+
103
+ - Top-level CLI and library usage in the main [README](../../README.md)
104
+ - File format enums in [enums.py](enums.py)
105
+ - Compression format enums in [enums.py](enums.py)
@@ -0,0 +1,46 @@
1
+ # etlplus.templates subpackage
2
+
3
+ Documentation for the `etlplus.templates` subpackage: SQL and DDL template helpers.
4
+
5
+ - Provides Jinja2 templates for DDL and view generation
6
+ - Supports templated SQL for multiple database backends
7
+ - Includes helpers for rendering templates with schema metadata
8
+
9
+ Back to project overview: see the top-level [README](../../README.md).
10
+
11
+ - [etlplus.templates subpackage](#etlpustemplates-subpackage)
12
+ - [Available Templates](#available-templates)
13
+ - [Rendering Templates](#rendering-templates)
14
+ - [Example: Rendering a DDL Template](#example-rendering-a-ddl-template)
15
+ - [See Also](#see-also)
16
+
17
+ ## Available Templates
18
+
19
+ - `ddl.sql.j2`: Generic DDL (CREATE TABLE) template
20
+ - `view.sql.j2`: Generic view creation template
21
+
22
+ ## Rendering Templates
23
+
24
+ Use the helpers to render templates with your schema or table metadata:
25
+
26
+ ```python
27
+ from etlplus.templates import render_template
28
+
29
+ sql = render_template("ddl.sql.j2", schema=my_schema)
30
+ ```
31
+
32
+ ## Example: Rendering a DDL Template
33
+
34
+ ```python
35
+ from etlplus.templates import render_template
36
+
37
+ schema = {"name": "users", "columns": [ ... ]}
38
+ sql = render_template("ddl.sql.j2", schema=schema)
39
+ print(sql)
40
+ ```
41
+
42
+ ## See Also
43
+
44
+ - Top-level CLI and library usage in the main [README](../../README.md)
45
+ - DDL template in [ddl.sql.j2](ddl.sql.j2)
46
+ - View template in [view.sql.j2](view.sql.j2)
@@ -0,0 +1,50 @@
1
+ # etlplus.validation subpackage
2
+
3
+ Documentation for the `etlplus.validation` subpackage: data validation utilities and helpers.
4
+
5
+ - Provides flexible data validation for ETL pipelines
6
+ - Supports type checking, required fields, and custom rules
7
+ - Includes utilities for rule definition and validation logic
8
+
9
+ Back to project overview: see the top-level [README](../../README.md).
10
+
11
+ - [etlplus.validation subpackage](#etlplusvalidation-subpackage)
12
+ - [Validation Features](#validation-features)
13
+ - [Defining Validation Rules](#defining-validation-rules)
14
+ - [Example: Validating Data](#example-validating-data)
15
+ - [See Also](#see-also)
16
+
17
+ ## Validation Features
18
+
19
+ - Type checking (string, number, boolean, etc.)
20
+ - Required/optional fields
21
+ - Enum and pattern validation
22
+ - Custom rule support
23
+
24
+ ## Defining Validation Rules
25
+
26
+ Validation rules are defined as dictionaries specifying field types, requirements, and constraints:
27
+
28
+ ```python
29
+ rules = {
30
+ "name": {"type": "string", "required": True},
31
+ "age": {"type": "number", "min": 0, "max": 120},
32
+ }
33
+ ```
34
+
35
+ ## Example: Validating Data
36
+
37
+ ```python
38
+ from etlplus.validation import validate
39
+
40
+ result = validate({"name": "Alice", "age": 30}, rules)
41
+ if result["valid"]:
42
+ print("Data is valid!")
43
+ else:
44
+ print(result["errors"])
45
+ ```
46
+
47
+ ## See Also
48
+
49
+ - Top-level CLI and library usage in the main [README](../../README.md)
50
+ - Validation utilities in [utils.py](utils.py)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: etlplus
3
- Version: 0.11.10
3
+ Version: 0.11.12
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
@@ -59,6 +59,7 @@ ETLPlus is a veritable Swiss Army knife for enabling simple ETL operations, offe
59
59
  package and command-line interface for data extraction, validation, transformation, and loading.
60
60
 
61
61
  - [ETLPlus](#etlplus)
62
+ - [Getting Started](#getting-started)
62
63
  - [Features](#features)
63
64
  - [Installation](#installation)
64
65
  - [Quickstart](#quickstart)
@@ -87,11 +88,27 @@ package and command-line interface for data extraction, validation, transformati
87
88
  - [Linting](#linting)
88
89
  - [Updating Demo Snippets](#updating-demo-snippets)
89
90
  - [Releasing to PyPI](#releasing-to-pypi)
90
- - [Links](#links)
91
91
  - [License](#license)
92
92
  - [Contributing](#contributing)
93
+ - [Documentation](#documentation)
94
+ - [Python Packages/Subpackage](#python-packagessubpackage)
95
+ - [Community Health](#community-health)
96
+ - [Other](#other)
93
97
  - [Acknowledgments](#acknowledgments)
94
98
 
99
+ ## Getting Started
100
+
101
+ ETLPlus helps you extract, validate, transform, and load data from files, databases, and APIs, either
102
+ as a Python library or from the command line.
103
+
104
+ To get started:
105
+
106
+ - See [Installation](#installation) for setup instructions.
107
+ - Try the [Quickstart](#quickstart) for a minimal working example (CLI and Python).
108
+ - Explore [Usage](#usage) for more detailed options and workflows.
109
+
110
+ ETLPlus supports Python 3.13 and above.
111
+
95
112
  ## Features
96
113
 
97
114
  - **Check** data pipeline definitions before running them:
@@ -416,7 +433,7 @@ etlplus transform \
416
433
  # 3. Validate transformed data
417
434
  etlplus validate \
418
435
  --rules '{"name": {"type": "string", "required": true}, "email": {"type": "string", "required": true}}' \
419
- temo/sample_transformed.json
436
+ temp/sample_transformed.json
420
437
 
421
438
  # 4. Load to CSV
422
439
  cat temp/sample_transformed.json \
@@ -603,17 +620,6 @@ git push origin v1.4.0
603
620
  If you want an extra smoke-test before tagging, run `make dist && pip install dist/*.whl` locally;
604
621
  this exercises the same build path the workflow uses.
605
622
 
606
- ## Links
607
-
608
- - API client docs: [`etlplus/api/README.md`](etlplus/api/README.md)
609
- - Examples: [`examples/README.md`](examples/README.md)
610
- - Pipeline authoring guide: [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
611
- - Runner internals: [`docs/run-module.md`](docs/run-module.md)
612
- - 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)
613
- - Typing philosophy: [`CONTRIBUTING.md#typing-philosophy`](CONTRIBUTING.md#typing-philosophy)
614
- - Demo and walkthrough: [`DEMO.md`](DEMO.md)
615
- - Additional references: [`REFERENCES.md`](`REFERENCES.md)
616
-
617
623
  ## License
618
624
 
619
625
  This project is licensed under the [MIT License](LICENSE).
@@ -637,6 +643,39 @@ If you choose to be a code contributor, please first refer these documents:
637
643
  - Typing philosophy (TypedDicts as editor hints, permissive runtime):
638
644
  [`CONTRIBUTING.md#typing-philosophy`](CONTRIBUTING.md#typing-philosophy)
639
645
 
646
+ ## Documentation
647
+
648
+ ### Python Packages/Subpackage
649
+
650
+ Navigate to detailed documentation for each subpackage:
651
+
652
+ - [etlplus.api](etlplus/api/README.md): Lightweight HTTP client and paginated REST helpers
653
+ - [etlplus.file](etlplus/file/README.md): Unified file format support and helpers
654
+ - [etlplus.config](etlplus/config/README.md): Configuration helpers for connectors, pipelines, jobs,
655
+ and profiles
656
+ - [etlplus.cli](etlplus/cli/README.md): Command-line interface for ETLPlus workflows
657
+ - [etlplus.database](etlplus/database/README.md): Database engine, schema, and ORM helpers
658
+ - [etlplus.templates](etlplus/templates/README.md): SQL and DDL template helpers
659
+ - [etlplus.validation](etlplus/validation/README.md): Data validation utilities and helpers
660
+
661
+ ### Community Health
662
+
663
+ - [Contributing Guidelines](CONTRIBUTING.md): How to contribute, report issues, and submit PRs
664
+ - [Code of Conduct](CODE_OF_CONDUCT.md): Community standards and expectations
665
+ - [Security Policy](SECURITY.md): Responsible disclosure and vulnerability reporting
666
+ - [Support](SUPPORT.md): Where to get help
667
+
668
+ ### Other
669
+
670
+ - API client docs: [`etlplus/api/README.md`](etlplus/api/README.md)
671
+ - Examples: [`examples/README.md`](examples/README.md)
672
+ - Pipeline authoring guide: [`docs/pipeline-guide.md`](docs/pipeline-guide.md)
673
+ - Runner internals: [`docs/run-module.md`](docs/run-module.md)
674
+ - 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)
675
+ - Typing philosophy: [`CONTRIBUTING.md#typing-philosophy`](CONTRIBUTING.md#typing-philosophy)
676
+ - Demo and walkthrough: [`DEMO.md`](DEMO.md)
677
+ - Additional references: [`REFERENCES.md`](REFERENCES.md)
678
+
640
679
  ## Acknowledgments
641
680
 
642
681
  ETLPlus is inspired by common work patterns in data engineering and software engineering patterns in
@@ -1,3 +1,4 @@
1
+ etlplus/README.md,sha256=5jNes37UIy_THNmUr5HSAyS5mTCTa5tqRfEPnvsgV4s,1455
1
2
  etlplus/__init__.py,sha256=M2gScnyir6WOMAh_EuoQIiAzdcTls0_5hbd_Q6of8I0,1021
2
3
  etlplus/__main__.py,sha256=btoROneNiigyfBU7BSzPKZ1R9gzBMpxcpsbPwmuHwTM,479
3
4
  etlplus/__version__.py,sha256=1E0GMK_yUWCMQFKxXjTvyMwofi0qT2k4CDNiHWiymWE,327
@@ -12,7 +13,7 @@ etlplus/transform.py,sha256=uAUVDDHYCgx7GpVez9IK3OAZM-CnCuMa9iox3vwGGJA,25296
12
13
  etlplus/types.py,sha256=1hsDlnF6r76zAwaUYay-i6pCM-Y0IU5nP7Crj8PLCQ4,6157
13
14
  etlplus/utils.py,sha256=BMLTWAvCJj3zLEcffBgURYnu0UGhhXsfH2WWpAt7fV8,13363
14
15
  etlplus/validate.py,sha256=7rJoEI_SIILdPpoBqqh2UJqg9oeReDz34mYSlc3t7Qg,12989
15
- etlplus/api/README.md,sha256=ZiyjxLz0LfFCzeYKXwtH8yY1OJ4hXCju7t2ICroFoU8,7215
16
+ etlplus/api/README.md,sha256=aGTbcL-EqaiMTS7GToibmeTIzjX-viP2OtUDfIJnZEo,7913
16
17
  etlplus/api/__init__.py,sha256=P2JUYFy6Ep4t6xnsBiCBfQCkQLHYYhA-yXPXCobS8Y0,4295
17
18
  etlplus/api/auth.py,sha256=GOO5on-LoMS1GXTAhtK9rFcfpjbBcNeA6NE5UZwIq0g,12158
18
19
  etlplus/api/config.py,sha256=wRpOaZ31sPReVzEMme0jKl_37nqgraESwuYSNxP_xDo,17397
@@ -29,6 +30,7 @@ etlplus/api/pagination/paginator.py,sha256=wtdY_er4yfjx5yTUQJ1gPq-IuWmpLAHeG5buB
29
30
  etlplus/api/rate_limiting/__init__.py,sha256=ZySB1dZettEDnWvI1EHf_TZ9L08M_kKsNR-Y_lbU6kI,1070
30
31
  etlplus/api/rate_limiting/config.py,sha256=2b4wIynblN-1EyMqI4aXa71SljzSjXYh5N1Nngr3jOg,9406
31
32
  etlplus/api/rate_limiting/rate_limiter.py,sha256=Uxozqd_Ej5Lsj-M-mLT2WexChgWh7x35_YP10yqYPQA,7159
33
+ etlplus/cli/README.md,sha256=rl9VYNH5MluV0rh-eP7TbxJZ5BTMEIaksxhl_JXpYio,1233
32
34
  etlplus/cli/__init__.py,sha256=J97-Rv931IL1_b4AXnB7Fbbd7HKnHBpx18NQfC_kE6c,299
33
35
  etlplus/cli/commands.py,sha256=g8_m3A8HEMyTRu2HctNiRoi2gtB5oSZCUEcyq-PIXos,24669
34
36
  etlplus/cli/constants.py,sha256=E6Uy4WauLa_0zkzxqImXh-bb1gKdb9sBZQVc8QOzr2Q,1943
@@ -38,6 +40,7 @@ etlplus/cli/main.py,sha256=IgeqxypixfwLHR-QcpgVMQ7vMZ865bXOh2oO9v-BWeM,5234
38
40
  etlplus/cli/options.py,sha256=vfXT3YLh7wG1iC-aTdSg6ItMC8l6n0Lozmy53XjqLbA,1199
39
41
  etlplus/cli/state.py,sha256=Pfd8ru0wYIN7eGp1_A0tioqs1LiCDZCuJ6AnjZb6yYQ,8027
40
42
  etlplus/cli/types.py,sha256=tclhKVJXDqHzlTQBYKARfqMgDOcuBJ-Zej2pvFy96WM,652
43
+ etlplus/config/README.md,sha256=ot6oFZxTz4x83mj1_FrQ13dO0z2QkRFDnkCkx7NPsSs,1636
41
44
  etlplus/config/__init__.py,sha256=VZWzOg7d2YR9NT6UwKTv44yf2FRUMjTHynkm1Dl5Qzo,1486
42
45
  etlplus/config/connector.py,sha256=0-TIwevHbKRHVmucvyGpPd-3tB1dKHB-dj0yJ6kq5eY,9809
43
46
  etlplus/config/jobs.py,sha256=hmzRCqt0OvCEZZR4ONKrd3lvSv0OmayjLc4yOBk3ug8,7399
@@ -45,12 +48,14 @@ etlplus/config/pipeline.py,sha256=m4Jh0ctFcKrIx6zR7LEC0sYY5wq0o8NqOruWPlz6qmA,94
45
48
  etlplus/config/profile.py,sha256=Ss2zedQGjkaGSpvBLTD4SZaWViMJ7TJPLB8Q2_BTpPg,1898
46
49
  etlplus/config/types.py,sha256=a0epJ3z16HQ5bY3Ctf8s_cQPa3f0HHcwdOcjCP2xoG4,4954
47
50
  etlplus/config/utils.py,sha256=4SUHMkt5bKBhMhiJm-DrnmE2Q4TfOgdNCKz8PJDS27o,3443
51
+ etlplus/database/README.md,sha256=nUQVwLwGzmpA5_u4oYJYkPIhIuJAIdWsoeRgr4joAIE,1431
48
52
  etlplus/database/__init__.py,sha256=AKJsDl2RHuRGPS-eXgNJeh4aSncJP5Y0yLApBF6i7i8,1052
49
53
  etlplus/database/ddl.py,sha256=0dEM9SJMMabkhI_h-Fc0j9a1Sl5lSyZdI0bIeBVGm10,7913
50
54
  etlplus/database/engine.py,sha256=PUxXLvLPyc-KaxuW7fXe12wYci7EvUp-Ad1H3bGhUog,4058
51
55
  etlplus/database/orm.py,sha256=gCSqH-CjQz6tV9133-VqgiwokK5ylun0BwXaIWfImAo,10008
52
56
  etlplus/database/schema.py,sha256=813C0Dd3WE53KTYot4dgjAxctgKXLXx-8_Rk_4r2e28,7022
53
57
  etlplus/database/types.py,sha256=_pkQyC14TzAlgyeIqZG4F5LWYknZbHw3TW68Auk7Ya0,795
58
+ etlplus/file/README.md,sha256=avWnyeKfs3uP3qa-DVBJ6t05jS2oFUPeQ3xf1Ph0eC0,3626
54
59
  etlplus/file/__init__.py,sha256=X03bosSM-uSd6dh3ur0un6_ozFRw2Tm4PE6kVUjtXK8,475
55
60
  etlplus/file/avro.py,sha256=My9VCUSVmHrGVCr6AAWJmnjyXOzdYUGraL_Mvyvs3x4,1115
56
61
  etlplus/file/core.py,sha256=_8AgtXlw1SuderxA43C-SPjudvnzknlUdpAQynTPu28,8682
@@ -69,14 +74,16 @@ etlplus/file/xlsx.py,sha256=SG4ILdxGXNdnwOakq4ExEDE6loWWrSEXFk47AZmwYzw,1115
69
74
  etlplus/file/xml.py,sha256=vjate5u9Z26LPlpvZsdzpqXsIUZRgen7oHa3ly-aIhs,3905
70
75
  etlplus/file/yaml.py,sha256=6KaWoG7oYB26EHX2TZ7LOgigO11Hoq3MH--adFq_Eck,3004
71
76
  etlplus/file/zip.py,sha256=IF6OznDqDHZNX1HmVUW3qHvNsy_7wRKGQ_iTHIBGG1U,912
77
+ etlplus/templates/README.md,sha256=kHSZ8FWcrlrcWz0hBIbho-k1Bi-PL-DQ7g02o-g70c8,1355
72
78
  etlplus/templates/__init__.py,sha256=tsniN7XJYs3NwYxJ6c2HD5upHP3CDkLx-bQCMt97UOM,106
73
79
  etlplus/templates/ddl.sql.j2,sha256=s8fMWvcb4eaJVXkifuib1aQPljtZ8buuyB_uA-ZdU3Q,4734
74
80
  etlplus/templates/view.sql.j2,sha256=Iy8DHfhq5yyvrUKDxqp_aHIEXY4Tm6j4wT7YDEFWAhk,2180
81
+ etlplus/validation/README.md,sha256=qusyiyJu2DsaK80jlwfXVZ0iDgeuTPOX2EL3a_fcFiw,1401
75
82
  etlplus/validation/__init__.py,sha256=Pe5Xg1_EA4uiNZGYu5WTF3j7odjmyxnAJ8rcioaplSQ,1254
76
83
  etlplus/validation/utils.py,sha256=Mtqg449VIke0ziy_wd2r6yrwJzQkA1iulZC87FzXMjo,10201
77
- etlplus-0.11.10.dist-info/licenses/LICENSE,sha256=MuNO63i6kWmgnV2pbP2SLqP54mk1BGmu7CmbtxMmT-U,1069
78
- etlplus-0.11.10.dist-info/METADATA,sha256=3rdmx9-liLMQTnoE4GbE7VRmKxvv46I8IDhl9jCyL70,21037
79
- etlplus-0.11.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
80
- etlplus-0.11.10.dist-info/entry_points.txt,sha256=6w-2-jzuPa55spzK34h-UKh2JTEShh38adFRONNP9QE,45
81
- etlplus-0.11.10.dist-info/top_level.txt,sha256=aWWF-udn_sLGuHTM6W6MLh99ArS9ROkUWO8Mi8y1_2U,8
82
- etlplus-0.11.10.dist-info/RECORD,,
84
+ etlplus-0.11.12.dist-info/licenses/LICENSE,sha256=MuNO63i6kWmgnV2pbP2SLqP54mk1BGmu7CmbtxMmT-U,1069
85
+ etlplus-0.11.12.dist-info/METADATA,sha256=zLTOEh_QnM9vU-1bR0ws5whRhYC8sAn6bQBc3fuot28,22731
86
+ etlplus-0.11.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
87
+ etlplus-0.11.12.dist-info/entry_points.txt,sha256=6w-2-jzuPa55spzK34h-UKh2JTEShh38adFRONNP9QE,45
88
+ etlplus-0.11.12.dist-info/top_level.txt,sha256=aWWF-udn_sLGuHTM6W6MLh99ArS9ROkUWO8Mi8y1_2U,8
89
+ etlplus-0.11.12.dist-info/RECORD,,