datazone-sdk 6.0.1.dev3__tar.gz → 6.0.1.dev4__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 (21) hide show
  1. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/PKG-INFO +1 -1
  2. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/__init__.py +8 -1
  3. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/deltastorage/__init__.py +1 -1
  4. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/deltastorage/table.py +12 -0
  5. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/pyproject.toml +1 -1
  6. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/README.md +0 -0
  7. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/backtesting.py +0 -0
  8. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/caching/__init__.py +0 -0
  9. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/caching/parquet.py +0 -0
  10. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/db/__init__.py +0 -0
  11. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/db/base.py +0 -0
  12. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/db/cached.py +0 -0
  13. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/db/snapshot.py +0 -0
  14. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/db/standard.py +0 -0
  15. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/deltastorage/data_types.py +0 -0
  16. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/deltastorage/generated_columns.py +0 -0
  17. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/deltastorage/schema.py +0 -0
  18. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/deltastorage/slicing.py +0 -0
  19. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/deltastorage/store.py +0 -0
  20. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/testing/__init__.py +0 -0
  21. {datazone_sdk-6.0.1.dev3 → datazone_sdk-6.0.1.dev4}/datazone/testing/database_client.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: datazone-sdk
3
- Version: 6.0.1.dev3
3
+ Version: 6.0.1.dev4
4
4
  Summary: Database and Delta storage client library for working with Delta Lake tables
5
5
  Author: Team Enigma
6
6
  Author-email: enigma@energinet.dk
@@ -1,6 +1,13 @@
1
1
  from datazone.backtesting import backtest
2
2
  from datazone.caching import ParquetCache
3
3
  from datazone.db import DatabaseClient, SnapshotDatabaseClient
4
- from datazone.deltastorage import Field, HyperSlice, Schema, Store, Table
4
+ from datazone.deltastorage import (
5
+ DeltaOverwriteFallbackWarning,
6
+ Field,
7
+ HyperSlice,
8
+ Schema,
9
+ Store,
10
+ Table,
11
+ )
5
12
 
6
13
  from . import testing
@@ -1,4 +1,4 @@
1
1
  from .schema import Field, Schema
2
2
  from .slicing import HyperSlice
3
3
  from .store import Store
4
- from .table import Table
4
+ from .table import DeltaOverwriteFallbackWarning, Table
@@ -1,4 +1,5 @@
1
1
  import datetime as dt
2
+ import warnings
2
3
  from typing import Any, Optional
3
4
 
4
5
  import deltalake as dl
@@ -51,6 +52,10 @@ def _is_arrow_cast_commit_failure(error: CommitFailedError) -> bool:
51
52
  return "arrow_cast should have been simplified to cast" in str(error)
52
53
 
53
54
 
55
+ class DeltaOverwriteFallbackWarning(RuntimeWarning):
56
+ pass
57
+
58
+
54
59
  class Table:
55
60
  def __init__(
56
61
  self,
@@ -194,6 +199,13 @@ class Table:
194
199
  if predicate is None or not _is_arrow_cast_commit_failure(error):
195
200
  raise
196
201
 
202
+ warnings.warn(
203
+ "Delta predicate overwrite failed with the DataFusion arrow_cast bug. "
204
+ "Falling back to delete followed by append; this is not atomic as a "
205
+ "single overwrite commit.",
206
+ DeltaOverwriteFallbackWarning,
207
+ stacklevel=2,
208
+ )
197
209
  self.delta_table.delete(predicate)
198
210
  self._write_deltalake(data=data, mode="append", predicate=None)
199
211
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "datazone-sdk"
3
- version = "6.0.1.dev3"
3
+ version = "6.0.1.dev4"
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"