Rename WakeWord.ww_id to WakeWord.id (#100903)

* Rename WakeWord.ww_id to WakeWord.wake_word_id

* Revert unrelated changes

* Rename to id

* Correct rebase
This commit is contained in:
Erik Montnemery 2023-09-26 19:12:16 +02:00 committed by GitHub
parent 074eb966dd
commit 734c4e8e32
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 21 additions and 22 deletions

View File

@ -6,7 +6,7 @@ from dataclasses import dataclass
class WakeWord:
"""Wake word model."""
ww_id: str
id: str
name: str
@ -14,7 +14,7 @@ class WakeWord:
class DetectionResult:
"""Result of wake word detection."""
ww_id: str
wake_word_id: str
"""Id of detected wake word"""
timestamp: int | None

View File

@ -46,8 +46,7 @@ class WyomingWakeWordProvider(wake_word.WakeWordDetectionEntity):
wake_service = service.info.wake[0]
self._supported_wake_words = [
wake_word.WakeWord(ww_id=ww.name, name=ww.name)
for ww in wake_service.models
wake_word.WakeWord(id=ww.name, name=ww.name) for ww in wake_service.models
]
self._attr_name = wake_service.name
self._attr_unique_id = f"{config_entry.entry_id}-wake_word"
@ -111,7 +110,7 @@ class WyomingWakeWordProvider(wake_word.WakeWordDetectionEntity):
queued_audio = [audio_task.result()]
return wake_word.DetectionResult(
ww_id=detection.name,
wake_word_id=detection.name,
timestamp=detection.timestamp,
queued_audio=queued_audio,
)

View File

@ -184,18 +184,18 @@ class MockWakeWordEntity(wake_word.WakeWordDetectionEntity):
@property
def supported_wake_words(self) -> list[wake_word.WakeWord]:
"""Return a list of supported wake words."""
return [wake_word.WakeWord(ww_id="test_ww", name="Test Wake Word")]
return [wake_word.WakeWord(id="test_ww", name="Test Wake Word")]
async def _async_process_audio_stream(
self, stream: AsyncIterable[tuple[bytes, int]], wake_word_id: str | None
) -> wake_word.DetectionResult | None:
"""Try to detect wake word(s) in an audio stream with timestamps."""
if wake_word_id is None:
wake_word_id = self.supported_wake_words[0].ww_id
wake_word_id = self.supported_wake_words[0].id
async for chunk, timestamp in stream:
if chunk.startswith(b"wake word"):
return wake_word.DetectionResult(
ww_id=wake_word_id,
wake_word_id=wake_word_id,
timestamp=timestamp,
queued_audio=[(b"queued audio", 0)],
)

View File

@ -292,7 +292,7 @@
'data': dict({
'wake_word_output': dict({
'timestamp': 2000,
'ww_id': 'test_ww',
'wake_word_id': 'test_ww',
}),
}),
'type': <PipelineEventType.WAKE_WORD_END: 'wake_word-end'>,

View File

@ -281,7 +281,7 @@
'wake_word_output': dict({
'queued_audio': None,
'timestamp': 1000,
'ww_id': 'test_ww',
'wake_word_id': 'test_ww',
}),
})
# ---
@ -379,7 +379,7 @@
dict({
'wake_word_output': dict({
'timestamp': 0,
'ww_id': 'test_ww',
'wake_word_id': 'test_ww',
}),
})
# ---

View File

@ -41,8 +41,8 @@ class MockProviderEntity(wake_word.WakeWordDetectionEntity):
def supported_wake_words(self) -> list[wake_word.WakeWord]:
"""Return a list of supported wake words."""
return [
wake_word.WakeWord(ww_id="test_ww", name="Test Wake Word"),
wake_word.WakeWord(ww_id="test_ww_2", name="Test Wake Word 2"),
wake_word.WakeWord(id="test_ww", name="Test Wake Word"),
wake_word.WakeWord(id="test_ww_2", name="Test Wake Word 2"),
]
async def _async_process_audio_stream(
@ -50,12 +50,12 @@ class MockProviderEntity(wake_word.WakeWordDetectionEntity):
) -> wake_word.DetectionResult | None:
"""Try to detect wake word(s) in an audio stream with timestamps."""
if wake_word_id is None:
wake_word_id = self.supported_wake_words[0].ww_id
wake_word_id = self.supported_wake_words[0].id
async for _chunk, timestamp in stream:
if timestamp >= 2000:
return wake_word.DetectionResult(
ww_id=wake_word_id, timestamp=timestamp
wake_word_id=wake_word_id, timestamp=timestamp
)
# Not detected
@ -157,7 +157,7 @@ async def test_config_entry_unload(
@freeze_time("2023-06-22 10:30:00+00:00")
@pytest.mark.parametrize(
("ww_id", "expected_ww"),
("wake_word_id", "expected_ww"),
[
(None, "test_ww"),
("test_ww_2", "test_ww_2"),
@ -167,7 +167,7 @@ async def test_detected_entity(
hass: HomeAssistant,
tmp_path: Path,
setup: MockProviderEntity,
ww_id: str | None,
wake_word_id: str | None,
expected_ww: str,
) -> None:
"""Test successful detection through entity."""
@ -181,7 +181,7 @@ async def test_detected_entity(
# Need 2 seconds to trigger
state = setup.state
assert state is None
result = await setup.async_process_audio_stream(three_second_stream(), ww_id)
result = await setup.async_process_audio_stream(three_second_stream(), wake_word_id)
assert result == wake_word.DetectionResult(expected_ww, 2048)
assert state != setup.state
@ -283,7 +283,7 @@ async def test_list_wake_words(
assert msg["success"]
assert msg["result"] == {
"wake_words": [
{"ww_id": "test_ww", "name": "Test Wake Word"},
{"ww_id": "test_ww_2", "name": "Test Wake Word 2"},
{"id": "test_ww", "name": "Test Wake Word"},
{"id": "test_ww_2", "name": "Test Wake Word 2"},
]
}

View File

@ -8,6 +8,6 @@
),
]),
'timestamp': 0,
'ww_id': 'Test Model',
'wake_word_id': 'Test Model',
})
# ---

View File

@ -25,7 +25,7 @@ async def test_support(hass: HomeAssistant, init_wyoming_wake_word) -> None:
assert entity is not None
assert entity.supported_wake_words == [
wake_word.WakeWord(ww_id="Test Model", name="Test Model")
wake_word.WakeWord(id="Test Model", name="Test Model")
]