From 24e1dd5c561bc3da972e41e6fd61961f12a2fc9f Mon Sep 17 00:00:00 2001 From: real-yfprojects Date: Mon, 1 May 2023 10:28:11 +0200 Subject: [PATCH] Run pre-commit (with newly added ruff) on code base. Includes all changes by `pre-commit --all-files` including the changes introduced by ruff. --- .tx/config | 1 - src/vorta/__main__.py | 3 ++ src/vorta/application.py | 2 ++ src/vorta/assets/UI/repoadd.ui | 2 +- src/vorta/autostart.py | 1 + src/vorta/borg/borg_job.py | 2 ++ src/vorta/borg/check.py | 2 ++ src/vorta/borg/compact.py | 2 ++ src/vorta/borg/create.py | 9 +++++- src/vorta/borg/delete.py | 2 ++ src/vorta/borg/diff.py | 1 + src/vorta/borg/extract.py | 3 ++ src/vorta/borg/info_archive.py | 1 + src/vorta/borg/info_repo.py | 1 + src/vorta/borg/init.py | 1 + src/vorta/borg/jobs_manager.py | 1 + src/vorta/borg/list_archive.py | 1 + src/vorta/borg/list_repo.py | 2 ++ src/vorta/borg/mount.py | 2 ++ src/vorta/borg/prune.py | 1 + src/vorta/borg/rename.py | 1 + src/vorta/borg/umount.py | 2 ++ src/vorta/borg/version.py | 1 + src/vorta/config.py | 1 + src/vorta/i18n/__init__.py | 1 + src/vorta/i18n/ts/vorta.cs.ts | 8 ++--- src/vorta/i18n/ts/vorta.de.ts | 10 +++---- src/vorta/i18n/ts/vorta.es.ts | 6 ++-- src/vorta/i18n/ts/vorta.fi.ts | 10 +++---- src/vorta/i18n/ts/vorta.nl.ts | 6 ++-- src/vorta/i18n/ts/vorta.sk.ts | 6 ++-- src/vorta/keyring/abc.py | 1 + src/vorta/keyring/db.py | 3 ++ src/vorta/keyring/kwallet.py | 2 ++ src/vorta/keyring/secretstorage.py | 2 ++ src/vorta/log.py | 1 + src/vorta/network_status/abc.py | 6 +++- src/vorta/network_status/darwin.py | 1 + src/vorta/network_status/network_manager.py | 2 ++ src/vorta/notifications.py | 2 ++ src/vorta/profile_export.py | 2 ++ src/vorta/scheduler.py | 2 ++ src/vorta/store/connection.py | 3 ++ src/vorta/store/migrations.py | 2 ++ src/vorta/store/models.py | 2 ++ src/vorta/store/settings.py | 1 + src/vorta/tray_menu.py | 2 ++ src/vorta/updater.py | 1 + src/vorta/utils.py | 2 ++ src/vorta/views/archive_tab.py | 2 ++ src/vorta/views/diff_result.py | 13 +++++++- src/vorta/views/export_window.py | 3 ++ src/vorta/views/extract_dialog.py | 30 +++++++++++++++++-- src/vorta/views/import_window.py | 1 + src/vorta/views/main_window.py | 19 ++++++++++-- src/vorta/views/misc_tab.py | 12 +++++++- src/vorta/views/partials/tooltip_button.py | 1 + src/vorta/views/partials/treemodel.py | 10 ++++++- src/vorta/views/profile_add_edit_dialog.py | 1 + src/vorta/views/repo_add_dialog.py | 10 ++++++- src/vorta/views/repo_tab.py | 3 ++ src/vorta/views/schedule_tab.py | 9 +++++- src/vorta/views/source_tab.py | 18 +++++++++-- src/vorta/views/ssh_dialog.py | 2 ++ src/vorta/views/utils.py | 1 + tests/__init__.py | 1 + tests/conftest.py | 3 +- tests/network_manager/test_network_manager.py | 1 + tests/test_archives.py | 3 +- tests/test_diff.py | 12 ++++++-- tests/test_extract.py | 2 +- tests/test_import_export.py | 1 + tests/test_lock.py | 2 +- tests/test_misc.py | 3 +- tests/test_notifications.py | 3 +- tests/test_repo.py | 3 +- tests/test_schedule.py | 3 +- tests/test_scheduler.py | 3 +- tests/test_treemodel.py | 1 + tests/test_utils.py | 1 + 80 files changed, 256 insertions(+), 50 deletions(-) diff --git a/.tx/config b/.tx/config index 761063e1..972a89e7 100644 --- a/.tx/config +++ b/.tx/config @@ -7,4 +7,3 @@ source_file = src/vorta/i18n/ts/vorta.en.ts source_lang = en type = QT minimum_perc = 80 - diff --git a/src/vorta/__main__.py b/src/vorta/__main__.py index 3cba250f..8d1e07cd 100644 --- a/src/vorta/__main__.py +++ b/src/vorta/__main__.py @@ -1,7 +1,9 @@ import os import signal import sys + from peewee import SqliteDatabase + from vorta._version import __version__ from vorta.config import SETTINGS_DIR from vorta.i18n import trans_late, translate @@ -14,6 +16,7 @@ from vorta.utils import parse_args def main(): def exception_handler(type, value, tb): from traceback import format_exception + from PyQt6.QtWidgets import QMessageBox logger.critical( diff --git a/src/vorta/application.py b/src/vorta/application.py index 3542131e..4885b304 100644 --- a/src/vorta/application.py +++ b/src/vorta/application.py @@ -3,8 +3,10 @@ import os import sys from pathlib import Path from typing import Any, Dict, List, Tuple + from PyQt6 import QtCore from PyQt6.QtWidgets import QMessageBox + from vorta.borg.break_lock import BorgBreakJob from vorta.borg.create import BorgCreateJob from vorta.borg.jobs_manager import JobsManager diff --git a/src/vorta/assets/UI/repoadd.ui b/src/vorta/assets/UI/repoadd.ui index fff7c4b4..643e2a77 100644 --- a/src/vorta/assets/UI/repoadd.ui +++ b/src/vorta/assets/UI/repoadd.ui @@ -275,4 +275,4 @@ - \ No newline at end of file + diff --git a/src/vorta/autostart.py b/src/vorta/autostart.py index 6e0f5d92..b89ecf37 100644 --- a/src/vorta/autostart.py +++ b/src/vorta/autostart.py @@ -50,6 +50,7 @@ def open_app_at_startup(enabled=True): elif sys.platform.startswith('linux'): from pathlib import Path + from platformdirs import user_config_path is_flatpak = Path('/.flatpak-info').exists() diff --git a/src/vorta/borg/borg_job.py b/src/vorta/borg/borg_job.py index d1e7f1b4..d3846897 100644 --- a/src/vorta/borg/borg_job.py +++ b/src/vorta/borg/borg_job.py @@ -11,8 +11,10 @@ from collections import namedtuple from datetime import datetime as dt from subprocess import PIPE, Popen, TimeoutExpired from threading import Lock + from PyQt6 import QtCore from PyQt6.QtWidgets import QApplication + from vorta import application from vorta.borg.jobs_manager import JobInterface from vorta.i18n import trans_late, translate diff --git a/src/vorta/borg/check.py b/src/vorta/borg/check.py index cdb15a1c..ae4d7f1f 100644 --- a/src/vorta/borg/check.py +++ b/src/vorta/borg/check.py @@ -1,7 +1,9 @@ from typing import Any, Dict + from vorta.config import LOG_DIR from vorta.i18n import translate from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/compact.py b/src/vorta/borg/compact.py index 889954d8..acf495d5 100644 --- a/src/vorta/borg/compact.py +++ b/src/vorta/borg/compact.py @@ -1,7 +1,9 @@ from typing import Any, Dict + from vorta.config import LOG_DIR from vorta.i18n import trans_late, translate from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/create.py b/src/vorta/borg/create.py index bbb5b765..167a87b1 100644 --- a/src/vorta/borg/create.py +++ b/src/vorta/borg/create.py @@ -2,10 +2,17 @@ import os import subprocess import tempfile from datetime import datetime as dt + from vorta.config import LOG_DIR from vorta.i18n import trans_late, translate -from vorta.store.models import ArchiveModel, RepoModel, SourceFileModel, WifiSettingModel +from vorta.store.models import ( + ArchiveModel, + RepoModel, + SourceFileModel, + WifiSettingModel, +) from vorta.utils import borg_compat, format_archive_name, get_network_status_monitor + from .borg_job import BorgJob diff --git a/src/vorta/borg/delete.py b/src/vorta/borg/delete.py index d05bd208..5b1fe72f 100644 --- a/src/vorta/borg/delete.py +++ b/src/vorta/borg/delete.py @@ -1,6 +1,8 @@ from typing import List + from vorta.store.models import RepoModel from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/diff.py b/src/vorta/borg/diff.py index b41c9783..cd09ff81 100644 --- a/src/vorta/borg/diff.py +++ b/src/vorta/borg/diff.py @@ -1,4 +1,5 @@ from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/extract.py b/src/vorta/borg/extract.py index a2a37725..41108721 100644 --- a/src/vorta/borg/extract.py +++ b/src/vorta/borg/extract.py @@ -1,8 +1,11 @@ import tempfile + from PyQt6.QtCore import QModelIndex, Qt + from vorta.utils import borg_compat from vorta.views.extract_dialog import ExtractTree, FileData from vorta.views.partials.treemodel import FileSystemItem, path_to_str + from .borg_job import BorgJob diff --git a/src/vorta/borg/info_archive.py b/src/vorta/borg/info_archive.py index 51289f75..72caf06c 100644 --- a/src/vorta/borg/info_archive.py +++ b/src/vorta/borg/info_archive.py @@ -1,5 +1,6 @@ from vorta.store.models import ArchiveModel, RepoModel from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/info_repo.py b/src/vorta/borg/info_repo.py index 07a2190f..4397ba16 100644 --- a/src/vorta/borg/info_repo.py +++ b/src/vorta/borg/info_repo.py @@ -1,6 +1,7 @@ from vorta.i18n import trans_late from vorta.store.models import RepoModel from vorta.utils import borg_compat + from .borg_job import BorgJob, FakeProfile, FakeRepo diff --git a/src/vorta/borg/init.py b/src/vorta/borg/init.py index b26b4b7d..7fa0300a 100644 --- a/src/vorta/borg/init.py +++ b/src/vorta/borg/init.py @@ -1,5 +1,6 @@ from vorta.store.models import RepoModel from vorta.utils import borg_compat + from .borg_job import BorgJob, FakeProfile, FakeRepo diff --git a/src/vorta/borg/jobs_manager.py b/src/vorta/borg/jobs_manager.py index 5f2d6cd6..2028535d 100644 --- a/src/vorta/borg/jobs_manager.py +++ b/src/vorta/borg/jobs_manager.py @@ -2,6 +2,7 @@ import logging import queue import threading from abc import abstractmethod + from PyQt6.QtCore import QObject logger = logging.getLogger(__name__) diff --git a/src/vorta/borg/list_archive.py b/src/vorta/borg/list_archive.py index 5c2e5fe3..ef00a013 100644 --- a/src/vorta/borg/list_archive.py +++ b/src/vorta/borg/list_archive.py @@ -1,4 +1,5 @@ from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/list_repo.py b/src/vorta/borg/list_repo.py index 64584281..664778d6 100644 --- a/src/vorta/borg/list_repo.py +++ b/src/vorta/borg/list_repo.py @@ -1,6 +1,8 @@ from datetime import datetime as dt + from vorta.store.models import ArchiveModel, RepoModel from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/mount.py b/src/vorta/borg/mount.py index d141a2a6..64e99a4a 100644 --- a/src/vorta/borg/mount.py +++ b/src/vorta/borg/mount.py @@ -1,7 +1,9 @@ import logging import os + from vorta.store.models import SettingsModel from vorta.utils import SHELL_PATTERN_ELEMENT, borg_compat + from .borg_job import BorgJob logger = logging.getLogger(__name__) diff --git a/src/vorta/borg/prune.py b/src/vorta/borg/prune.py index 8e08d796..aba888fb 100644 --- a/src/vorta/borg/prune.py +++ b/src/vorta/borg/prune.py @@ -1,5 +1,6 @@ from vorta.store.models import RepoModel from vorta.utils import borg_compat, format_archive_name + from .borg_job import BorgJob diff --git a/src/vorta/borg/rename.py b/src/vorta/borg/rename.py index 2dbb154c..c0a3f3ae 100644 --- a/src/vorta/borg/rename.py +++ b/src/vorta/borg/rename.py @@ -1,5 +1,6 @@ from vorta.store.models import ArchiveModel, RepoModel from vorta.utils import borg_compat + from .borg_job import BorgJob diff --git a/src/vorta/borg/umount.py b/src/vorta/borg/umount.py index c0ae17a7..cdec6e25 100644 --- a/src/vorta/borg/umount.py +++ b/src/vorta/borg/umount.py @@ -1,5 +1,7 @@ import os.path + import psutil + from ..i18n import trans_late from .borg_job import BorgJob diff --git a/src/vorta/borg/version.py b/src/vorta/borg/version.py index b2fbd73a..348aaa71 100644 --- a/src/vorta/borg/version.py +++ b/src/vorta/borg/version.py @@ -1,4 +1,5 @@ from vorta.i18n import trans_late + from .borg_job import BorgJob diff --git a/src/vorta/config.py b/src/vorta/config.py index 80961e1b..b496a94d 100644 --- a/src/vorta/config.py +++ b/src/vorta/config.py @@ -1,4 +1,5 @@ from pathlib import Path + import platformdirs APP_NAME = 'Vorta' diff --git a/src/vorta/i18n/__init__.py b/src/vorta/i18n/__init__.py index 54bc95d8..54f96c17 100644 --- a/src/vorta/i18n/__init__.py +++ b/src/vorta/i18n/__init__.py @@ -3,6 +3,7 @@ internationalisation (i18n) support code """ import logging import os + from PyQt6.QtCore import QLocale, QTranslator logger = logging.getLogger(__name__) diff --git a/src/vorta/i18n/ts/vorta.cs.ts b/src/vorta/i18n/ts/vorta.cs.ts index 82536b29..65bf2358 100644 --- a/src/vorta/i18n/ts/vorta.cs.ts +++ b/src/vorta/i18n/ts/vorta.cs.ts @@ -1606,11 +1606,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Aktualizace schématu se nezdařila, vyplňte hlášení chyby s odkazem v panelu Různé s následující chybou: - {0} + {0} {1} @@ -2346,4 +2346,4 @@ Ukládání hesla do nastavení Vorta. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.de.ts b/src/vorta/i18n/ts/vorta.de.ts index 3f282658..6156a5a6 100644 --- a/src/vorta/i18n/ts/vorta.de.ts +++ b/src/vorta/i18n/ts/vorta.de.ts @@ -1604,11 +1604,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} - Schema-Upgrade Fehler, erstelle einen Bugreport auf dem Link um "Misc"-Tab, mit folgendem Fehler: - {0} + Schema-Upgrade Fehler, erstelle einen Bugreport auf dem Link um "Misc"-Tab, mit folgendem Fehler: + {0} {1} @@ -2344,4 +2344,4 @@ Speichere Kennwort in der Vortakonfiguration - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.es.ts b/src/vorta/i18n/ts/vorta.es.ts index 232a7e4e..c8868d17 100644 --- a/src/vorta/i18n/ts/vorta.es.ts +++ b/src/vorta/i18n/ts/vorta.es.ts @@ -1606,8 +1606,8 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Falla al actualizar esquema, registre un reporte de error con el enlace en la pestaña Varios con el siguiente error: {0} @@ -2346,4 +2346,4 @@ - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.fi.ts b/src/vorta/i18n/ts/vorta.fi.ts index 3ff8c9e5..b52fa3c7 100644 --- a/src/vorta/i18n/ts/vorta.fi.ts +++ b/src/vorta/i18n/ts/vorta.fi.ts @@ -1606,11 +1606,11 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} - Skeeman päivitys epäonnistui, lähetä virheraportti Sekalaiset-välilehdellä olevasta linkistä. Liitä raporttiin seuraavat tiedot: - {0} + Skeeman päivitys epäonnistui, lähetä virheraportti Sekalaiset-välilehdellä olevasta linkistä. Liitä raporttiin seuraavat tiedot: + {0} {1} @@ -2346,4 +2346,4 @@ - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.nl.ts b/src/vorta/i18n/ts/vorta.nl.ts index 73caace1..556cbda2 100644 --- a/src/vorta/i18n/ts/vorta.nl.ts +++ b/src/vorta/i18n/ts/vorta.nl.ts @@ -1606,8 +1606,8 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Het schema kan niet worden bijgewerkt. Stel een bugmelding op via de link op het tabblad ‘Overig’. Stuur de volgende informatie mee: @@ -2347,4 +2347,4 @@ Het wachtwoord wordt opgeslagen in de Vorta-instellingen. - \ No newline at end of file + diff --git a/src/vorta/i18n/ts/vorta.sk.ts b/src/vorta/i18n/ts/vorta.sk.ts index d56cd88b..ebc99faa 100644 --- a/src/vorta/i18n/ts/vorta.sk.ts +++ b/src/vorta/i18n/ts/vorta.sk.ts @@ -1606,8 +1606,8 @@ - Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: - {0} + Schema upgrade failure, file a bug report with the link in the Misc tab with the following error: + {0} {1} Upgrade schémy skončil s chybou, otvorte hlásenie o chybe kliknutím na odkaz na karte Rôzne a skopírujte tento text: {0} @@ -2346,4 +2346,4 @@ - \ No newline at end of file + diff --git a/src/vorta/keyring/abc.py b/src/vorta/keyring/abc.py index fc35f9c6..ed7f7207 100644 --- a/src/vorta/keyring/abc.py +++ b/src/vorta/keyring/abc.py @@ -1,5 +1,6 @@ import importlib import logging + from vorta.i18n import trans_late logger = logging.getLogger(__name__) diff --git a/src/vorta/keyring/db.py b/src/vorta/keyring/db.py index 706c0d91..b4bcc843 100644 --- a/src/vorta/keyring/db.py +++ b/src/vorta/keyring/db.py @@ -1,6 +1,9 @@ import logging + import peewee + from vorta.store.models import SettingsModel + from .abc import VortaKeyring logger = logging.getLogger(__name__) diff --git a/src/vorta/keyring/kwallet.py b/src/vorta/keyring/kwallet.py index 08841d6d..d52f32c4 100644 --- a/src/vorta/keyring/kwallet.py +++ b/src/vorta/keyring/kwallet.py @@ -1,7 +1,9 @@ import logging import os + from PyQt6 import QtDBus from PyQt6.QtCore import QMetaType, QVariant + from vorta.keyring.abc import VortaKeyring logger = logging.getLogger(__name__) diff --git a/src/vorta/keyring/secretstorage.py b/src/vorta/keyring/secretstorage.py index 02c1c319..c8b870e0 100644 --- a/src/vorta/keyring/secretstorage.py +++ b/src/vorta/keyring/secretstorage.py @@ -1,7 +1,9 @@ import asyncio import logging import os + import secretstorage + from vorta.keyring.abc import VortaKeyring logger = logging.getLogger(__name__) diff --git a/src/vorta/log.py b/src/vorta/log.py index c4ee22df..b1034e3b 100644 --- a/src/vorta/log.py +++ b/src/vorta/log.py @@ -8,6 +8,7 @@ Set up logging to user log dir. Uses the platform's default location: import logging from logging.handlers import TimedRotatingFileHandler + from .config import LOG_DIR logger = logging.getLogger() diff --git a/src/vorta/network_status/abc.py b/src/vorta/network_status/abc.py index d5dfb299..60f9353a 100644 --- a/src/vorta/network_status/abc.py +++ b/src/vorta/network_status/abc.py @@ -11,7 +11,11 @@ class NetworkStatusMonitor: return DarwinNetworkStatus() else: - from .network_manager import DBusException, NetworkManagerMonitor, UnsupportedException + from .network_manager import ( + DBusException, + NetworkManagerMonitor, + UnsupportedException, + ) try: return NetworkManagerMonitor() diff --git a/src/vorta/network_status/darwin.py b/src/vorta/network_status/darwin.py index 44d2e304..279fc13a 100644 --- a/src/vorta/network_status/darwin.py +++ b/src/vorta/network_status/darwin.py @@ -1,6 +1,7 @@ import subprocess from datetime import datetime as dt from typing import Iterator, Optional + from vorta.log import logger from vorta.network_status.abc import NetworkStatusMonitor, SystemWifiInfo diff --git a/src/vorta/network_status/network_manager.py b/src/vorta/network_status/network_manager.py index 55b9f0ba..3d06ddb4 100644 --- a/src/vorta/network_status/network_manager.py +++ b/src/vorta/network_status/network_manager.py @@ -2,8 +2,10 @@ import logging from datetime import datetime from enum import Enum from typing import Any, List, Mapping, NamedTuple, Optional + from PyQt6 import QtDBus from PyQt6.QtCore import QObject, QVersionNumber + from vorta.network_status.abc import NetworkStatusMonitor, SystemWifiInfo logger = logging.getLogger(__name__) diff --git a/src/vorta/notifications.py b/src/vorta/notifications.py index 8141951e..ddb9d82d 100644 --- a/src/vorta/notifications.py +++ b/src/vorta/notifications.py @@ -1,6 +1,8 @@ import logging import sys + from PyQt6 import QtCore, QtDBus + from vorta.store.models import SettingsModel try: diff --git a/src/vorta/profile_export.py b/src/vorta/profile_export.py index 58bb7a5f..fa26ac5c 100644 --- a/src/vorta/profile_export.py +++ b/src/vorta/profile_export.py @@ -1,7 +1,9 @@ import datetime import json from json import JSONDecodeError + from playhouse.shortcuts import dict_to_model, model_to_dict + from vorta.keyring.abc import VortaKeyring from vorta.store.connection import DB, SCHEMA_VERSION, init_db from vorta.store.models import ( diff --git a/src/vorta/scheduler.py b/src/vorta/scheduler.py index 700294e9..222ccbc5 100644 --- a/src/vorta/scheduler.py +++ b/src/vorta/scheduler.py @@ -4,9 +4,11 @@ import threading from datetime import datetime as dt from datetime import timedelta from typing import Dict, NamedTuple, Optional, Tuple, Union + from PyQt6 import QtCore, QtDBus from PyQt6.QtCore import QTimer from PyQt6.QtWidgets import QApplication + from vorta import application from vorta.borg.check import BorgCheckJob from vorta.borg.create import BorgCreateJob diff --git a/src/vorta/store/connection.py b/src/vorta/store/connection.py index 72a3461f..21e6ec25 100644 --- a/src/vorta/store/connection.py +++ b/src/vorta/store/connection.py @@ -1,8 +1,11 @@ import os from datetime import datetime, timedelta + from peewee import Tuple, fn from playhouse import signals + from vorta.autostart import open_app_at_startup + from .migrations import run_migrations from .models import ( DB, diff --git a/src/vorta/store/migrations.py b/src/vorta/store/migrations.py index 0db00e9f..160addc8 100644 --- a/src/vorta/store/migrations.py +++ b/src/vorta/store/migrations.py @@ -1,6 +1,8 @@ from datetime import datetime + import peewee as pw from playhouse.migrate import SqliteMigrator, migrate + from .models import ( DB, ArchiveModel, diff --git a/src/vorta/store/models.py b/src/vorta/store/models.py index c893764e..f0c32938 100644 --- a/src/vorta/store/models.py +++ b/src/vorta/store/models.py @@ -6,8 +6,10 @@ At the bottom there is a simple schema migration system. import json from datetime import datetime + import peewee as pw from playhouse import signals + from vorta.utils import slugify DB = pw.Proxy() diff --git a/src/vorta/store/settings.py b/src/vorta/store/settings.py index e9761181..f0559582 100644 --- a/src/vorta/store/settings.py +++ b/src/vorta/store/settings.py @@ -1,5 +1,6 @@ import sys from typing import Dict, List + from vorta.i18n import trans_late diff --git a/src/vorta/tray_menu.py b/src/vorta/tray_menu.py index 14d80284..e5a154d6 100644 --- a/src/vorta/tray_menu.py +++ b/src/vorta/tray_menu.py @@ -1,6 +1,8 @@ import os + from PyQt6.QtGui import QIcon from PyQt6.QtWidgets import QApplication, QMenu, QSystemTrayIcon + from vorta.store.models import BackupProfileModel from vorta.utils import get_asset diff --git a/src/vorta/updater.py b/src/vorta/updater.py index 0cad8cd5..73dc40ed 100644 --- a/src/vorta/updater.py +++ b/src/vorta/updater.py @@ -1,5 +1,6 @@ import os import sys + from vorta.store.models import SettingsModel diff --git a/src/vorta/utils.py b/src/vorta/utils.py index df25d3d0..7c296073 100644 --- a/src/vorta/utils.py +++ b/src/vorta/utils.py @@ -11,10 +11,12 @@ import unicodedata from datetime import datetime as dt from functools import reduce from typing import Any, Callable, Iterable, List, Optional, Tuple, TypeVar + import psutil from PyQt6 import QtCore from PyQt6.QtCore import QFileInfo, QThread, pyqtSignal from PyQt6.QtWidgets import QApplication, QFileDialog, QSystemTrayIcon + from vorta.borg._compatibility import BorgCompatibility from vorta.i18n import trans_late from vorta.log import logger diff --git a/src/vorta/views/archive_tab.py b/src/vorta/views/archive_tab.py index 20e31035..f5b92c8e 100644 --- a/src/vorta/views/archive_tab.py +++ b/src/vorta/views/archive_tab.py @@ -2,6 +2,7 @@ import logging import sys from datetime import timedelta from typing import Dict, Optional + from PyQt6 import QtCore, uic from PyQt6.QtCore import QItemSelectionModel, QMimeData, QPoint, Qt, pyqtSlot from PyQt6.QtGui import QAction, QDesktopServices, QKeySequence, QShortcut @@ -17,6 +18,7 @@ from PyQt6.QtWidgets import ( QTableWidgetItem, QWidget, ) + from vorta.borg.check import BorgCheckJob from vorta.borg.compact import BorgCompactJob from vorta.borg.delete import BorgDeleteJob diff --git a/src/vorta/views/diff_result.py b/src/vorta/views/diff_result.py index 2fc12639..5d262efa 100644 --- a/src/vorta/views/diff_result.py +++ b/src/vorta/views/diff_result.py @@ -5,10 +5,21 @@ import re from dataclasses import dataclass from pathlib import PurePath from typing import List, Optional, Tuple + from PyQt6 import uic -from PyQt6.QtCore import QDateTime, QLocale, QMimeData, QModelIndex, QPoint, Qt, QThread, QUrl +from PyQt6.QtCore import ( + QDateTime, + QLocale, + QMimeData, + QModelIndex, + QPoint, + Qt, + QThread, + QUrl, +) from PyQt6.QtGui import QColor, QKeySequence, QShortcut from PyQt6.QtWidgets import QApplication, QHeaderView, QMenu, QTreeView + from vorta.store.models import SettingsModel from vorta.utils import get_asset, pretty_bytes, uses_dark_mode from vorta.views.partials.treemodel import ( diff --git a/src/vorta/views/export_window.py b/src/vorta/views/export_window.py index 2af17e13..3138b31b 100644 --- a/src/vorta/views/export_window.py +++ b/src/vorta/views/export_window.py @@ -1,12 +1,15 @@ import logging import os from pathlib import Path + from PyQt6 import uic from PyQt6.QtCore import Qt from PyQt6.QtWidgets import QFileDialog, QMessageBox + from vorta.keyring.abc import VortaKeyring from vorta.store.models import BackupProfileModel # noqa: F401 from vorta.utils import get_asset + from ..notifications import VortaNotifications from ..profile_export import ProfileExport diff --git a/src/vorta/views/extract_dialog.py b/src/vorta/views/extract_dialog.py index acbec219..0822d067 100644 --- a/src/vorta/views/extract_dialog.py +++ b/src/vorta/views/extract_dialog.py @@ -5,14 +5,38 @@ from dataclasses import dataclass from datetime import datetime from pathlib import PurePath from typing import Optional, Union + from PyQt6 import uic -from PyQt6.QtCore import QDateTime, QLocale, QMimeData, QModelIndex, QPoint, Qt, QThread, QUrl +from PyQt6.QtCore import ( + QDateTime, + QLocale, + QMimeData, + QModelIndex, + QPoint, + Qt, + QThread, + QUrl, +) from PyQt6.QtGui import QColor, QKeySequence, QShortcut -from PyQt6.QtWidgets import QApplication, QDialogButtonBox, QHeaderView, QMenu, QPushButton +from PyQt6.QtWidgets import ( + QApplication, + QDialogButtonBox, + QHeaderView, + QMenu, + QPushButton, +) + from vorta.store.models import SettingsModel from vorta.utils import borg_compat, get_asset, pretty_bytes, uses_dark_mode from vorta.views.utils import get_colored_icon -from .partials.treemodel import FileSystemItem, FileTreeModel, FileTreeSortProxyModel, path_to_str, relative_path + +from .partials.treemodel import ( + FileSystemItem, + FileTreeModel, + FileTreeSortProxyModel, + path_to_str, + relative_path, +) uifile = get_asset("UI/extractdialog.ui") ExtractDialogUI, ExtractDialogBase = uic.loadUiType(uifile) diff --git a/src/vorta/views/import_window.py b/src/vorta/views/import_window.py index b60a113f..b19212a7 100644 --- a/src/vorta/views/import_window.py +++ b/src/vorta/views/import_window.py @@ -1,5 +1,6 @@ from PyQt6 import QtCore from PyQt6.QtWidgets import QMessageBox + from vorta.keyring.abc import VortaKeyring from vorta.profile_export import VersionException from vorta.store.connection import SCHEMA_VERSION diff --git a/src/vorta/views/main_window.py b/src/vorta/views/main_window.py index e2f05d33..ca0c2426 100644 --- a/src/vorta/views/main_window.py +++ b/src/vorta/views/main_window.py @@ -1,14 +1,29 @@ import logging from pathlib import Path + from PyQt6 import QtCore, uic from PyQt6.QtCore import QPoint from PyQt6.QtGui import QFontMetrics, QKeySequence, QShortcut -from PyQt6.QtWidgets import QApplication, QCheckBox, QFileDialog, QMenu, QMessageBox, QToolTip +from PyQt6.QtWidgets import ( + QApplication, + QCheckBox, + QFileDialog, + QMenu, + QMessageBox, + QToolTip, +) + from vorta.profile_export import ImportFailedException, ProfileExport from vorta.store.models import BackupProfileModel, SettingsModel -from vorta.utils import borg_compat, get_asset, get_network_status_monitor, is_system_tray_available +from vorta.utils import ( + borg_compat, + get_asset, + get_network_status_monitor, + is_system_tray_available, +) from vorta.views.partials.loading_button import LoadingButton from vorta.views.utils import get_colored_icon + from .archive_tab import ArchiveTab from .export_window import ExportWindow from .import_window import ImportWindow diff --git a/src/vorta/views/misc_tab.py b/src/vorta/views/misc_tab.py index ccc0c65f..087e30ef 100644 --- a/src/vorta/views/misc_tab.py +++ b/src/vorta/views/misc_tab.py @@ -1,7 +1,17 @@ import logging + from PyQt6 import uic from PyQt6.QtCore import Qt -from PyQt6.QtWidgets import QApplication, QCheckBox, QFormLayout, QHBoxLayout, QLabel, QSizePolicy, QSpacerItem +from PyQt6.QtWidgets import ( + QApplication, + QCheckBox, + QFormLayout, + QHBoxLayout, + QLabel, + QSizePolicy, + QSpacerItem, +) + from vorta._version import __version__ from vorta.config import LOG_DIR from vorta.i18n import translate diff --git a/src/vorta/views/partials/tooltip_button.py b/src/vorta/views/partials/tooltip_button.py index 6edfb61c..3204cb15 100644 --- a/src/vorta/views/partials/tooltip_button.py +++ b/src/vorta/views/partials/tooltip_button.py @@ -1,4 +1,5 @@ from typing import Optional + from PyQt6.QtCore import QCoreApplication, QEvent, QSize, Qt from PyQt6.QtGui import QHelpEvent, QIcon, QMouseEvent, QPaintEvent from PyQt6.QtWidgets import QSizePolicy, QStyle, QStylePainter, QToolTip, QWidget diff --git a/src/vorta/views/partials/treemodel.py b/src/vorta/views/partials/treemodel.py index dfb433a2..a184a542 100644 --- a/src/vorta/views/partials/treemodel.py +++ b/src/vorta/views/partials/treemodel.py @@ -9,7 +9,15 @@ import os.path as osp from functools import reduce from pathlib import PurePath from typing import Generic, List, Optional, Sequence, Tuple, TypeVar, Union, overload -from PyQt6.QtCore import QAbstractItemModel, QModelIndex, QObject, QSortFilterProxyModel, Qt, pyqtSignal + +from PyQt6.QtCore import ( + QAbstractItemModel, + QModelIndex, + QObject, + QSortFilterProxyModel, + Qt, + pyqtSignal, +) #: A representation of a path Path = Tuple[str, ...] diff --git a/src/vorta/views/profile_add_edit_dialog.py b/src/vorta/views/profile_add_edit_dialog.py index 9ccfa46f..56d040c1 100644 --- a/src/vorta/views/profile_add_edit_dialog.py +++ b/src/vorta/views/profile_add_edit_dialog.py @@ -1,5 +1,6 @@ from PyQt6 import QtCore, uic from PyQt6.QtWidgets import QDialogButtonBox + from vorta.i18n import trans_late, translate from vorta.store.models import BackupProfileModel from vorta.utils import get_asset diff --git a/src/vorta/views/repo_add_dialog.py b/src/vorta/views/repo_add_dialog.py index 70e60a00..ddf584d3 100644 --- a/src/vorta/views/repo_add_dialog.py +++ b/src/vorta/views/repo_add_dialog.py @@ -1,13 +1,21 @@ import re + from PyQt6 import QtCore, uic from PyQt6.QtGui import QAction from PyQt6.QtWidgets import QApplication, QDialogButtonBox, QLineEdit + from vorta.borg.info_repo import BorgInfoRepoJob from vorta.borg.init import BorgInitJob from vorta.i18n import translate from vorta.keyring.abc import VortaKeyring from vorta.store.models import RepoModel -from vorta.utils import borg_compat, choose_file_dialog, get_asset, get_private_keys, validate_passwords +from vorta.utils import ( + borg_compat, + choose_file_dialog, + get_asset, + get_private_keys, + validate_passwords, +) from vorta.views.utils import get_colored_icon uifile = get_asset('UI/repoadd.ui') diff --git a/src/vorta/views/repo_tab.py b/src/vorta/views/repo_tab.py index 0b7a398b..2f6b52fb 100644 --- a/src/vorta/views/repo_tab.py +++ b/src/vorta/views/repo_tab.py @@ -1,10 +1,13 @@ import os from pathlib import PurePath + from PyQt6 import QtCore, uic from PyQt6.QtCore import QMimeData, QUrl from PyQt6.QtWidgets import QApplication, QLayout, QMenu, QMessageBox + from vorta.store.models import ArchiveModel, BackupProfileMixin, RepoModel from vorta.utils import borg_compat, get_asset, get_private_keys, pretty_bytes + from .repo_add_dialog import AddRepoWindow, ExistingRepoWindow from .ssh_dialog import SSHAddWindow from .utils import get_colored_icon diff --git a/src/vorta/views/schedule_tab.py b/src/vorta/views/schedule_tab.py index a72c782b..43de6730 100644 --- a/src/vorta/views/schedule_tab.py +++ b/src/vorta/views/schedule_tab.py @@ -1,6 +1,13 @@ from PyQt6 import QtCore, uic from PyQt6.QtCore import QDateTime, QLocale -from PyQt6.QtWidgets import QAbstractItemView, QApplication, QHeaderView, QListWidgetItem, QTableWidgetItem +from PyQt6.QtWidgets import ( + QAbstractItemView, + QApplication, + QHeaderView, + QListWidgetItem, + QTableWidgetItem, +) + from vorta import application from vorta.i18n import get_locale from vorta.scheduler import ScheduleStatusType diff --git a/src/vorta/views/source_tab.py b/src/vorta/views/source_tab.py index 5aba63a8..13a48f5e 100644 --- a/src/vorta/views/source_tab.py +++ b/src/vorta/views/source_tab.py @@ -1,12 +1,26 @@ import logging import os from pathlib import PurePath + from PyQt6 import QtCore, QtGui, uic from PyQt6.QtCore import QFileInfo, QMimeData, QPoint, Qt, QUrl, pyqtSlot from PyQt6.QtGui import QShortcut -from PyQt6.QtWidgets import QApplication, QHeaderView, QMenu, QMessageBox, QTableWidgetItem +from PyQt6.QtWidgets import ( + QApplication, + QHeaderView, + QMenu, + QMessageBox, + QTableWidgetItem, +) + from vorta.store.models import BackupProfileMixin, SettingsModel, SourceFileModel -from vorta.utils import FilePathInfoAsync, choose_file_dialog, get_asset, pretty_bytes, sort_sizes +from vorta.utils import ( + FilePathInfoAsync, + choose_file_dialog, + get_asset, + pretty_bytes, + sort_sizes, +) from vorta.views.utils import get_colored_icon uifile = get_asset('UI/sourcetab.ui') diff --git a/src/vorta/views/ssh_dialog.py b/src/vorta/views/ssh_dialog.py index 74cb6e11..ab310284 100644 --- a/src/vorta/views/ssh_dialog.py +++ b/src/vorta/views/ssh_dialog.py @@ -1,7 +1,9 @@ import os + from PyQt6 import uic from PyQt6.QtCore import QProcess, Qt from PyQt6.QtWidgets import QApplication, QDialogButtonBox + from ..utils import get_asset uifile = get_asset('UI/sshadd.ui') diff --git a/src/vorta/views/utils.py b/src/vorta/views/utils.py index 023b3384..870a8ccb 100644 --- a/src/vorta/views/utils.py +++ b/src/vorta/views/utils.py @@ -1,4 +1,5 @@ from PyQt6.QtGui import QIcon, QImage, QPixmap + from vorta.utils import get_asset, uses_dark_mode diff --git a/tests/__init__.py b/tests/__init__.py index 3744afe5..9ead5d47 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,5 +1,6 @@ import os import sys + import vorta._version resource_file = os.path.join(os.path.dirname(vorta._version.__file__), 'assets/icons') diff --git a/tests/conftest.py b/tests/conftest.py index 0e788297..03a8d22b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -2,11 +2,12 @@ import os import sys from datetime import datetime as dt from unittest.mock import MagicMock + import pytest -from peewee import SqliteDatabase import vorta import vorta.application import vorta.borg.jobs_manager +from peewee import SqliteDatabase from vorta.store.models import ( ArchiveModel, BackupProfileModel, diff --git a/tests/network_manager/test_network_manager.py b/tests/network_manager/test_network_manager.py index 2c27a0d1..9e787a86 100644 --- a/tests/network_manager/test_network_manager.py +++ b/tests/network_manager/test_network_manager.py @@ -1,5 +1,6 @@ from datetime import datetime from unittest.mock import MagicMock + import pytest from vorta.network_status.abc import SystemWifiInfo from vorta.network_status.network_manager import ( diff --git a/tests/test_archives.py b/tests/test_archives.py index 16b0e243..a7627af1 100644 --- a/tests/test_archives.py +++ b/tests/test_archives.py @@ -1,10 +1,11 @@ from collections import namedtuple + import psutil import pytest -from PyQt6 import QtCore import vorta.borg import vorta.utils import vorta.views.archive_tab +from PyQt6 import QtCore from vorta.store.models import ArchiveModel, BackupProfileModel diff --git a/tests/test_diff.py b/tests/test_diff.py index 31b28b7a..7db44b2e 100644 --- a/tests/test_diff.py +++ b/tests/test_diff.py @@ -1,10 +1,18 @@ from pathlib import PurePath + import pytest -from PyQt6.QtCore import QDateTime, QItemSelectionModel, Qt import vorta.borg import vorta.utils import vorta.views.archive_tab -from vorta.views.diff_result import ChangeType, DiffData, DiffTree, FileType, parse_diff_json, parse_diff_lines +from PyQt6.QtCore import QDateTime, QItemSelectionModel, Qt +from vorta.views.diff_result import ( + ChangeType, + DiffData, + DiffTree, + FileType, + parse_diff_json, + parse_diff_lines, +) @pytest.mark.parametrize( diff --git a/tests/test_extract.py b/tests/test_extract.py index 571fa313..f4fa2fdf 100644 --- a/tests/test_extract.py +++ b/tests/test_extract.py @@ -1,5 +1,5 @@ -from PyQt6.QtCore import QModelIndex, Qt import vorta.borg +from PyQt6.QtCore import QModelIndex, Qt from vorta.views.extract_dialog import ExtractTree, FileData, FileType, parse_json_lines from vorta.views.partials.treemodel import FileSystemItem diff --git a/tests/test_import_export.py b/tests/test_import_export.py index 81f970e6..47faef97 100644 --- a/tests/test_import_export.py +++ b/tests/test_import_export.py @@ -1,5 +1,6 @@ import os from pathlib import Path + import pytest from PyQt6 import QtCore from PyQt6.QtWidgets import QDialogButtonBox, QFileDialog, QMessageBox diff --git a/tests/test_lock.py b/tests/test_lock.py index d472ee24..44d66cdf 100644 --- a/tests/test_lock.py +++ b/tests/test_lock.py @@ -1,7 +1,7 @@ import pytest -from PyQt6 import QtCore import vorta.application import vorta.borg.borg_job +from PyQt6 import QtCore def test_create_perm_error(qapp, borg_json_output, mocker, qtbot): diff --git a/tests/test_misc.py b/tests/test_misc.py index fc0bc9c9..680ac9d8 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -2,10 +2,11 @@ import os import sys from pathlib import Path from unittest.mock import Mock + import pytest +import vorta.store.models from PyQt6 import QtCore from PyQt6.QtWidgets import QCheckBox, QFormLayout -import vorta.store.models def test_autostart(qapp, qtbot): diff --git a/tests/test_notifications.py b/tests/test_notifications.py index 3bf869af..c6ea1292 100644 --- a/tests/test_notifications.py +++ b/tests/test_notifications.py @@ -1,8 +1,9 @@ import sys + import pytest -from PyQt6 import QtDBus import vorta.borg import vorta.notifications +from PyQt6 import QtDBus @pytest.mark.skipif(sys.platform != 'linux', reason="DBus notifications only on Linux") diff --git a/tests/test_repo.py b/tests/test_repo.py index 11f96204..bfbb75c7 100644 --- a/tests/test_repo.py +++ b/tests/test_repo.py @@ -1,9 +1,10 @@ import os import uuid + import pytest +import vorta.borg.borg_job from PyQt6 import QtCore from PyQt6.QtWidgets import QMessageBox -import vorta.borg.borg_job from vorta.keyring.abc import VortaKeyring from vorta.store.models import ArchiveModel, EventLogModel, RepoModel diff --git a/tests/test_schedule.py b/tests/test_schedule.py index 06654d3e..0222a255 100644 --- a/tests/test_schedule.py +++ b/tests/test_schedule.py @@ -1,9 +1,10 @@ from datetime import datetime as dt from datetime import timedelta from unittest.mock import MagicMock + import pytest -from PyQt6 import QtCore import vorta.scheduler +from PyQt6 import QtCore from vorta.application import VortaApp from vorta.store.models import BackupProfileModel, EventLogModel diff --git a/tests/test_scheduler.py b/tests/test_scheduler.py index 12c6eea8..0adee402 100644 --- a/tests/test_scheduler.py +++ b/tests/test_scheduler.py @@ -2,10 +2,11 @@ from datetime import datetime as dt from datetime import timedelta as td from functools import wraps from unittest.mock import MagicMock + import pytest -from pytest import mark import vorta.borg import vorta.scheduler +from pytest import mark from vorta.scheduler import ScheduleStatus, ScheduleStatusType, VortaScheduler from vorta.store.models import BackupProfileModel, EventLogModel diff --git a/tests/test_treemodel.py b/tests/test_treemodel.py index d60c359b..1b76d585 100644 --- a/tests/test_treemodel.py +++ b/tests/test_treemodel.py @@ -1,4 +1,5 @@ from pathlib import PurePath + import pytest from PyQt6.QtCore import QModelIndex from vorta.views.partials.treemodel import FileSystemItem, FileTreeModel diff --git a/tests/test_utils.py b/tests/test_utils.py index 07585e3f..4d9c3d6f 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,4 +1,5 @@ import uuid + from vorta.keyring.abc import VortaKeyring from vorta.utils import find_best_unit_for_sizes, pretty_bytes