Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
tuneit
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ximper Linux
tuneit
Commits
f0e11b51
Commit
f0e11b51
authored
Apr 15, 2025
by
Roman Alifanov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
print -> logging
parent
f48ecba5
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
97 additions
and
52 deletions
+97
-52
base.py
src/settings/backends/base.py
+4
-0
binary.py
src/settings/backends/binary.py
+8
-8
gsettings.py
src/settings/backends/gsettings.py
+4
-4
daemon_client.py
src/settings/daemon_client.py
+10
-5
__init__.py
src/settings/deps/__init__.py
+6
-3
main.py
src/settings/main.py
+6
-3
module.py
src/settings/module.py
+6
-1
page.py
src/settings/page.py
+6
-2
searcher.py
src/settings/searcher.py
+4
-1
classic.py
src/settings/sections/classic.py
+4
-2
custom.py
src/settings/sections/custom.py
+7
-7
custom_setting.py
src/settings/setting/custom_setting.py
+2
-2
BaseWidget.py
src/settings/setting/widgets/BaseWidget.py
+3
-1
FileChooser.py
src/settings/setting/widgets/FileChooser.py
+6
-6
InfoLabelWidget.py
src/settings/setting/widgets/InfoLabelWidget.py
+0
-1
__init__.py
src/settings/setting/widgets/__init__.py
+4
-1
gvariant.py
src/settings/tools/gvariant.py
+6
-1
yml_tools.py
src/settings/tools/yml_tools.py
+6
-2
service_dialog.py
src/settings/widgets/service_dialog.py
+5
-2
No files found.
src/settings/backends/base.py
View file @
f0e11b51
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 должен быть реализован"
)
...
...
src/settings/backends/binary.py
View file @
f0e11b51
...
...
@@ -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
src/settings/backends/gsettings.py
View file @
f0e11b51
...
...
@@ -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}"
)
src/settings/daemon_client.py
View file @
f0e11b51
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
()
src/settings/deps/__init__.py
View file @
f0e11b51
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
,
...
...
src/settings/main.py
View file @
f0e11b51
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
:
...
...
src/settings/module.py
View file @
f0e11b51
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'
,
[])
}
...
...
src/settings/page.py
View file @
f0e11b51
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
)
...
...
src/settings/searcher.py
View file @
f0e11b51
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
...
...
src/settings/sections/classic.py
View file @
f0e11b51
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
:
...
...
src/settings/sections/custom.py
View file @
f0e11b51
...
...
@@ -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'
)
...
...
src/settings/setting/custom_setting.py
View file @
f0e11b51
...
...
@@ -12,7 +12,7 @@ class CustomSetting:
self
.
_
=
module
.
get_translation
self
.
module
=
module
self
.
section
=
section
self
.
logger
=
logging
.
getLogger
(
f
"C
ommand
Setting[{setting_data['name']}]"
)
self
.
logger
=
logging
.
getLogger
(
f
"C
ustom
Setting[{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'
:
...
...
src/settings/setting/widgets/BaseWidget.py
View file @
f0e11b51
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
)
...
...
src/settings/setting/widgets/FileChooser.py
View file @
f0e11b51
...
...
@@ -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
:
...
...
src/settings/setting/widgets/InfoLabelWidget.py
View file @
f0e11b51
...
...
@@ -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
):
...
...
src/settings/setting/widgets/__init__.py
View file @
f0e11b51
...
...
@@ -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
src/settings/tools/gvariant.py
View file @
f0e11b51
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
src/settings/tools/yml_tools.py
View file @
f0e11b51
...
...
@@ -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
:
...
...
src/settings/widgets/service_dialog.py
View file @
f0e11b51
...
...
@@ -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
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment