From 82da76a8d5adbe2b9f85c0aab9217a4e70c909c6 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Tue, 25 Mar 2025 12:45:42 +0100 Subject: [PATCH] fix imports --- gamiki/__init__.py | 9 +++++---- gamiki/builder.py | 20 +++++++------------- gamiki/library.py | 8 +++----- gamiki/support/__init__.py | 9 +++++++++ gamiki/support/support.py | 2 +- gamiki/support/support_dos.py | 6 +++--- gamiki/support/support_ext.py | 6 +++--- gamiki/support/support_gog.py | 6 +++--- gamiki/support/support_win.py | 6 +++--- gamiki/support/support_win31.py | 6 +++--- 10 files changed, 40 insertions(+), 38 deletions(-) diff --git a/gamiki/__init__.py b/gamiki/__init__.py index e3d79ef..595436a 100644 --- a/gamiki/__init__.py +++ b/gamiki/__init__.py @@ -1,4 +1,5 @@ -from .library import Library -from .game import Game -from .builder import Builder -from .support import Support +# Order the dependencies in the right way, and make public classes accessible +from .game import Game +from .support import Support +from .library import Library +from .builder import Builder diff --git a/gamiki/builder.py b/gamiki/builder.py index 5eabd8e..45c84df 100644 --- a/gamiki/builder.py +++ b/gamiki/builder.py @@ -1,8 +1,9 @@ from pathlib import Path, PurePath -from . import Library, Game -from .support import Support, SupportDos, SupportWin31, SupportGog, SupportExt -from .support import SupportWin +from gamiki import Game, Support, Library +from gamiki.support import ( + SupportDos, SupportWin31, SupportGog, SupportExt, SupportWin +) class Builder: """Manage all the resources needed to run games.""" @@ -10,13 +11,6 @@ class Builder: self.libraries : list[Library] = [] self.games : list[Game] = [] - supports = [] - supports.append(SupportGog()) # gameinfo - supports.append(SupportWin()) # wine.bat - supports.append(SupportWin31()) # start.conf + C/WINDOWS - supports.append(SupportDos()) # start.conf + no C/WINDOWS - supports.append(SupportExt()) # start.sh - targets = [] config = Path("~/.games.cfg").expanduser() if (config.exists()): @@ -28,19 +22,19 @@ class Builder: targets.append(Path("~/Games").expanduser()) for target in targets: - self.load_libs(supports, target) + self.load_libs(target) for lib in self.libraries: for game in lib: self.games.append(game) - def load_libs(self, supports: list[Support], dir: PurePath): + def load_libs(self, dir: PurePath): for path in dir.iterdir(): if (not path.is_dir()): continue try: - self.libraries.append(Library(path, supports)) + self.libraries.append(Library(path)) except FileNotFoundError: pass diff --git a/gamiki/library.py b/gamiki/library.py index 0522b65..54f40d5 100644 --- a/gamiki/library.py +++ b/gamiki/library.py @@ -1,15 +1,13 @@ from pathlib import PurePath -from .support import Support -from .game import Game +from gamiki import Game, Support class Library(list[Game]): """Manage a library (a folder) of Games.""" - def __init__(self, dir: PurePath, supports: list[Support]): + def __init__(self, dir: PurePath): self.name = dir.name self.dir = dir - self.supports = supports self.preferredSupport = None config = self.dir.joinpath("games.cfg") @@ -22,7 +20,7 @@ class Library(list[Game]): if (not path.is_dir()): continue game = Game(self, path) - for support in self.supports: + for support in Support.all: if (support.supports(game)): game.set_support(support) break; diff --git a/gamiki/support/__init__.py b/gamiki/support/__init__.py index c7e3aed..7b22862 100644 --- a/gamiki/support/__init__.py +++ b/gamiki/support/__init__.py @@ -1,6 +1,15 @@ +# Order the dependencies in the right way, and make classes accessible from .support import Support from .support_dos import SupportDos from .support_win31 import SupportWin31 from .support_gog import SupportGog from .support_ext import SupportExt from .support_win import SupportWin + +Support.all = [ SupportGog() , # gaminfo + SupportWin() , # wine.bat + SupportWin31(), # start.conf + C/WINDOWS + SupportDos() , # start.conf + no C/WINDOWS + SupportExt() # start.sh +] + diff --git a/gamiki/support/support.py b/gamiki/support/support.py index 282a5b0..1f1eeff 100644 --- a/gamiki/support/support.py +++ b/gamiki/support/support.py @@ -1,7 +1,7 @@ from subprocess import run from shutil import which -from ..game import Game +from gamiki import Game class Support: """Can detect and start games.""" diff --git a/gamiki/support/support_dos.py b/gamiki/support/support_dos.py index 05da421..851aae1 100644 --- a/gamiki/support/support_dos.py +++ b/gamiki/support/support_dos.py @@ -1,6 +1,6 @@ -from . import Support -from .commands import dosbox -from ..game import Game +from gamiki import Game +from gamiki.support import Support +from gamiki.support.commands import dosbox class SupportDos(Support): """Supports DOS games via DosBox.""" diff --git a/gamiki/support/support_ext.py b/gamiki/support/support_ext.py index 8eb1e92..953c81a 100644 --- a/gamiki/support/support_ext.py +++ b/gamiki/support/support_ext.py @@ -1,6 +1,6 @@ -from . import Support -from .commands import start_sh -from ..game import Game +from gamiki import Game +from gamiki.support import Support +from gamiki.support.commands import start_sh class SupportExt(Support): """Supports external games via the 'games' docker or natively.""" diff --git a/gamiki/support/support_gog.py b/gamiki/support/support_gog.py index a71ef0b..0b10154 100644 --- a/gamiki/support/support_gog.py +++ b/gamiki/support/support_gog.py @@ -1,6 +1,6 @@ -from . import Support -from .commands import start_sh -from ..game import Game +from gamiki import Game +from gamiki.support import Support +from gamiki.support.commands import start_sh class SupportGog(Support): """Supports GoG games via the 'games' docker or natively.""" diff --git a/gamiki/support/support_win.py b/gamiki/support/support_win.py index 6d6db08..09befdd 100644 --- a/gamiki/support/support_win.py +++ b/gamiki/support/support_win.py @@ -1,6 +1,6 @@ -from . import Support -from .commands import wine -from ..game import Game +from gamiki import Game +from gamiki.support import Support +from gamiki.support.commands import wine class SupportWin(Support): """Supports Windows games via wine.""" diff --git a/gamiki/support/support_win31.py b/gamiki/support/support_win31.py index a4a6751..e89a8fa 100644 --- a/gamiki/support/support_win31.py +++ b/gamiki/support/support_win31.py @@ -1,6 +1,6 @@ -from . import Support -from .commands import dosbox -from ..game import Game +from gamiki import Game +from gamiki.support import Support +from gamiki.support.commands import dosbox class SupportWin31(Support): """Supports Windows 3.1 games via DosBox.""" -- 2.27.0