Used isort to sort imports. Also added to the git pre-commit hook.
[python_utils.git] / google_assistant.py
index 572b4ccdf25644992f77f66eae800ea9e306ce50..ec5f6a4c85e17ed0fb2eaaf4f2f22d8ee2ebf300 100644 (file)
@@ -1,8 +1,9 @@
 #!/usr/bin/env python3
 
 import logging
-from typing import NamedTuple
 import sys
+import warnings
+from typing import NamedTuple, Optional
 
 import requests
 import speech_recognition as sr  # type: ignore
@@ -20,14 +21,14 @@ parser.add_argument(
     type=str,
     default="http://kiosk.house:3000",
     metavar="URL",
-    help="How to contact the Google Assistant bridge"
+    help="How to contact the Google Assistant bridge",
 )
 parser.add_argument(
     "--google_assistant_username",
     type=str,
     metavar="GOOGLE_ACCOUNT",
     default="scott.gasch",
-    help="The user account for talking to Google Assistant"
+    help="The user account for talking to Google Assistant",
 )
 
 
@@ -35,7 +36,7 @@ class GoogleResponse(NamedTuple):
     success: bool
     response: str
     audio_url: str
-    audio_transcription: str
+    audio_transcription: Optional[str]  # None if not available.
 
     def __repr__(self):
         return f"""
@@ -66,7 +67,7 @@ def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse:
     success = False
     response = ""
     audio = ""
-    audio_transcription = ""
+    audio_transcription: Optional[str] = ""
     if r.status_code == 200:
         j = r.json()
         success = bool(j["success"])
@@ -93,7 +94,9 @@ def ask_google(cmd: str, *, recognize_speech=True) -> GoogleResponse:
                     logger.debug(f"Transcription: '{audio_transcription}'")
                 except sr.UnknownValueError as e:
                     logger.exception(e)
-                    logger.warning('Unable to parse Google assistant\'s response.')
+                    msg = 'Unable to parse Google assistant\'s response.'
+                    logger.warning(msg)
+                    warnings.warn(msg, stacklevel=3)
                     audio_transcription = None
         return GoogleResponse(
             success=success,