etlplus 0.4.5__tar.gz → 0.4.6__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 (130) hide show
  1. {etlplus-0.4.5/etlplus.egg-info → etlplus-0.4.6}/PKG-INFO +1 -1
  2. {etlplus-0.4.5 → etlplus-0.4.6/etlplus.egg-info}/PKG-INFO +1 -1
  3. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/cli/test_u_cli_main.py +35 -0
  4. {etlplus-0.4.5 → etlplus-0.4.6}/.coveragerc +0 -0
  5. {etlplus-0.4.5 → etlplus-0.4.6}/.editorconfig +0 -0
  6. {etlplus-0.4.5 → etlplus-0.4.6}/.gitattributes +0 -0
  7. {etlplus-0.4.5 → etlplus-0.4.6}/.github/actions/python-bootstrap/action.yml +0 -0
  8. {etlplus-0.4.5 → etlplus-0.4.6}/.github/workflows/ci.yml +0 -0
  9. {etlplus-0.4.5 → etlplus-0.4.6}/.gitignore +0 -0
  10. {etlplus-0.4.5 → etlplus-0.4.6}/.pre-commit-config.yaml +0 -0
  11. {etlplus-0.4.5 → etlplus-0.4.6}/.ruff.toml +0 -0
  12. {etlplus-0.4.5 → etlplus-0.4.6}/CODE_OF_CONDUCT.md +0 -0
  13. {etlplus-0.4.5 → etlplus-0.4.6}/CONTRIBUTING.md +0 -0
  14. {etlplus-0.4.5 → etlplus-0.4.6}/DEMO.md +0 -0
  15. {etlplus-0.4.5 → etlplus-0.4.6}/LICENSE +0 -0
  16. {etlplus-0.4.5 → etlplus-0.4.6}/Makefile +0 -0
  17. {etlplus-0.4.5 → etlplus-0.4.6}/README.md +0 -0
  18. {etlplus-0.4.5 → etlplus-0.4.6}/REFERENCES.md +0 -0
  19. {etlplus-0.4.5 → etlplus-0.4.6}/docs/pipeline-guide.md +0 -0
  20. {etlplus-0.4.5 → etlplus-0.4.6}/docs/snippets/installation_version.md +0 -0
  21. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/__init__.py +0 -0
  22. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/__main__.py +0 -0
  23. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/__version__.py +0 -0
  24. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/README.md +0 -0
  25. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/__init__.py +0 -0
  26. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/auth.py +0 -0
  27. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/config.py +0 -0
  28. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/endpoint_client.py +0 -0
  29. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/errors.py +0 -0
  30. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/pagination/__init__.py +0 -0
  31. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/pagination/client.py +0 -0
  32. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/pagination/config.py +0 -0
  33. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/pagination/paginator.py +0 -0
  34. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/rate_limiting/__init__.py +0 -0
  35. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/rate_limiting/config.py +0 -0
  36. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/rate_limiting/rate_limiter.py +0 -0
  37. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/request_manager.py +0 -0
  38. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/retry_manager.py +0 -0
  39. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/transport.py +0 -0
  40. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/api/types.py +0 -0
  41. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/cli/__init__.py +0 -0
  42. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/cli/app.py +0 -0
  43. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/cli/handlers.py +0 -0
  44. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/cli/main.py +0 -0
  45. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/config/__init__.py +0 -0
  46. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/config/connector.py +0 -0
  47. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/config/jobs.py +0 -0
  48. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/config/pipeline.py +0 -0
  49. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/config/profile.py +0 -0
  50. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/config/types.py +0 -0
  51. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/config/utils.py +0 -0
  52. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/enums.py +0 -0
  53. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/extract.py +0 -0
  54. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/file.py +0 -0
  55. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/load.py +0 -0
  56. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/mixins.py +0 -0
  57. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/py.typed +0 -0
  58. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/run.py +0 -0
  59. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/run_helpers.py +0 -0
  60. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/transform.py +0 -0
  61. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/types.py +0 -0
  62. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/utils.py +0 -0
  63. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/validate.py +0 -0
  64. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/validation/__init__.py +0 -0
  65. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus/validation/utils.py +0 -0
  66. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus.egg-info/SOURCES.txt +0 -0
  67. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus.egg-info/dependency_links.txt +0 -0
  68. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus.egg-info/entry_points.txt +0 -0
  69. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus.egg-info/requires.txt +0 -0
  70. {etlplus-0.4.5 → etlplus-0.4.6}/etlplus.egg-info/top_level.txt +0 -0
  71. {etlplus-0.4.5 → etlplus-0.4.6}/examples/README.md +0 -0
  72. {etlplus-0.4.5 → etlplus-0.4.6}/examples/configs/pipeline.yml +0 -0
  73. {etlplus-0.4.5 → etlplus-0.4.6}/examples/data/sample.csv +0 -0
  74. {etlplus-0.4.5 → etlplus-0.4.6}/examples/data/sample.json +0 -0
  75. {etlplus-0.4.5 → etlplus-0.4.6}/examples/data/sample.xml +0 -0
  76. {etlplus-0.4.5 → etlplus-0.4.6}/examples/data/sample.xsd +0 -0
  77. {etlplus-0.4.5 → etlplus-0.4.6}/examples/data/sample.yaml +0 -0
  78. {etlplus-0.4.5 → etlplus-0.4.6}/examples/quickstart_python.py +0 -0
  79. {etlplus-0.4.5 → etlplus-0.4.6}/pyproject.toml +0 -0
  80. {etlplus-0.4.5 → etlplus-0.4.6}/pytest.ini +0 -0
  81. {etlplus-0.4.5 → etlplus-0.4.6}/setup.cfg +0 -0
  82. {etlplus-0.4.5 → etlplus-0.4.6}/setup.py +0 -0
  83. {etlplus-0.4.5 → etlplus-0.4.6}/tests/__init__.py +0 -0
  84. {etlplus-0.4.5 → etlplus-0.4.6}/tests/conftest.py +0 -0
  85. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/conftest.py +0 -0
  86. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_cli.py +0 -0
  87. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_examples_data_parity.py +0 -0
  88. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_pagination_strategy.py +0 -0
  89. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_pipeline_smoke.py +0 -0
  90. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_pipeline_yaml_load.py +0 -0
  91. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_run.py +0 -0
  92. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_run_profile_pagination_defaults.py +0 -0
  93. {etlplus-0.4.5 → etlplus-0.4.6}/tests/integration/test_i_run_profile_rate_limit_defaults.py +0 -0
  94. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/conftest.py +0 -0
  95. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_auth.py +0 -0
  96. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_config.py +0 -0
  97. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_endpoint_client.py +0 -0
  98. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_mocks.py +0 -0
  99. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_pagination_client.py +0 -0
  100. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_pagination_config.py +0 -0
  101. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_paginator.py +0 -0
  102. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_rate_limit_config.py +0 -0
  103. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_rate_limiter.py +0 -0
  104. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_request_manager.py +0 -0
  105. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_retry_manager.py +0 -0
  106. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_transport.py +0 -0
  107. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/api/test_u_types.py +0 -0
  108. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/cli/conftest.py +0 -0
  109. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/cli/test_u_cli_app.py +0 -0
  110. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/cli/test_u_cli_handlers.py +0 -0
  111. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/config/test_u_config_utils.py +0 -0
  112. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/config/test_u_connector.py +0 -0
  113. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/config/test_u_jobs.py +0 -0
  114. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/config/test_u_pipeline.py +0 -0
  115. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/conftest.py +0 -0
  116. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_enums.py +0 -0
  117. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_extract.py +0 -0
  118. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_file.py +0 -0
  119. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_load.py +0 -0
  120. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_main.py +0 -0
  121. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_mixins.py +0 -0
  122. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_run.py +0 -0
  123. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_run_helpers.py +0 -0
  124. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_transform.py +0 -0
  125. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_utils.py +0 -0
  126. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_validate.py +0 -0
  127. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/test_u_version.py +0 -0
  128. {etlplus-0.4.5 → etlplus-0.4.6}/tests/unit/validation/test_u_validation_utils.py +0 -0
  129. {etlplus-0.4.5 → etlplus-0.4.6}/tools/run_pipeline.py +0 -0
  130. {etlplus-0.4.5 → etlplus-0.4.6}/tools/update_demo_snippets.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: etlplus
3
- Version: 0.4.5
3
+ Version: 0.4.6
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.4.5
3
+ Version: 0.4.6
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
@@ -7,6 +7,7 @@ Unit tests for :mod:`etlplus.cli.main`.
7
7
  from __future__ import annotations
8
8
 
9
9
  from collections.abc import Callable
10
+ from importlib import import_module
10
11
  from unittest.mock import Mock
11
12
 
12
13
  import pytest
@@ -20,6 +21,8 @@ from etlplus.cli.main import main as cli_main
20
21
 
21
22
  pytestmark = pytest.mark.unit
22
23
 
24
+ cli_main_module = import_module('etlplus.cli.main')
25
+
23
26
 
24
27
  def _install_stub_command(
25
28
  monkeypatch: pytest.MonkeyPatch,
@@ -52,6 +55,38 @@ def _install_stub_command(
52
55
  # SECTION: TESTS ============================================================ #
53
56
 
54
57
 
58
+ class TestCreateParser:
59
+ """Unit tests for :func:`etlplus.cli.main.create_parser`."""
60
+
61
+ def test_extract_parser_sets_handler_and_format_flag(self) -> None:
62
+ """Extract parser should bind handlers and flag explicit formats."""
63
+
64
+ parser = cli_main_module.create_parser()
65
+ namespace = parser.parse_args(
66
+ ['extract', 'file', 'data.csv', '--source-format', 'json'],
67
+ )
68
+
69
+ assert namespace.func is cli_main_module.cmd_extract
70
+ assert namespace.source_type == 'file'
71
+ assert namespace.source == 'data.csv'
72
+ assert namespace.source_format == 'json'
73
+ assert namespace._format_explicit is True
74
+
75
+ def test_list_parser_supports_boolean_flags(self) -> None:
76
+ """List parser should surface boolean flag wiring."""
77
+
78
+ parser = cli_main_module.create_parser()
79
+ namespace = parser.parse_args(
80
+ ['list', '--config', 'pipelines.yml', '--targets', '--transforms'],
81
+ )
82
+
83
+ assert namespace.func is cli_main_module.cmd_list
84
+ assert namespace.command == 'list'
85
+ assert namespace.config == 'pipelines.yml'
86
+ assert namespace.targets is True
87
+ assert namespace.transforms is True
88
+
89
+
55
90
  class TestMain:
56
91
  """Unit test suite for :func:`etlplus.cli.main`."""
57
92
 
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes