пасрсинг без изменение логики

main
Лев 2025-08-29 13:24:15 +05:00
parent 0cf7b9f6d2
commit ffd2f13643
3 changed files with 12 additions and 26 deletions

View File

@ -4,8 +4,8 @@ from dateutil import parser
def parse_data_for_bd(dict_data: dict) -> list[list]: def parse_data_for_bd(dict_data: dict) -> list[list]:
""" """
Фуннкция приминмает словарь и парсит его в лист листов Фуннкция приминмает словарь и парсит его в лист листов.
для передачи в БД. Каждый лист должен состоять из 6 элементов Каждый лист должен состоять из 6 элементов
""" """
result_list = [] result_list = []
for key_id, value_data in dict_data.items(): for key_id, value_data in dict_data.items():
@ -15,13 +15,11 @@ def parse_data_for_bd(dict_data: dict) -> list[list]:
# Парсим даты # Парсим даты
if date_from_str: if date_from_str:
date_from = parser.parse(date_from_str).date() date_from = parser.parse(date_from_str).date()
#date_from = str(date_from.strftime('%d.%m.%Y'))
else: else:
print(f"Отсутсвует дата: {key_id}: {organ} {names}") print(f"Отсутсвует дата: {key_id}: {organ} {names}")
continue continue
if date_to_str: if date_to_str:
date_to = parser.parse(date_to_str).date() date_to = parser.parse(date_to_str).date()
#date_to = str(date_to.strftime('%d.%m.%Y'))
else: date_to = None else: date_to = None
parametrs_list = [int(key_id), organ, names, date_to, date_from, ver] parametrs_list = [int(key_id), organ, names, date_to, date_from, ver]
result_list.append(parametrs_list) result_list.append(parametrs_list)

View File

@ -31,10 +31,9 @@ class SimpleDB:
else: else:
raise Exception (f'Unexpected error reading from Vault: {e}') raise Exception (f'Unexpected error reading from Vault: {e}')
#TODO: rename +
def _create_db_pool_from_vault(self): def _create_db_pool_from_vault(self):
""" """
Подключение к Vault и получение параметров для подключеник к БД Подключение к Vault и создание пула соеденения.
""" """
try: try:
# Подключение к Vault # Подключение к Vault
@ -80,28 +79,26 @@ class SimpleDB:
DATE_TO in date, DATE_TO in date,
VERS IN VARCHAR2) VERS IN VARCHAR2)
""" """
if not self.pool: # Данные для БД не могут быть пустыми
raise ValueError(self.pool, "Database pool not initialized")
if not list_data: if not list_data:
raise ValueError(list_data, "No data to process") raise ValueError(list_data, "No data to process")
try: try:
with self.pool.acquire() as connection: with self.pool.acquire() as connection:
with connection.cursor() as cursor: with connection.cursor() as cursor:
for list_argument_bd in list_data: for list_argument_bd in list_data:
id, organ, names, date_from, date_to, ver = list_argument_bd id, organ, names, date_from, date_to, ver = list_argument_bd
parametrs_list = [id, organ, names, date_to, date_from, ver] parametrs_list = [id, organ, names, date_to, date_from, ver]
print("Отправляемых аргрументов: ", *parametrs_list) print("Отправляемые аргрументы: ", *parametrs_list)
print("Типов данных: ", list(map(type, parametrs_list))) print("Типы данных: ", list(map(type, parametrs_list)))
cursor.callproc('P_RK_GOVERNMENT_REPORTS_INSERS', [ cursor.callproc('P_RK_GOVERNMENT_REPORTS_INSERS', [
id, id,
organ, organ,
names, names,
date_from, date_from,
date_to, date_to, # Может быть None
ver, ver,
]) ])
except Error as e: except Error as e:
raise Error(f'Ошибка при отправке данных в БД: {e}') raise Error(f'Ошибка при отправке данных в БД: {e}')
except Exception as e: except Exception as e:

View File

@ -1,25 +1,16 @@
annotated-types==0.7.0
anyio==4.10.0
beautifulsoup4==4.13.5 beautifulsoup4==4.13.5
bs4==0.0.2 bs4==0.0.2
certifi==2025.8.3 certifi==2025.8.3
cffi==1.17.1 cffi==1.17.1
charset-normalizer==3.4.3 charset-normalizer==3.4.3
cryptography==45.0.6 cryptography==45.0.6
fastapi==0.116.1
hvac==2.3.0 hvac==2.3.0
idna==3.10 idna==3.10
oracledb==3.3.0 oracledb==3.3.0
pycparser==2.22 pycparser==2.22
pydantic==2.11.7
pydantic_core==2.33.2
python-dateutil==2.9.0.post0 python-dateutil==2.9.0.post0
requests==2.32.5 requests==2.32.5
six==1.17.0 six==1.17.0
sniffio==1.3.1 soupsieve==2.8
soupsieve==2.7
starlette==0.47.3
typing-inspection==0.4.1
typing_extensions==4.15.0 typing_extensions==4.15.0
urllib3==2.5.0 urllib3==2.5.0
datetime