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
etlplus/enums.py CHANGED
@@ -1,18 +1,14 @@
1
1
  """
2
2
  :mod:`etlplus.enums` module.
3
3
 
4
- Shared enumeration types used across ETLPlus modules.
4
+ Shared enumeration base class.
5
5
  """
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
9
  import enum
10
- import operator as _op
11
- from statistics import fmean
12
10
  from typing import Self
13
11
 
14
- from .types import AggregateFunc
15
- from .types import OperatorFunc
16
12
  from .types import StrStrMap
17
13
 
18
14
  # SECTION: EXPORTS ========================================================== #
@@ -20,10 +16,7 @@ from .types import StrStrMap
20
16
 
21
17
  __all__ = [
22
18
  # Enums
23
- 'AggregateName',
24
19
  'CoercibleStrEnum',
25
- 'OperatorName',
26
- 'PipelineStep',
27
20
  ]
28
21
 
29
22
 
@@ -41,6 +34,7 @@ class CoercibleStrEnum(enum.StrEnum):
41
34
  Notes
42
35
  -----
43
36
  - Values are normalized via ``str(value).strip().casefold()``.
37
+ - If value matching fails, the raw string is tried as a member name.
44
38
  - Error messages enumerate allowed values for easier debugging.
45
39
  """
46
40
 
@@ -56,7 +50,13 @@ class CoercibleStrEnum(enum.StrEnum):
56
50
  Returns
57
51
  -------
58
52
  StrStrMap
59
- A mapping of alias names to their corresponding enum member names.
53
+ A mapping of alias strings to their corresponding enum member
54
+ values or names.
55
+
56
+ Notes
57
+ -----
58
+ - Alias keys are normalized via ``str(key).strip().casefold()``.
59
+ - Alias values should be member values or member names.
60
60
  """
61
61
  return {}
62
62
 
@@ -80,7 +80,7 @@ class CoercibleStrEnum(enum.StrEnum):
80
80
  Parameters
81
81
  ----------
82
82
  value : Self | str | object
83
- An existing enum member or a text value to normalize.
83
+ An existing enum member or a string-like value to normalize.
84
84
 
85
85
  Returns
86
86
  -------
@@ -95,10 +95,26 @@ class CoercibleStrEnum(enum.StrEnum):
95
95
  if isinstance(value, cls):
96
96
  return value
97
97
  try:
98
- normalized = str(value).strip().casefold()
99
- resolved = cls.aliases().get(normalized, normalized)
100
- return cls(resolved) # type: ignore[arg-type]
101
- except (ValueError, TypeError) as e:
98
+ raw = str(value).strip()
99
+ normalized = raw.casefold()
100
+ aliases = {
101
+ str(key).strip().casefold(): alias
102
+ for key, alias in cls.aliases().items()
103
+ }
104
+ resolved = aliases.get(normalized)
105
+ if resolved is None:
106
+ try:
107
+ return cls(normalized) # type: ignore[arg-type]
108
+ except (ValueError, TypeError):
109
+ return cls[raw] # type: ignore[index]
110
+ if isinstance(resolved, cls):
111
+ return resolved
112
+ try:
113
+ return cls(resolved) # type: ignore[arg-type]
114
+ except (ValueError, TypeError):
115
+ # Allow aliases to reference member names.
116
+ return cls[resolved] # type: ignore[index]
117
+ except (ValueError, TypeError, KeyError) as e:
102
118
  allowed = ', '.join(cls.choices())
103
119
  raise ValueError(
104
120
  f'Invalid {cls.__name__} value: {value!r}. Allowed: {allowed}',
@@ -107,15 +123,15 @@ class CoercibleStrEnum(enum.StrEnum):
107
123
  @classmethod
108
124
  def try_coerce(
109
125
  cls,
110
- value: object,
126
+ value: Self | str | object,
111
127
  ) -> Self | None:
112
128
  """
113
- Best-effort parse; return ``None`` on failure instead of raising.
129
+ Attempt to coerce a value into the enum; return ``None`` on failure.
114
130
 
115
131
  Parameters
116
132
  ----------
117
- value : object
118
- An existing enum member or a text value to normalize.
133
+ value : Self | str | object
134
+ An existing enum member or a string-like value to normalize.
119
135
 
120
136
  Returns
121
137
  -------
@@ -124,153 +140,5 @@ class CoercibleStrEnum(enum.StrEnum):
124
140
  """
125
141
  try:
126
142
  return cls.coerce(value)
127
- except ValueError:
143
+ except (ValueError, TypeError, KeyError):
128
144
  return None
129
-
130
-
131
- # SECTION: ENUMS ============================================================ #
132
-
133
-
134
- class AggregateName(CoercibleStrEnum):
135
- """Supported aggregations with helpers."""
136
-
137
- # -- Constants -- #
138
-
139
- AVG = 'avg'
140
- COUNT = 'count'
141
- MAX = 'max'
142
- MIN = 'min'
143
- SUM = 'sum'
144
-
145
- # -- Class Methods -- #
146
-
147
- @property
148
- def func(self) -> AggregateFunc:
149
- """
150
- Get the aggregation function for this aggregation type.
151
-
152
- Returns
153
- -------
154
- AggregateFunc
155
- The aggregation function corresponding to this aggregation type.
156
- """
157
- if self is AggregateName.COUNT:
158
- return lambda xs, n: n
159
- if self is AggregateName.MAX:
160
- return lambda xs, n: (max(xs) if xs else None)
161
- if self is AggregateName.MIN:
162
- return lambda xs, n: (min(xs) if xs else None)
163
- if self is AggregateName.SUM:
164
- return lambda xs, n: sum(xs)
165
-
166
- # AVG
167
- return lambda xs, n: (fmean(xs) if xs else 0.0)
168
-
169
-
170
- class OperatorName(CoercibleStrEnum):
171
- """Supported comparison operators with helpers."""
172
-
173
- # -- Constants -- #
174
-
175
- EQ = 'eq'
176
- NE = 'ne'
177
- GT = 'gt'
178
- GTE = 'gte'
179
- LT = 'lt'
180
- LTE = 'lte'
181
- IN = 'in'
182
- CONTAINS = 'contains'
183
-
184
- # -- Getters -- #
185
-
186
- @property
187
- def func(self) -> OperatorFunc:
188
- """
189
- Get the comparison function for this operator.
190
-
191
- Returns
192
- -------
193
- OperatorFunc
194
- The comparison function corresponding to this operator.
195
- """
196
- match self:
197
- case OperatorName.EQ:
198
- return _op.eq
199
- case OperatorName.NE:
200
- return _op.ne
201
- case OperatorName.GT:
202
- return _op.gt
203
- case OperatorName.GTE:
204
- return _op.ge
205
- case OperatorName.LT:
206
- return _op.lt
207
- case OperatorName.LTE:
208
- return _op.le
209
- case OperatorName.IN:
210
- return lambda a, b: a in b
211
- case OperatorName.CONTAINS:
212
- return lambda a, b: b in a
213
-
214
- # -- Class Methods -- #
215
-
216
- @classmethod
217
- def aliases(cls) -> StrStrMap:
218
- """
219
- Return a mapping of common aliases for each enum member.
220
-
221
- Returns
222
- -------
223
- StrStrMap
224
- A mapping of alias names to their corresponding enum member names.
225
- """
226
- return {
227
- '==': 'eq',
228
- '=': 'eq',
229
- '!=': 'ne',
230
- '<>': 'ne',
231
- '>=': 'gte',
232
- '≥': 'gte',
233
- '<=': 'lte',
234
- '≤': 'lte',
235
- '>': 'gt',
236
- '<': 'lt',
237
- }
238
-
239
-
240
- class PipelineStep(CoercibleStrEnum):
241
- """Pipeline step names as an enum for internal orchestration."""
242
-
243
- # -- Constants -- #
244
-
245
- FILTER = 'filter'
246
- MAP = 'map'
247
- SELECT = 'select'
248
- SORT = 'sort'
249
- AGGREGATE = 'aggregate'
250
-
251
- # -- Getters -- #
252
-
253
- @property
254
- def order(self) -> int:
255
- """
256
- Get the execution order of this pipeline step.
257
-
258
- Returns
259
- -------
260
- int
261
- The execution order of this pipeline step.
262
- """
263
- return _PIPELINE_ORDER_INDEX[self]
264
-
265
-
266
- # SECTION: INTERNAL CONSTANTS ============================================== #
267
-
268
-
269
- # Precomputed order index for PipelineStep; avoids recomputing on each access.
270
- _PIPELINE_ORDER_INDEX: dict[PipelineStep, int] = {
271
- PipelineStep.FILTER: 0,
272
- PipelineStep.MAP: 1,
273
- PipelineStep.SELECT: 2,
274
- PipelineStep.SORT: 3,
275
- PipelineStep.AGGREGATE: 4,
276
- }
etlplus/file/README.md CHANGED
@@ -4,7 +4,7 @@ Documentation for the `etlplus.file` subpackage: unified file format support and
4
4
  and writing data files.
5
5
 
6
6
  - Provides a consistent interface for reading and writing files in various formats
7
- - Supports all formats defined in `FileFormat` (see below)
7
+ - Defines many formats in `FileFormat`; read/write support varies by format
8
8
  - Includes helpers for inferring file format and compression from filenames, extensions, or MIME
9
9
  types
10
10
  - Exposes a `File` class with instance methods for reading and writing data
@@ -23,7 +23,8 @@ Back to project overview: see the top-level [README](../../README.md).
23
23
 
24
24
  ## Supported File Formats
25
25
 
26
- The following formats are defined in `FileFormat` and supported for reading and writing:
26
+ The following formats are implemented for reading/writing (unless noted). For the full support
27
+ matrix across all `FileFormat` values, see the top-level [README](../../README.md).
27
28
 
28
29
  | Format | Description |
29
30
  |-----------|---------------------------------------------|
@@ -37,13 +38,14 @@ The following formats are defined in `FileFormat` and supported for reading and
37
38
  | parquet | Apache Parquet columnar format |
38
39
  | tsv | Tab-separated values text files |
39
40
  | txt | Plain text files |
40
- | xls | Microsoft Excel (legacy .xls) |
41
+ | xls | Microsoft Excel (legacy .xls; read-only) |
41
42
  | xlsx | Microsoft Excel (modern .xlsx) |
42
43
  | zip | ZIP-compressed files (see Compression) |
43
44
  | xml | XML files |
44
45
  | yaml | YAML files |
45
46
 
46
- Compression formats (gz, zip) are also supported as wrappers for other formats.
47
+ Compression formats (gz, zip) are also supported as wrappers for other formats. Formats not listed
48
+ here are currently stubbed and will raise `NotImplementedError` on read/write.
47
49
 
48
50
  ## Inferring File Format and Compression
49
51
 
@@ -77,7 +79,7 @@ f.write(data)
77
79
  ```
78
80
 
79
81
  - The `write()` method serializes and writes data in the appropriate format.
80
- - Supports all formats listed above.
82
+ - Supports the implemented formats listed above.
81
83
 
82
84
  ## File Instance Methods
83
85
 
etlplus/file/accdb.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.accdb` module.
3
3
 
4
- Helpers for reading/writing newer Microsoft Access database (ACCDB) files.
4
+ Stub helpers for reading/writing newer Microsoft Access database (ACCDB) files
5
+ (not implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/arrow.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.arrow` module.
3
3
 
4
- Helpers for reading/writing Apache Arrow (ARROW) files.
4
+ Stub helpers for reading/writing Apache Arrow (ARROW) files (not implemented
5
+ yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/bson.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.bson` module.
3
3
 
4
- Helpers for reading/writing Binary JSON (BSON) files.
4
+ Stub helpers for reading/writing Binary JSON (BSON) files (not implemented
5
+ yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/cbor.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.cbor` module.
3
3
 
4
- Helpers for reading/writing Concise Binary Object Representation (CBOR) files.
4
+ Stub helpers for reading/writing Concise Binary Object Representation (CBOR)
5
+ files (not implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/cfg.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.cfg` module.
3
3
 
4
- Helpers for reading/writing config (CFG) files.
4
+ Stub helpers for reading/writing config (CFG) files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/conf.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.conf` module.
3
3
 
4
- Helpers for reading/writing config (CONF) files.
4
+ Stub helpers for reading/writing config (CONF) files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/dat.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.dat` module.
3
3
 
4
- Helpers for reading/writing data (DAT) files.
4
+ Stub helpers for reading/writing data (DAT) files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/dta.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.dta` module.
3
3
 
4
- Helpers for reading/writing Stata (DTA) data files.
4
+ Stub helpers for reading/writing Stata (DTA) data files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/duckdb.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.duckdb` module.
3
3
 
4
- Helpers for reading/writing DuckDB database (DUCKDB) files.
4
+ Stub helpers for reading/writing DuckDB database (DUCKDB) files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/enums.py CHANGED
@@ -57,7 +57,7 @@ class CompressionFormat(CoercibleStrEnum):
57
57
 
58
58
 
59
59
  class FileFormat(CoercibleStrEnum):
60
- """Supported file formats for extraction."""
60
+ """Defined file formats (read/write support varies by format)."""
61
61
 
62
62
  # -- Constants -- #
63
63
 
etlplus/file/fwf.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.fwf` module.
3
3
 
4
- Helpers for reading/writing Fixed-Width Fields (FWF) files.
4
+ Stub helpers for reading/writing Fixed-Width Fields (FWF) files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/hbs.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.hbs` module.
3
3
 
4
- Helpers for reading/writing Handlebars (HBS) template files.
4
+ Stub helpers for reading/writing Handlebars (HBS) template files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/hdf5.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.hdf5` module.
3
3
 
4
- Helpers for reading/writing Hierarchical Data Format (HDF5) files.
4
+ Stub helpers for reading/writing Hierarchical Data Format (HDF5) files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/ini.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.ini` module.
3
3
 
4
- Helpers for reading/writing initialization (INI) files.
4
+ Stub helpers for reading/writing initialization (INI) files (not implemented
5
+ yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/ion.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.ion` module.
3
3
 
4
- Helpers for reading/writing Amazon Ion (ION) files.
4
+ Stub helpers for reading/writing Amazon Ion (ION) files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/jinja2.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.jinja2` module.
3
3
 
4
- Helpers for reading/writing compressed Jinja2 (JINJA2) template files.
4
+ Stub helpers for reading/writing compressed Jinja2 (JINJA2) template files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/log.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.log` module.
3
3
 
4
- Helpers for reading/writing generic log (LOG) files.
4
+ Stub helpers for reading/writing generic log (LOG) files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/mat.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.mat` module.
3
3
 
4
- Helpers for reading/writing MATLAB (MAT) data files.
4
+ Stub helpers for reading/writing MATLAB (MAT) data files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/mdb.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.mdb` module.
3
3
 
4
- Helpers for reading/writing newer Microsoft Access database (MDB) files.
4
+ Stub helpers for reading/writing newer Microsoft Access database (MDB) files
5
+ (not implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/msgpack.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.msgpack` module.
3
3
 
4
- Helpers for reading/writing MessagePack (MSGPACK) files.
4
+ Stub helpers for reading/writing MessagePack (MSGPACK) files (not implemented
5
+ yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/mustache.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.mustache` module.
3
3
 
4
- Helpers for reading/writing Mustache (MUSTACHE) template files.
4
+ Stub helpers for reading/writing Mustache (MUSTACHE) template files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/nc.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.nc` module.
3
3
 
4
- Helpers for reading/writing NetCDF (NC) data files.
4
+ Stub helpers for reading/writing NetCDF (NC) data files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/numbers.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.numbers` module.
3
3
 
4
- Helpers for reading/writing Apple Numbers (NUMBERS) spreadsheet files.
4
+ Stub helpers for reading/writing Apple Numbers (NUMBERS) spreadsheet files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/ods.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.ods` module.
3
3
 
4
- Helpers for reading/writing OpenDocument (ODS) spreadsheet files.
4
+ Stub helpers for reading/writing OpenDocument (ODS) spreadsheet files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/pb.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.pb` module.
3
3
 
4
- Helpers for reading/writing Protocol Buffer (PB) files.
4
+ Stub helpers for reading/writing Protocol Buffer (PB) files (not implemented
5
+ yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/pbf.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.pbf` module.
3
3
 
4
- Helpers for reading/writing Protocolbuffer Binary Format (PBF) files.
4
+ Stub helpers for reading/writing Protocolbuffer Binary Format (PBF) files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.properties` module.
3
3
 
4
- Helpers for reading/writing properties (PROPERTIES) files.
4
+ Stub helpers for reading/writing properties (PROPERTIES) files (not implemented
5
+ yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/proto.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.proto` module.
3
3
 
4
- Helpers for reading/writing Protocol Buffers schema (PROTO) files.
4
+ Stub helpers for reading/writing Protocol Buffers schema (PROTO) files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/psv.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.psv` module.
3
3
 
4
- Helpers for reading/writing Pipe-Separated Values (PSV) files.
4
+ Stub helpers for reading/writing Pipe-Separated Values (PSV) files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/rda.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.rda` module.
3
3
 
4
- Helpers for reading/writing RData workspace/object bundle (RDA) files.
4
+ Stub helpers for reading/writing RData workspace/object bundle (RDA) files (not
5
+ implemented yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/rds.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.rds` module.
3
3
 
4
- Helpers for reading/writing R (RDS) data files.
4
+ Stub helpers for reading/writing R (RDS) data files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----
etlplus/file/sas7bdat.py CHANGED
@@ -1,7 +1,8 @@
1
1
  """
2
2
  :mod:`etlplus.file.sas7bdat` module.
3
3
 
4
- Helpers for reading/writing SAS (SAS7BDAT) data files.
4
+ Stub helpers for reading/writing SAS (SAS7BDAT) data files (not implemented
5
+ yet).
5
6
 
6
7
  Notes
7
8
  -----
etlplus/file/sav.py CHANGED
@@ -1,7 +1,7 @@
1
1
  """
2
2
  :mod:`etlplus.file.sav` module.
3
3
 
4
- Helpers for reading/writing SPSS (SAV) data files.
4
+ Stub helpers for reading/writing SPSS (SAV) data files (not implemented yet).
5
5
 
6
6
  Notes
7
7
  -----