digitalization

This commit is contained in:
2026-01-21 19:39:37 +03:00
parent cd5fcd3452
commit 5041e6bd51
8 changed files with 122 additions and 11 deletions

View File

@@ -0,0 +1,32 @@
from pydantic import ValidationError
from server.backend.schemas.pydantic import ExcelDigitalization,settings,Translit
from server.backend.api.excel_prices import processing
import re
import pandas as pd
def process_sheet(df,real_arti: int):
# выбираем нужные колонки по индексам
df = df.iloc[:, [real_arti]].copy()
df.dropna(inplace=True)
# складываем суммы
df = df.iloc[:, [0]]
df.columns = ['arti']
# нормализация
df['arti'] = df['arti'].replace(Translit.TRANSLIT, regex=True)
df['arti'] = df['arti'].astype(str).str.upper().str.extract(f'({settings.PATTERN})')
# группировка
print(df)
df = processing(df)
validated_rows, errors = [], []
for i, row in df.iterrows():
try:
validated_rows.append(ExcelDigitalization(**row.to_dict()))
except ValidationError as e:
errors.append((i, e.errors()))
if errors:
raise Exception("There are some errors with validation in digitalization", errors)
df_validated = pd.DataFrame([r.model_dump() for r in validated_rows])
return df_validated
def evaluating(df, real_arti:int, types:str):
validated_rows_1 = process_sheet(df, real_arti=real_arti) # номера столбцов от озона
validated_rows_1.to_excel(f"./excel_files/{types}.xlsx")
return validated_rows_1