From 420c6759dcf00bce120fb19ca310d19811af7712 Mon Sep 17 00:00:00 2001 From: JarbasAI <33701864+JarbasAl@users.noreply.github.com> Date: Fri, 15 Nov 2024 11:47:35 +0000 Subject: [PATCH] fix:lang_dir_crawling (#289) * fix:lang_dir_crawling finding default resource file directories wasn't quite right * @coderabbitai review --- ovos_workshop/resource_files.py | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/ovos_workshop/resource_files.py b/ovos_workshop/resource_files.py index 20e777f..53909cd 100644 --- a/ovos_workshop/resource_files.py +++ b/ovos_workshop/resource_files.py @@ -68,8 +68,7 @@ def locate_base_directories(skill_directory: str, def locate_lang_directories(lang: str, skill_directory: str, - resource_subdirectory: Optional[str] = None) -> \ - List[Path]: + resource_subdirectory: Optional[str] = None) -> List[Path]: """ Locate all possible resource directories found in the given skill_directory for the specified language @@ -214,32 +213,22 @@ def locate_base_directory(self, skill_directory: str) -> Optional[str]: the skill's directory for the resource type or None if not found """ resource_subdirectory = self._get_resource_subdirectory() - if not self.language: self._locate_base_no_lang(skill_directory, resource_subdirectory) return # check for lang resources shipped by the skill - possible_directories = [Path(skill_directory, "locale", self.language)] + possible_directories = [] if resource_subdirectory: - possible_directories += [ - Path(skill_directory, resource_subdirectory, self.language), - Path(skill_directory, resource_subdirectory) - ] + subdirectory_path = Path(skill_directory).joinpath(resource_subdirectory) + possible_directories += self.locate_lang_directories(str(subdirectory_path)) + possible_directories += self.locate_lang_directories(skill_directory) for directory in possible_directories: if directory.exists(): self.base_directory = directory return - # check for subdialects of same language as a fallback - # eg, language is set to en-au but only en-us resources are available - similar_dialect_directories = self.locate_lang_directories(skill_directory) - for directory in similar_dialect_directories: - if directory.exists(): - self.base_directory = directory - return - # check for lang resources defined by the user # user data is usually meant as an override for skill data # but it may be the only data source in some rare instances