etlplus 0.11.5__tar.gz → 0.11.7__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 (159) hide show
  1. {etlplus-0.11.5/etlplus.egg-info → etlplus-0.11.7}/PKG-INFO +1 -1
  2. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/database/engine.py +1 -1
  3. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/database/schema.py +1 -1
  4. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/file/core.py +1 -1
  5. {etlplus-0.11.5 → etlplus-0.11.7/etlplus.egg-info}/PKG-INFO +1 -1
  6. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/database/test_u_database_engine.py +5 -4
  7. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/database/test_u_database_schema.py +12 -14
  8. {etlplus-0.11.5 → etlplus-0.11.7}/.coveragerc +0 -0
  9. {etlplus-0.11.5 → etlplus-0.11.7}/.editorconfig +0 -0
  10. {etlplus-0.11.5 → etlplus-0.11.7}/.gitattributes +0 -0
  11. {etlplus-0.11.5 → etlplus-0.11.7}/.github/actions/python-bootstrap/action.yml +0 -0
  12. {etlplus-0.11.5 → etlplus-0.11.7}/.github/workflows/ci.yml +0 -0
  13. {etlplus-0.11.5 → etlplus-0.11.7}/.gitignore +0 -0
  14. {etlplus-0.11.5 → etlplus-0.11.7}/.pre-commit-config.yaml +0 -0
  15. {etlplus-0.11.5 → etlplus-0.11.7}/.ruff.toml +0 -0
  16. {etlplus-0.11.5 → etlplus-0.11.7}/CODE_OF_CONDUCT.md +0 -0
  17. {etlplus-0.11.5 → etlplus-0.11.7}/CONTRIBUTING.md +0 -0
  18. {etlplus-0.11.5 → etlplus-0.11.7}/DEMO.md +0 -0
  19. {etlplus-0.11.5 → etlplus-0.11.7}/LICENSE +0 -0
  20. {etlplus-0.11.5 → etlplus-0.11.7}/MANIFEST.in +0 -0
  21. {etlplus-0.11.5 → etlplus-0.11.7}/Makefile +0 -0
  22. {etlplus-0.11.5 → etlplus-0.11.7}/README.md +0 -0
  23. {etlplus-0.11.5 → etlplus-0.11.7}/REFERENCES.md +0 -0
  24. {etlplus-0.11.5 → etlplus-0.11.7}/docs/README.md +0 -0
  25. {etlplus-0.11.5 → etlplus-0.11.7}/docs/pipeline-guide.md +0 -0
  26. {etlplus-0.11.5 → etlplus-0.11.7}/docs/snippets/installation_version.md +0 -0
  27. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/__init__.py +0 -0
  28. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/__main__.py +0 -0
  29. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/__version__.py +0 -0
  30. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/README.md +0 -0
  31. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/__init__.py +0 -0
  32. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/auth.py +0 -0
  33. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/config.py +0 -0
  34. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/endpoint_client.py +0 -0
  35. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/errors.py +0 -0
  36. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/pagination/__init__.py +0 -0
  37. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/pagination/client.py +0 -0
  38. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/pagination/config.py +0 -0
  39. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/pagination/paginator.py +0 -0
  40. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/rate_limiting/__init__.py +0 -0
  41. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/rate_limiting/config.py +0 -0
  42. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/rate_limiting/rate_limiter.py +0 -0
  43. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/request_manager.py +0 -0
  44. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/retry_manager.py +0 -0
  45. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/transport.py +0 -0
  46. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/api/types.py +0 -0
  47. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/__init__.py +0 -0
  48. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/commands.py +0 -0
  49. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/constants.py +0 -0
  50. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/handlers.py +0 -0
  51. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/io.py +0 -0
  52. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/main.py +0 -0
  53. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/options.py +0 -0
  54. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/state.py +0 -0
  55. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/cli/types.py +0 -0
  56. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/config/__init__.py +0 -0
  57. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/config/connector.py +0 -0
  58. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/config/jobs.py +0 -0
  59. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/config/pipeline.py +0 -0
  60. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/config/profile.py +0 -0
  61. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/config/types.py +0 -0
  62. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/config/utils.py +0 -0
  63. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/database/__init__.py +0 -0
  64. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/database/ddl.py +0 -0
  65. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/database/orm.py +0 -0
  66. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/database/types.py +0 -0
  67. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/enums.py +0 -0
  68. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/extract.py +0 -0
  69. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/file/__init__.py +0 -0
  70. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/file/csv.py +0 -0
  71. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/file/enums.py +0 -0
  72. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/file/json.py +0 -0
  73. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/file/xml.py +0 -0
  74. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/file/yaml.py +0 -0
  75. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/load.py +0 -0
  76. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/mixins.py +0 -0
  77. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/py.typed +0 -0
  78. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/run.py +0 -0
  79. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/run_helpers.py +0 -0
  80. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/templates/__init__.py +0 -0
  81. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/templates/ddl.sql.j2 +0 -0
  82. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/templates/view.sql.j2 +0 -0
  83. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/transform.py +0 -0
  84. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/types.py +0 -0
  85. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/utils.py +0 -0
  86. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/validate.py +0 -0
  87. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/validation/__init__.py +0 -0
  88. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus/validation/utils.py +0 -0
  89. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus.egg-info/SOURCES.txt +0 -0
  90. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus.egg-info/dependency_links.txt +0 -0
  91. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus.egg-info/entry_points.txt +0 -0
  92. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus.egg-info/requires.txt +0 -0
  93. {etlplus-0.11.5 → etlplus-0.11.7}/etlplus.egg-info/top_level.txt +0 -0
  94. {etlplus-0.11.5 → etlplus-0.11.7}/examples/README.md +0 -0
  95. {etlplus-0.11.5 → etlplus-0.11.7}/examples/configs/ddl_spec.yml +0 -0
  96. {etlplus-0.11.5 → etlplus-0.11.7}/examples/configs/pipeline.yml +0 -0
  97. {etlplus-0.11.5 → etlplus-0.11.7}/examples/data/sample.csv +0 -0
  98. {etlplus-0.11.5 → etlplus-0.11.7}/examples/data/sample.json +0 -0
  99. {etlplus-0.11.5 → etlplus-0.11.7}/examples/data/sample.xml +0 -0
  100. {etlplus-0.11.5 → etlplus-0.11.7}/examples/data/sample.xsd +0 -0
  101. {etlplus-0.11.5 → etlplus-0.11.7}/examples/data/sample.yaml +0 -0
  102. {etlplus-0.11.5 → etlplus-0.11.7}/examples/quickstart_python.py +0 -0
  103. {etlplus-0.11.5 → etlplus-0.11.7}/pyproject.toml +0 -0
  104. {etlplus-0.11.5 → etlplus-0.11.7}/pytest.ini +0 -0
  105. {etlplus-0.11.5 → etlplus-0.11.7}/setup.cfg +0 -0
  106. {etlplus-0.11.5 → etlplus-0.11.7}/setup.py +0 -0
  107. {etlplus-0.11.5 → etlplus-0.11.7}/tests/__init__.py +0 -0
  108. {etlplus-0.11.5 → etlplus-0.11.7}/tests/conftest.py +0 -0
  109. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/conftest.py +0 -0
  110. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_cli.py +0 -0
  111. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_examples_data_parity.py +0 -0
  112. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_pagination_strategy.py +0 -0
  113. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_pipeline_smoke.py +0 -0
  114. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_pipeline_yaml_load.py +0 -0
  115. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_run.py +0 -0
  116. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_run_profile_pagination_defaults.py +0 -0
  117. {etlplus-0.11.5 → etlplus-0.11.7}/tests/integration/test_i_run_profile_rate_limit_defaults.py +0 -0
  118. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/conftest.py +0 -0
  119. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_auth.py +0 -0
  120. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_config.py +0 -0
  121. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_endpoint_client.py +0 -0
  122. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_mocks.py +0 -0
  123. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_pagination_client.py +0 -0
  124. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_pagination_config.py +0 -0
  125. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_paginator.py +0 -0
  126. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_rate_limit_config.py +0 -0
  127. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_rate_limiter.py +0 -0
  128. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_request_manager.py +0 -0
  129. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_retry_manager.py +0 -0
  130. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_transport.py +0 -0
  131. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/api/test_u_types.py +0 -0
  132. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/cli/conftest.py +0 -0
  133. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/cli/test_u_cli_handlers.py +0 -0
  134. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/cli/test_u_cli_io.py +0 -0
  135. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/cli/test_u_cli_main.py +0 -0
  136. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/cli/test_u_cli_state.py +0 -0
  137. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/config/test_u_config_utils.py +0 -0
  138. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/config/test_u_connector.py +0 -0
  139. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/config/test_u_jobs.py +0 -0
  140. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/config/test_u_pipeline.py +0 -0
  141. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/conftest.py +0 -0
  142. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/database/test_u_database_ddl.py +0 -0
  143. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/database/test_u_database_orm.py +0 -0
  144. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/file/test_u_file_core.py +0 -0
  145. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/file/test_u_file_enums.py +0 -0
  146. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/file/test_u_file_yaml.py +0 -0
  147. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_enums.py +0 -0
  148. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_extract.py +0 -0
  149. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_load.py +0 -0
  150. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_main.py +0 -0
  151. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_mixins.py +0 -0
  152. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_run.py +0 -0
  153. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_run_helpers.py +0 -0
  154. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_transform.py +0 -0
  155. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_utils.py +0 -0
  156. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_validate.py +0 -0
  157. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/test_u_version.py +0 -0
  158. {etlplus-0.11.5 → etlplus-0.11.7}/tests/unit/validation/test_u_validation_utils.py +0 -0
  159. {etlplus-0.11.5 → etlplus-0.11.7}/tools/update_demo_snippets.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: etlplus
3
- Version: 0.11.5
3
+ Version: 0.11.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
@@ -113,7 +113,7 @@ def load_database_url_from_config(
113
113
  ValueError
114
114
  If no connection string/URL/DSN is found for the specified entry.
115
115
  """
116
- cfg = File.read_file(Path(path))
116
+ cfg = File(Path(path)).read()
117
117
  if not isinstance(cfg, Mapping):
118
118
  raise TypeError('Database config must be a mapping')
119
119
 
@@ -260,7 +260,7 @@ def load_table_specs(
260
260
  list[TableSpec]
261
261
  A list of TableSpec instances parsed from the YAML file.
262
262
  """
263
- data = File.read_file(Path(path))
263
+ data = File(Path(path)).read()
264
264
  if not data:
265
265
  return []
266
266
 
@@ -125,7 +125,7 @@ class File:
125
125
  f'Cannot infer file format from extension {self.path.suffix!r}',
126
126
  )
127
127
 
128
- # -- Instance Methods (Generic API) -- #
128
+ # -- Instance Methods -- #
129
129
 
130
130
  def read(self) -> JSONData:
131
131
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: etlplus
3
- Version: 0.11.5
3
+ Version: 0.11.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
@@ -41,7 +41,8 @@ class TestLoadDatabaseUrlFromConfig:
41
41
  self,
42
42
  monkeypatch: pytest.MonkeyPatch,
43
43
  ) -> Callable[[Any], None]:
44
- """Return a helper that patches ``File.read_file`` with a payload.
44
+ """
45
+ Return a helper that patches :meth:`read` to return a payload.
45
46
 
46
47
  Parameters
47
48
  ----------
@@ -51,14 +52,14 @@ class TestLoadDatabaseUrlFromConfig:
51
52
  Returns
52
53
  -------
53
54
  Callable[[Any], None]
54
- Function that patches ``File.read_file`` to return the payload.
55
+ Function that patches ``File.read`` to return the payload.
55
56
  """
56
57
 
57
58
  def _apply(payload: Any) -> None:
58
59
  monkeypatch.setattr(
59
60
  engine_mod.File,
60
- 'read_file',
61
- staticmethod(lambda path: payload),
61
+ 'read',
62
+ lambda self: payload,
62
63
  )
63
64
 
64
65
  return _apply
@@ -76,7 +76,7 @@ class TestLoadTableSpecs:
76
76
 
77
77
  Notes
78
78
  -----
79
- Reuses a helper fixture to patch ``File.read_file`` and avoid disk IO.
79
+ Reuses a helper fixture to patch :meth:`File.read` and avoid disk IO.
80
80
  """
81
81
 
82
82
  @pytest.fixture()
@@ -84,7 +84,9 @@ class TestLoadTableSpecs:
84
84
  self,
85
85
  monkeypatch: pytest.MonkeyPatch,
86
86
  ) -> Callable[[Any], None]:
87
- """Return helper that patches ``File.read_file`` to return payload.
87
+ """
88
+ Return helper that patches the :meth:`read` instance method to return a
89
+ payload.
88
90
 
89
91
  Parameters
90
92
  ----------
@@ -98,18 +100,14 @@ class TestLoadTableSpecs:
98
100
  """
99
101
 
100
102
  def _apply(payload: Any) -> None:
101
- if callable(payload):
102
- monkeypatch.setattr(
103
- schema_mod.File,
104
- 'read_file',
105
- staticmethod(payload),
106
- )
107
- else:
108
- monkeypatch.setattr(
109
- schema_mod.File,
110
- 'read_file',
111
- staticmethod(lambda path: payload),
112
- )
103
+ # pylint: disable=unused-argument
104
+ """Apply the patch to :meth:`File.read` to return the payload."""
105
+
106
+ def fake_read(self, *args, **kwargs):
107
+ """Fake :meth:`File.read` method returning the payload."""
108
+ return payload(self.path) if callable(payload) else payload
109
+
110
+ monkeypatch.setattr(schema_mod.File, 'read', fake_read)
113
111
 
114
112
  return _apply
115
113
 
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