/
Chaizee
/
ZenithCode_Incident-LLM-analytics
Обзор
Документация
Войти
/
Chaizee
/
ZenithCode_Incident-LLM-analytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/sla.py
30 строк
1 KB
Chaizee
fix: delete unused code
11 июн 2026, 21:09
11 июн 2026, 21:09
d952298
Код
Авторство
О чём код?
from __future__ import annotations import polars as pl from loguru import logger def _parse_datetime_col(col: str) -> pl.Expr: text = pl.col(col).cast(pl.Utf8).str.strip_chars() nonempty = pl.when(text.is_in(["", "nan", "none", "null", "—", "-"])).then(None).otherwise(text) return pl.coalesce( nonempty.str.strptime(pl.Datetime, format="%Y-%m-%d %H:%M:%S", strict=False), nonempty.str.strptime(pl.Datetime, format="%d.%m.%Y %H:%M:%S", strict=False), nonempty.str.strptime(pl.Datetime, format="%d.%m.%Y", strict=False), nonempty.str.strptime(pl.Datetime, format="%Y-%m-%d", strict=False), ) def calculate_sla_metrics(df: pl.DataFrame) -> pl.DataFrame: if "creation_date" not in df.columns or "closing_date" not in df.columns: logger.warning("Даты не найдены — SLA пропущен") return df.with_columns( pl.lit(None, dtype=pl.Float64).alias("resolution_hours"), pl.lit(None, dtype=pl.Float64).alias("resolution_days"), ) df = df.with_columns( _parse_datetime_col("creation_date").alias("creation_dt"), _parse_datetime_col("closing_date").alias("closing_dt"), ) return df.with_columns( (pl.col("closing_dt") - pl.col("creation_dt")).dt.total_hours().alias("resolution_hours"), (pl.col("closing_dt") - pl.col("creation_dt")).dt.total_days().alias("resolution_days"), )