sibi-flux 2026.1.3__py3-none-any.whl → 2026.1.4__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.
- sibi_flux/config/settings.py +21 -0
- sibi_flux/datacube/field_factory.py +1 -0
- sibi_flux/datacube/router.py +5 -0
- sibi_flux/df_validator/_df_validator.py +1 -0
- {sibi_flux-2026.1.3.dist-info → sibi_flux-2026.1.4.dist-info}/METADATA +1 -1
- {sibi_flux-2026.1.3.dist-info → sibi_flux-2026.1.4.dist-info}/RECORD +8 -8
- {sibi_flux-2026.1.3.dist-info → sibi_flux-2026.1.4.dist-info}/WHEEL +0 -0
- {sibi_flux-2026.1.3.dist-info → sibi_flux-2026.1.4.dist-info}/entry_points.txt +0 -0
sibi_flux/config/settings.py
CHANGED
|
@@ -103,6 +103,27 @@ class DatabaseSettings(SibiBaseSettings):
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
|
|
106
|
+
class ClickhouseBaseSettings(SibiBaseSettings):
|
|
107
|
+
"""Base settings for ClickHouse connection."""
|
|
108
|
+
|
|
109
|
+
interface: str = "http"
|
|
110
|
+
host: str = "localhost"
|
|
111
|
+
port: int = 8123
|
|
112
|
+
database: str = "default"
|
|
113
|
+
username: str = "default"
|
|
114
|
+
password: SecretStr = SecretStr("")
|
|
115
|
+
|
|
116
|
+
def to_legacy_dict(self) -> dict[str, Any]:
|
|
117
|
+
return {
|
|
118
|
+
"interface": self.interface,
|
|
119
|
+
"host": self.host,
|
|
120
|
+
"port": self.port,
|
|
121
|
+
"database": self.database,
|
|
122
|
+
"username": self.username,
|
|
123
|
+
"password": self.password.get_secret_value() if self.password else None,
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
|
|
106
127
|
class RedisBaseSettings(SibiBaseSettings):
|
|
107
128
|
"""Base settings for Redis connection."""
|
|
108
129
|
|
|
@@ -72,6 +72,7 @@ class FieldMapFactory:
|
|
|
72
72
|
# 2. Fallback to standard locations if not found
|
|
73
73
|
if not repo_path:
|
|
74
74
|
candidates = [
|
|
75
|
+
Path("solutions/dataobjects/globals/global_field_repository.yaml"),
|
|
75
76
|
Path("dataobjects/globals/global_field_repository.yaml"),
|
|
76
77
|
Path("solutions/conf/global_field_repository.yaml"),
|
|
77
78
|
]
|
sibi_flux/datacube/router.py
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
import json
|
|
3
|
+
import os
|
|
3
4
|
from contextlib import suppress
|
|
4
5
|
from collections.abc import Mapping
|
|
5
6
|
from typing import Any, Optional, Type, Sequence, List
|
|
@@ -68,6 +69,10 @@ class BaseCubeRouter:
|
|
|
68
69
|
_exclude_columns = ["id"]
|
|
69
70
|
|
|
70
71
|
try:
|
|
72
|
+
# Check if introspection is allowed via env var (default: true)
|
|
73
|
+
if os.environ.get("SIBI_FLUX_ROUTER_INTROSPECTION", "true").lower() == "false":
|
|
74
|
+
return self._fallback_create_model(_exclude_columns)
|
|
75
|
+
|
|
71
76
|
# Introspect dtypes by loading an empty slice/schema
|
|
72
77
|
# We use n_records=1 at init to hint the backend to limit query size
|
|
73
78
|
# Note: This requires the DB/Backend to be accessible at startup
|
|
@@ -75,6 +75,7 @@ class DfValidator:
|
|
|
75
75
|
"float64": "Float64[pyarrow]",
|
|
76
76
|
"string": "string[pyarrow]",
|
|
77
77
|
"timestamp[ns][pyarrow]": "datetime64[ns, UTC]",
|
|
78
|
+
"datetime64[us, UTC]": "datetime64[ns, UTC]",
|
|
78
79
|
"bool": "boolean[pyarrow]",
|
|
79
80
|
}
|
|
80
81
|
return mapping.get(dtype_str, dtype_str)
|
|
@@ -10,7 +10,7 @@ sibi_flux/artifacts/parquet_engine/planner.py,sha256=c_oWfZKMvtpyKH5v-UYlJRRFidR
|
|
|
10
10
|
sibi_flux/cli.py,sha256=W3REv_qKGKNXt2c2iwI-o0jpewdtQJsr6RZASKV4rtk,1794
|
|
11
11
|
sibi_flux/config/__init__.py,sha256=fVgxXW03kzHuVo1zXQkLJoXg6Q6yiooRqujii3L817w,64
|
|
12
12
|
sibi_flux/config/manager.py,sha256=aiGgkwr1maYCwprt_vjdCpfGSycawBCERAjY3jn6xS4,5093
|
|
13
|
-
sibi_flux/config/settings.py,sha256=
|
|
13
|
+
sibi_flux/config/settings.py,sha256=F0-Y4Mqwwt5ZOcmFtcPfsXj-tSUZJPzy6LER83nZA20,4560
|
|
14
14
|
sibi_flux/core/__init__.py,sha256=3NvyTOJns99CGxNTd6K-xV392JjKHHA3p_PQUEjYxLg,84
|
|
15
15
|
sibi_flux/core/managed_resource/__init__.py,sha256=gyYTDZEPCgOJQvcF-_RJGzBrNoRNkijEIqxm0ruatY4,78
|
|
16
16
|
sibi_flux/core/managed_resource/_managed_resource.py,sha256=DGcSX5kQ_nHnXqAISxpjHiDdKG3ertyPj6anz_kNOKw,24606
|
|
@@ -25,12 +25,12 @@ sibi_flux/datacube/__init__.py,sha256=ODEoa4r5RtzynIp-PdVDaJ-4BcPBj1L9VkLIF7RYSP
|
|
|
25
25
|
sibi_flux/datacube/_data_cube.py,sha256=Ofgy3JlR7N0eKijpUzI-ixFlISUd3CFsxnKd6a4fguE,12629
|
|
26
26
|
sibi_flux/datacube/cli.py,sha256=mQwyj-NmjkKwDRXkJOZeXB6VDHGXGvmHnqbuqOCiYfI,92637
|
|
27
27
|
sibi_flux/datacube/config_engine.py,sha256=3cmxycCqMzjYJ1fWn8IWrHTNwSQmRqxnPoOzc1lUtDk,8340
|
|
28
|
-
sibi_flux/datacube/field_factory.py,sha256=
|
|
28
|
+
sibi_flux/datacube/field_factory.py,sha256=Z3Yp6tGzrZ13rvKSjMFr9jvW7fazeNi4K1fAalxLujM,6376
|
|
29
29
|
sibi_flux/datacube/field_mapper.py,sha256=V6aFYunl28DI7gSvrF7tcidPNX9QtOYymVxbumzQqPs,9334
|
|
30
30
|
sibi_flux/datacube/field_registry.py,sha256=VBTqxNIn2-eWMiZi1oQK-719oyJfn3yhfV7Bz_0iNyU,4355
|
|
31
31
|
sibi_flux/datacube/generator.py,sha256=DECeAbee4nQHDQsrpBYo6FiQERXHQ7XDmOs86abd9mY,36432
|
|
32
32
|
sibi_flux/datacube/orchestrator.py,sha256=37iWkqY9ShMkjFqYhpb3dpioYX2GXOTyo5p52cO5t7I,24278
|
|
33
|
-
sibi_flux/datacube/router.py,sha256=
|
|
33
|
+
sibi_flux/datacube/router.py,sha256=SdG0J4O9CSZeUkHjyWHFC8B3oH83fSdDHfMXZfmHfi0,10914
|
|
34
34
|
sibi_flux/dataset/__init__.py,sha256=zYpf4-nalcQNSUIOCDG0CqQu2SKkm89I9AF6Zy6z1sE,53
|
|
35
35
|
sibi_flux/dataset/_dataset.py,sha256=DDAshH3QjgFDaXp9E75nkKy8_Ft-Z2zP_chmJQTU9hg,6484
|
|
36
36
|
sibi_flux/dataset/hybrid_loader.py,sha256=c-gt3x8DLPpQWwpx1OnAueT6OT47eXK7GakHi8Dna00,7693
|
|
@@ -63,7 +63,7 @@ sibi_flux/df_helper/core/_filter_handler.py,sha256=7FFcNVKfm8HdoDn3iv2Jw-X7EHpwn
|
|
|
63
63
|
sibi_flux/df_helper/core/_params_config.py,sha256=JgR0pgb_GZaovtvckigYtddVFVBoRGMxYd4y_Yy26Xc,6189
|
|
64
64
|
sibi_flux/df_helper/core/_query_config.py,sha256=bS_k0qmvom1uVhkcJngPV2pc9pOhQ0FDIsanZSVKMFo,439
|
|
65
65
|
sibi_flux/df_validator/__init__.py,sha256=lkgTVmeCmH0yqfpZ4oPrRMZS8Jy9lm4OF7DjTSWbgTY,66
|
|
66
|
-
sibi_flux/df_validator/_df_validator.py,sha256=
|
|
66
|
+
sibi_flux/df_validator/_df_validator.py,sha256=P8ARf0htKo7L9PMcEjTnobpgT4RsGOiuG81tVEntS4o,8936
|
|
67
67
|
sibi_flux/init/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
68
|
sibi_flux/init/core.py,sha256=ahl4wVAyOrl1ko-f2NcYxeX9yQBQceYnobqeH_Gfp98,7785
|
|
69
69
|
sibi_flux/init/discovery_updater.py,sha256=3WONU50EnaIItaLncumd3hC6h059ykvoqMfRC5NAvi8,5652
|
|
@@ -120,7 +120,7 @@ sibi_flux/utils/file_utils.py,sha256=7OHUW65OTe6HlQ6wkDagDd7d0SCQ_-NEGmHlOJguKYw
|
|
|
120
120
|
sibi_flux/utils/filepath_generator/__init__.py,sha256=YVFJhIewjwksb9E2t43ojNC-W_AqUDhkKxQVBIBMkY8,91
|
|
121
121
|
sibi_flux/utils/filepath_generator/_filepath_generator.py,sha256=4HG-Ubvjtv6luL0z-A-8B6_r3o9YqBwATFXhOXiTbKc,6789
|
|
122
122
|
sibi_flux/utils/retry.py,sha256=45t0MF2IoMayN9xkn5_FtakMq4HwZlGvHVd6qv8x1AY,1227
|
|
123
|
-
sibi_flux-2026.1.
|
|
124
|
-
sibi_flux-2026.1.
|
|
125
|
-
sibi_flux-2026.1.
|
|
126
|
-
sibi_flux-2026.1.
|
|
123
|
+
sibi_flux-2026.1.4.dist-info/WHEEL,sha256=ZyFSCYkV2BrxH6-HRVRg3R9Fo7MALzer9KiPYqNxSbo,79
|
|
124
|
+
sibi_flux-2026.1.4.dist-info/entry_points.txt,sha256=6xrq5zuz_8wodJj4s49raopnuC3Owy_leZRkWtcXpTk,49
|
|
125
|
+
sibi_flux-2026.1.4.dist-info/METADATA,sha256=njzorcmcig-EDd4i0-oH-nQ1dfi01ZvDY6xwN6N03B8,10422
|
|
126
|
+
sibi_flux-2026.1.4.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|