Fix some small typos
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 23 Mar 2023 20:43:42 +0000 (21:43 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Thu, 23 Mar 2023 20:43:42 +0000 (21:43 +0100)
music_assistant/common/models/config_entries.py
music_assistant/server/providers/soundcloud/__init__.py

index 6b2fcda29feb7ffc63574f1b03040cdde4bab773..438034c6c5c6124cba96957163efb5959db03a44 100644 (file)
@@ -108,13 +108,6 @@ class ConfigEntryValue(ConfigEntry):
         if entry.type == ConfigEntryType.LABEL:
             result.value = result.label
         if not isinstance(result.value, expected_type):
-            # value type does not match
-            try:
-                # try to simply convert it
-                result.value = expected_type(result.value)
-                return result
-            except ValueError:
-                pass
             # handle common conversions/mistakes
             if expected_type == float and isinstance(result.value, int):
                 result.value = float(result.value)
@@ -122,10 +115,20 @@ class ConfigEntryValue(ConfigEntry):
             if expected_type == int and isinstance(result.value, float):
                 result.value = int(result.value)
                 return result
+            if expected_type == int and isinstance(result.value, str) and result.value.isnumeric():
+                result.value = int(result.value)
+                return result
+            if (
+                expected_type == float
+                and isinstance(result.value, str)
+                and result.value.isnumeric()
+            ):
+                result.value = float(result.value)
+                return result
             # fallback to default
             if result.value is None and allow_none:
                 # In some cases we allow this (e.g. create default config)
-                result.value = result.default_value
+                result.value = None
                 return result
             if entry.default_value:
                 LOGGER.warning(
@@ -133,6 +136,7 @@ class ConfigEntryValue(ConfigEntry):
                     result.key,
                     type(result.value),
                 )
+                result.value = entry.default_value
                 return result
             raise ValueError(f"{result.key} has unexpected type: {type(result.value)}")
         return result
index 9e0fad0e1fa3b76c81ab888fcae99770db0c85f9..90191fc0e9e69919038f1afdbe4a70cc26e0ea47 100644 (file)
@@ -1,4 +1,6 @@
 """Soundcloud support for MusicAssistant."""
+from __future__ import annotations
+
 import asyncio
 from collections.abc import AsyncGenerator, Callable
 from typing import TYPE_CHECKING