Upgraded desktop/{onionshare,tests} to PySide6

This commit is contained in:
NoisyCoil 2022-10-23 14:09:56 +02:00
parent e129f73934
commit fadba5506a
36 changed files with 139 additions and 89 deletions

1
.gitignore vendored
View File

@ -58,5 +58,6 @@ venv
# other # other
.vscode .vscode
.python-version
onionshare.dist-info onionshare.dist-info
desktop/onionshare/resources/tor desktop/onionshare/resources/tor

View File

@ -151,7 +151,7 @@ class TestGetPlatform:
class TestGetTorPaths: class TestGetTorPaths:
@pytest.mark.skipif(sys.platform != "Darwin", reason="requires MacOS") @pytest.mark.skipif(sys.platform != "darwin", reason="requires MacOS")
def test_get_tor_paths_darwin( def test_get_tor_paths_darwin(
self, platform_darwin, common_obj, sys_frozen, sys_meipass self, platform_darwin, common_obj, sys_frozen, sys_meipass
): ):

View File

@ -120,7 +120,7 @@ class TestSettings:
settings_obj.set("socks_port", "NON_INTEGER") settings_obj.set("socks_port", "NON_INTEGER")
assert settings_obj._settings["socks_port"] == 9050 assert settings_obj._settings["socks_port"] == 9050
@pytest.mark.skipif(sys.platform != "Darwin", reason="requires Darwin") @pytest.mark.skipif(sys.platform != "darwin", reason="requires Darwin")
def test_filename_darwin(self, monkeypatch, platform_darwin): def test_filename_darwin(self, monkeypatch, platform_darwin):
obj = settings.Settings(common.Common()) obj = settings.Settings(common.Common())
assert obj.filename == os.path.expanduser( assert obj.filename == os.path.expanduser(

View File

@ -26,10 +26,10 @@ import signal
import json import json
import psutil import psutil
import getpass import getpass
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from PySide2.QtCore import Slot, Qt from PySide6.QtCore import Slot, Qt
from PySide2.QtGui import QPalette, QColor from PySide6.QtGui import QPalette, QColor
from onionshare_cli.common import Common from onionshare_cli.common import Common
from onionshare_cli.settings import Settings from onionshare_cli.settings import Settings
@ -267,4 +267,4 @@ def main():
qtapp.aboutToQuit.connect(shutdown) qtapp.aboutToQuit.connect(shutdown)
# All done # All done
sys.exit(qtapp.exec_()) sys.exit(qtapp.exec())

View File

@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import json import json
import os import os
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.censorship import ( from onionshare_cli.censorship import (
CensorshipCircumvention, CensorshipCircumvention,

View File

@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import os import os
import shutil import shutil
from pkg_resources import resource_filename from pkg_resources import resource_filename
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from . import strings from . import strings
from onionshare_cli.onion import ( from onionshare_cli.onion import (
@ -602,7 +602,6 @@ class ToggleCheckbox(QtWidgets.QCheckBox):
painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setRenderHint(QtGui.QPainter.Antialiasing)
painter.setPen(QtCore.Qt.NoPen) painter.setPen(QtCore.Qt.NoPen)
opt = QtWidgets.QStyleOptionButton() opt = QtWidgets.QStyleOptionButton()
opt.init(self)
self.initStyleOption(opt) self.initStyleOption(opt)
s = self.style() s = self.style()
s.drawControl(QtWidgets.QStyle.CE_CheckBox, opt, painter, self) s.drawControl(QtWidgets.QStyle.CE_CheckBox, opt, painter, self)

View File

@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import os import os
import time import time
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from . import strings from . import strings
from .widgets import Alert from .widgets import Alert
@ -119,7 +119,7 @@ class MainWindow(QtWidgets.QMainWindow):
) )
) )
) )
sequence = QtGui.QKeySequence(QtCore.Qt.CTRL + QtCore.Qt.Key_H) sequence = QtGui.QKeySequence(QtCore.Qt.CTRL | QtCore.Qt.Key_H)
self.settings_button.setShortcut(sequence) self.settings_button.setShortcut(sequence)
self.settings_button.setAccessibleName(strings._("gui_settings_window_title")) self.settings_button.setAccessibleName(strings._("gui_settings_window_title"))
self.settings_button.clicked.connect(self.open_settings) self.settings_button.clicked.connect(self.open_settings)
@ -191,7 +191,7 @@ class MainWindow(QtWidgets.QMainWindow):
a.addButton(settings_button, QtWidgets.QMessageBox.AcceptRole) a.addButton(settings_button, QtWidgets.QMessageBox.AcceptRole)
a.addButton(quit_button, QtWidgets.QMessageBox.RejectRole) a.addButton(quit_button, QtWidgets.QMessageBox.RejectRole)
a.setDefaultButton(settings_button) a.setDefaultButton(settings_button)
a.exec_() a.exec()
if a.clickedButton() == settings_button: if a.clickedButton() == settings_button:
# Open settings # Open settings
@ -266,7 +266,7 @@ class MainWindow(QtWidgets.QMainWindow):
if self.tabs.are_tabs_active(): if self.tabs.are_tabs_active():
# Open the warning dialog # Open the warning dialog
self.common.log("MainWindow", "closeEvent, opening warning dialog") self.common.log("MainWindow", "closeEvent, opening warning dialog")
self.close_dialog.exec_() self.close_dialog.exec()
# Close # Close
if self.close_dialog.clickedButton() == self.close_dialog.accept_button: if self.close_dialog.clickedButton() == self.close_dialog.accept_button:
@ -314,7 +314,7 @@ class MainWindow(QtWidgets.QMainWindow):
self.onion_cleanup_thread.finished.connect(alert.accept) self.onion_cleanup_thread.finished.connect(alert.accept)
self.onion_cleanup_thread.start() self.onion_cleanup_thread.start()
alert.exec_() alert.exec()
if alert.clickedButton() == quit_early_button: if alert.clickedButton() == quit_early_button:
self.common.log("MainWindow", "cleanup", "quitting early") self.common.log("MainWindow", "cleanup", "quitting early")
if self.onion_cleanup_thread.isRunning(): if self.onion_cleanup_thread.isRunning():

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
import requests import requests
import os import os
import base64 import base64

View File

@ -1,4 +1,4 @@
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.mode_settings import ModeSettings from onionshare_cli.mode_settings import ModeSettings

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
import platform import platform
import datetime import datetime
from onionshare_cli.settings import Settings from onionshare_cli.settings import Settings

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets from PySide6 import QtCore, QtWidgets
from onionshare_cli.common import AutoStopTimer from onionshare_cli.common import AutoStopTimer

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.web import Web from onionshare_cli.web import Web

View File

@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import os import os
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from ... import strings from ... import strings
from ...widgets import Alert, AddFileDialog from ...widgets import Alert, AddFileDialog
@ -434,7 +434,7 @@ class FileSelection(QtWidgets.QVBoxLayout):
Add button clicked. Add button clicked.
""" """
file_dialog = AddFileDialog(self.common, caption=strings._("gui_choose_items")) file_dialog = AddFileDialog(self.common, caption=strings._("gui_choose_items"))
if file_dialog.exec_() == QtWidgets.QDialog.Accepted: if file_dialog.exec() == QtWidgets.QDialog.Accepted:
self.common.log("FileSelection", "add", file_dialog.selectedFiles()) self.common.log("FileSelection", "add", file_dialog.selectedFiles())
for filename in file_dialog.selectedFiles(): for filename in file_dialog.selectedFiles():
self.file_list.add_file(filename) self.file_list.add_file(filename)

View File

@ -22,7 +22,7 @@ import time
import subprocess import subprocess
import os import os
from datetime import datetime from datetime import datetime
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from ... import strings from ... import strings
from ...widgets import Alert from ...widgets import Alert

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets from PySide6 import QtCore, QtWidgets
from ... import strings from ... import strings

View File

@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import os import os
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.web import Web from onionshare_cli.web import Web

View File

@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import os import os
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.common import Common from onionshare_cli.common import Common
from onionshare_cli.web import Web from onionshare_cli.web import Web

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore from PySide6 import QtCore
class CompressThread(QtCore.QThread): class CompressThread(QtCore.QThread):

View File

@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import os import os
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.common import Common from onionshare_cli.common import Common
from onionshare_cli.web import Web from onionshare_cli.web import Web

View File

@ -18,8 +18,8 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import textwrap import textwrap
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from PySide2.QtCore import Qt from PySide6.QtCore import Qt
from .. import strings from .. import strings
from ..widgets import Alert from ..widgets import Alert

View File

@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import queue import queue
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.onionshare import OnionShare from onionshare_cli.onionshare import OnionShare
from onionshare_cli.web import Web from onionshare_cli.web import Web
@ -45,7 +45,7 @@ class NewTabButton(QtWidgets.QPushButton):
self.setFixedSize(280, 280) self.setFixedSize(280, 280)
# Keyboard shortcut, using the first letter of the mode # Keyboard shortcut, using the first letter of the mode
sequence = QtGui.QKeySequence(QtCore.Qt.CTRL + shortcut) sequence = QtGui.QKeySequence(QtCore.Qt.CTRL | shortcut)
self.setShortcut(sequence) self.setShortcut(sequence)
self.setAccessibleName(title) self.setAccessibleName(title)
@ -666,7 +666,7 @@ class Tab(QtWidgets.QWidget):
# Open the warning dialog # Open the warning dialog
self.common.log("Tab", "close_tab, opening warning dialog") self.common.log("Tab", "close_tab, opening warning dialog")
self.close_dialog.setText(dialog_text) self.close_dialog.setText(dialog_text)
self.close_dialog.exec_() self.close_dialog.exec()
# Close # Close
if self.close_dialog.clickedButton() == self.close_dialog.accept_button: if self.close_dialog.clickedButton() == self.close_dialog.accept_button:

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
from onionshare_cli.mode_settings import ModeSettings from onionshare_cli.mode_settings import ModeSettings
@ -55,7 +55,7 @@ class TabWidget(QtWidgets.QTabWidget):
# Define the new tab button # Define the new tab button
self.new_tab_button = QtWidgets.QPushButton("+", parent=self) self.new_tab_button = QtWidgets.QPushButton("+", parent=self)
self.new_tab_button.setShortcut(QtCore.Qt.CTRL + QtCore.Qt.Key_T) self.new_tab_button.setShortcut(QtCore.Qt.CTRL | QtCore.Qt.Key_T)
self.new_tab_button.setFlat(True) self.new_tab_button.setFlat(True)
self.new_tab_button.setFixedSize(40, 30) self.new_tab_button.setFixedSize(40, 30)
self.new_tab_button.clicked.connect(self.new_tab_clicked) self.new_tab_button.clicked.connect(self.new_tab_clicked)
@ -196,8 +196,8 @@ class TabWidget(QtWidgets.QTabWidget):
index = self.addTab(tab, strings._("gui_new_tab")) index = self.addTab(tab, strings._("gui_new_tab"))
self.setCurrentIndex(index) self.setCurrentIndex(index)
sequence = QtGui.QKeySequence(QtCore.Qt.CTRL + QtCore.Qt.Key_X) sequence = QtGui.QKeySequence(QtCore.Qt.CTRL | QtCore.Qt.Key_X)
close_shortcut = QtWidgets.QShortcut(sequence, tab) close_shortcut = QtGui.QShortcut(sequence, tab)
close_shortcut.activated.connect(lambda: self.close_tab(index)) close_shortcut.activated.connect(lambda: self.close_tab(index))
tab.init(mode_settings) tab.init(mode_settings)
@ -249,8 +249,8 @@ class TabWidget(QtWidgets.QTabWidget):
from_autoconnect=from_autoconnect, from_autoconnect=from_autoconnect,
) )
settings_tab.close_this_tab.connect(self.close_settings_tab) settings_tab.close_this_tab.connect(self.close_settings_tab)
sequence = QtGui.QKeySequence(QtCore.Qt.CTRL + QtCore.Qt.Key_X) sequence = QtGui.QKeySequence(QtCore.Qt.CTRL | QtCore.Qt.Key_X)
close_shortcut = QtWidgets.QShortcut(sequence, settings_tab) close_shortcut = QtGui.QShortcut(sequence, settings_tab)
close_shortcut.activated.connect(self.close_settings_tab) close_shortcut.activated.connect(self.close_settings_tab)
self.tor_settings_tab = settings_tab.tor_settings_tab self.tor_settings_tab = settings_tab.tor_settings_tab
self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected) self.tor_settings_tab.tor_is_connected.connect(self.tor_is_connected)

View File

@ -21,7 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
import time import time
import json import json
import os import os
from PySide2 import QtCore from PySide6 import QtCore
from onionshare_cli.onion import ( from onionshare_cli.onion import (
TorErrorInvalidSetting, TorErrorInvalidSetting,

View File

@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
import time import time
from PySide2 import QtCore, QtWidgets from PySide6 import QtCore, QtWidgets
from onionshare_cli.onion import ( from onionshare_cli.onion import (
BundledTorCanceled, BundledTorCanceled,

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
import sys import sys
import platform import platform
import os import os
@ -579,7 +579,7 @@ class TorSettingsTab(QtWidgets.QWidget):
moat_dialog = MoatDialog(self.common, self.meek) moat_dialog = MoatDialog(self.common, self.meek)
moat_dialog.got_bridges.connect(self.bridge_moat_got_bridges) moat_dialog.got_bridges.connect(self.bridge_moat_got_bridges)
moat_dialog.exec_() moat_dialog.exec()
def bridge_moat_got_bridges(self, bridges): def bridge_moat_got_bridges(self, bridges):
""" """

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore from PySide6 import QtCore
import datetime import datetime
import re import re
import socks import socks

View File

@ -18,7 +18,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. along with this program. If not, see <http://www.gnu.org/licenses/>.
""" """
from PySide2 import QtCore, QtWidgets, QtGui from PySide6 import QtCore, QtWidgets, QtGui
import qrcode import qrcode
from . import strings from . import strings
@ -52,7 +52,7 @@ class Alert(QtWidgets.QMessageBox):
self.setStandardButtons(buttons) self.setStandardButtons(buttons)
if autostart: if autostart:
self.exec_() self.exec()
class AddFileDialog(QtWidgets.QFileDialog): class AddFileDialog(QtWidgets.QFileDialog):
@ -153,4 +153,4 @@ class QRCodeDialog(QtWidgets.QDialog):
layout.addWidget(self.qr_label_title) layout.addWidget(self.qr_label_title)
layout.addWidget(self.qr_label) layout.addWidget(self.qr_label)
self.exec_() self.exec()

116
desktop/poetry.lock generated
View File

@ -10,7 +10,7 @@ python-versions = ">=3.5"
dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"] dev = ["cloudpickle", "coverage[toml] (>=5.0.2)", "furo", "hypothesis", "mypy (>=0.900,!=0.940)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "sphinx", "sphinx-notfound-page", "zope.interface"]
docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"] docs = ["furo", "sphinx", "sphinx-notfound-page", "zope.interface"]
tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"] tests = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "zope.interface"]
tests_no_zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"] tests-no-zope = ["cloudpickle", "coverage[toml] (>=5.0.2)", "hypothesis", "mypy (>=0.900,!=0.940)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins"]
[[package]] [[package]]
name = "bidict" name = "bidict"
@ -71,7 +71,7 @@ optional = false
python-versions = ">=3.6.0" python-versions = ">=3.6.0"
[package.extras] [package.extras]
unicode_backport = ["unicodedata2"] unicode-backport = ["unicodedata2"]
[[package]] [[package]]
name = "click" name = "click"
@ -97,7 +97,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
name = "cx-Freeze" name = "cx-Freeze"
version = "6.11.1" version = "6.11.1"
description = "Create standalone executables from Python scripts" description = "Create standalone executables from Python scripts"
category = "main" category = "dev"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
@ -118,7 +118,7 @@ test = ["nose (==1.3.7)", "pygments (>=2.11.2)", "pytest (>=7.0.1)", "pytest-cov
name = "cx-Logging" name = "cx-Logging"
version = "3.0" version = "3.0"
description = "Python and C interfaces for logging" description = "Python and C interfaces for logging"
category = "main" category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
@ -284,7 +284,7 @@ i18n = ["Babel (>=2.7)"]
name = "lief" name = "lief"
version = "0.12.2" version = "0.12.2"
description = "Library to instrument executable formats" description = "Library to instrument executable formats"
category = "main" category = "dev"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
@ -338,7 +338,7 @@ url = "../cli"
name = "packaging" name = "packaging"
version = "21.3" version = "21.3"
description = "Core utilities for Python packages" description = "Core utilities for Python packages"
category = "main" category = "dev"
optional = false optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
@ -349,7 +349,7 @@ pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
name = "patchelf" name = "patchelf"
version = "0.15.0.0" version = "0.15.0.0"
description = "A small utility to modify the dynamic linker and RPATH of ELF executables." description = "A small utility to modify the dynamic linker and RPATH of ELF executables."
category = "main" category = "dev"
optional = false optional = false
python-versions = "*" python-versions = "*"
@ -437,7 +437,7 @@ tests = ["hypothesis (>=3.27.0)", "pytest (>=3.2.1,!=3.3.0)"]
name = "pyparsing" name = "pyparsing"
version = "3.0.9" version = "3.0.9"
description = "pyparsing module - Classes and methods to define and execute parsing grammars" description = "pyparsing module - Classes and methods to define and execute parsing grammars"
category = "main" category = "dev"
optional = false optional = false
python-versions = ">=3.6.8" python-versions = ">=3.6.8"
@ -445,15 +445,40 @@ python-versions = ">=3.6.8"
diagrams = ["jinja2", "railroad-diagrams"] diagrams = ["jinja2", "railroad-diagrams"]
[[package]] [[package]]
name = "PySide2" name = "pyside6"
version = "5.15.2.1" version = "6.4.0"
description = "Python bindings for the Qt cross-platform application and UI framework" description = "Python bindings for the Qt cross-platform application and UI framework"
category = "main" category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.11" python-versions = "<3.11,>=3.6"
[package.dependencies] [package.dependencies]
shiboken2 = "5.15.2.1" PySide6-Addons = "6.4.0"
PySide6-Essentials = "6.4.0"
shiboken6 = "6.4.0"
[[package]]
name = "pyside6-addons"
version = "6.4.0"
description = "Python bindings for the Qt cross-platform application and UI framework (Addons)"
category = "main"
optional = false
python-versions = "<3.11,>=3.6"
[package.dependencies]
PySide6-Essentials = "6.4.0"
shiboken6 = "6.4.0"
[[package]]
name = "pyside6-essentials"
version = "6.4.0"
description = "Python bindings for the Qt cross-platform application and UI framework (Essentials)"
category = "main"
optional = false
python-versions = "<3.11,>=3.6"
[package.dependencies]
shiboken6 = "6.4.0"
[[package]] [[package]]
name = "PySocks" name = "PySocks"
@ -519,7 +544,7 @@ optional = false
python-versions = ">=3.6" python-versions = ">=3.6"
[package.extras] [package.extras]
asyncio_client = ["aiohttp (>=3.4)"] asyncio-client = ["aiohttp (>=3.4)"]
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]] [[package]]
@ -535,7 +560,7 @@ bidict = ">=0.21.0"
python-engineio = ">=4.3.0" python-engineio = ">=4.3.0"
[package.extras] [package.extras]
asyncio_client = ["aiohttp (>=3.4)"] asyncio-client = ["aiohttp (>=3.4)"]
client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"] client = ["requests (>=2.21.0)", "websocket-client (>=0.54.0)"]
[[package]] [[package]]
@ -573,7 +598,7 @@ urllib3 = ">=1.21.1,<1.27"
[package.extras] [package.extras]
socks = ["PySocks (>=1.5.6,!=1.5.7)"] socks = ["PySocks (>=1.5.6,!=1.5.7)"]
use_chardet_on_py3 = ["chardet (>=3.0.2,<6)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
[[package]] [[package]]
name = "setuptools" name = "setuptools"
@ -589,12 +614,12 @@ testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "jaraco.env
testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"]
[[package]] [[package]]
name = "shiboken2" name = "shiboken6"
version = "5.15.2.1" version = "6.4.0"
description = "Python/C++ bindings helper module" description = "Python/C++ bindings helper module"
category = "main" category = "main"
optional = false optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <3.11" python-versions = "<3.11,>=3.6"
[[package]] [[package]]
name = "six" name = "six"
@ -714,7 +739,7 @@ testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"]
[metadata] [metadata]
lock-version = "1.1" lock-version = "1.1"
python-versions = ">=3.7,<3.11" python-versions = ">=3.7,<3.11"
content-hash = "d286430543c9781f7f12dbcc71dc52f7737c06b32be277436de7d79d35b77626" content-hash = "7a9668ef487d9cdc4760a9b6cd28cd99dc76b06069186db4f14f9b6f1c4f57d6"
[metadata.files] [metadata.files]
attrs = [ attrs = [
@ -726,14 +751,23 @@ bidict = [
{file = "bidict-0.22.0.tar.gz", hash = "sha256:5c826b3e15e97cc6e615de295756847c282a79b79c5430d3bfc909b1ac9f5bd8"}, {file = "bidict-0.22.0.tar.gz", hash = "sha256:5c826b3e15e97cc6e615de295756847c282a79b79c5430d3bfc909b1ac9f5bd8"},
] ]
black = [ black = [
{file = "black-22.10.0-1fixedarch-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:5cc42ca67989e9c3cf859e84c2bf014f6633db63d1cbdf8fdb666dcd9e77e3fa"},
{file = "black-22.10.0-1fixedarch-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:5d8f74030e67087b219b032aa33a919fae8806d49c867846bfacde57f43972ef"},
{file = "black-22.10.0-1fixedarch-cp37-cp37m-macosx_10_16_x86_64.whl", hash = "sha256:197df8509263b0b8614e1df1756b1dd41be6738eed2ba9e9769f3880c2b9d7b6"},
{file = "black-22.10.0-1fixedarch-cp38-cp38-macosx_10_16_x86_64.whl", hash = "sha256:2644b5d63633702bc2c5f3754b1b475378fbbfb481f62319388235d0cd104c2d"},
{file = "black-22.10.0-1fixedarch-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:e41a86c6c650bcecc6633ee3180d80a025db041a8e2398dcc059b3afa8382cd4"},
{file = "black-22.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2039230db3c6c639bd84efe3292ec7b06e9214a2992cd9beb293d639c6402edb"},
{file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"}, {file = "black-22.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ff67aec0a47c424bc99b71005202045dc09270da44a27848d534600ac64fc7"},
{file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"}, {file = "black-22.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:819dc789f4498ecc91438a7de64427c73b45035e2e3680c92e18795a839ebb66"},
{file = "black-22.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5b9b29da4f564ba8787c119f37d174f2b69cdfdf9015b7d8c5c16121ddc054ae"},
{file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"}, {file = "black-22.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8b49776299fece66bffaafe357d929ca9451450f5466e997a7285ab0fe28e3b"},
{file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"}, {file = "black-22.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:21199526696b8f09c3997e2b4db8d0b108d801a348414264d2eb8eb2532e540d"},
{file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"}, {file = "black-22.10.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e464456d24e23d11fced2bc8c47ef66d471f845c7b7a42f3bd77bf3d1789650"},
{file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"}, {file = "black-22.10.0-cp37-cp37m-win_amd64.whl", hash = "sha256:9311e99228ae10023300ecac05be5a296f60d2fd10fff31cf5c1fa4ca4b1988d"},
{file = "black-22.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fba8a281e570adafb79f7755ac8721b6cf1bbf691186a287e990c7929c7692ff"},
{file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"}, {file = "black-22.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:915ace4ff03fdfff953962fa672d44be269deb2eaf88499a0f8805221bc68c87"},
{file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"}, {file = "black-22.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:444ebfb4e441254e87bad00c661fe32df9969b2bf224373a448d8aca2132b395"},
{file = "black-22.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:974308c58d057a651d182208a484ce80a26dac0caef2895836a92dd6ebd725e0"},
{file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"}, {file = "black-22.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72ef3925f30e12a184889aac03d77d031056860ccae8a1e519f6cbb742736383"},
{file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"}, {file = "black-22.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:432247333090c8c5366e69627ccb363bc58514ae3e63f7fc75c54b1ea80fa7de"},
{file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"}, {file = "black-22.10.0-py3-none-any.whl", hash = "sha256:c957b2b4ea88587b46cf49d1dc17681c1e672864fd7af32fc1e9664d572b3458"},
@ -1149,13 +1183,29 @@ pyparsing = [
{file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"}, {file = "pyparsing-3.0.9-py3-none-any.whl", hash = "sha256:5026bae9a10eeaefb61dab2f09052b9f4307d44aee4eda64b309723d8d206bbc"},
{file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"}, {file = "pyparsing-3.0.9.tar.gz", hash = "sha256:2b020ecf7d21b687f219b71ecad3631f644a47f01403fa1d1036b0c6416d70fb"},
] ]
PySide2 = [ pyside6 = [
{file = "PySide2-5.15.2.1-5.15.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:b5e1d92f26b0bbaefff67727ccbb2e1b577f2c0164b349b3d6e80febb4c5bde2"}, {file = "PySide6-6.4.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:eeed99066628c44113c21ba5eccd6c229d8f7ee65834a7fc45c64b0e636c606d"},
{file = "PySide2-5.15.2.1-5.15.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:235240b6ec8206d9fdf0232472c6ef3241783d480425e5b54796f06e39ed23da"}, {file = "PySide6-6.4.0-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:d7824b1f0c346e8db03870fa8dc5e13b18bc746a9dfabbc69c85529e85903408"},
{file = "PySide2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-abi3-macosx_10_13_intel.whl", hash = "sha256:a9e2e6bbcb5d2ebb421e46e72244a0f4fe0943b2288115f80a863aacc1de1f06"}, {file = "PySide6-6.4.0-cp36-abi3-win_amd64.whl", hash = "sha256:5df15003f0b12ed5c4c4f321ffa381784a2425441b2bd6c671d824bb03efdf2a"},
{file = "PySide2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-abi3-manylinux1_x86_64.whl", hash = "sha256:23886c6391ebd916e835fa1b5ae66938048504fd3a2934ae3189a96cd5ac0b46"}, {file = "PySide6-6.4.0-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:e8702ff398b7fe395a3b9f0020b8d2910ab4fcea50f259f93e936409fd367c4b"},
{file = "PySide2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-none-win32.whl", hash = "sha256:439509e53cfe05abbf9a99422a2cbad086408b0f9bf5e6f642ff1b13b1f8b055"}, {file = "PySide6-6.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1b388e3fc87ebcad7ecaad751c5560625425efea4e56d553a4caa07032865c86"},
{file = "PySide2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-none-win_amd64.whl", hash = "sha256:af6b263fe63ba6dea7eaebae80aa7b291491fe66f4f0057c0aafe780cc83da9d"}, {file = "PySide6-6.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f5220d57db6890546adf81669129da6bb46546a01bf618ec58fa1e7a69d0b52c"},
]
pyside6-addons = [
{file = "PySide6_Addons-6.4.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:aceb568a684b88114c8928247019a9ffc3e133c4fe7722c7ce62224db338b335"},
{file = "PySide6_Addons-6.4.0-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:236b0dbaefc03114fc1deeee0041808d64a76650b643cf9ee9d8587e3ba9059a"},
{file = "PySide6_Addons-6.4.0-cp36-abi3-win_amd64.whl", hash = "sha256:f060df71d64bc6d88651fc51b081de26de6a1c9308f14b021943056d70e20552"},
{file = "PySide6_Addons-6.4.0-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:804f2a73560dffb390f91a1fbd6f33440b1f96ce8d74e19cc893952e2e8c8966"},
{file = "PySide6_Addons-6.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:59b3507db48b67707971b163aa8832beab902688288c64ffbfb2be6c487f5ec4"},
{file = "PySide6_Addons-6.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c108184094c54f1c7cd456ed5294a9da696d036b7079c07b2ee4a52aa0980c"},
]
pyside6-essentials = [
{file = "PySide6_Essentials-6.4.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:6e11d3a7fe013bb5b259066755983378d4ae2f582e5935fd5950c3dcfa0c3ec6"},
{file = "PySide6_Essentials-6.4.0-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:526434fb2ca94e54d07a7605716e4fb2e1b642440bce32c80a39e847e1710e65"},
{file = "PySide6_Essentials-6.4.0-cp36-abi3-win_amd64.whl", hash = "sha256:576704ff198a4aa4748bc99ac1e3fcd2425d7651f44214e93cd99be37cf4d305"},
{file = "PySide6_Essentials-6.4.0-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:ff744c614e5fb8e536c632ab51811a5e27641ef546364b7bdd2d0320b4115d83"},
{file = "PySide6_Essentials-6.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f7aa59dbf3aa1349f7559f5aa99f2e6e4845a3fc5af0ee602b4e5f1f666cf47f"},
{file = "PySide6_Essentials-6.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b82f238c015f13840eb0e61167a3f776ce62fa4704ba2f329658a35c46daacb"},
] ]
PySocks = [ PySocks = [
{file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"}, {file = "PySocks-1.7.1-py27-none-any.whl", hash = "sha256:08e69f092cc6dbe92a0fdd16eeb9b9ffbc13cadfe5ca4c7bd92ffb078b293299"},
@ -1193,13 +1243,13 @@ setuptools = [
{file = "setuptools-60.10.0-py3-none-any.whl", hash = "sha256:782ef48d58982ddb49920c11a0c5c9c0b02e7d7d1c2ad0aa44e1a1e133051c96"}, {file = "setuptools-60.10.0-py3-none-any.whl", hash = "sha256:782ef48d58982ddb49920c11a0c5c9c0b02e7d7d1c2ad0aa44e1a1e133051c96"},
{file = "setuptools-60.10.0.tar.gz", hash = "sha256:6599055eeb23bfef457d5605d33a4d68804266e6cb430b0fb12417c5efeae36c"}, {file = "setuptools-60.10.0.tar.gz", hash = "sha256:6599055eeb23bfef457d5605d33a4d68804266e6cb430b0fb12417c5efeae36c"},
] ]
shiboken2 = [ shiboken6 = [
{file = "shiboken2-5.15.2.1-5.15.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:f890f5611ab8f48b88cfecb716da2ac55aef99e2923198cefcf781842888ea65"}, {file = "shiboken6-6.4.0-cp36-abi3-macosx_10_9_universal2.whl", hash = "sha256:76ba24af98eb15cbdfb483142696c5ae22537d2df84c06b44eb1ab66280b29b4"},
{file = "shiboken2-5.15.2.1-5.15.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:87079c07587859a525b9800d60b1be971338ce9b371d6ead81f15ee5a46d448b"}, {file = "shiboken6-6.4.0-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:67b4731c55f5d74a72bede9a84691d64664cf7e1e76b606f58b39c8a61ea563d"},
{file = "shiboken2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-abi3-macosx_10_13_intel.whl", hash = "sha256:ffd3d0ec3d508e592d7ee3885d27fee1f279a49989f734eb130f46d9501273a9"}, {file = "shiboken6-6.4.0-cp36-abi3-win_amd64.whl", hash = "sha256:a572a5782c65c1f77ba1da92955e25f0af56c27832cf405eae246aee0e4c1575"},
{file = "shiboken2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-abi3-manylinux1_x86_64.whl", hash = "sha256:63debfcc531b6a2b4985aa9b71433d2ad3bac542acffc729cc0ecaa3854390c0"}, {file = "shiboken6-6.4.0-pp39-pypy39_pp73-macosx_10_9_universal2.whl", hash = "sha256:cfd5f6c64793ecae2617f9bdbe726376583f56db1ab62ebaef43442e5695425a"},
{file = "shiboken2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-none-win32.whl", hash = "sha256:eb0da44b6fa60c6bd317b8f219e500595e94e0322b33ec5b4e9f406bedaee555"}, {file = "shiboken6-6.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:679870d97665b21fca018b05023c7b90b895e886adba754d8cc5d06d571a2139"},
{file = "shiboken2-5.15.2.1-5.15.2-cp35.cp36.cp37.cp38.cp39.cp310-none-win_amd64.whl", hash = "sha256:a0d0fdeb12b72c8af349b9642ccc67afd783dca449309f45e78cda50272fd6b7"}, {file = "shiboken6-6.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:30bbd06fc6564a57552792e3fc9e7c85c0881d0036c5f0f0daee3054e3d727b9"},
] ]
six = [ six = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},

View File

@ -8,9 +8,9 @@ license = "GPLv3+"
[tool.poetry.dependencies] [tool.poetry.dependencies]
python = ">=3.7,<3.11" python = ">=3.7,<3.11"
onionshare_cli = {path = "../cli", develop = true} onionshare_cli = {path = "../cli", develop = true}
PySide2 = "5.15.2.1"
qrcode = "*" qrcode = "*"
werkzeug = "~2.0.3" werkzeug = "~2.0.3"
pyside6 = "^6.4.0"
[tool.poetry.dev-dependencies] [tool.poetry.dev-dependencies]
click = "*" click = "*"

View File

@ -2,7 +2,7 @@ import sys
import os import os
from datetime import datetime, timedelta from datetime import datetime, timedelta
from PySide2 import QtTest from PySide6 import QtTest
# Force tests to look for resources in the source code tree # Force tests to look for resources in the source code tree
@ -19,7 +19,7 @@ def qWait(t, qtapp):
qtapp.processEvents() qtapp.processEvents()
# Monkeypatch qWait, because PySide2 doesn't have it # Monkeypatch qWait, although PySide6 has it
# https://stackoverflow.com/questions/17960159/qwait-analogue-in-pyside # https://stackoverflow.com/questions/17960159/qwait-analogue-in-pyside
QtTest.QTest.qWait = qWait QtTest.QTest.qWait = qWait

View File

@ -7,7 +7,7 @@ import secrets
import platform import platform
import sys import sys
from PySide2 import QtCore, QtTest, QtWidgets from PySide6 import QtCore, QtTest, QtWidgets
from onionshare_cli.common import Common from onionshare_cli.common import Common

View File

@ -1,6 +1,6 @@
import requests import requests
from PySide2 import QtTest from PySide6 import QtTest
from .gui_base_test import GuiBaseTest from .gui_base_test import GuiBaseTest

View File

@ -6,7 +6,7 @@ import shutil
import sys import sys
from datetime import datetime, timedelta from datetime import datetime, timedelta
from PySide2 import QtCore, QtTest from PySide6 import QtCore, QtTest
from .gui_base_test import GuiBaseTest from .gui_base_test import GuiBaseTest

View File

@ -3,7 +3,7 @@ import requests
import tempfile import tempfile
import zipfile import zipfile
from PySide2 import QtCore, QtTest from PySide6 import QtCore, QtTest
from .gui_base_test import GuiBaseTest from .gui_base_test import GuiBaseTest

View File

@ -1,6 +1,6 @@
import os import os
from PySide2 import QtCore, QtTest, QtWidgets from PySide6 import QtCore, QtTest, QtWidgets
from .gui_base_test import GuiBaseTest from .gui_base_test import GuiBaseTest

View File

@ -1,6 +1,6 @@
import requests import requests
from PySide2 import QtTest from PySide6 import QtTest
from .gui_base_test import GuiBaseTest from .gui_base_test import GuiBaseTest