generated from dopt-python/py311
improve export of test results to MS-Excel
This commit is contained in:
parent
c244285c4d
commit
4ca29ad049
@ -14,6 +14,7 @@ from pprint import pprint
|
|||||||
|
|
||||||
import dopt_basics.datetime as dt
|
import dopt_basics.datetime as dt
|
||||||
import oracledb
|
import oracledb
|
||||||
|
import pandas as pd
|
||||||
import polars as pl
|
import polars as pl
|
||||||
import polars.selectors as cs
|
import polars.selectors as cs
|
||||||
import sqlalchemy as sql
|
import sqlalchemy as sql
|
||||||
@ -1289,6 +1290,9 @@ def generate_test_result_data(
|
|||||||
|
|
||||||
test_results = test_results.sort(by=["WF_ID", "BEDP_MAN"], descending=False)
|
test_results = test_results.sort(by=["WF_ID", "BEDP_MAN"], descending=False)
|
||||||
test_results = test_results.select(pl.int_range(1, pl.len() + 1).alias("Index"), pl.all())
|
test_results = test_results.select(pl.int_range(1, pl.len() + 1).alias("Index"), pl.all())
|
||||||
|
test_results = test_results.with_columns(
|
||||||
|
pl.lit(None, dtype=pl.String).alias("Anmerkungen/Feedback")
|
||||||
|
)
|
||||||
|
|
||||||
return test_results
|
return test_results
|
||||||
|
|
||||||
@ -1296,25 +1300,61 @@ def generate_test_result_data(
|
|||||||
# %%
|
# %%
|
||||||
test_results = generate_test_result_data(raw_data, pipe_res)
|
test_results = generate_test_result_data(raw_data, pipe_res)
|
||||||
test_results.head()
|
test_results.head()
|
||||||
|
|
||||||
|
|
||||||
# %%
|
# %%
|
||||||
date_str = datetime.datetime.now().strftime("%Y-%m-%d")
|
def write_test_results_excel(
|
||||||
p_save = Path.cwd() / f"Testdatensatz_WF-100-200_{date_str}.xlsx"
|
data: pl.DataFrame,
|
||||||
test_results.to_pandas().set_index("Index").to_excel(
|
base_filename: str,
|
||||||
p_save,
|
) -> None:
|
||||||
|
date_str = datetime.datetime.now().strftime("%Y-%m-%d")
|
||||||
|
p_save = Path.cwd() / f"{base_filename}_{date_str}.xlsx"
|
||||||
|
pd_df = data.to_pandas().set_index("Index")
|
||||||
|
|
||||||
|
with pd.ExcelWriter(p_save, engine="xlsxwriter") as writer:
|
||||||
|
sheet_name = f"Ergebnisse_Testphase_{date_str}"
|
||||||
|
pd_df.to_excel(
|
||||||
|
writer,
|
||||||
freeze_panes=(1, 1),
|
freeze_panes=(1, 1),
|
||||||
sheet_name=f"Ergebnisse_Testphase_{date_str}",
|
sheet_name=sheet_name,
|
||||||
)
|
)
|
||||||
|
worksheet = writer.sheets[sheet_name]
|
||||||
|
|
||||||
|
rows, cols = pd_df.shape
|
||||||
|
columns = ["Index"] + pd_df.columns.to_list()
|
||||||
|
worksheet.add_table(
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
rows,
|
||||||
|
cols,
|
||||||
|
{"columns": [{"header": c} for c in columns], "style": "Table Style Light 9"},
|
||||||
|
)
|
||||||
|
for i, col in enumerate(columns):
|
||||||
|
if i == 0:
|
||||||
|
worksheet.set_column(
|
||||||
|
i, i, max(pd_df.index.astype(str).map(len).max(), len(col)) + 2
|
||||||
|
)
|
||||||
|
continue
|
||||||
|
worksheet.set_column(
|
||||||
|
i, i, max(pd_df[col].astype(str).map(len).max(), len(col)) + 2
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
# %%
|
||||||
|
write_test_results_excel(test_results, "Testdatensatz_WF-100-200")
|
||||||
|
|
||||||
#####################################################################
|
#####################################################################
|
||||||
# %%
|
# %%
|
||||||
# ** deviating titles where BEDP_MENGE_BEDARF_VM > MENGE_VORMERKER
|
# ** deviating titles where BEDP_MENGE_BEDARF_VM > MENGE_VORMERKER
|
||||||
deviation_vm = test_results.with_columns(pl.col.MENGE_VORMERKER.fill_null(0)).filter(
|
deviation_vm = test_results.with_columns(pl.col.MENGE_VORMERKER.fill_null(0)).filter(
|
||||||
pl.col.BEDP_MENGE_BEDARF_VM > pl.col.MENGE_VORMERKER
|
pl.col.BEDP_MENGE_BEDARF_VM > pl.col.MENGE_VORMERKER
|
||||||
)
|
)
|
||||||
deviation_vm = test_results.filter(pl.col.BEDP_TITELNR.is_in(dev["BEDP_TITELNR"].implode()))
|
deviation_vm = test_results.filter(
|
||||||
|
pl.col.BEDP_TITELNR.is_in(deviation_vm["BEDP_TITELNR"].implode())
|
||||||
date_str = datetime.datetime.now().strftime("%Y-%m-%d")
|
)
|
||||||
p_save = Path.cwd() / f"Abweichungen-VM_{date_str}.xlsx"
|
deviation_vm
|
||||||
deviation_vm.to_pandas().set_index("Index").to_excel(p_save, freeze_panes=(1, 1))
|
# %%
|
||||||
|
write_test_results_excel(deviation_vm, "Abweichungen-VM")
|
||||||
# ** WF-200 potentially triggered
|
# ** WF-200 potentially triggered
|
||||||
raw_data.filter(pl.col.MELDENUMMER.is_in((17, 18))).filter(
|
raw_data.filter(pl.col.MELDENUMMER.is_in((17, 18))).filter(
|
||||||
pl.col.BEDP_TITELNR.is_duplicated()
|
pl.col.BEDP_TITELNR.is_duplicated()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user