From 09a6fbd72a9948bb539da4a5b1dd0ed7e5885e0a Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Tue, 30 Jan 2024 11:53:28 +0800 Subject: feat(internal): auto register sub-packages into father package without new register variable --- src/infini/internal.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/infini/internal.py b/src/infini/internal.py index 460407a8..5924ad01 100644 --- a/src/infini/internal.py +++ b/src/infini/internal.py @@ -8,8 +8,8 @@ import inspect def require(name: str, paths: List | None = None) -> Register: - caller_frame = inspect.stack()[1] - caller_file = caller_frame[0].f_globals["__file__"] + caller_frame = inspect.stack()[1][0] + caller_file = caller_frame.f_globals["__file__"] default_paths = [Path(caller_file).resolve().parent] paths = [ @@ -21,4 +21,7 @@ def require(name: str, paths: List | None = None) -> Register: with Loader() as loader: loader.load(name) sys.path = sys.path[len(paths) - 1 :] - return loader.into_register() + register = loader.into_register() + + caller_frame.f_globals[f"{name}_register"] = register + return register -- cgit v1.2.3-70-g09d2