datazone-sdk 6.0.0.dev1__tar.gz → 6.0.1.dev1__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.0.dev1 → datazone_sdk-6.0.1.dev1}/PKG-INFO +1 -1
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/table.py +22 -3
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/pyproject.toml +1 -1
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/README.md +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/__init__.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/backtesting.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/caching/__init__.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/caching/parquet.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/db/__init__.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/db/base.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/db/cached.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/db/snapshot.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/db/standard.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/__init__.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/data_types.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/generated_columns.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/schema.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/slicing.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/store.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/testing/__init__.py +0 -0
- {datazone_sdk-6.0.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/testing/database_client.py +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import datetime as dt
|
|
1
2
|
from typing import Any, Optional
|
|
2
3
|
|
|
3
4
|
import deltalake as dl
|
|
@@ -8,6 +9,21 @@ from .schema import Schema
|
|
|
8
9
|
from .slicing import HyperSlice
|
|
9
10
|
|
|
10
11
|
|
|
12
|
+
def _sql_literal(value: Any) -> str:
|
|
13
|
+
if isinstance(value, dt.datetime):
|
|
14
|
+
return f"'{value.isoformat()}'"
|
|
15
|
+
if isinstance(value, dt.date):
|
|
16
|
+
return f"'{value.isoformat()}'"
|
|
17
|
+
if isinstance(value, str):
|
|
18
|
+
escaped_value = value.replace("'", "''")
|
|
19
|
+
return f"'{escaped_value}'"
|
|
20
|
+
if isinstance(value, bool):
|
|
21
|
+
return "TRUE" if value else "FALSE"
|
|
22
|
+
if value is None:
|
|
23
|
+
return "NULL"
|
|
24
|
+
return str(value)
|
|
25
|
+
|
|
26
|
+
|
|
11
27
|
def _dnf_to_sql(dnf: list[tuple]) -> str:
|
|
12
28
|
"""Convert DNF expression to SQL expression."""
|
|
13
29
|
if len(dnf) == 0:
|
|
@@ -17,10 +33,13 @@ def _dnf_to_sql(dnf: list[tuple]) -> str:
|
|
|
17
33
|
for col, op, val in dnf:
|
|
18
34
|
if op == "in":
|
|
19
35
|
assert isinstance(val, list)
|
|
20
|
-
|
|
21
|
-
|
|
36
|
+
if len(val) == 0:
|
|
37
|
+
sql_parts.append("false")
|
|
38
|
+
else:
|
|
39
|
+
values = " OR ".join([f"{col} = {_sql_literal(item)}" for item in val])
|
|
40
|
+
sql_parts.append(f"({values})")
|
|
22
41
|
elif op in [">=", "<=", ">", "<", "="]:
|
|
23
|
-
sql_parts.append(f"{col} {op}
|
|
42
|
+
sql_parts.append(f"{col} {op} {_sql_literal(val)}")
|
|
24
43
|
else:
|
|
25
44
|
raise ValueError(f"Unsupported operation: {op}")
|
|
26
45
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "datazone-sdk"
|
|
3
|
-
version = "6.0.
|
|
3
|
+
version = "6.0.1.dev1"
|
|
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.0.dev1 → datazone_sdk-6.0.1.dev1}/datazone/deltastorage/generated_columns.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|