diff --git a/src/python/jw/pkg/App.py b/src/python/jw/pkg/App.py index 1cd974c8..c474ead0 100644 --- a/src/python/jw/pkg/App.py +++ b/src/python/jw/pkg/App.py @@ -185,16 +185,18 @@ class App(Base): return ret return None - @cache def __read_project_conf(self, project_dir: str) -> ProjectConf: return ProjectConf.read(project_dir + '/make/project.conf') @cache - def __get_project_conf(self, project: str) -> ProjectConf: + def __get_project_conf(self, project: str) -> ProjectConf | None: pd = self.__proj_dir(project, False) if pd is None: raise Exception(f'Failed to find directory of project {project}') - return self.__read_project_conf(pd) + try: + return self.__read_project_conf(pd) + except FileNotFoundError: + return None def __get_project_refs_cached( self, buf, visited, spec, section, key, add_self, scope, names_only @@ -552,7 +554,10 @@ class App(Base): log(DEBUG, f'Ignoring unreadable file "{version_path}"') continue raise Exception(f'No version file found for project "{project}"') - ret = self.__get_project_conf(project).get_str_or_none(section, key) + proj_conf = self.__get_project_conf(project) + if proj_conf is None: + return None + ret = proj_conf.get_str_or_none(section, key) log( DEBUG, 'Lookup %s -> %s / [%s%s] -> "%s"' %