From 117be45a834418274302af918adab84fddeee282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mika=C3=ABl=20Capelle?= Date: Thu, 21 Apr 2022 22:13:00 +0200 Subject: [PATCH] Multiple fixes for PyQt6 and CI. --- basic_features/basic_save_game_info.py | 8 +++++--- basic_game.py | 18 +++++++++++++----- games/game_blackandwhite2.py | 12 ++++++------ games/game_da2.py | 3 ++- games/game_daggerfallunity.py | 4 ++-- games/game_darkestdungeon.py | 4 +++- games/game_gta-3-de.py | 2 +- games/game_gta-san-andreas-de.py | 2 +- games/game_gta-vice-city-de.py | 2 +- games/game_masterduel.py | 11 +++++------ games/game_sims4.py | 4 ++-- games/game_stalkeranomaly.py | 15 ++++++++------- games/game_starwars-empire-at-war-foc.py | 9 ++++++--- games/game_starwars-empire-at-war.py | 9 ++++++--- games/game_vampirebloodlines.py | 6 +++--- games/game_witcher1.py | 4 ++-- games/stalkeranomaly/XRObject.py | 4 ++-- games/stalkeranomaly/XRSave.py | 7 ++++--- games/stalkeranomaly/__init__.py | 14 +++++++------- origin_utils.py | 4 ++-- setup.cfg | 13 ++++++++----- 21 files changed, 89 insertions(+), 66 deletions(-) diff --git a/basic_features/basic_save_game_info.py b/basic_features/basic_save_game_info.py index 33ad301..195f928 100644 --- a/basic_features/basic_save_game_info.py +++ b/basic_features/basic_save_game_info.py @@ -41,17 +41,19 @@ class BasicGameSaveGameInfoWidget(mobase.ISaveGameInfoWidget): layout = QVBoxLayout() self._label = QLabel() palette = self._label.palette() - palette.setColor(self._label.foregroundRole(), Qt.white) + palette.setColor(self._label.foregroundRole(), Qt.GlobalColor.white) self._label.setPalette(palette) layout.addWidget(self._label) self.setLayout(layout) palette = self.palette() - palette.setColor(self.backgroundRole(), Qt.black) + palette.setColor(self.backgroundRole(), Qt.GlobalColor.black) self.setAutoFillBackground(True) self.setPalette(palette) - self.setWindowFlags(Qt.ToolTip | Qt.BypassGraphicsProxyWidget) # type: ignore + self.setWindowFlags( + Qt.WindowType.ToolTip | Qt.WindowType.BypassGraphicsProxyWidget + ) def setSave(self, save: mobase.ISaveGame): # Resize the label to (0, 0) to hide it: diff --git a/basic_game.py b/basic_game.py index 4ba63cc..0d85ebb 100644 --- a/basic_game.py +++ b/basic_game.py @@ -19,12 +19,16 @@ def replace_variables(value: str, game: "BasicGame") -> str: if value.find("%DOCUMENTS%") != -1: value = value.replace( "%DOCUMENTS%", - QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DocumentsLocation), + QStandardPaths.writableLocation( + QStandardPaths.StandardLocation.DocumentsLocation + ), ) if value.find("%USERPROFILE%") != -1: value = value.replace( "%USERPROFILE%", - QStandardPaths.writableLocation(QStandardPaths.StandardLocation.HomeLocation), + QStandardPaths.writableLocation( + QStandardPaths.StandardLocation.HomeLocation + ), ) if value.find("%GAME_DOCUMENTS%") != -1: value = value.replace( @@ -211,11 +215,15 @@ class BasicGameMappings: folders = [ "{}/My Games/{}".format( - QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DocumentsLocation), + QStandardPaths.writableLocation( + QStandardPaths.StandardLocation.DocumentsLocation + ), game.gameName(), ), "{}/{}".format( - QStandardPaths.writableLocation(QStandardPaths.StandardLocation.DocumentsLocation), + QStandardPaths.writableLocation( + QStandardPaths.StandardLocation.DocumentsLocation + ), game.gameName(), ), ] @@ -332,8 +340,8 @@ class BasicGame(mobase.IPluginGame): @staticmethod def setup(): from .gog_utils import find_games as find_gog_games - from .steam_utils import find_games as find_steam_games from .origin_utils import find_games as find_origin_games + from .steam_utils import find_games as find_steam_games BasicGame.steam_games = find_steam_games() BasicGame.gog_games = find_gog_games() diff --git a/games/game_blackandwhite2.py b/games/game_blackandwhite2.py index 5e2de9a..65b9fd8 100644 --- a/games/game_blackandwhite2.py +++ b/games/game_blackandwhite2.py @@ -1,23 +1,23 @@ # -*- encoding: utf-8 -*- -import os -import sys import datetime +import os import struct +import sys import time from pathlib import Path from typing import List -from PyQt6.QtCore import QDir, QFileInfo, QFile, QDateTime, Qt -from PyQt6.QtGui import QPixmap, QPainter +from PyQt6.QtCore import QDateTime, QDir, QFile, QFileInfo, Qt +from PyQt6.QtGui import QPainter, QPixmap import mobase -from ..basic_game import BasicGame from ..basic_features.basic_save_game_info import ( BasicGameSaveGame, - BasicGameSaveGameInfoWidget, BasicGameSaveGameInfo, + BasicGameSaveGameInfoWidget, ) +from ..basic_game import BasicGame class BlackAndWhite2ModDataChecker(mobase.ModDataChecker): diff --git a/games/game_da2.py b/games/game_da2.py index c727415..281e11d 100644 --- a/games/game_da2.py +++ b/games/game_da2.py @@ -1,8 +1,9 @@ from PyQt6.QtCore import QDir -from ..basic_game import BasicGame import mobase +from ..basic_game import BasicGame + class DA2Game(BasicGame): diff --git a/games/game_daggerfallunity.py b/games/game_daggerfallunity.py index dc8f9cc..7c6f45f 100644 --- a/games/game_daggerfallunity.py +++ b/games/game_daggerfallunity.py @@ -1,7 +1,7 @@ -from ..basic_game import BasicGame - import mobase +from ..basic_game import BasicGame + class DaggerfallUnityModDataChecker(mobase.ModDataChecker): def __init__(self): diff --git a/games/game_darkestdungeon.py b/games/game_darkestdungeon.py index e7a3239..10f5949 100644 --- a/games/game_darkestdungeon.py +++ b/games/game_darkestdungeon.py @@ -208,7 +208,9 @@ class DarkestDungeonGame(BasicGame): def savesDirectory(self) -> QDir: documentsSaves = QDir( "{}/Darkest".format( - QStandardPaths.writableLocation(QStandardPaths.DocumentsLocation) + QStandardPaths.writableLocation( + QStandardPaths.StandardLocation.DocumentsLocation + ) ) ) if self.is_steam(): diff --git a/games/game_gta-3-de.py b/games/game_gta-3-de.py index f00a940..d67d7a0 100644 --- a/games/game_gta-3-de.py +++ b/games/game_gta-3-de.py @@ -1,6 +1,6 @@ import os - from pathlib import Path + from PyQt6.QtCore import QDir, QFileInfo import mobase diff --git a/games/game_gta-san-andreas-de.py b/games/game_gta-san-andreas-de.py index e368ab5..5c1aba2 100644 --- a/games/game_gta-san-andreas-de.py +++ b/games/game_gta-san-andreas-de.py @@ -1,6 +1,6 @@ import os - from pathlib import Path + from PyQt6.QtCore import QDir, QFileInfo import mobase diff --git a/games/game_gta-vice-city-de.py b/games/game_gta-vice-city-de.py index 33b7590..d149604 100644 --- a/games/game_gta-vice-city-de.py +++ b/games/game_gta-vice-city-de.py @@ -1,6 +1,6 @@ import os - from pathlib import Path + from PyQt6.QtCore import QDir, QFileInfo import mobase diff --git a/games/game_masterduel.py b/games/game_masterduel.py index 803cede..e832bc4 100644 --- a/games/game_masterduel.py +++ b/games/game_masterduel.py @@ -1,8 +1,9 @@ # -*- encoding: utf-8 -*- -from PyQt6.QtCore import QFileInfo, QDir -from typing import List, Optional, cast -from os.path import join, exists +from os.path import exists, join +from typing import List, Optional + +from PyQt6.QtCore import QDir, QFileInfo import mobase @@ -54,9 +55,7 @@ class MasterDuelGame(BasicGame, mobase.IPluginFileMapper): dir = self.gameDirectory() dir.cd("LocalData") - subdirs = dir.entryList( - filters=cast(QDir.Filters, QDir.Dirs | QDir.NoDotAndDotDot) - ) + subdirs = dir.entryList(filters=QDir.Filter.Dirs | QDir.Filter.NoDotAndDotDot) dir.cd(subdirs[0]) self._userDataDirCached = dir.absolutePath() diff --git a/games/game_sims4.py b/games/game_sims4.py index 4901b43..1c3e5e7 100644 --- a/games/game_sims4.py +++ b/games/game_sims4.py @@ -1,7 +1,7 @@ -from ..basic_game import BasicGame - import mobase +from ..basic_game import BasicGame + class TS4Game(BasicGame): diff --git a/games/game_stalkeranomaly.py b/games/game_stalkeranomaly.py index 954970a..113589c 100644 --- a/games/game_stalkeranomaly.py +++ b/games/game_stalkeranomaly.py @@ -1,10 +1,10 @@ # -*- encoding: utf-8 -*- +from enum import IntEnum from pathlib import Path from typing import List -from enum import IntEnum -from PyQt6.QtCore import Qt, QDir, QFileInfo +from PyQt6.QtCore import QDir, QFileInfo, Qt from PyQt6.QtWidgets import QLabel, QVBoxLayout, QWidget import mobase @@ -14,7 +14,6 @@ from ..basic_features.basic_save_game_info import ( BasicGameSaveGameInfo, ) from ..basic_game import BasicGame - from .stalkeranomaly import XRSave @@ -176,16 +175,18 @@ class StalkerAnomalySaveGameInfoWidget(mobase.ISaveGameInfoWidget): self._labelRep = self.newLabel(layout) self.setLayout(layout) palette = self.palette() - palette.setColor(self.backgroundRole(), Qt.black) + palette.setColor(self.backgroundRole(), Qt.GlobalColor.black) self.setAutoFillBackground(True) self.setPalette(palette) - self.setWindowFlags(Qt.ToolTip | Qt.BypassGraphicsProxyWidget) # type: ignore + self.setWindowFlags( + Qt.WindowType.ToolTip | Qt.WindowType.BypassGraphicsProxyWidget + ) def newLabel(self, layout: QVBoxLayout) -> QLabel: label = QLabel() - label.setAlignment(Qt.AlignLeft) + label.setAlignment(Qt.AlignmentFlag.AlignLeft) palette = label.palette() - palette.setColor(label.foregroundRole(), Qt.white) + palette.setColor(label.foregroundRole(), Qt.GlobalColor.white) label.setPalette(palette) layout.addWidget(label) layout.addStretch() diff --git a/games/game_starwars-empire-at-war-foc.py b/games/game_starwars-empire-at-war-foc.py index ec3ddce..0a7bee4 100644 --- a/games/game_starwars-empire-at-war-foc.py +++ b/games/game_starwars-empire-at-war-foc.py @@ -1,10 +1,13 @@ # -*- encoding: utf-8 -*- -import mobase -from PyQt6.QtCore import QFileInfo -from ..basic_game import BasicGame from typing import List +from PyQt6.QtCore import QFileInfo + +import mobase + +from ..basic_game import BasicGame + class StarWarsEmpireAtWarGame(BasicGame): Name = "STAR WARS Empire at War - Force of Corruption" diff --git a/games/game_starwars-empire-at-war.py b/games/game_starwars-empire-at-war.py index bf8867d..0b4eaa6 100644 --- a/games/game_starwars-empire-at-war.py +++ b/games/game_starwars-empire-at-war.py @@ -1,10 +1,13 @@ # -*- encoding: utf-8 -*- -import mobase -from PyQt6.QtCore import QFileInfo -from ..basic_game import BasicGame from typing import List +from PyQt6.QtCore import QFileInfo + +import mobase + +from ..basic_game import BasicGame + class StarWarsEmpireAtWarGame(BasicGame): Name = "STAR WARS Empire at War" diff --git a/games/game_vampirebloodlines.py b/games/game_vampirebloodlines.py index 63870be..e9a4fcc 100644 --- a/games/game_vampirebloodlines.py +++ b/games/game_vampirebloodlines.py @@ -1,11 +1,11 @@ # -*- encoding: utf-8 -*- import os -import mobase +from pathlib import Path +from typing import List from PyQt6.QtCore import QDir -from typing import List -from pathlib import Path +import mobase from ..basic_game import BasicGame, BasicGameSaveGame diff --git a/games/game_witcher1.py b/games/game_witcher1.py index fdbada9..08211a3 100644 --- a/games/game_witcher1.py +++ b/games/game_witcher1.py @@ -1,8 +1,8 @@ # -*- encoding: utf-8 -*- -from typing import List from pathlib import Path +from typing import List -from PyQt6.QtCore import QFileInfo, QDir +from PyQt6.QtCore import QDir, QFileInfo import mobase diff --git a/games/stalkeranomaly/XRObject.py b/games/stalkeranomaly/XRObject.py index d94eb02..02eb689 100644 --- a/games/stalkeranomaly/XRObject.py +++ b/games/stalkeranomaly/XRObject.py @@ -1,11 +1,11 @@ # -*- encoding: utf-8 -*- import io -from typing import List from enum import IntFlag +from typing import List from .XRIO import XRReader -from .XRMath import IVec3, IFlag +from .XRMath import IFlag, IVec3 from .XRNET import XRNETState diff --git a/games/stalkeranomaly/XRSave.py b/games/stalkeranomaly/XRSave.py index f4a23e8..6040ad9 100644 --- a/games/stalkeranomaly/XRSave.py +++ b/games/stalkeranomaly/XRSave.py @@ -2,13 +2,14 @@ import io import struct -import lzokay +from datetime import datetime from pathlib import Path from typing import Optional -from datetime import datetime -from .XRObject import XRCreatureActor, XRFlag +import lzokay + from .XRIO import XRReader, XRStream +from .XRObject import XRCreatureActor, XRFlag class XRSave: diff --git a/games/stalkeranomaly/__init__.py b/games/stalkeranomaly/__init__.py index d9fe8ad..ce1313b 100644 --- a/games/stalkeranomaly/__init__.py +++ b/games/stalkeranomaly/__init__.py @@ -2,19 +2,19 @@ # flake8: noqa from .XRIO import XRReader, XRStream -from .XRMath import IVec3, IVec4, IFlag +from .XRMath import IFlag, IVec3, IVec4 from .XRNET import XRNETState from .XRObject import ( - XRFlag, XRAbstract, - XRVisual, XRBoneData, - XRSkeleton, - XRObject, + XRCreatureAbstract, + XRCreatureActor, XRDynamicObject, XRDynamicObjectVisual, - XRCreatureAbstract, + XRFlag, + XRObject, + XRSkeleton, XRTraderAbstract, - XRCreatureActor, + XRVisual, ) from .XRSave import XRSave diff --git a/origin_utils.py b/origin_utils.py index 95acbb0..793cf44 100644 --- a/origin_utils.py +++ b/origin_utils.py @@ -3,14 +3,14 @@ # Heavily influenced by https://github.com/erri120/GameFinder import os -import psutil import threading import time - from pathlib import Path from typing import Dict, List from urllib import parse +import psutil + class OriginWatcher: """ diff --git a/setup.cfg b/setup.cfg index 0ef1021..cc4aa38 100644 --- a/setup.cfg +++ b/setup.cfg @@ -29,21 +29,24 @@ ignore_missing_imports = True [tox:tox] skipsdist = true -envlist = py38-lint +envlist = py310-lint -[testenv:py38-lint] +[testenv:py310-lint] +pip_version = pip>=20 skip_install = true deps = - PyQt6-stubs - mobase-stubs + git+https://github.com/TilmanK/PyQt6-stubs.git + mobase-stubs==2.5.0.dev1 psutil==5.8.0 vdf==3.4 - lzokay==1.0 + lzokay==1.0.1 black flake8 flake8-black mypy + isort commands = black --check --diff . + isort -c . --skip lib --skip .tox flake8 . --exclude "lib,.tox,games/quarantine" mypy . --platform win32 --exclude "lib" --exclude "games/quarantine"