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