etlplus 0.11.5__py3-none-any.whl → 0.11.8__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/cli/handlers.py +1 -1
- etlplus/database/engine.py +1 -1
- etlplus/database/schema.py +1 -1
- etlplus/file/core.py +1 -60
- {etlplus-0.11.5.dist-info → etlplus-0.11.8.dist-info}/METADATA +1 -1
- {etlplus-0.11.5.dist-info → etlplus-0.11.8.dist-info}/RECORD +10 -10
- {etlplus-0.11.5.dist-info → etlplus-0.11.8.dist-info}/WHEEL +0 -0
- {etlplus-0.11.5.dist-info → etlplus-0.11.8.dist-info}/entry_points.txt +0 -0
- {etlplus-0.11.5.dist-info → etlplus-0.11.8.dist-info}/licenses/LICENSE +0 -0
- {etlplus-0.11.5.dist-info → etlplus-0.11.8.dist-info}/top_level.txt +0 -0
etlplus/cli/handlers.py
CHANGED
|
@@ -570,7 +570,7 @@ def transform_handler(
|
|
|
570
570
|
data = transform(payload, cast(TransformOperations, operations_payload))
|
|
571
571
|
|
|
572
572
|
if target and target != '-':
|
|
573
|
-
File.
|
|
573
|
+
File.from_path(target, file_format=target_format).write(data)
|
|
574
574
|
print(f'Data transformed and saved to {target}')
|
|
575
575
|
return 0
|
|
576
576
|
|
etlplus/database/engine.py
CHANGED
|
@@ -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
|
|
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
|
|
etlplus/database/schema.py
CHANGED
etlplus/file/core.py
CHANGED
|
@@ -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
|
|
128
|
+
# -- Instance Methods -- #
|
|
129
129
|
|
|
130
130
|
def read(self) -> JSONData:
|
|
131
131
|
"""
|
|
@@ -226,62 +226,3 @@ class File:
|
|
|
226
226
|
ff = file_format
|
|
227
227
|
|
|
228
228
|
return cls(resolved, ff)
|
|
229
|
-
|
|
230
|
-
@classmethod
|
|
231
|
-
def read_file(
|
|
232
|
-
cls,
|
|
233
|
-
path: StrPath,
|
|
234
|
-
file_format: FileFormat | str | None = None,
|
|
235
|
-
) -> JSONData:
|
|
236
|
-
"""
|
|
237
|
-
Read structured data.
|
|
238
|
-
|
|
239
|
-
Parameters
|
|
240
|
-
----------
|
|
241
|
-
path : StrPath
|
|
242
|
-
Path to the file on disk.
|
|
243
|
-
file_format : FileFormat | str | None, optional
|
|
244
|
-
Explicit format. If omitted, the format is inferred from the file
|
|
245
|
-
extension (``.csv``, ``.json``, or ``.xml``).
|
|
246
|
-
|
|
247
|
-
Returns
|
|
248
|
-
-------
|
|
249
|
-
JSONData
|
|
250
|
-
The structured data read from the file.
|
|
251
|
-
"""
|
|
252
|
-
return cls.from_path(path, file_format=file_format).read()
|
|
253
|
-
|
|
254
|
-
@classmethod
|
|
255
|
-
def write_file(
|
|
256
|
-
cls,
|
|
257
|
-
path: StrPath,
|
|
258
|
-
data: JSONData,
|
|
259
|
-
file_format: FileFormat | str | None = None,
|
|
260
|
-
*,
|
|
261
|
-
root_tag: str = xml.DEFAULT_XML_ROOT,
|
|
262
|
-
) -> int:
|
|
263
|
-
"""
|
|
264
|
-
Write structured data and count written records.
|
|
265
|
-
|
|
266
|
-
Parameters
|
|
267
|
-
----------
|
|
268
|
-
path : StrPath
|
|
269
|
-
Path to the file on disk.
|
|
270
|
-
data : JSONData
|
|
271
|
-
Data to write to the file.
|
|
272
|
-
file_format : FileFormat | str | None, optional
|
|
273
|
-
Explicit format. If omitted, the format is inferred from the file
|
|
274
|
-
extension (``.csv``, ``.json``, or ``.xml``).
|
|
275
|
-
root_tag : str, optional
|
|
276
|
-
Root tag name to use when writing XML files. Defaults to
|
|
277
|
-
``'root'``.
|
|
278
|
-
|
|
279
|
-
Returns
|
|
280
|
-
-------
|
|
281
|
-
int
|
|
282
|
-
The number of records written to the file.
|
|
283
|
-
"""
|
|
284
|
-
return cls.from_path(path, file_format=file_format).write(
|
|
285
|
-
data,
|
|
286
|
-
root_tag=root_tag,
|
|
287
|
-
)
|
|
@@ -32,7 +32,7 @@ etlplus/api/rate_limiting/rate_limiter.py,sha256=Uxozqd_Ej5Lsj-M-mLT2WexChgWh7x3
|
|
|
32
32
|
etlplus/cli/__init__.py,sha256=J97-Rv931IL1_b4AXnB7Fbbd7HKnHBpx18NQfC_kE6c,299
|
|
33
33
|
etlplus/cli/commands.py,sha256=g8_m3A8HEMyTRu2HctNiRoi2gtB5oSZCUEcyq-PIXos,24669
|
|
34
34
|
etlplus/cli/constants.py,sha256=E6Uy4WauLa_0zkzxqImXh-bb1gKdb9sBZQVc8QOzr2Q,1943
|
|
35
|
-
etlplus/cli/handlers.py,sha256=
|
|
35
|
+
etlplus/cli/handlers.py,sha256=Gf0lq5j5e5RK2SsIqTGjC9lqEKvJJ13lZk3yUD8gupc,17764
|
|
36
36
|
etlplus/cli/io.py,sha256=EFaBPYaBOyOllfMQWXgTjy-MPiGfNejicpD7ROrPyAE,7840
|
|
37
37
|
etlplus/cli/main.py,sha256=IgeqxypixfwLHR-QcpgVMQ7vMZ865bXOh2oO9v-BWeM,5234
|
|
38
38
|
etlplus/cli/options.py,sha256=vfXT3YLh7wG1iC-aTdSg6ItMC8l6n0Lozmy53XjqLbA,1199
|
|
@@ -47,12 +47,12 @@ etlplus/config/types.py,sha256=a0epJ3z16HQ5bY3Ctf8s_cQPa3f0HHcwdOcjCP2xoG4,4954
|
|
|
47
47
|
etlplus/config/utils.py,sha256=4SUHMkt5bKBhMhiJm-DrnmE2Q4TfOgdNCKz8PJDS27o,3443
|
|
48
48
|
etlplus/database/__init__.py,sha256=AKJsDl2RHuRGPS-eXgNJeh4aSncJP5Y0yLApBF6i7i8,1052
|
|
49
49
|
etlplus/database/ddl.py,sha256=CKrxGWGKkick--AnUUzBRGpH30f4h8RuE3JXOLg420o,7923
|
|
50
|
-
etlplus/database/engine.py,sha256=
|
|
50
|
+
etlplus/database/engine.py,sha256=PUxXLvLPyc-KaxuW7fXe12wYci7EvUp-Ad1H3bGhUog,4058
|
|
51
51
|
etlplus/database/orm.py,sha256=gCSqH-CjQz6tV9133-VqgiwokK5ylun0BwXaIWfImAo,10008
|
|
52
|
-
etlplus/database/schema.py,sha256=
|
|
52
|
+
etlplus/database/schema.py,sha256=813C0Dd3WE53KTYot4dgjAxctgKXLXx-8_Rk_4r2e28,7022
|
|
53
53
|
etlplus/database/types.py,sha256=_pkQyC14TzAlgyeIqZG4F5LWYknZbHw3TW68Auk7Ya0,795
|
|
54
54
|
etlplus/file/__init__.py,sha256=X03bosSM-uSd6dh3ur0un6_ozFRw2Tm4PE6kVUjtXK8,475
|
|
55
|
-
etlplus/file/core.py,sha256=
|
|
55
|
+
etlplus/file/core.py,sha256=oQsqoFp3PEt1cgHyNeK36gim45RFPV6lZ3R4hvFm5Nw,6447
|
|
56
56
|
etlplus/file/csv.py,sha256=VbMW_NaqCw03HlfvYzb9MoAgCXI3cl9qc4dASkTHoyw,1880
|
|
57
57
|
etlplus/file/enums.py,sha256=rwrbwj6PejG0c5v6jzcsmeNu9cSqDyWB1foIuM5UyJo,6648
|
|
58
58
|
etlplus/file/json.py,sha256=xSV5PkZ_tZQuZNdLr1FQUwuCQXyL7Ch3WRJ3hkw0p68,1911
|
|
@@ -63,9 +63,9 @@ etlplus/templates/ddl.sql.j2,sha256=s8fMWvcb4eaJVXkifuib1aQPljtZ8buuyB_uA-ZdU3Q,
|
|
|
63
63
|
etlplus/templates/view.sql.j2,sha256=Iy8DHfhq5yyvrUKDxqp_aHIEXY4Tm6j4wT7YDEFWAhk,2180
|
|
64
64
|
etlplus/validation/__init__.py,sha256=Pe5Xg1_EA4uiNZGYu5WTF3j7odjmyxnAJ8rcioaplSQ,1254
|
|
65
65
|
etlplus/validation/utils.py,sha256=Mtqg449VIke0ziy_wd2r6yrwJzQkA1iulZC87FzXMjo,10201
|
|
66
|
-
etlplus-0.11.
|
|
67
|
-
etlplus-0.11.
|
|
68
|
-
etlplus-0.11.
|
|
69
|
-
etlplus-0.11.
|
|
70
|
-
etlplus-0.11.
|
|
71
|
-
etlplus-0.11.
|
|
66
|
+
etlplus-0.11.8.dist-info/licenses/LICENSE,sha256=MuNO63i6kWmgnV2pbP2SLqP54mk1BGmu7CmbtxMmT-U,1069
|
|
67
|
+
etlplus-0.11.8.dist-info/METADATA,sha256=j8BQpzSkBMHdll616-fmDCxV4izMcnCsl686nFAHttM,21036
|
|
68
|
+
etlplus-0.11.8.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
69
|
+
etlplus-0.11.8.dist-info/entry_points.txt,sha256=6w-2-jzuPa55spzK34h-UKh2JTEShh38adFRONNP9QE,45
|
|
70
|
+
etlplus-0.11.8.dist-info/top_level.txt,sha256=aWWF-udn_sLGuHTM6W6MLh99ArS9ROkUWO8Mi8y1_2U,8
|
|
71
|
+
etlplus-0.11.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|