Skip to content

Commit

Permalink
Patch out file resolution error (#54)
Browse files Browse the repository at this point in the history
* Patch out file resolution error

* Resolve test failure

---------

Co-authored-by: Daniel McKnight <daniel@neon.ai>
  • Loading branch information
NeonDaniel and NeonDaniel authored May 10, 2024
1 parent fb18621 commit ffd2136
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
16 changes: 12 additions & 4 deletions __init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.

from os.path import join, isfile
from ovos_workshop.decorators import fallback_handler
from ovos_workshop.skills.fallback import FallbackSkill
from neon_utils.message_utils import request_for_neon
Expand Down Expand Up @@ -71,13 +72,21 @@ def _read_voc_lines(self, name) -> filter:
:param name: vocab resource name
:returns: filter for specified vocab resource
"""
with open(self.find_resource(name + '.voc', 'vocab')) as f:
vocab = self.find_resource(f"{name}.voc", 'vocab',
lang=self.lang)
if self.lang not in vocab:
test_path = join(self.root_dir, "vocab", self.lang, f"{name}.voc")
if isfile(test_path):
LOG.warning(f"Resolved {vocab} but using {test_path}")
vocab = test_path
LOG.debug(f"Reading voc file {vocab} for lang={self.lang}")
with open(vocab) as f:
return filter(bool, map(str.strip, f.read().split('\n')))

@fallback_handler(priority=100)
def handle_fallback(self, message: Message):
LOG.info("Unknown Fallback Checking for Neon!!!")
utterance = message.data['utterance']
LOG.info(f"Unknown Fallback handling: {utterance}")
client = message.context.get('client')
ww_state = self.config_core.get("listener", {}).get("wake_word_enabled",
True)
Expand Down Expand Up @@ -110,12 +119,11 @@ def handle_fallback(self, message: Message):
}))

LOG.debug(f"Checking if neon must respond: {message.data}")

# Determine what kind of question this is to reply appropriately
for i in ['question', 'who.is', 'why.is']:
for line in self._read_voc_lines(i):
if utterance.startswith(line):
LOG.info('Fallback type: ' + i)
LOG.info(f'Fallback type: {i} ({utterance})')
self.speak_dialog(i,
data={'remaining': line.replace(i, '')})
return True
Expand Down
3 changes: 1 addition & 2 deletions test/test_skill.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@

from os.path import dirname
from mock import Mock
from mycroft_bus_client import Message
from neon_utils.skills import NeonFallbackSkill
from ovos_bus_client.message import Message

from neon_minerva.tests.skill_unit_test_base import SkillTestCase

Expand Down

0 comments on commit ffd2136

Please sign in to comment.