Дерево страниц

resources/helpers.py

Функционал модуля:

Установка имени скрипта при первом запуске

Для установки имени скрипта используется функция helpers.set_script_name

Аргументы функции:

  • name (str, optional): Имя скрипта которое будет установлено при первом запуске. Если не задано, то функция парсит имя скрипта из параметров в формате {title} v{version}, например My Script v1.0


Скрипт изменяет имя только если текущее имя скрипта стандартное.

  • Yeni skript
  • Unnamed Script
  • უსახელო სკრიპტი
  • Жаңа скрипт
  • Script nou
  • Новый скрипт
  • Yeni skript dosyası
  • Новий скрипт
  • 未命名脚本

Примеры использования

Установка имени скрипта из параметров. Имя скрипта будет: My Script v1.0

# Write script description here
'''
<parameters>
    <company>My Company</company>
    <title>My Script</title>
    <version>1.0</version>
</parameters>
'''
import helpers

helpers.set_script_name()

Установка имени скрипта без привязки к параметрам.

import helpers

helpers.set_script_name(name="My Best Script")

Настройка логгера

Для работы с логгером в модуле предусмотрено две функции:

  • Инициализация логгера - helpers.init_logger
  • Получение логгера из основного скрипта - helpers.get_logger

Функция helpers.init_logger создает экземпляр логгера и настраивает необходимы хендлеры.

Аргументы функции:

  • name (str): Имя логгера. Каждому скрипту стоит присваивать уникальное имя логгера.
  • debug (bool, optional): Режим отладки. По умолчанию False
  • duplicate_filter (bool, optional): Если True - игнорирует повторяющиеся сообщения (только для MyFileHandler)

Доступные хендлеры:

  • HostLogHandler - Запись логов в основной лог Trassir.
  • PopupHandler - Выводит всплывающие сообщения в нижнем правом углу экрана.
  • MyFileHandler - Запись логов в файл '{LOGGER_NAME} ({SCRIPT_GUID}).log' в папку скриншотов. Добавляется только в режиме отладки.

Уровень логирования в зависимости от режима отладки

debugFalseTrue
HostLogHandlerINFODEBUG
PopupHandlerWARNINGINFO
MyFileHandler-DEBUG


Функция helpers.get_logger ищет объект logger в основном теле скрипта. Если не находит возвращает logging.getLogger

Почти все модули при инициализации пытаются получить объект логгера с данной функции.
Чтобы все модули смогли писать лог в один файл скрипта необходимо перед их импортированием инициализировать объект логгера в переменную logger.

Пример кода
# Standard library imports
import os
import sys

# Related third party imports
import host
import sqlalchemy

# Import helpers and init logger
import helpers

logger = helpers.init_logger("myLogger", debug=DEBUG)

# Local application/library specific imports
import shot_saver
import video_exporter