From dd8389b892032b7fac29a7c75351e85b439a906f Mon Sep 17 00:00:00 2001
From: Alex Pyrgiotis <alex.p@freedom.press>
Date: Wed, 25 Jan 2023 19:54:16 +0200
Subject: [PATCH] Replace PySide2-stubs with types-PySide2

Replace PySide2-stubs with types-PySide2, both of which are projects
that provide PySide2 typing hints, for the following reasons:

1. types-PySide2 is more complete and allows us to ditch some 'type:
   ignore' comments for Mypy.
2. PySide2-stubs also brings PySide2 as a dependency, which cannot be
   installed in MacOS M1 machines.

Refs #177
---
 dangerzone/gui/logic.py       |  4 ++--
 dangerzone/gui/main_window.py |  8 +++-----
 poetry.lock                   | 32 ++++++++++++--------------------
 pyproject.toml                |  2 +-
 4 files changed, 18 insertions(+), 28 deletions(-)

diff --git a/dangerzone/gui/logic.py b/dangerzone/gui/logic.py
index c8ecba39c..a6c16c8ec 100644
--- a/dangerzone/gui/logic.py
+++ b/dangerzone/gui/logic.py
@@ -176,13 +176,13 @@ def __init__(
         self.setLayout(layout)
 
     def clicked_ok(self) -> None:
-        self.done(QtWidgets.QDialog.Accepted)
+        self.done(int(QtWidgets.QDialog.Accepted))
 
     def clicked_extra(self) -> None:
         self.done(2)
 
     def clicked_cancel(self) -> None:
-        self.done(QtWidgets.QDialog.Rejected)
+        self.done(int(QtWidgets.QDialog.Rejected))
 
     def launch(self) -> int:
         return self.exec_()
diff --git a/dangerzone/gui/main_window.py b/dangerzone/gui/main_window.py
index 5e96a9998..abdb5b484 100644
--- a/dangerzone/gui/main_window.py
+++ b/dangerzone/gui/main_window.py
@@ -46,7 +46,7 @@ def __init__(self, dangerzone: DangerzoneGui) -> None:
         header_label.setFont(self.dangerzone.fixed_font)
         header_label.setStyleSheet("QLabel { font-weight: bold; font-size: 50px; }")
         header_version_label = QtWidgets.QLabel(get_version())
-        header_version_label.setProperty("class", "version")  # type: ignore [arg-type]
+        header_version_label.setProperty("class", "version")
         header_version_label.setAlignment(QtCore.Qt.AlignBottom)
 
         header_layout = QtWidgets.QHBoxLayout()
@@ -363,7 +363,7 @@ def __init__(self, dangerzone: DangerzoneGui) -> None:
         self.docs_selected_label = QtWidgets.QLabel("No documents selected")
         self.docs_selected_label.setAlignment(QtCore.Qt.AlignCenter)
         self.docs_selected_label.setContentsMargins(0, 0, 0, 20)
-        self.docs_selected_label.setProperty("class", "docs-selection")  # type: ignore [arg-type]
+        self.docs_selected_label.setProperty("class", "docs-selection")
 
         # Save safe version
         self.save_checkbox = QtWidgets.QCheckBox()
@@ -373,9 +373,7 @@ def __init__(self, dangerzone: DangerzoneGui) -> None:
         self.safe_extension_label = QtWidgets.QLabel("Save as")
         self.safe_extension_filename = QtWidgets.QLabel("document")
         self.safe_extension_filename.setAlignment(QtCore.Qt.AlignRight)
-        self.safe_extension_filename.setProperty(
-            "style", "safe_extension_filename"  # type: ignore
-        )
+        self.safe_extension_filename.setProperty("style", "safe_extension_filename")
         self.safe_extension = QtWidgets.QLineEdit()
         self.safe_extension.setStyleSheet("margin-left: -6px;")  # no left margin
         self.safe_extension.textChanged.connect(self.update_ui)
diff --git a/poetry.lock b/poetry.lock
index b2df50680..a637e4a64 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -601,25 +601,6 @@ files = [
 [package.dependencies]
 shiboken2 = "5.15.2.1"
 
-[[package]]
-name = "pyside2-stubs"
-version = "5.15.2.1.2"
-description = "PEP561 stub files for the *PySide2/Qt5 for Python* framework"
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-files = [
-    {file = "PySide2-stubs-5.15.2.1.2.tar.gz", hash = "sha256:87b25aa47a4f99898e2282874e4f27411034780f6643461b1cf39b02b4937657"},
-    {file = "PySide2_stubs-5.15.2.1.2-py3-none-any.whl", hash = "sha256:2bbe78bab9ab015f6d38cbcdca24dd7d4c5180236bcb62e3eddadcd1a390fea8"},
-]
-
-[package.dependencies]
-mypy = ">=0.940"
-PySide2 = ">=5.11.0"
-
-[package.extras]
-dev = ["pytest"]
-
 [[package]]
 name = "pytest"
 version = "7.2.0"
@@ -847,6 +828,17 @@ files = [
     {file = "typed_ast-1.5.4.tar.gz", hash = "sha256:39e21ceb7388e4bb37f4c679d72707ed46c2fbf2a5609b8b8ebc4b067d977df2"},
 ]
 
+[[package]]
+name = "types-pyside2"
+version = "5.15.2.1.1"
+description = "The most accurate stubs for PySide2"
+category = "dev"
+optional = false
+python-versions = "*"
+files = [
+    {file = "types_PySide2-5.15.2.1.1-py3-none-any.whl", hash = "sha256:50e7882de41328cca5e641be8c732ab3fd03bcf22fd97c9f0740990cd0b2be95"},
+]
+
 [[package]]
 name = "typing-extensions"
 version = "4.4.0"
@@ -878,4 +870,4 @@ testing = ["flake8 (<5)", "func-timeout", "jaraco.functools", "jaraco.itertools"
 [metadata]
 lock-version = "2.0"
 python-versions = ">=3.7,<3.11"
-content-hash = "19e19811c8306bffc0f591f8eb231dd0281346057e1ecf295886824cda23fcb1"
+content-hash = "a9c6233aa53837d4ca3f46223226293b368e71cc89ffcf5a3f8f1851356189f1"
diff --git a/pyproject.toml b/pyproject.toml
index 39634794d..15e63cfdb 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -30,7 +30,7 @@ pyinstaller = {version = "*", platform = "darwin"}
 black = "*"
 isort = "*"
 mypy = "*"
-PySide2-stubs = "*"
+types-PySide2 = "*"
 
 # Dependencies required for testing the code.
 [tool.poetry.group.test.dependencies]