Compare commits

..

3 Commits

Author SHA1 Message Date
3d8bcc0efb Ocliam fixed this a typo or something 2025-07-16 12:06:06 +01:00
23aea1777f Improved the error handling 2025-07-08 16:36:58 -04:00
d16567ea18 Cleaned up some import settings 2025-07-08 16:19:05 -04:00
2 changed files with 13 additions and 10 deletions

View File

@ -6,7 +6,7 @@ import copy
from typing import TYPE_CHECKING from typing import TYPE_CHECKING
if TYPE_CHECKING: if TYPE_CHECKING:
from NoPELib.player_settings import ExpansionsManager from .player_settings import ExpansionsManager
class Hook: class Hook:
@ -56,7 +56,7 @@ class Expansion:
self._manager = expansionsManager self._manager = expansionsManager
self.midStepError = Hook() self.midStepError = Hook()
self.midStepError.connect(expansionsManager._midStepError) self.midStepError.connect(expansionsManager._midStepError)
def __call__(self, action): def __call__(self, action):
try: try:
assert not self._closed, "Can't use an expansion that has been closed." assert not self._closed, "Can't use an expansion that has been closed."
@ -70,7 +70,7 @@ class Expansion:
} }
self.midStepError(self._ID) self.midStepError(self._ID)
return step_info return step_info
@property @property
def config(self): def config(self):
""" """
@ -130,12 +130,12 @@ class serialShocker(Expansion):
super().__init__(ID, expansionsManager) super().__init__(ID, expansionsManager)
if self.config["COM_port"] not in serialShocker._api: if self.config["COM_port"] not in serialShocker._api:
self._assignApi() self._assignApi()
self.shocker = serialShocker._api[self.config["COM_port"]].shocker(["shocker_ID"]) self.shocker = serialShocker._api[self.config["COM_port"]].shocker(self.config["shocker_ID"])
def _assignApi(self): def _assignApi(self):
from pishock import SerialAPI from pishock import SerialAPI
serialShocker._api[self.config["COM_port"]] = SerialAPI(self.config["COM_port"]) serialShocker._api[self.config["COM_port"]] = SerialAPI(self.config["COM_port"])
def step(self, action): def step(self, action):
""" """
Arguments: Arguments:
@ -155,11 +155,11 @@ class serialShocker(Expansion):
"error": None, "error": None,
"done": True "done": True
} }
return step_info return step_info
def close(self): def close(self):
pass pass
def reset(self): def reset(self):
if self.config["COM_port"] not in serialShocker._api: if self.config["COM_port"] not in serialShocker._api:
serialShocker._api[self.config["COM_port"]].restart() serialShocker._api[self.config["COM_port"]].restart()

View File

@ -6,7 +6,7 @@ import copy
import json import json
import logging import logging
from pathlib import Path from pathlib import Path
import expansionsLib from . import expansionsLib
_log = logging.getLogger('NoPE-Lib') _log = logging.getLogger('NoPE-Lib')
@ -328,6 +328,7 @@ class ExpansionsManager:
return possiblyValidExpansions return possiblyValidExpansions
def _createExpansion(self, expansionID): def _createExpansion(self, expansionID):
terminalErrors = SystemExit, KeyboardInterrupt, GeneratorExit
try: try:
# Create the expansion # Create the expansion
expansionClass = self._getClassFillMissing(expansionID) expansionClass = self._getClassFillMissing(expansionID)
@ -340,6 +341,8 @@ class ExpansionsManager:
else: else:
self._playersLookUp[player] = [expansionID] self._playersLookUp[player] = [expansionID]
return expansion return expansion
except terminalErrors as e:
raise e
except Exception as e: except Exception as e:
return e return e
@ -437,7 +440,7 @@ class ExpansionsManager:
self._playersLookUp[playerName].pop(expansionID) self._playersLookUp[playerName].pop(expansionID)
for playerName in addedPlayers: for playerName in addedPlayers:
self._playersLookUp[playerName].append(expansionID) self._playersLookUp[playerName].append(expansionID)
def lookupPlayer(self, playerName): def lookupPlayer(self, playerName):
""" """
Get a tuple of all expansions available to a player. Get a tuple of all expansions available to a player.