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())