sibi-dst 2025.9.7__tar.gz → 2025.9.8__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.
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/PKG-INFO +1 -1
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/pyproject.toml +1 -1
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/clickhouse_writer.py +5 -6
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/README.md +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/_artifact_updater_async.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/_artifact_updater_threaded.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/_df_helper.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/_parquet_artifact.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/_parquet_reader.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/http/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/http/_http_config.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/parquet/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/parquet/_parquet_options.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_db_connection.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_db_gatekeeper.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_io_dask.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_load_from_db.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_model_registry.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_sql_model_builder.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/core/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/core/_defaults.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/core/_filter_handler.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/core/_params_config.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/core/_query_config.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/data_cleaner.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/geopy_helper/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/geopy_helper/geo_location_service.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/geopy_helper/utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/base_osm_map.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/basemaps/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/basemaps/calendar_html.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/basemaps/route_map_plotter.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/basemaps/router_plotter.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/route_path_builder.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/osmnx_helper/utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/tests/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/tests/test_baseclass.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/tests/test_data_wrapper_class.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/async_utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/base.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/boilerplate/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/boilerplate/base_attacher.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/boilerplate/base_data_cube.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/boilerplate/base_parquet_artifact.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/boilerplate/base_parquet_reader.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/boilerplate/base_pipeline.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/boilerplate/hybrid_data_loader.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/business_days.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/credentials.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/dask_utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/data_from_http_source.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/data_utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/data_wrapper.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/date_utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/df_utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/file_age_checker.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/file_utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/filepath_generator.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/iceberg_saver.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/log_utils.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/manifest_manager.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/parquet_saver.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/periods.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/phone_formatter.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/progress/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/progress/jobs.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/progress/sse_runner.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/storage_config.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/storage_hive.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/storage_manager.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/update_planner.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/webdav_client.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/utils/write_gatekeeper.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/_df_helper.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_db_connection.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_io_dask.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_load_from_db.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_model_builder.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/_db_connection.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/_io_dask.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/_load_from_db.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/_model_builder.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/core/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/core/_filter_handler.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/core/_params_config.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/core/_query_config.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/utils/__init__.py +0 -0
- {sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/utils/log_utils.py +0 -0
@@ -90,10 +90,14 @@ class ClickHouseWriter(ManagedResource):
|
|
90
90
|
|
91
91
|
# one client per thread to avoid session contention
|
92
92
|
self._tlocal = threading.local()
|
93
|
+
ow = self.overwrite
|
94
|
+
if ow:
|
95
|
+
self._command(f"DROP TABLE IF EXISTS {self._ident(self.table)}")
|
96
|
+
self.logger.info(f"Dropped table {self.table} (overwrite=True)")
|
93
97
|
|
94
98
|
# ------------- public -------------
|
95
99
|
|
96
|
-
def save_to_clickhouse(self, df: dd.DataFrame
|
100
|
+
def save_to_clickhouse(self, df: dd.DataFrame) -> None:
|
97
101
|
"""
|
98
102
|
Persist a Dask DataFrame into ClickHouse.
|
99
103
|
|
@@ -118,15 +122,10 @@ class ClickHouseWriter(ManagedResource):
|
|
118
122
|
)
|
119
123
|
|
120
124
|
# (re)create table
|
121
|
-
ow = self.overwrite if overwrite is None else bool(overwrite)
|
122
125
|
dtypes = df._meta_nonempty.dtypes # metadata-only types (no compute)
|
123
126
|
schema_sql = self._generate_clickhouse_schema(dtypes)
|
124
127
|
engine_sql = self._default_engine_sql() if not self.engine else self.engine
|
125
128
|
|
126
|
-
if ow:
|
127
|
-
self._command(f"DROP TABLE IF EXISTS {self._ident(self.table)}")
|
128
|
-
self.logger.info(f"Dropped table {self.table} (overwrite=True)")
|
129
|
-
|
130
129
|
create_sql = f"CREATE TABLE IF NOT EXISTS {self._ident(self.table)} ({schema_sql}) {engine_sql}"
|
131
130
|
self._command(create_sql)
|
132
131
|
self.logger.info(f"Ensured table {self.table} exists")
|
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
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/parquet/_parquet_options.py
RENAMED
File without changes
|
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_db_connection.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_db_gatekeeper.py
RENAMED
File without changes
|
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_load_from_db.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_model_registry.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/df_helper/backends/sqlalchemy/_sql_model_builder.py
RENAMED
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
|
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
|
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
|
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
|
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
|
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/__init__.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_db_connection.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_io_dask.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_load_from_db.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlalchemy/_model_builder.py
RENAMED
File without changes
|
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/_db_connection.py
RENAMED
File without changes
|
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/_load_from_db.py
RENAMED
File without changes
|
{sibi_dst-2025.9.7 → sibi_dst-2025.9.8}/sibi_dst/v2/df_helper/backends/sqlmodel/_model_builder.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|