diff --git a/main.pyw b/main.pyw index 24d9b26..5a23346 100644 --- a/main.pyw +++ b/main.pyw @@ -4,17 +4,17 @@ from source.option import Options from source.translation import load_language -# this allows every variable to be accessible from other files, useful for the plugins -self = __import__(__name__) - options = Options.from_file("./option.json") translater = load_language(options.language.get()) +window = None def main_gui(): + global window + from source.interface.gui import install - self.window = install.Window(options) - self.window.run() + window = install.Window(options) + window.run() def main_cli(argparser: argparse.ArgumentParser): diff --git a/source/__init__.py b/source/__init__.py index 60d2c36..9166bda 100644 --- a/source/__init__.py +++ b/source/__init__.py @@ -1,11 +1,11 @@ +import os + # metadata __version__ = (0, 12, 0) __author__ = 'Faraphel' # external links -import os - discord_url = "https://discord.gg/HEYW5v8ZCd" github_wiki_url = "https://github.com/Faraphel/MKWF-Install/wiki/help" readthedocs_url = "https://mkwf-install.readthedocs.io/" diff --git a/source/safe_eval/safe_eval.py b/source/safe_eval/safe_eval.py index 6e17b9d..7f376c0 100644 --- a/source/safe_eval/safe_eval.py +++ b/source/safe_eval/safe_eval.py @@ -11,8 +11,7 @@ if TYPE_CHECKING: from source import TemplateSafeEval, Env -self = __import__(__name__) -self.safe_eval_cache = {} +safe_eval_cache: dict[hash, Callable] = {} class SafeEvalException(Exception): @@ -38,6 +37,7 @@ def safe_eval(template: "TemplateSafeEval", env: "Env" = None, macros: dict[str, :return: the lambda expression """ + global safe_eval_cache if len(template) == 0: return lambda *_, **__: "" if env is None: env = {} @@ -46,7 +46,7 @@ def safe_eval(template: "TemplateSafeEval", env: "Env" = None, macros: dict[str, template_key: hash = hash((template, args, tuple(env.items()))) # unique identifiant for every template # if the safe_eval return a callable and have already been called, return the cached callable - if template_key in self.safe_eval_cache: return self.safe_eval_cache[template_key] + if template_key in safe_eval_cache: return safe_eval_cache[template_key] # replace the macro in the template template = replace_macro(template=template, macros=macros) @@ -138,5 +138,5 @@ def safe_eval(template: "TemplateSafeEval", env: "Env" = None, macros: dict[str, # return the evaluated formula lambda_template = eval(compile(expression, "", "eval"), globals_, locals_) - self.safe_eval_cache[template_key] = lambda_template # cache the callable for potential latter call + safe_eval_cache[template_key] = lambda_template # cache the callable for potential latter call return better_safe_eval_error(lambda_template, template=template) diff --git a/source/translation.py b/source/translation.py index 9d524a3..1418f66 100644 --- a/source/translation.py +++ b/source/translation.py @@ -6,9 +6,8 @@ if TYPE_CHECKING: from source.mkw.ModConfig import ModConfig -self = __import__(__name__) -self._language = None -self._language_data = {} +_language: str | None = None +_language_data: dict = {} def load_language(language: str): @@ -17,8 +16,10 @@ def load_language(language: str): :param language: language code to load :return: """ - self._language = language - self._language_data = json.loads(Path(f"./assets/language/{language}.json").read_text(encoding="utf8")) + global _language, _language_data + + _language = language + _language_data = json.loads(Path(f"./assets/language/{language}.json").read_text(encoding="utf8")) def translate(text) -> str: @@ -27,7 +28,7 @@ def translate(text) -> str: :param text: list of text to translate :return: translated text """ - return self._language_data.get("translation", {}).get(text, text) + return _language_data.get("translation", {}).get(text, text) def translate_external(mod_config: "ModConfig", message_texts: dict[str, str], default: str = "") -> str: @@ -38,9 +39,9 @@ def translate_external(mod_config: "ModConfig", message_texts: dict[str, str], d :param default: the default message if no translation are found :return: the translated message """ - message = message_texts.get(self._language) + message = message_texts.get(_language) if message is None: message = message_texts.get("*") if message is None: message = default - return mod_config.multiple_safe_eval(message, args=["language"])(language=self._language) + return mod_config.multiple_safe_eval(message, args=["language"])(language=_language)