1313from ellar .core import Config
1414from ellar .core .main import App
1515from ellar .core .modules import ModuleBase
16- from ellar .core .modules .ref import ModuleTemplateRef , create_module_ref_factor
16+ from ellar .core .modules .ref import create_module_ref_factor
1717from ellar .di import EllarInjector , ProviderConfig
1818from ellar .reflect import reflect
1919
2525class AppFactory :
2626 @classmethod
2727 def _read_all_module (
28- cls , module : t .Type [ModuleBase ]
28+ cls , module : t .Type [t . Union [ ModuleBase , t . Any ] ]
2929 ) -> t .Dict [t .Type , t .Type [ModuleBase ]]:
3030 modules = reflect .get_metadata (MODULE_METADATA .MODULES , module ) or []
3131 module_dependency = OrderedDict ()
@@ -36,11 +36,14 @@ def _read_all_module(
3636
3737 @classmethod
3838 def _build_modules (
39- cls , app_module : t .Type [ModuleBase ], config : Config , injector : EllarInjector
39+ cls ,
40+ app_module : t .Type [t .Union [ModuleBase , t .Any ]],
41+ config : Config ,
42+ injector : EllarInjector ,
4043 ) -> None :
4144 assert reflect .get_metadata (
4245 MODULE_WATERMARK , app_module
43- ), "Only ApplicationModule is allowed"
46+ ), "Only Module is allowed"
4447
4548 module_dependency = [app_module ] + list (
4649 cls ._read_all_module (app_module ).values ()
@@ -56,19 +59,10 @@ def _build_modules(
5659 )
5760 injector .add_module (module_ref )
5861
59- @classmethod
60- def _run_module_application_ready (
61- cls ,
62- modules : t .Dict [t .Type [ModuleBase ], ModuleTemplateRef ],
63- app : App ,
64- ) -> None :
65- for _ , module_ref in modules .items ():
66- module_ref .run_application_ready (app )
67-
6862 @classmethod
6963 def _create_app (
7064 cls ,
71- module : t .Type [ModuleBase ],
65+ module : t .Type [t . Union [ ModuleBase , t . Any ] ],
7266 global_guards : t .List [
7367 t .Union [t .Type ["GuardCanActivate" ], "GuardCanActivate" ]
7468 ] = None ,
@@ -95,9 +89,6 @@ def _create_app(
9589 global_guards = global_guards ,
9690 )
9791
98- cls ._run_module_application_ready (
99- modules = injector .get_templating_modules (), app = app
100- )
10192 return app
10293
10394 @classmethod
@@ -108,7 +99,7 @@ def create_app(
10899 t .Union ["ModuleRouter" , "ModuleMount" , Mount , Host ]
109100 ] = tuple (),
110101 providers : t .Sequence [t .Union [t .Type , "ProviderConfig" ]] = tuple (),
111- modules : t .Sequence [t .Type ] = (),
102+ modules : t .Sequence [t .Type [ t . Union [ ModuleBase , t . Any ]] ] = (),
112103 template_folder : t .Optional [str ] = None ,
113104 base_directory : t .Optional [str ] = None ,
114105 static_folder : str = "static" ,
@@ -131,7 +122,7 @@ def create_app(
131122 app_factory_module = type (f"Module{ uuid4 ().hex [:6 ]} " , (ModuleBase ,), {})
132123 module (app_factory_module )
133124 return cls ._create_app (
134- t . cast ( t . Type [ ModuleBase ], app_factory_module ) ,
125+ module = app_factory_module ,
135126 config_module = config_module ,
136127 global_guards = global_guards ,
137128 )
0 commit comments