Files

34 lines
1.4 KiB
Python

import os
import time
from datetime import datetime
from config import SCUD_FILE_TODAY, STAFF_FILE_1C, ABSENT_FILE_1C
def check_file_freshness(max_age_hours=24):
"""
Проверяет существование и свежесть входных файлов.
"""
warnings = []
errors = []
now = time.time()
max_age_sec = max_age_hours * 3600
# 1. Проверка файлов 1С в data/1c
for file_path, label in [(STAFF_FILE_1C, "Штатное расписание 1С"), (ABSENT_FILE_1C, "Отсутствия 1С")]:
if not os.path.exists(file_path):
errors.append(f"Файл '{label}' не найден по пути: {file_path}")
else:
mtime = os.path.getmtime(file_path)
age_hours = (now - mtime) / 3600
if age_hours > max_age_hours:
warnings.append(
f"Файл '{label}' обновлялся давно ({age_hours:.1f} ч. назад). "
f"Дата изменения: {datetime.fromtimestamp(mtime).strftime('%d.%m.%Y %H:%M')}"
)
# 2. Проверка файла СКУД в data/scud
if not os.path.exists(SCUD_FILE_TODAY):
warnings.append(f"Сегодняшний файл СКУД еще не сформирован: {SCUD_FILE_TODAY}")
is_valid = len(errors) == 0
return is_valid, warnings, errors