etlplus 0.3.5__tar.gz → 0.3.10__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. etlplus-0.3.10/.github/actions/python-bootstrap/action.yml +38 -0
  2. etlplus-0.3.10/.github/workflows/ci.yml +135 -0
  3. {etlplus-0.3.5 → etlplus-0.3.10}/PKG-INFO +1 -1
  4. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus.egg-info/PKG-INFO +1 -1
  5. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus.egg-info/SOURCES.txt +1 -0
  6. etlplus-0.3.5/.github/workflows/ci.yml +0 -87
  7. {etlplus-0.3.5 → etlplus-0.3.10}/.editorconfig +0 -0
  8. {etlplus-0.3.5 → etlplus-0.3.10}/.gitattributes +0 -0
  9. {etlplus-0.3.5 → etlplus-0.3.10}/.gitignore +0 -0
  10. {etlplus-0.3.5 → etlplus-0.3.10}/.pre-commit-config.yaml +0 -0
  11. {etlplus-0.3.5 → etlplus-0.3.10}/.ruff.toml +0 -0
  12. {etlplus-0.3.5 → etlplus-0.3.10}/CODE_OF_CONDUCT.md +0 -0
  13. {etlplus-0.3.5 → etlplus-0.3.10}/CONTRIBUTING.md +0 -0
  14. {etlplus-0.3.5 → etlplus-0.3.10}/DEMO.md +0 -0
  15. {etlplus-0.3.5 → etlplus-0.3.10}/LICENSE +0 -0
  16. {etlplus-0.3.5 → etlplus-0.3.10}/Makefile +0 -0
  17. {etlplus-0.3.5 → etlplus-0.3.10}/README.md +0 -0
  18. {etlplus-0.3.5 → etlplus-0.3.10}/REFERENCES.md +0 -0
  19. {etlplus-0.3.5 → etlplus-0.3.10}/docs/pipeline-guide.md +0 -0
  20. {etlplus-0.3.5 → etlplus-0.3.10}/docs/snippets/installation_version.md +0 -0
  21. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/__init__.py +0 -0
  22. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/__main__.py +0 -0
  23. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/__version__.py +0 -0
  24. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/README.md +0 -0
  25. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/__init__.py +0 -0
  26. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/auth.py +0 -0
  27. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/config.py +0 -0
  28. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/endpoint_client.py +0 -0
  29. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/errors.py +0 -0
  30. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/pagination/__init__.py +0 -0
  31. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/pagination/client.py +0 -0
  32. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/pagination/config.py +0 -0
  33. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/pagination/paginator.py +0 -0
  34. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/rate_limiting/__init__.py +0 -0
  35. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/rate_limiting/config.py +0 -0
  36. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/rate_limiting/rate_limiter.py +0 -0
  37. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/request_manager.py +0 -0
  38. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/retry_manager.py +0 -0
  39. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/transport.py +0 -0
  40. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/api/types.py +0 -0
  41. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/cli.py +0 -0
  42. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/config/__init__.py +0 -0
  43. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/config/connector.py +0 -0
  44. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/config/jobs.py +0 -0
  45. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/config/pipeline.py +0 -0
  46. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/config/profile.py +0 -0
  47. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/config/types.py +0 -0
  48. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/config/utils.py +0 -0
  49. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/enums.py +0 -0
  50. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/extract.py +0 -0
  51. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/file.py +0 -0
  52. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/load.py +0 -0
  53. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/mixins.py +0 -0
  54. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/py.typed +0 -0
  55. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/run.py +0 -0
  56. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/run_helpers.py +0 -0
  57. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/transform.py +0 -0
  58. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/types.py +0 -0
  59. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/utils.py +0 -0
  60. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/validate.py +0 -0
  61. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/validation/__init__.py +0 -0
  62. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus/validation/utils.py +0 -0
  63. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus.egg-info/dependency_links.txt +0 -0
  64. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus.egg-info/entry_points.txt +0 -0
  65. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus.egg-info/requires.txt +0 -0
  66. {etlplus-0.3.5 → etlplus-0.3.10}/etlplus.egg-info/top_level.txt +0 -0
  67. {etlplus-0.3.5 → etlplus-0.3.10}/examples/README.md +0 -0
  68. {etlplus-0.3.5 → etlplus-0.3.10}/examples/configs/pipeline.yml +0 -0
  69. {etlplus-0.3.5 → etlplus-0.3.10}/examples/data/sample.csv +0 -0
  70. {etlplus-0.3.5 → etlplus-0.3.10}/examples/data/sample.json +0 -0
  71. {etlplus-0.3.5 → etlplus-0.3.10}/examples/data/sample.xml +0 -0
  72. {etlplus-0.3.5 → etlplus-0.3.10}/examples/data/sample.xsd +0 -0
  73. {etlplus-0.3.5 → etlplus-0.3.10}/examples/data/sample.yaml +0 -0
  74. {etlplus-0.3.5 → etlplus-0.3.10}/examples/quickstart_python.py +0 -0
  75. {etlplus-0.3.5 → etlplus-0.3.10}/pyproject.toml +0 -0
  76. {etlplus-0.3.5 → etlplus-0.3.10}/pytest.ini +0 -0
  77. {etlplus-0.3.5 → etlplus-0.3.10}/setup.cfg +0 -0
  78. {etlplus-0.3.5 → etlplus-0.3.10}/setup.py +0 -0
  79. {etlplus-0.3.5 → etlplus-0.3.10}/tests/__init__.py +0 -0
  80. {etlplus-0.3.5 → etlplus-0.3.10}/tests/conftest.py +0 -0
  81. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/conftest.py +0 -0
  82. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_cli.py +0 -0
  83. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_examples_data_parity.py +0 -0
  84. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_pagination_strategy.py +0 -0
  85. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_pipeline_smoke.py +0 -0
  86. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_pipeline_yaml_load.py +0 -0
  87. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_run.py +0 -0
  88. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_run_profile_pagination_defaults.py +0 -0
  89. {etlplus-0.3.5 → etlplus-0.3.10}/tests/integration/test_i_run_profile_rate_limit_defaults.py +0 -0
  90. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/conftest.py +0 -0
  91. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_auth.py +0 -0
  92. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_config.py +0 -0
  93. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_endpoint_client.py +0 -0
  94. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_mocks.py +0 -0
  95. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_pagination_client.py +0 -0
  96. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_pagination_config.py +0 -0
  97. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_paginator.py +0 -0
  98. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_rate_limit_config.py +0 -0
  99. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_rate_limiter.py +0 -0
  100. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_request_manager.py +0 -0
  101. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_retry_manager.py +0 -0
  102. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/api/test_u_transport.py +0 -0
  103. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/config/test_u_connector.py +0 -0
  104. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/config/test_u_pipeline.py +0 -0
  105. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/conftest.py +0 -0
  106. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/test_u_cli.py +0 -0
  107. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/test_u_extract.py +0 -0
  108. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/test_u_file.py +0 -0
  109. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/test_u_load.py +0 -0
  110. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/test_u_transform.py +0 -0
  111. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/test_u_utils.py +0 -0
  112. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/test_u_validate.py +0 -0
  113. {etlplus-0.3.5 → etlplus-0.3.10}/tests/unit/validation/test_u_validation_utils.py +0 -0
  114. {etlplus-0.3.5 → etlplus-0.3.10}/tools/run_pipeline.py +0 -0
  115. {etlplus-0.3.5 → etlplus-0.3.10}/tools/update_demo_snippets.py +0 -0
@@ -0,0 +1,38 @@
1
+ # action.yml
2
+ # ETLPlus
3
+ #
4
+ # Copyright © 2025 Dagitali LLC. All rights reserved.
5
+ #
6
+ # A GitHub Actions action to set up Python and install Python package
7
+ # dependencies.
8
+
9
+ ---
10
+
11
+ name: Setup Python and Install Dependencies
12
+
13
+ description: >-
14
+ Sets up the requested Python runtime, upgrades pip, and installs the provided
15
+ dependency list to keep workflow jobs consistent.
16
+
17
+ inputs:
18
+ python-version:
19
+ description: Python version to install via actions/setup-python
20
+ required: true
21
+ python-bootstrap:
22
+ description: Arguments passed to "pip install"
23
+ required: true
24
+
25
+ runs:
26
+ using: composite
27
+ steps:
28
+ - uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{ inputs.python-version }}
31
+
32
+ - name: Upgrade pip
33
+ shell: bash
34
+ run: python -m pip install --upgrade pip
35
+
36
+ - name: Install dependencies
37
+ shell: bash
38
+ run: pip install ${{ inputs.python-bootstrap }}
@@ -0,0 +1,135 @@
1
+ # ci.yml
2
+ # ETLPlus
3
+ #
4
+ # Copyright © 2025 Dagitali LLC. All rights reserved.
5
+ #
6
+ # A GitHub Actions workflow configuration file for Continuous Integration (CI).
7
+
8
+ ---
9
+
10
+ name: CI
11
+
12
+ on:
13
+ push:
14
+ branches:
15
+ # GitFlow branches
16
+ - main
17
+ - develop
18
+ - '**/feature/**'
19
+ - '**/bugfix/**'
20
+ - '**/release/**'
21
+ - '**/hotfix/**'
22
+
23
+ # Extended branches
24
+ - '**/chore/**'
25
+ - '**/ci/**'
26
+ - '**/docs/**'
27
+ tags: [ 'v*.*.*' ]
28
+ pull_request:
29
+ branches: [ main, develop ]
30
+
31
+ permissions:
32
+ contents: read
33
+ id-token: write
34
+
35
+ jobs:
36
+ lint:
37
+ runs-on: ubuntu-latest
38
+ strategy: &python-matrix
39
+ matrix:
40
+ python-version: ['3.13', '3.14']
41
+ steps:
42
+ - uses: actions/checkout@v4
43
+ with:
44
+ fetch-depth: 0
45
+ - uses: ./.github/actions/python-bootstrap
46
+ with:
47
+ python-version: ${{ matrix.python-version }}
48
+ python-bootstrap: ".[dev]"
49
+ - name: Ruff check
50
+ run: |
51
+ ruff version
52
+ ruff check .
53
+ ruff format --check .
54
+
55
+ test:
56
+ runs-on: ubuntu-latest
57
+ strategy: *python-matrix
58
+ steps:
59
+ - uses: actions/checkout@v4
60
+ with:
61
+ fetch-depth: 0
62
+ - uses: ./.github/actions/python-bootstrap
63
+ with:
64
+ python-version: ${{ matrix.python-version }}
65
+ python-bootstrap: "-e .[dev,yaml]"
66
+ - name: Run tests
67
+ run: |
68
+ pytest -q
69
+
70
+ build:
71
+ name: Build distributions
72
+ runs-on: ubuntu-latest
73
+ if: startsWith(github.ref, 'refs/tags/v')
74
+ needs: [lint, test]
75
+ steps:
76
+ - uses: actions/checkout@v4
77
+ with:
78
+ fetch-depth: 0
79
+ - uses: ./.github/actions/python-bootstrap
80
+ with:
81
+ python-version: '3.13'
82
+ python-bootstrap: build
83
+ - name: Build distributions
84
+ run: |
85
+ python -m build
86
+ - name: Upload distributions
87
+ uses: actions/upload-artifact@v4
88
+ with:
89
+ name: dist-artifacts
90
+ path: dist/*
91
+ if-no-files-found: error
92
+
93
+ release:
94
+ name: Publish GitHub Release
95
+ runs-on: ubuntu-latest
96
+ if: startsWith(github.ref, 'refs/tags/v')
97
+ needs: build
98
+ permissions:
99
+ contents: write
100
+ steps:
101
+ - uses: actions/checkout@v4
102
+ with:
103
+ fetch-depth: 0
104
+ - name: Download distributions
105
+ uses: actions/download-artifact@v4
106
+ with:
107
+ name: dist-artifacts
108
+ path: dist
109
+ - name: Publish GitHub release
110
+ uses: softprops/action-gh-release@v2
111
+ with:
112
+ files: dist/*
113
+ generate_release_notes: true
114
+
115
+ publish:
116
+ name: Publish to PyPI
117
+ runs-on: ubuntu-latest
118
+ if: startsWith(github.ref, 'refs/tags/v')
119
+ needs: build
120
+ environment:
121
+ name: pypi
122
+ url: https://pypi.org/project/etlplus/
123
+ steps:
124
+ - uses: actions/checkout@v4
125
+ with:
126
+ fetch-depth: 0
127
+ - name: Download distributions
128
+ uses: actions/download-artifact@v4
129
+ with:
130
+ name: dist-artifacts
131
+ path: dist
132
+ - name: Publish to PyPI
133
+ uses: pypa/gh-action-pypi-publish@release/v1
134
+ with:
135
+ verbose: true
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: etlplus
3
- Version: 0.3.5
3
+ Version: 0.3.10
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: etlplus
3
- Version: 0.3.5
3
+ Version: 0.3.10
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
@@ -13,6 +13,7 @@ REFERENCES.md
13
13
  pyproject.toml
14
14
  pytest.ini
15
15
  setup.py
16
+ .github/actions/python-bootstrap/action.yml
16
17
  .github/workflows/ci.yml
17
18
  docs/pipeline-guide.md
18
19
  docs/snippets/installation_version.md
@@ -1,87 +0,0 @@
1
- # ci.yml
2
- # ETLPlus
3
- #
4
- # Copyright © 2025 Dagitali LLC. All rights reserved.
5
- #
6
- # A GitHub Actions workflow configuration file for Continuous Integration (CI).
7
-
8
- ---
9
-
10
- name: CI
11
-
12
- on:
13
- push:
14
- branches: [ main, '**/feature/**', '**/fix/**', '**/chore/**' ]
15
- tags: [ 'v*.*.*' ]
16
- pull_request:
17
-
18
- permissions:
19
- contents: read
20
- id-token: write
21
-
22
- jobs:
23
- lint:
24
- runs-on: ubuntu-latest
25
- steps:
26
- - uses: actions/checkout@v4
27
- with:
28
- fetch-depth: 0
29
- - uses: actions/setup-python@v5
30
- with:
31
- python-version: '3.13'
32
- - name: Install dev tools
33
- run: |
34
- python -m pip install --upgrade pip
35
- pip install .[dev]
36
- - name: Ruff check
37
- run: |
38
- ruff version
39
- ruff check .
40
- ruff format --check .
41
-
42
- test:
43
- runs-on: ubuntu-latest
44
- strategy:
45
- matrix:
46
- python-version: ['3.13', '3.14']
47
- steps:
48
- - uses: actions/checkout@v4
49
- with:
50
- fetch-depth: 0
51
- - uses: actions/setup-python@v5
52
- with:
53
- python-version: ${{ matrix.python-version }}
54
- - name: Install package with dev+yaml extras
55
- run: |
56
- python -m pip install --upgrade pip
57
- pip install -e .[dev,yaml]
58
- - name: Run tests
59
- run: |
60
- pytest -q
61
-
62
- publish:
63
- name: Publish to PyPI
64
- runs-on: ubuntu-latest
65
- if: startsWith(github.ref, 'refs/tags/v')
66
- needs: [lint, test]
67
- environment:
68
- name: pypi
69
- url: https://pypi.org/project/etlplus/
70
- steps:
71
- - uses: actions/checkout@v4
72
- with:
73
- fetch-depth: 0
74
- - uses: actions/setup-python@v5
75
- with:
76
- python-version: '3.13'
77
- - name: Install build dependencies
78
- run: |
79
- python -m pip install --upgrade pip
80
- pip install build
81
- - name: Build distributions
82
- run: |
83
- python -m build
84
- - name: Publish to PyPI
85
- uses: pypa/gh-action-pypi-publish@release/v1
86
- with:
87
- verbose: true
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes