Fix logging.

Same problem as last time: we were logging during initialization
before the log handlers could be initialized.
This commit is contained in:
Dan Albert 2020-10-30 16:13:34 -07:00
parent f5047fc0cc
commit b34de70fc7
3 changed files with 22 additions and 3 deletions

View File

@ -911,7 +911,7 @@ CARRIER_TAKEOFF_BAN: List[Type[FlyingType]] = [
Units separated by country.
country : DCS Country name
"""
FACTIONS: Dict[str, Faction] = FactionLoader.load_factions()
FACTIONS = FactionLoader()
CARRIER_TYPE_BY_PLANE = {
FA_18C_hornet: CVN_74_John_C__Stennis,

View File

@ -2,7 +2,7 @@ from __future__ import annotations
import json
import logging
from pathlib import Path
from typing import Dict, Type
from typing import Dict, Iterator, Optional, Type
from game.factions.faction import Faction
@ -10,6 +10,17 @@ FACTION_DIRECTORY = Path("./resources/factions/")
class FactionLoader:
def __init__(self) -> None:
self._factions: Optional[Dict[str, Faction]] = None
@property
def factions(self) -> Dict[str, Faction]:
self.initialize()
return self._factions
def initialize(self) -> None:
if self._factions is None:
self._factions = self.load_factions()
@classmethod
def load_factions(cls: Type[FactionLoader]) -> Dict[str, Faction]:
@ -26,3 +37,9 @@ class FactionLoader:
logging.exception(f"Unable to load faction : {f}")
return factions
def __getitem__(self, name: str) -> Faction:
return self.factions[name]
def __iter__(self) -> Iterator[str]:
return iter(self.factions.keys())

View File

@ -7,7 +7,7 @@ from PySide2 import QtWidgets
from PySide2.QtGui import QPixmap
from PySide2.QtWidgets import QApplication, QSplashScreen
from game import persistency
from game import db, persistency
from qt_ui import (
liberation_install,
liberation_theme,
@ -23,6 +23,8 @@ from qt_ui.windows.preferences.QLiberationFirstStartWindow import \
logging_config.init_logging(uiconstants.VERSION_STRING)
if __name__ == "__main__":
# Load eagerly to catch errors early.
db.FACTIONS.initialize()
os.environ["QT_AUTO_SCREEN_SCALE_FACTOR"] = "1" # Potential fix for 4K screens
app = QApplication(sys.argv)