generated from dopt-python/py311
prepare database interaction
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
# %%
|
||||
import datetime
|
||||
import enum
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
import polars as pl
|
||||
import sqlalchemy as sql
|
||||
|
||||
from wattanalyse import db
|
||||
|
||||
# %%
|
||||
PROJECT_BASE = Path(__file__).parents[1]
|
||||
@@ -408,6 +413,36 @@ tmp = tmp.with_columns(
|
||||
.alias("Durchlaufzeit_Anzahl_Tage"),
|
||||
)
|
||||
tmp
|
||||
|
||||
|
||||
# %%
|
||||
# // dump to database
|
||||
|
||||
|
||||
def _parse_to_json(value: Any) -> str:
|
||||
if isinstance(value, (datetime.date, datetime.datetime)):
|
||||
return value.isoformat()
|
||||
else:
|
||||
raise TypeError
|
||||
|
||||
|
||||
parsed_lists = tmp.with_columns(
|
||||
pl.col(pl.List)
|
||||
.map_elements(
|
||||
lambda x: json.dumps(x.to_list(), default=_parse_to_json) if x is not None else None,
|
||||
return_dtype=pl.String,
|
||||
)
|
||||
.name.keep()
|
||||
)
|
||||
parsed_lists
|
||||
|
||||
|
||||
# %%
|
||||
parsed_lists["Import-Ist_Historie"].item(0)
|
||||
|
||||
# TODO make UPSERT with staging
|
||||
|
||||
########################################################
|
||||
# %%
|
||||
tmp_1 = tmp.select("Meldezeitpunkt_Historie")
|
||||
tmp_1 = tmp_1.with_columns(
|
||||
|
||||
27
prototypes/02_save_to_db.py
Normal file
27
prototypes/02_save_to_db.py
Normal file
@@ -0,0 +1,27 @@
|
||||
# %%
|
||||
import datetime
|
||||
import json
|
||||
from typing import Any
|
||||
|
||||
# %%
|
||||
dt = datetime.datetime.now()
|
||||
date = dt.date()
|
||||
|
||||
# %%
|
||||
val = [dt, date]
|
||||
json.dumps(val)
|
||||
|
||||
|
||||
# %%
|
||||
def _parse_to_json(value: Any) -> str:
|
||||
if isinstance(value, datetime.date):
|
||||
return value.isoformat()
|
||||
elif isinstance(value, datetime.datetime):
|
||||
return value.isoformat()
|
||||
else:
|
||||
raise TypeError
|
||||
|
||||
|
||||
# %%
|
||||
json.dumps(val, default=_parse_to_json)
|
||||
# %%
|
||||
Reference in New Issue
Block a user