module variable are now using the global keyword instead of a module-self object

This commit is contained in:
Faraphel 2022-09-17 12:47:29 +02:00
parent e90e8bb8e6
commit d6ebb37253
4 changed files with 20 additions and 19 deletions

View file

@ -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):

View file

@ -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/"

View file

@ -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, "<safe_eval>", "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)

View file

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