49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
import json
|
|
from typing import TYPE_CHECKING, Any
|
|
|
|
from .config import Config
|
|
|
|
if TYPE_CHECKING:
|
|
from .ants import Ant
|
|
|
|
|
|
class Storage:
|
|
@staticmethod
|
|
def get_ants() -> Any:
|
|
with Config.ants_json.open() as file:
|
|
return json.load(file)
|
|
|
|
@staticmethod
|
|
def save_ants(ants: list[Ant]) -> None:
|
|
objs = [ant.to_dict() for ant in ants]
|
|
|
|
with Config.ants_json.open("w") as file:
|
|
json.dump(objs, file)
|
|
|
|
@staticmethod
|
|
def get_names() -> Any:
|
|
with Config.names_json.open() as file:
|
|
return json.load(file)
|
|
|
|
@staticmethod
|
|
def get_settings() -> Any:
|
|
with Config.settings_json.open() as file:
|
|
return json.load(file)
|
|
|
|
@staticmethod
|
|
def save_settings(settings: dict[str, Any]) -> None:
|
|
with Config.settings_json.open("w") as file:
|
|
json.dump(settings, file)
|
|
|
|
@staticmethod
|
|
def get_countries() -> Any:
|
|
with Config.countries_json.open() as file:
|
|
return json.load(file)
|
|
|
|
@staticmethod
|
|
def get_manifest() -> Any:
|
|
with Config.manifest_path.open() as file:
|
|
return json.load(file)
|