sibi-dst 0.3.45__py3-none-any.whl → 0.3.46__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_dst/__init__.py +38 -0
- sibi_dst/{df_helper → v1/df_helper}/_artifact_updater_multi_wrapper.py +1 -1
- sibi_dst/{df_helper → v1/df_helper}/_df_helper.py +3 -3
- sibi_dst/{df_helper → v1/df_helper}/_parquet_artifact.py +2 -2
- sibi_dst/{df_helper → v1/df_helper}/_parquet_reader.py +2 -2
- sibi_dst/{df_helper → v1/df_helper}/backends/django/_load_from_db.py +3 -3
- sibi_dst/{df_helper → v1/df_helper}/backends/http/_http_config.py +1 -1
- sibi_dst/{df_helper → v1/df_helper}/backends/parquet/_filter_handler.py +1 -1
- sibi_dst/{df_helper → v1/df_helper}/backends/parquet/_parquet_options.py +2 -2
- sibi_dst/{df_helper → v1/df_helper}/backends/sqlalchemy/_io_dask.py +2 -2
- sibi_dst/{df_helper → v1/df_helper}/backends/sqlalchemy/_load_from_db.py +2 -2
- sibi_dst/{df_helper → v1/df_helper}/backends/sqlalchemy/_sql_model_builder.py +2 -1
- sibi_dst/{df_helper → v1/df_helper}/core/_filter_handler.py +1 -1
- sibi_dst/v1/osmnx_helper/__init__.py +6 -0
- sibi_dst/{tests → v1/tests}/test_data_wrapper_class.py +11 -10
- sibi_dst/{utils → v1/utils}/__init__.py +2 -0
- sibi_dst/{utils → v1/utils}/clickhouse_writer.py +1 -1
- sibi_dst/v1/utils/data_from_http_source.py +49 -0
- sibi_dst/{utils → v1/utils}/data_utils.py +5 -3
- sibi_dst/{utils → v1/utils}/data_wrapper.py +3 -1
- sibi_dst/{utils → v1/utils}/date_utils.py +1 -1
- sibi_dst/{utils → v1/utils}/file_utils.py +1 -1
- sibi_dst/{utils → v1/utils}/filepath_generator.py +1 -1
- sibi_dst/{utils → v1/utils}/parquet_saver.py +1 -1
- sibi_dst/v1/utils/storage_config.py +28 -0
- sibi_dst/v2/df_helper/__init__.py +7 -0
- sibi_dst/v2/df_helper/_df_helper.py +214 -0
- sibi_dst/v2/df_helper/backends/sqlalchemy/__init__.py +10 -0
- sibi_dst/v2/df_helper/backends/sqlalchemy/_db_connection.py +82 -0
- sibi_dst/v2/df_helper/backends/sqlalchemy/_io_dask.py +135 -0
- sibi_dst/v2/df_helper/backends/sqlalchemy/_load_from_db.py +142 -0
- sibi_dst/v2/df_helper/backends/sqlalchemy/_model_builder.py +297 -0
- sibi_dst/v2/df_helper/backends/sqlmodel/__init__.py +9 -0
- sibi_dst/v2/df_helper/backends/sqlmodel/_db_connection.py +78 -0
- sibi_dst/v2/df_helper/backends/sqlmodel/_io_dask.py +122 -0
- sibi_dst/v2/df_helper/backends/sqlmodel/_load_from_db.py +142 -0
- sibi_dst/v2/df_helper/backends/sqlmodel/_model_builder.py +283 -0
- sibi_dst/v2/df_helper/core/__init__.py +9 -0
- sibi_dst/v2/df_helper/core/_filter_handler.py +236 -0
- sibi_dst/v2/df_helper/core/_params_config.py +139 -0
- sibi_dst/v2/df_helper/core/_query_config.py +17 -0
- sibi_dst/v2/utils/__init__.py +5 -0
- sibi_dst/v2/utils/log_utils.py +120 -0
- {sibi_dst-0.3.45.dist-info → sibi_dst-0.3.46.dist-info}/METADATA +3 -2
- sibi_dst-0.3.46.dist-info/RECORD +80 -0
- sibi_dst/osmnx_helper/__init__.py +0 -9
- sibi_dst/osmnx_helper/v2/base_osm_map.py +0 -153
- sibi_dst/osmnx_helper/v2/basemaps/utils.py +0 -0
- sibi_dst-0.3.45.dist-info/RECORD +0 -62
- /sibi_dst/{df_helper/backends → v1}/__init__.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/__init__.py +0 -0
- /sibi_dst/{osmnx_helper/v1 → v1/df_helper/backends}/__init__.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/django/__init__.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/django/_db_connection.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/django/_io_dask.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/django/_sql_model_builder.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/http/__init__.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/parquet/__init__.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/sqlalchemy/__init__.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/sqlalchemy/_db_connection.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/backends/sqlalchemy/_filter_handler.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/core/__init__.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/core/_defaults.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/core/_params_config.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/core/_query_config.py +0 -0
- /sibi_dst/{df_helper → v1/df_helper}/data_cleaner.py +0 -0
- /sibi_dst/{geopy_helper → v1/geopy_helper}/__init__.py +0 -0
- /sibi_dst/{geopy_helper → v1/geopy_helper}/geo_location_service.py +0 -0
- /sibi_dst/{geopy_helper → v1/geopy_helper}/utils.py +0 -0
- /sibi_dst/{osmnx_helper/v1 → v1/osmnx_helper}/base_osm_map.py +0 -0
- /sibi_dst/{osmnx_helper/v1 → v1/osmnx_helper}/basemaps/__init__.py +0 -0
- /sibi_dst/{osmnx_helper/v1 → v1/osmnx_helper}/basemaps/calendar_html.py +0 -0
- /sibi_dst/{osmnx_helper/v1 → v1/osmnx_helper}/basemaps/router_plotter.py +0 -0
- /sibi_dst/{osmnx_helper/v1 → v1/osmnx_helper}/utils.py +0 -0
- /sibi_dst/{osmnx_helper/v2 → v1/tests}/__init__.py +0 -0
- /sibi_dst/{utils → v1/utils}/airflow_manager.py +0 -0
- /sibi_dst/{utils → v1/utils}/credentials.py +0 -0
- /sibi_dst/{utils → v1/utils}/df_utils.py +0 -0
- /sibi_dst/{utils → v1/utils}/log_utils.py +0 -0
- /sibi_dst/{utils → v1/utils}/phone_formatter.py +0 -0
- /sibi_dst/{utils → v1/utils}/storage_manager.py +0 -0
- /sibi_dst/{osmnx_helper/v2/basemaps → v2}/__init__.py +0 -0
- /sibi_dst/{tests → v2/df_helper/backends}/__init__.py +0 -0
- {sibi_dst-0.3.45.dist-info → sibi_dst-0.3.46.dist-info}/WHEEL +0 -0
@@ -1,153 +0,0 @@
|
|
1
|
-
from __future__ import annotations
|
2
|
-
|
3
|
-
import html
|
4
|
-
from abc import ABC, abstractmethod
|
5
|
-
from typing import Optional
|
6
|
-
|
7
|
-
import folium
|
8
|
-
import geopandas as gpd
|
9
|
-
import numpy as np
|
10
|
-
import osmnx as ox
|
11
|
-
import pandas as pd
|
12
|
-
from folium.plugins import Fullscreen
|
13
|
-
from networkx import MultiDiGraph
|
14
|
-
|
15
|
-
|
16
|
-
class BaseOsmMap(ABC):
|
17
|
-
# Define available tile options for the map
|
18
|
-
tile_options = {
|
19
|
-
"OpenStreetMap": "OpenStreetMap",
|
20
|
-
"CartoDB": "cartodbpositron",
|
21
|
-
"CartoDB Voyager": "cartodbvoyager"
|
22
|
-
}
|
23
|
-
# Default geographical bounds (Costa Rica)
|
24
|
-
bounds = [[8.0340, -85.9417], [11.2192, -82.5566]]
|
25
|
-
|
26
|
-
def __init__(
|
27
|
-
self,
|
28
|
-
osmnx_graph: MultiDiGraph,
|
29
|
-
df: pd.DataFrame,
|
30
|
-
lat_col: str = "latitude",
|
31
|
-
lon_col: str = "longitude",
|
32
|
-
map_html_title: str = "OSM Basemap",
|
33
|
-
zoom_start: int = 13,
|
34
|
-
fullscreen: bool = True,
|
35
|
-
fullscreen_position: str = "topright",
|
36
|
-
tiles: str = "OpenStreetMap",
|
37
|
-
verbose: bool = False,
|
38
|
-
sort_keys: Optional[list[str]] = None,
|
39
|
-
dt_field: Optional[str] = None,
|
40
|
-
calc_nearest_nodes: bool = False,
|
41
|
-
max_bounds: bool = False,
|
42
|
-
):
|
43
|
-
if df.empty:
|
44
|
-
raise ValueError("df must not be empty")
|
45
|
-
|
46
|
-
# Store attributes
|
47
|
-
self.df = df.copy()
|
48
|
-
self.osmnx_graph = osmnx_graph
|
49
|
-
self.lat_col = lat_col
|
50
|
-
self.lon_col = lon_col
|
51
|
-
self.map_html_title = self._sanitize_html(map_html_title)
|
52
|
-
self.zoom_start = zoom_start
|
53
|
-
self.fullscreen = fullscreen
|
54
|
-
self.fullscreen_position = fullscreen_position
|
55
|
-
self.tiles = tiles
|
56
|
-
self.verbose = verbose
|
57
|
-
self.sort_keys = sort_keys
|
58
|
-
self.dt_field = dt_field
|
59
|
-
self.calc_nearest_nodes = calc_nearest_nodes
|
60
|
-
self.max_bounds = max_bounds
|
61
|
-
self.dt = self.df[self.dt_field].to_list() if self.dt_field else None
|
62
|
-
self.nearest_nodes = None
|
63
|
-
self.G = None
|
64
|
-
self.osm_map = None
|
65
|
-
|
66
|
-
self._prepare_df()
|
67
|
-
self._initialize_map()
|
68
|
-
|
69
|
-
def _prepare_df(self):
|
70
|
-
"""Sort and preprocess the DataFrame."""
|
71
|
-
if self.sort_keys:
|
72
|
-
self.df.sort_values(by=self.sort_keys, inplace=True, ignore_index=True)
|
73
|
-
self.gps_points = self.df[[self.lat_col, self.lon_col]].to_numpy()
|
74
|
-
|
75
|
-
# Compute nearest nodes if required
|
76
|
-
if self.calc_nearest_nodes and not self.df.empty:
|
77
|
-
self.nearest_nodes = ox.distance.nearest_nodes(
|
78
|
-
self.osmnx_graph, X=self.df[self.lon_col], Y=self.df[self.lat_col]
|
79
|
-
)
|
80
|
-
|
81
|
-
def _initialize_map(self):
|
82
|
-
"""Initialize the folium map centered around the dataset."""
|
83
|
-
if self.gps_points.size == 0:
|
84
|
-
raise ValueError("No valid GPS points available for map initialization")
|
85
|
-
|
86
|
-
center = self.gps_points.mean(axis=0).tolist()
|
87
|
-
if self.osm_map is None:
|
88
|
-
self.osm_map = folium.Map(
|
89
|
-
location=center, zoom_start=self.zoom_start, tiles=self.tiles, max_bounds=self.max_bounds
|
90
|
-
)
|
91
|
-
self.G = self._extract_subgraph(*self._get_bounding_box_from_points())
|
92
|
-
|
93
|
-
def _get_bounding_box_from_points(self, margin: float = 0.001) -> tuple[float, float, float, float]:
|
94
|
-
"""Compute bounding box for the dataset with margin."""
|
95
|
-
latitudes, longitudes = self.gps_points[:, 0], self.gps_points[:, 1]
|
96
|
-
return max(latitudes) + margin, min(latitudes) - margin, max(longitudes) + margin, min(longitudes) - margin
|
97
|
-
|
98
|
-
def _extract_subgraph(self, north: float, south: float, east: float, west: float) -> MultiDiGraph:
|
99
|
-
"""Extract a subgraph from OSM data within the bounding box."""
|
100
|
-
bbox_poly = gpd.GeoSeries([ox.utils_geo.bbox_to_poly((west, south, east, north))])
|
101
|
-
nodes_gdf = ox.graph_to_gdfs(self.osmnx_graph, nodes=True, edges=False)
|
102
|
-
nodes_within_bbox = gpd.sjoin(nodes_gdf, gpd.GeoDataFrame(geometry=bbox_poly), predicate="within")
|
103
|
-
return self.osmnx_graph.subgraph(nodes_within_bbox.index)
|
104
|
-
|
105
|
-
def _post_process_map(self):
|
106
|
-
"""Perform final adjustments to the map."""
|
107
|
-
self._attach_supported_tiles()
|
108
|
-
self.add_tile_layer()
|
109
|
-
self._add_fullscreen()
|
110
|
-
self._add_map_title()
|
111
|
-
if self.max_bounds and self.bounds:
|
112
|
-
self.osm_map.fit_bounds(self.bounds)
|
113
|
-
|
114
|
-
def _attach_supported_tiles(self):
|
115
|
-
"""Attach additional tile layers to the map."""
|
116
|
-
for name, tile in self.tile_options.items():
|
117
|
-
if tile.lower() != self.tiles.lower():
|
118
|
-
folium.TileLayer(name=name, tiles=tile, show=False).add_to(self.osm_map)
|
119
|
-
|
120
|
-
def _add_fullscreen(self):
|
121
|
-
"""Enable fullscreen control if required."""
|
122
|
-
if self.fullscreen:
|
123
|
-
Fullscreen(position=self.fullscreen_position).add_to(self.osm_map)
|
124
|
-
|
125
|
-
def _add_map_title(self):
|
126
|
-
"""Add a title to the map if provided."""
|
127
|
-
if self.map_html_title:
|
128
|
-
self.osm_map.get_root().html.add_child(folium.Element(self.map_html_title))
|
129
|
-
|
130
|
-
@staticmethod
|
131
|
-
def _sanitize_html(input_html: str) -> str:
|
132
|
-
"""Sanitize HTML input to prevent script injection."""
|
133
|
-
return html.escape(input_html)
|
134
|
-
|
135
|
-
@abstractmethod
|
136
|
-
def process_map(self):
|
137
|
-
"""Abstract method to define map processing logic in subclasses."""
|
138
|
-
pass
|
139
|
-
|
140
|
-
def pre_process_map(self):
|
141
|
-
"""Optional preprocessing step before main processing."""
|
142
|
-
pass
|
143
|
-
|
144
|
-
def add_tile_layer(self):
|
145
|
-
"""Add a layer control to the map."""
|
146
|
-
folium.LayerControl().add_to(self.osm_map)
|
147
|
-
|
148
|
-
def generate_map(self) -> folium.Map:
|
149
|
-
"""Generate and return the processed map."""
|
150
|
-
self.pre_process_map()
|
151
|
-
self.process_map()
|
152
|
-
self._post_process_map()
|
153
|
-
return self.osm_map
|
File without changes
|
sibi_dst-0.3.45.dist-info/RECORD
DELETED
@@ -1,62 +0,0 @@
|
|
1
|
-
sibi_dst/__init__.py,sha256=CLHfzrFNqklNx5uMKAPtbZfkbBbVYR5qsiMro0RTfmA,252
|
2
|
-
sibi_dst/df_helper/__init__.py,sha256=A-f5cCBy949HHxgiPt0T4MG3qdLAnDpGOpRvP-2dXWc,400
|
3
|
-
sibi_dst/df_helper/_artifact_updater_multi_wrapper.py,sha256=toH2QvNF-CQNJ4Bc8xreytuWr37G0EWz4ciWVdFMVqU,11646
|
4
|
-
sibi_dst/df_helper/_df_helper.py,sha256=IS1m9r9U-eJ7EVMBqmITmre6S0JfIl6nJtPIwNI3xKY,29771
|
5
|
-
sibi_dst/df_helper/_parquet_artifact.py,sha256=qt3WZXrE2EZs3KI0biGzm3znIZazzTh8fgiipCVr_Ic,10196
|
6
|
-
sibi_dst/df_helper/_parquet_reader.py,sha256=L6mr2FeKtTeIn37G9EGpvOx8PwMqXb6qnEECqBaiwxo,3954
|
7
|
-
sibi_dst/df_helper/backends/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
|
-
sibi_dst/df_helper/backends/django/__init__.py,sha256=uWHi-DtQX5re7b2HcqoXUH3_FZWOw1VTmDf552FAkNs,256
|
9
|
-
sibi_dst/df_helper/backends/django/_db_connection.py,sha256=AGbqCnmiX4toMaFPE5ne5h7QCkImjnBKvzGtUD6Ge8Q,3698
|
10
|
-
sibi_dst/df_helper/backends/django/_io_dask.py,sha256=NjvJg6y9qKKCRiNrJL4f_A03iKDKEcjCi7LGbr9DgtM,19555
|
11
|
-
sibi_dst/df_helper/backends/django/_load_from_db.py,sha256=htG9ec4ix371ClEHQVpx4r3mhBdQaSykeHUCCRhN7L4,10637
|
12
|
-
sibi_dst/df_helper/backends/django/_sql_model_builder.py,sha256=at9J7ecGkZbOOYba85uofe9C-ic4wwOqVgJcHpQNiYQ,21449
|
13
|
-
sibi_dst/df_helper/backends/http/__init__.py,sha256=d1pfgYxbiYg7E0Iw8RbJ7xfqIfJShqqTBQQGU_S6OOo,105
|
14
|
-
sibi_dst/df_helper/backends/http/_http_config.py,sha256=eGPFdqZ5M3Tscqx2P93B6XoBEEzlmdt7yNg7PXUQnNQ,4726
|
15
|
-
sibi_dst/df_helper/backends/parquet/__init__.py,sha256=esWJ9aSuYC26d-T01z9dPrJ1uqJzvdaPNTYRb5qXTlQ,182
|
16
|
-
sibi_dst/df_helper/backends/parquet/_filter_handler.py,sha256=TvDf0RXta7mwJv11GNQttYJsXgFf2XDj4oLIjt4xTzA,5219
|
17
|
-
sibi_dst/df_helper/backends/parquet/_parquet_options.py,sha256=TaU5_wG1Y3lQC8DVCItVvMnc6ZJmECLu3avssVEMbaM,10591
|
18
|
-
sibi_dst/df_helper/backends/sqlalchemy/__init__.py,sha256=TuVp8Ce49dCIIxtyrtFGRblarQUl8QGcS-TDZd515IE,348
|
19
|
-
sibi_dst/df_helper/backends/sqlalchemy/_db_connection.py,sha256=Kli83IEg5SFVqkhsK4w45cV6PbZnfdGanfsyiW6Xw00,2502
|
20
|
-
sibi_dst/df_helper/backends/sqlalchemy/_filter_handler.py,sha256=58RCda1Hg_nsuJw-2V36IstsT8O84IQFgsdE7FnqvMk,4655
|
21
|
-
sibi_dst/df_helper/backends/sqlalchemy/_io_dask.py,sha256=BtiRSYA4kFIM-mBCdrwE20vzByfq8_Biv_jPLUCDv58,5466
|
22
|
-
sibi_dst/df_helper/backends/sqlalchemy/_load_from_db.py,sha256=I2Us3RrxHci561yyZYBuUCrLVOhB0F3KBnae78m_ARw,6259
|
23
|
-
sibi_dst/df_helper/backends/sqlalchemy/_sql_model_builder.py,sha256=9oOOGrqAj9yL0FNWR1Fm9PdN7GoFi03ktCOyMjxAKLY,8402
|
24
|
-
sibi_dst/df_helper/core/__init__.py,sha256=o4zDwgVmaijde3oix0ezb6KLxI5QFy-SGUhFTDVFLT4,569
|
25
|
-
sibi_dst/df_helper/core/_defaults.py,sha256=eNpHD2sZxir-2xO0b3_V16ryw8YP_5FfpIKK0HNuiN4,7011
|
26
|
-
sibi_dst/df_helper/core/_filter_handler.py,sha256=Pmbzygry2mpkNPVS7DBMulHpAb1yYZNFqUU0bJTWJF0,11214
|
27
|
-
sibi_dst/df_helper/core/_params_config.py,sha256=DYx2drDz3uF-lSPzizPkchhy-kxRrQKE5FQRxcEWsac,6736
|
28
|
-
sibi_dst/df_helper/core/_query_config.py,sha256=Y8LVSyaKuVkrPluRDkQoOwuXHQxner1pFWG3HPfnDHM,441
|
29
|
-
sibi_dst/df_helper/data_cleaner.py,sha256=lkxQoXLvGzXCicFUimnA5nen5qkrO1oxgl_p2Be2o8w,5183
|
30
|
-
sibi_dst/geopy_helper/__init__.py,sha256=Q1RJiUZIOlV0QNNLjxZ_2IZS5LqIe5jRbeQkfD1Vm60,112
|
31
|
-
sibi_dst/geopy_helper/geo_location_service.py,sha256=1ArI980QF_gRw096ZsABHwJt-m55jrfOlB8tPwL1BvY,2959
|
32
|
-
sibi_dst/geopy_helper/utils.py,sha256=Sb7qfSqIyWh-AZ4GBdB9-z5FrQPWtrdtQLLcNjph0yw,3351
|
33
|
-
sibi_dst/osmnx_helper/__init__.py,sha256=8061nkUZ-9HzXuGvJvo1e_I9SJXBy1jXAo4rzk-Y-lU,159
|
34
|
-
sibi_dst/osmnx_helper/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
35
|
-
sibi_dst/osmnx_helper/v1/base_osm_map.py,sha256=L7g3VBiayHX41BcCBTOCS0iJOKzp2ZZYcrp8N-mnU90,19392
|
36
|
-
sibi_dst/osmnx_helper/v1/basemaps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
|
-
sibi_dst/osmnx_helper/v1/basemaps/calendar_html.py,sha256=UArt6FDgoCgoRte45Xo3IHqd-RNzW0YgitgZYfOFasY,4031
|
38
|
-
sibi_dst/osmnx_helper/v1/basemaps/router_plotter.py,sha256=SWdDz5XGDSHT6Iyr-EIatSNTvGPR3AVDJ5TTcWm0w4g,10947
|
39
|
-
sibi_dst/osmnx_helper/v1/utils.py,sha256=BzuY8CtYnBAAO8UAr_M7EOk6CP1zcifNLs8pkdFZEFg,20577
|
40
|
-
sibi_dst/osmnx_helper/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
41
|
-
sibi_dst/osmnx_helper/v2/base_osm_map.py,sha256=YotJR-OcsQyx2fEem6TtIyHF1FCRzoqnWBPbZpLgH1k,5797
|
42
|
-
sibi_dst/osmnx_helper/v2/basemaps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
43
|
-
sibi_dst/osmnx_helper/v2/basemaps/utils.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
44
|
-
sibi_dst/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
-
sibi_dst/tests/test_data_wrapper_class.py,sha256=Nkup5OFH5Cos2fxPaU7g9IEyINJM0uJ5-rOZ-eNtd20,3275
|
46
|
-
sibi_dst/utils/__init__.py,sha256=2uX4IQN02NeQzR1RRK3d7AV51XC54wg4ieOM7yTSfDs,875
|
47
|
-
sibi_dst/utils/airflow_manager.py,sha256=-d44EKUZNYJyp4wuNwRvilRQktunArPOB5fZuWdQv10,7526
|
48
|
-
sibi_dst/utils/clickhouse_writer.py,sha256=syXGN9NG1FS8soHuMj6QNRqTRWi-thuYUF-_BWDc_KI,9883
|
49
|
-
sibi_dst/utils/credentials.py,sha256=cHJPPsmVyijqbUQIq7WWPe-lIallA-mI5RAy3YUuRME,1724
|
50
|
-
sibi_dst/utils/data_utils.py,sha256=w07GStEBK6iz6tENTnhngiu1jpRNdo6dTgqP4iAUsTw,10304
|
51
|
-
sibi_dst/utils/data_wrapper.py,sha256=Fm-YeFj_utLxN2A91z9Y9q8YMwkAfZNTyYiTbczQ1QY,12069
|
52
|
-
sibi_dst/utils/date_utils.py,sha256=QSsL_O9ZqIdNjhppyiVOjCFLmhJEKH6F2TeiGBZe9m4,18363
|
53
|
-
sibi_dst/utils/df_utils.py,sha256=GAX0lthULTmGaDvYzuLmo0op7YKaCM5uot403QpztoM,11278
|
54
|
-
sibi_dst/utils/file_utils.py,sha256=JpsybYj3XvVJisSBeVU6YSaZnYRm4_6YWTI3TLnnY4Y,1257
|
55
|
-
sibi_dst/utils/filepath_generator.py,sha256=volVm0SSlBrtZp1RpTHxyui5rj5asNcVsWEBRY5FOUQ,6673
|
56
|
-
sibi_dst/utils/log_utils.py,sha256=eSAbi_jmMpJ8RpycakzT4S4zNkqVZDj3FY8WwnxpdXc,4623
|
57
|
-
sibi_dst/utils/parquet_saver.py,sha256=_BFeD0HDXceBaBR0Y48t9MR_fY9G1Y8HrZCkj2X1yJs,8173
|
58
|
-
sibi_dst/utils/phone_formatter.py,sha256=tsVTDamuthFYgy4-5UwmQkPQ-FGTGH7MjZyH8utAkIY,4945
|
59
|
-
sibi_dst/utils/storage_manager.py,sha256=H_itUFJv9nP0BfXYYQDsw4RzB0YWfgVOAHNWAiMpZ_w,4443
|
60
|
-
sibi_dst-0.3.45.dist-info/METADATA,sha256=rH9MmLHB02ZhPVAs7gG5iYn6KvAnZMLHiIQeYYv6Rrg,6514
|
61
|
-
sibi_dst-0.3.45.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
62
|
-
sibi_dst-0.3.45.dist-info/RECORD,,
|
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
|