Commit f0e11b51 authored by Roman Alifanov's avatar Roman Alifanov

print -> logging

parent f48ecba5
import logging
class Backend:
def __init__(self, params=None):
# Параметры, передаваемые при инициализации
self.params = params or {}
self.logger = logging.getLogger(f"{self.__class__.__name__}")
def get_value(self, key, gtype):
raise NotImplementedError("Метод get_value должен быть реализован")
......
......@@ -26,11 +26,11 @@ class BinaryBackend(Backend):
return result.stdout.strip()
except subprocess.CalledProcessError as e:
print(f"[ERROR] Ошибка при выполнении команды {command}: {e}")
self.logger.error(f"Ошибка при выполнении команды {command}: {e}")
return None
def get_value(self, key, gtype):
print(f"[DEBUG] Получение значения: key={key}, gtype={gtype}")
self.logger.debug(f"Получение значения: key={key}, gtype={gtype}")
result = self._run_binary('get_value', key)
......@@ -38,28 +38,28 @@ class BinaryBackend(Backend):
try:
return ast.literal_eval(result)
except (ValueError, SyntaxError) as e:
print(f"[ERROR] Ошибка при преобразовании результата {result}: {e}")
self.logger.error(f"Ошибка при преобразовании результата {result}: {e}")
return result
return None
def get_range(self, key, gtype):
print(f"[DEBUG] Получение диапазона: key={key}, gtype={gtype}")
self.logger.debug(f"Получение диапазона: key={key}, gtype={gtype}")
result = self._run_binary('get_range', key)
if not result:
print(f"[ERROR] Пустой результат или ошибка при выполнении команды get_range для ключа {key}")
self.logger.error(f"Пустой результат или ошибка при выполнении команды get_range для ключа {key}")
return None
try:
parsed_result = ast.literal_eval(result)
return parsed_result
except (ValueError, SyntaxError) as e:
print(f"[ERROR] Ошибка при преобразовании результата {result} для ключа {key}: {e}")
self.logger.error(f"Ошибка при преобразовании результата {result} для ключа {key}: {e}")
return None
def set_value(self, key, value, gtype):
print(f"[DEBUG] Установка значения: key={key}, value={value}, gtype={gtype}")
self.logger.debug(f"Установка значения: key={key}, value={value}, gtype={gtype}")
result = self._run_binary('set_value', key, str(value))
......@@ -67,5 +67,5 @@ class BinaryBackend(Backend):
try:
return ast.literal_eval(result)
except (ValueError, SyntaxError) as e:
print(f"[ERROR] Ошибка при преобразовании результата {result}: {e}")
self.logger.error(f"Ошибка при преобразовании результата {result}: {e}")
return None
......@@ -8,7 +8,7 @@ class GSettingsBackend(Backend):
source = Gio.SettingsSchemaSource.get_default()
if source.lookup(schema_name, True) is None:
print(f"[ERROR] Scheme {schema_name} is not installed")
self.logger.error(f"Scheme {schema_name} is not installed")
return None
return Gio.Settings.new(schema_name)
......@@ -24,7 +24,7 @@ class GSettingsBackend(Backend):
value = schema.get_value(key_name)
return value.unpack()
except Exception as e:
print(f"[ERROR] Error when getting the value {key}: {e}")
self.logger.error(f"Error when getting the value {key}: {e}")
return None
def get_range(self, key, gtype):
......@@ -38,7 +38,7 @@ class GSettingsBackend(Backend):
value = schema.get_range(key_name)
return value.unpack()[1]
except Exception as e:
print(f"[ERROR] Error when getting the range {key}: {e}")
self.logger.error(f"Error when getting the range {key}: {e}")
return None
def set_value(self, schema_key, value, gtype):
......@@ -51,4 +51,4 @@ class GSettingsBackend(Backend):
try:
schema.set_value(key_name, GLib.Variant(gtype, value))
except Exception as e:
print(f"[ERROR] Error when setting the value {schema_key}: {e}")
self.logger.error(f"Error when setting the value {schema_key}: {e}")
import logging
import dbus
import ast
......@@ -11,12 +12,14 @@ class DaemonClient:
:param object_path: Путь объекта в D-Bus.
:return: Экземпляр DaemonClient или None, если сервис недоступен.
"""
logger = logging.getLogger(f"DaemonClient")
try:
bus = dbus.SystemBus()
bus.get_object(bus_name, object_path) # Проверка доступности объекта
return super(DaemonClient, cls).__new__(cls)
except dbus.DBusException:
print(f"Service '{bus_name}' is not running.")
logger.debug(f"Service '{bus_name}' is not running.")
return None
def __init__(self, bus_name="ru.ximperlinux.TuneIt.Daemon", object_path="/Daemon"):
......@@ -26,6 +29,8 @@ class DaemonClient:
:param bus_name: Имя D-Bus сервиса.
:param object_path: Путь объекта в D-Bus.
"""
self.logger = logging.getLogger(f"{self.__class__.__name__}")
self.bus_name = bus_name
self.object_path = object_path
self.bus = dbus.SystemBus()
......@@ -33,7 +38,7 @@ class DaemonClient:
self.interface = dbus.Interface(
self.proxy, dbus_interface="ru.ximperlinux.TuneIt.DaemonInterface"
)
print("dbus client connected")
self.logger.debug("dbus client connected")
self.backend_name = None
self.backend_params = None
......@@ -65,7 +70,7 @@ class DaemonClient:
try:
return ast.literal_eval(str(self.interface.GetValue(self.backend_name, str(self.backend_params), key, gtype)))
except dbus.DBusException as e:
print(f"Error in GetValue: {e}")
self.logger.error(f"Error in GetValue: {e}")
return None
def set_value(self, key, value, gtype):
......@@ -80,7 +85,7 @@ class DaemonClient:
try:
self.interface.SetValue(self.backend_name, str(self.backend_params), key, str(value), gtype)
except dbus.DBusException as e:
print(f"Error in SetValue: {e}")
self.logger.error(f"Error in SetValue: {e}")
def get_range(self, key, gtype):
"""
......@@ -93,7 +98,7 @@ class DaemonClient:
try:
return ast.literal_eval(str(self.interface.GetRange(self.backend_name, str(self.backend_params), key, gtype)))
except dbus.DBusException as e:
print(f"Error in GetRange: {e}")
self.logger.error(f"Error in GetRange: {e}")
return None
dclient = DaemonClient()
import logging
from .os import OSReleaseChecker
from .path import PathChecker
from .binary import BinaryChecker
......@@ -9,7 +10,7 @@ class DependencyCheckerFactory:
'path': PathChecker,
'binary': BinaryChecker,
}
def create_checker(self, dependency_type):
checker_class = self._checkers.get(dependency_type)
if not checker_class:
......@@ -19,7 +20,9 @@ class DependencyCheckerFactory:
class DependencyManager:
def __init__(self):
self.factory = DependencyCheckerFactory()
self.logger = logging.getLogger(f"{self.__class__.__name__}")
def _verify(self, items, check_type):
results = []
for item_type, expected_value in items.items():
......@@ -35,7 +38,7 @@ class DependencyManager:
'error': result.get('error', '')
})
except Exception as e:
print(f"Error when checking {item_type}: {str(e)}")
self.logger.error(f"Error when checking {item_type}: {str(e)}")
results.append({
'type': check_type,
'name': item_type,
......
import logging
from gi.repository import GLib
import traceback
......@@ -10,6 +11,8 @@ from .widgets.deps_alert_dialog import TuneItDepsAlertDialog
from .deps import DependencyManager
logger = logging.getLogger("init_settings_stack")
def init_settings_stack(stack, listbox, split_view):
yaml_data = load_modules()
section_factory = SectionFactory()
......@@ -19,11 +22,11 @@ def init_settings_stack(stack, listbox, split_view):
dep_manager = DependencyManager()
if stack.get_pages():
print("Clear pages...")
logger.info("Clear pages...")
listbox.remove_all()
for page in stack.get_pages(): stack.remove(page)
else:
print("First init...")
logger.info("First init...")
current_module_index = 0
modules = list(yaml_data)
......@@ -95,7 +98,7 @@ def init_settings_stack(stack, listbox, split_view):
page.create_stack_page(stack, listbox)
if not stack:
print("Ошибка: settings_pagestack не найден.")
logger.error("settings_pagestack не найден.")
def on_row_selected(listbox, row):
if row:
......
import gettext
import locale
import logging
import os
class Module:
def __init__(self, module_data):
self.name = module_data['name']
self.logger = logging.getLogger(f"{self.__class__.__name__}[{self.name}]")
self.weight = module_data.get('weight', 0)
self.path = module_data.get("module_path")
print(self.path)
self.logger.debug(self.path)
self.pages = {
page['name']: page for page in module_data.get('pages', [])
}
......
import logging
from gi.repository import GLib, Adw
from .widgets.panel_row import TuneItPanelRow
......@@ -7,6 +8,9 @@ class Page:
def __init__(self, name, icon=None):
self.name = name
self.icon = icon or "preferences-system" # Значение по умолчанию
self.logger = logging.getLogger(f"{self.__class__.__name__}[{self.name}]")
self.sections = []
def add_section(self, section):
......@@ -26,12 +30,12 @@ class Page:
pref_page.add(preferences_group)
not_empty = True
else:
print(f"Секция {section.name} не создала виджетов.")
self.logger.warn(f"Секция {section.name} не создала виджетов.")
if not_empty:
self.update_ui(stack, listbox, pref_page)
else:
print(f"the page {self.name} is empty, ignored")
self.logger.warn(f"the page {self.name} is empty, ignored")
def update_ui(self, stack, listbox, pref_page):
stack.add_titled(pref_page, self.name, self.name)
......
import logging
import os
import fnmatch
......@@ -110,6 +111,8 @@ class ValueInFileSearcher(Searcher):
file_pattern, key, exclude_neighbor_files=None):
super().__init__(search_paths, exclude_paths, exclude_names, recursive)
self.logger = logging.getLogger(f"{self.__class__.__name__}")
self.file_pattern = file_pattern
self.key = key
self.exclude_neighbor_files = exclude_neighbor_files or []
......@@ -141,7 +144,7 @@ class ValueInFileSearcher(Searcher):
result.append(FileBackend(params={'file_path': file_path}).get_value(self.key, 's'))
except Exception as e:
print(f"Error processing {file_path}: {str(e)}")
self.logger.error(f"Error processing {file_path}: {str(e)}")
continue
return result
......
import logging
from gi.repository import Adw
from ..setting.setting import Setting
......@@ -6,6 +7,7 @@ from .base import BaseSection
class ClassicSection(BaseSection):
def __init__(self, section_data, module):
super().__init__(section_data, module)
self.logger = logging.getLogger(f"{self.__class__.__name__}[{self.name}]")
self.settings = [Setting(s, module) for s in section_data.get('settings', [])]
self.module = module
......@@ -18,11 +20,11 @@ class ClassicSection(BaseSection):
for setting in self.settings:
row = setting.create_row()
if row:
print(f"Adding a row for setting: {setting.name}")
self.logger.debug(f"Adding a row for setting: {setting.name}")
group.add(row)
not_empty = True
else:
print(f"Failed to create a row for setting: {setting.name}")
self.logger.debug(f"Failed to create a row for setting: {setting.name}")
if not_empty:
return group
else:
......
......@@ -15,7 +15,7 @@ class CustomSection(BaseSection):
self.settings_dict = {s.orig_name: s for s in self.settings}
self.module = module
self.module.add_section(self)
self._callback_buffer = []
def create_preferences_group(self):
......@@ -26,14 +26,14 @@ class CustomSection(BaseSection):
try:
row = setting.create_row()
if row:
print(f"Adding a row for setting: {setting.name}")
self.logger.debug(f"Adding a row for setting: {setting.name}")
group.add(row)
not_empty = True
except Exception as e:
self.logger.error(f"Error creating row for {setting.orig_name}: {str(e)}")
self._process_buffered_callbacks()
return group if not_empty else None
def handle_callback(self, action, target, value):
......@@ -45,13 +45,13 @@ class CustomSection(BaseSection):
return
self._apply_callback(action, target, value)
except Exception as e:
self.logger.error(f"Callback handling error: {str(e)}")
def _apply_callback(self, action, target, value):
setting = self.settings_dict[target]
if action == 'set':
setting.create_row = value
setting._update_widget()
......@@ -62,7 +62,7 @@ class CustomSection(BaseSection):
elif action == 'visible':
if setting.row:
setting.row.set_visible(value.lower() == 'true')
elif action == 'enabled':
if setting.row:
setting.row.set_sensitive(value.lower() == 'true')
......
......@@ -12,7 +12,7 @@ class CustomSetting:
self._ = module.get_translation
self.module = module
self.section = section
self.logger = logging.getLogger(f"CommandSetting[{setting_data['name']}]")
self.logger = logging.getLogger(f"CustomSetting[{setting_data['name']}]")
self.name = self._(setting_data['name'])
self.orig_name = setting_data['name']
......@@ -80,7 +80,7 @@ class CustomSetting:
return {}
for var in range:
print(var)
self.logger.debug(var)
map[var[0].upper() + var[1:]] = var
return map
if self.type == 'number':
......
import logging
from gi.repository import Gtk
class BaseWidget:
def __init__(self, setting):
self.setting = setting
self.logger = logging.getLogger(f"{self.__class__.__name__}")
self.reset_button = Gtk.Button(
icon_name="edit-undo-symbolic",
......@@ -26,7 +28,7 @@ class BaseWidget:
def set_visible(self, visible: bool):
self.row.set_visible(visible)
def set_enabled(self, enabled: bool):
self.row.set_sensitive(enabled)
......
......@@ -47,7 +47,7 @@ class FileChooser(BaseWidget):
self.select_button.set_valign(Gtk.Align.CENTER)
row.set_activatable_widget(self.select_button)
self.select_button.connect("clicked", self._on_button_clicked)
control_box.append(self.select_button)
......@@ -131,7 +131,7 @@ class FileChooser(BaseWidget):
parent = current_file.get_parent() if not self.folder_mode else current_file
dialog.set_initial_folder(parent)
except Exception as e:
print(f"Error setting initial folder: {e}")
self.logger.error(f"Error setting initial folder: {e}")
# Выбор метода открытия
try:
......@@ -151,7 +151,7 @@ class FileChooser(BaseWidget):
callback=self._on_file_selected
)
except Exception as e:
print(f"File dialog error: {e}")
self.logger.error(f"File dialog error: {e}")
def _create_file_filters(self):
filters = Gio.ListStore.new(Gtk.FileFilter)
......@@ -177,7 +177,7 @@ class FileChooser(BaseWidget):
self.update_display()
except Exception as e:
print(f"File selection error: {e}")
self.logger.error(f"File selection error: {e}")
def _on_files_selected(self, dialog, result):
try:
......@@ -187,7 +187,7 @@ class FileChooser(BaseWidget):
self.setting._set_backend_value(paths)
self.update_display()
except Exception as e:
print(f"Multiple files selection error: {e}")
self.logger.error(f"Multiple files selection error: {e}")
def _on_folder_selected(self, dialog, result):
try:
......@@ -196,7 +196,7 @@ class FileChooser(BaseWidget):
self.setting._set_backend_value(folder.get_path())
self.update_display()
except Exception as e:
print(f"Folder selection error: {e}")
self.logger.error(f"Folder selection error: {e}")
def _update_folder_display(self, current):
if current:
......
......@@ -21,7 +21,6 @@ class InfoLabelWidget(BaseWidget):
def _update_initial_state(self):
current_value = self.setting._get_backend_value()
print(current_value)
self.label.set_label(current_value)
def update_display(self):
......
......@@ -8,6 +8,9 @@ from .ButtonWidget import ButtonWidget
from .InfoLabelWidget import InfoLabelWidget
from .InfoDictWidget import InfoDictWidget
import logging
logger = logging.getLogger(f"{__name__}")
class WidgetFactory:
widget_map = {
'file': FileChooser,
......@@ -27,5 +30,5 @@ class WidgetFactory:
if widget_class:
return widget_class(setting)
else:
print(f"Неизвестный тип виджета: {setting.type}")
logger.error(f"Неизвестный тип виджета: {setting.type}")
return None
import logging
logger = logging.getLogger(f"{__name__}")
def convert_by_gvariant(value, gtype):
"""
Приводит значение к нужному типу в зависимости от GVariant gtype.
......@@ -30,5 +35,5 @@ def convert_by_gvariant(value, gtype):
else:
raise ValueError(f"Неизвестный GVariant тип: {gtype}")
except (ValueError, TypeError) as e:
print(f"Ошибка приведения типа: {e}")
logger.error(f"Ошибка приведения типа: {e}")
return None
......@@ -2,6 +2,10 @@ import os
import yaml
import logging
logger = logging.getLogger(f"{__name__}")
def get_local_module_directory():
home_directory = os.path.expanduser("~")
return os.path.join(home_directory, ".local", "share", "tuneit", "modules")
......@@ -44,7 +48,7 @@ def load_yaml_files_from_directory(directory):
item['module_path'] = directory
yaml_data.extend(data)
except yaml.YAMLError as e:
print(f"Ошибка при чтении файла {file_path}: {e}")
logger.error(f"Ошибка при чтении файла {file_path}: {e}")
sections_data = []
sections_directory = os.path.join(directory, 'sections')
......@@ -58,7 +62,7 @@ def load_yaml_files_from_directory(directory):
if data:
sections_data.extend(data)
except yaml.YAMLError as e:
print(f"Ошибка при чтении файла {file_path}: {e}")
logger.error(f"Ошибка при чтении файла {file_path}: {e}")
for module in yaml_data:
if 'sections' in module:
......
......@@ -5,6 +5,9 @@ from time import sleep
from gi.repository import GLib, Adw
import logging
logger = logging.getLogger(f"{__name__}")
class ServiceNotStartedDialog(Adw.AlertDialog):
response = ""
......@@ -42,7 +45,7 @@ class ServiceNotStartedDialog(Adw.AlertDialog):
else:
return False
except Exception as e:
print(f"An error occurred: {e}")
logger.error(f"An error occurred: {e}")
return False
def service_enable(self):
......@@ -52,7 +55,7 @@ class ServiceNotStartedDialog(Adw.AlertDialog):
stdout=subprocess.PIPE, stderr=subprocess.PIPE
)
except Exception as e:
print(f"An error occurred: {e}")
logger.error(f"An error occurred: {e}")
def service_enable_with_restart(self):
self.service_enable()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment