@@ -615,7 +615,7 @@ async def check_app_config_files(self, update_actions: UpdateActions):
615615 self ._compare_sequences (update_actions , cfg , files_to_read )
616616 continue
617617
618- if name in self .non_apps :
618+ if name in self .non_apps or cfg . disable :
619619 continue
620620
621621 # New config found
@@ -685,8 +685,14 @@ def import_module(self, module_name: str) -> int:
685685 if not module_name .startswith ("appdaemon" ):
686686 self .logger .debug ("Importing '%s'" , module_name )
687687 importlib .import_module (module_name )
688- except SyntaxError as exc :
689- path = Path (exc .filename )
688+ except Exception as exc :
689+ match exc :
690+ case SyntaxError ():
691+ path = Path (exc .filename )
692+ case NameError ():
693+ path = Path (traceback .extract_tb (exc .__traceback__ )[- 1 ].filename )
694+ case _:
695+ raise exc
690696 mtime = self .dependency_manager .python_deps .files .mtimes .get (path )
691697 self .dependency_manager .python_deps .bad_files .add ((path , mtime ))
692698 raise exc
@@ -989,13 +995,16 @@ async def _stop_apps(self, update_actions: UpdateActions):
989995 update_actions .apps .reload -= failed_to_stop
990996
991997 async def _start_apps (self , update_actions : UpdateActions ):
998+ if failed := update_actions .apps .failed :
999+ self .logger .warning ('Failed to start apps: %s' , failed )
1000+
9921001 start_order = update_actions .apps .start_sort (self .dependency_manager )
9931002 if start_order :
9941003 self .logger .info ("Starting apps: %s" , update_actions .apps .init_set )
9951004 self .logger .debug ("App start order: %s" , start_order )
9961005
9971006 for app_name in start_order :
998- if isinstance ((cfg := self .app_config .root [app_name ]), AppConfig ):
1007+ if isinstance ((cfg := self .app_config .root [app_name ]), AppConfig ) and not cfg . disable :
9991008 @ade .wrap_async (self .error , self .AD .app_dir , f"'{ app_name } ' instantiation" )
10001009 async def safe_create (self : "AppManagement" ):
10011010 try :
0 commit comments