parse_saby/app/main.py

46 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import working_database
import parse_saby
from validation import DataValid
import scheduler
print("Зпуск main.py")
def parse_data_in_list(dict_data: dict) -> list:
"""
argument:
[{128513: ('fns', 'Уведомление о налогах для ЕНП', '01.07.22', None, '5.03')},
{...}]
return:
[[128513, 'fns', 'Уведомление о налогах для ЕНП', '01.07.22', None, '5.03'],
[...]]
"""
result = []
for key_id, value_data in dict_data.items():
if len(value_data) != 5: continue
result.append([key_id, *value_data])
return result
def validate_data(list_data: list[list]) -> list:
"""
Функция принимает список списков, выполняет парсинг и валидацию
с пмошью класса DataValid из файла validation.py.
Возвращает распршеный валидный список словарей для БД.
"""
result = []
for intem_list in list_data:
try:
validated_data = DataValid.from_list(intem_list) # Передаем один лист
result.append(validated_data.model_dump()) # Добаляем валидный и распаршеный словарь
except: continue
return result
print("1/5. Запуск парсинга сайта")
result_dict_data = parse_saby.process_reports_parse()
print('2/5. Предварительный парсинг')
list_data = parse_data_in_list(result_dict_data)
print("3/5. Запуск валидации")
list_data_validated = validate_data(list_data)
print("4/5 Отправка данных в БД")
working_database.SimpleDB().data_transfer_in_database(list_data_validated)
print("5/5. Запуск планировщика")
scheduler.launch_the_scheduler()