New Position exception Pull scouting data with lineups More bunt types String validation on gameplay models AI Defensive alignment
55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
import logging
|
|
from typing import Literal
|
|
|
|
logger = logging.getLogger('discord_app')
|
|
|
|
def log_exception(e: Exception, msg: str = '', level: Literal['debug', 'error', 'info', 'warn'] = 'error'):
|
|
if level == 'debug':
|
|
logger.debug(msg, exc_info=True, stack_info=True)
|
|
elif level == 'error':
|
|
logger.error(msg, exc_info=True, stack_info=True)
|
|
elif level == 'info':
|
|
logger.info(msg, exc_info=True, stack_info=True)
|
|
else:
|
|
logger.warning(msg, exc_info=True, stack_info=True)
|
|
|
|
# Check if 'e' is an exception class or instance
|
|
if isinstance(e, Exception):
|
|
raise e # If 'e' is already an instance of an exception
|
|
else:
|
|
raise e(msg) # If 'e' is an exception class
|
|
|
|
class GameException(Exception):
|
|
pass
|
|
|
|
|
|
class LineupsMissingException(GameException):
|
|
pass
|
|
|
|
|
|
class CardLegalityException(GameException):
|
|
pass
|
|
|
|
|
|
class GameNotFoundException(GameException):
|
|
pass
|
|
|
|
|
|
class TeamNotFoundException(GameException):
|
|
pass
|
|
|
|
|
|
class PlayNotFoundException(GameException):
|
|
pass
|
|
|
|
|
|
class PlayInitException(GameException):
|
|
pass
|
|
|
|
|
|
class DatabaseError(GameException):
|
|
pass
|
|
|
|
class PositionNotFoundException(GameException):
|
|
pass
|