datazone-sdk 6.0.1.dev2__tar.gz → 6.0.1.dev3__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.
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/PKG-INFO +1 -1
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/table.py +13 -1
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/pyproject.toml +1 -1
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/README.md +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/__init__.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/backtesting.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/caching/__init__.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/caching/parquet.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/db/__init__.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/db/base.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/db/cached.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/db/snapshot.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/db/standard.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/__init__.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/data_types.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/generated_columns.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/schema.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/slicing.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/store.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/testing/__init__.py +0 -0
- {datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/testing/database_client.py +0 -0
|
@@ -4,6 +4,7 @@ from typing import Any, Optional
|
|
|
4
4
|
import deltalake as dl
|
|
5
5
|
import polars as pl
|
|
6
6
|
import pyarrow as pa
|
|
7
|
+
from deltalake.exceptions import CommitFailedError
|
|
7
8
|
|
|
8
9
|
from .schema import Schema
|
|
9
10
|
from .slicing import HyperSlice
|
|
@@ -46,6 +47,10 @@ def _dnf_to_sql(dnf: list[tuple]) -> str:
|
|
|
46
47
|
return " AND ".join(sql_parts)
|
|
47
48
|
|
|
48
49
|
|
|
50
|
+
def _is_arrow_cast_commit_failure(error: CommitFailedError) -> bool:
|
|
51
|
+
return "arrow_cast should have been simplified to cast" in str(error)
|
|
52
|
+
|
|
53
|
+
|
|
49
54
|
class Table:
|
|
50
55
|
def __init__(
|
|
51
56
|
self,
|
|
@@ -183,7 +188,14 @@ class Table:
|
|
|
183
188
|
else:
|
|
184
189
|
predicate = _dnf_to_sql(hyper_slice)
|
|
185
190
|
|
|
186
|
-
|
|
191
|
+
try:
|
|
192
|
+
self._write_deltalake(data=data, mode="overwrite", predicate=predicate)
|
|
193
|
+
except CommitFailedError as error:
|
|
194
|
+
if predicate is None or not _is_arrow_cast_commit_failure(error):
|
|
195
|
+
raise
|
|
196
|
+
|
|
197
|
+
self.delta_table.delete(predicate)
|
|
198
|
+
self._write_deltalake(data=data, mode="append", predicate=None)
|
|
187
199
|
|
|
188
200
|
def append(self, df: pl.DataFrame) -> None:
|
|
189
201
|
"""Append rows to Delta Lake. This will write data to the Delta Lake.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "datazone-sdk"
|
|
3
|
-
version = "6.0.1.
|
|
3
|
+
version = "6.0.1.dev3"
|
|
4
4
|
description = "Database and Delta storage client library for working with Delta Lake tables"
|
|
5
5
|
authors = [{ name = "Team Enigma", email = "enigma@energinet.dk" }]
|
|
6
6
|
requires-python = ">=3.10"
|
|
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
|
{datazone_sdk-6.0.1.dev2 → datazone_sdk-6.0.1.dev3}/datazone/deltastorage/generated_columns.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|