/
susub
/
report
Обзор
Документация
Войти
/
susub
/
report
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
modules/etc_loading.py
109 строк
3 KB
Александр Куклин
fixing bugs
11 мар 2026, 15:38
11 мар 2026, 15:38
051c4dc
Код
Авторство
О чём код?
import os from datetime import datetime import yaml import argparse import sys from modules.massage.massager import print_info def create_parser() -> object: """ Функция создания сборшика параметров из shell """ parser = argparse.ArgumentParser() parser.add_argument('-c', '--config', default='etc/config.yml') parser.add_argument('-t', '--titles', default='etc/title.txt') parser.add_argument('-l', '--log', default='log/log ' + f'{datetime.now().strftime("%d.%m.%Y")}.txt') parser.add_argument('-d', '--date', default='yes') return parser def load_params_cmd(parser: object) -> dict: """ Функция преобразования параметров из shell в словарь """ params = {} parser_cmd = create_parser() arguments = parser_cmd.parse_args(sys.argv[1:]) params['path_config'] = arguments.config params['path_title'] = arguments.titles params['log'] = arguments.log if (arguments.date == 'yes') or (arguments.date == 'y'): params['date'] = datetime.now().strftime("%d.%m.%Y") else: params['date'] = None return params def init_path() -> str: """ Функция инициализации пути до папки с объектами """ path = os.getcwd() path = path.split(os.sep) path.pop() path.pop() path = os.sep.join(path).strip() return path def read_title(path: str) -> list: """ Функция чтения номеров титулов из файла :param path: путь до файла :return: список с номерами титулов """ with open(path, 'r') as file: title = file.read().splitlines() return title titles = [] for line in list(open(path, 'r')): line = line.replace('\n', '') titles.append(line) return titles def read_config(path: str) -> dict: """ Функция чтения параметров из файла :param path: путь до файла :return: словарь с параметрами """ with open(path, 'r') as file: config = yaml.safe_load(file) return config def load_etc() -> dict: """ Функция загрузки параметров из shell и файлов :return: словарь с параметрами """ params = load_params_cmd(parser=create_parser()) print_info(message_code='start', logs=params['log']) params.update({'path': init_path()}) params.update({'title': read_title(path=params['path_title'])}) print_info(message_code='reading title', logs=params['log'], params_message=params) params.update({'config': read_config(path=params['path_config'])}) print_info(message_code='reading config', logs=params['log'], params_message=params) params.update({'xl': {}}) return params