From 2fbdee758a673091136ffffdf6c4a9154ade74f9 Mon Sep 17 00:00:00 2001 From: Geson-anko <59220704+Geson-anko@users.noreply.github.com> Date: Tue, 10 May 2022 16:06:35 +0900 Subject: [PATCH 1/2] ADD to_project_config --- JarvisEngine/apps/launcher.py | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/JarvisEngine/apps/launcher.py b/JarvisEngine/apps/launcher.py index 01c0a1d..96071c1 100644 --- a/JarvisEngine/apps/launcher.py +++ b/JarvisEngine/apps/launcher.py @@ -1,10 +1,35 @@ from .base_app import BaseApp, AttrDict from typing import * import os +from ..core import logging_tool + +def to_project_config(config:AttrDict) -> AttrDict: + """convert `config` to `project_config` + `project_config` has the following structure. + ``` + { + MAIN: { + path: "JarvisEngine.apps.Launcher", + thread: true, + apps: config + } + + } + ``` + """ + pconf_dict = { + logging_tool.MAIN_LOGGER_NAME:{ + "path": "JarvisEngine.apps.Launcher", + "thread": True, + "apps": config + } + } + project_config = AttrDict(pconf_dict) + return project_config class Launcher(BaseApp): """The origin of appcation processes. - + """ def __init__( @@ -12,4 +37,3 @@ def __init__( engine_config: AttrDict, project_config:AttrDict ) -> None: super().__init__(name, config, engine_config, project_config, os.path.dirname(__file__)) - From 5c6d98e08538f88d570137b1665e4ca1e4e3dca4 Mon Sep 17 00:00:00 2001 From: Geson-anko <59220704+Geson-anko@users.noreply.github.com> Date: Tue, 10 May 2022 16:07:03 +0900 Subject: [PATCH 2/2] ADD test_to_project_config --- tests/apps/test_launcher.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/tests/apps/test_launcher.py b/tests/apps/test_launcher.py index 0fc8437..3745029 100644 --- a/tests/apps/test_launcher.py +++ b/tests/apps/test_launcher.py @@ -1 +1,15 @@ -from JarvisEngine.apps import launcher \ No newline at end of file +from JarvisEngine.apps import launcher +from attr_dict import AttrDict +import importlib + +def test_to_project_config(): + config = AttrDict() + proj_conf = launcher.to_project_config(config) + assert "MAIN" in proj_conf + launcher_conf = proj_conf.MAIN + assert launcher_conf.path == "JarvisEngine.apps.Launcher" + mod, app = launcher_conf.path.rsplit(".",1) + assert getattr(importlib.import_module(mod), app) == launcher.Launcher + assert launcher_conf.thread == True + assert isinstance(launcher_conf.apps, AttrDict) + assert launcher_conf.apps == config