digitalization
This commit is contained in:
32
server/backend/handlers/digitalization.py
Normal file
32
server/backend/handlers/digitalization.py
Normal 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
|
||||
Reference in New Issue
Block a user