From eab771b0c90e5de43e3e52856f9958a568b49e08 Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Wed, 16 Sep 2020 01:11:39 +0200 Subject: [PATCH] fixes for dataclass json encoding --- music_assistant/__main__.py | 6 ------ music_assistant/config.py | 4 ++-- music_assistant/models/config_entry.py | 10 +++++----- music_assistant/models/media_types.py | 10 +++++----- music_assistant/models/player.py | 10 +++++----- music_assistant/models/player_queue.py | 2 +- music_assistant/models/streamdetails.py | 7 ++++--- 7 files changed, 22 insertions(+), 27 deletions(-) diff --git a/music_assistant/__main__.py b/music_assistant/__main__.py index befb2787..3e7f1637 100755 --- a/music_assistant/__main__.py +++ b/music_assistant/__main__.py @@ -2,8 +2,6 @@ import argparse import logging import os -import platform -import webbrowser from aiorun import run from music_assistant.mass import MusicAssistant @@ -58,10 +56,6 @@ def main(): mass = MusicAssistant(data_dir) - # run UI in browser on windows and macos only - if platform.system() in ["Windows", "Darwin"]: - webbrowser.open(mass.web.internal_url) - def on_shutdown(loop): logger.info("shutdown requested!") loop.run_until_complete(mass.async_stop()) diff --git a/music_assistant/config.py b/music_assistant/config.py index b82264e4..fb2072cb 100755 --- a/music_assistant/config.py +++ b/music_assistant/config.py @@ -160,9 +160,9 @@ class ConfigItem: def __repr__(self): """Print class.""" - return f"{OrderedDict}({self.items()})" + return f"{OrderedDict}({self.to_dict()})" - def items(self) -> dict: + def to_dict(self) -> dict: """Return entire config as dict.""" result = OrderedDict() for entry in self.get_config_entries(): diff --git a/music_assistant/models/config_entry.py b/music_assistant/models/config_entry.py index 0b000318..d4dd4442 100644 --- a/music_assistant/models/config_entry.py +++ b/music_assistant/models/config_entry.py @@ -2,7 +2,7 @@ from dataclasses import dataclass, field from enum import Enum -from typing import Any, List, Optional, Tuple +from typing import Any, List, Tuple from mashumaro import DataClassDictMixin @@ -25,13 +25,13 @@ class ConfigEntry(DataClassDictMixin): entry_key: str entry_type: ConfigEntryType - default_value: Optional[Any] = None + default_value: Any = None values: List[Any] = field(default_factory=list) # select from list of values range: Tuple[Any] = () # select values within range - description_key: Optional[str] = None # key in the translations file - help_key: Optional[str] = None # key in the translations file + description_key: str = None # key in the translations file + help_key: str = None # key in the translations file multi_value: bool = False # allow multiple values from the list depends_on: str = "" # needs to be set before this setting shows up in frontend hidden: bool = False # hide from UI - value: Optional[Any] = None # set by the configuration manager + value: Any = None # set by the configuration manager store_hashed: bool = False # value will be hashed, non reversible diff --git a/music_assistant/models/media_types.py b/music_assistant/models/media_types.py index 7c8a3318..89754db9 100755 --- a/music_assistant/models/media_types.py +++ b/music_assistant/models/media_types.py @@ -2,7 +2,7 @@ from dataclasses import dataclass, field from enum import Enum -from typing import Any, List, Optional +from typing import Any, List from mashumaro import DataClassDictMixin from music_assistant.utils import CustomIntEnum @@ -54,8 +54,8 @@ class MediaItemProviderId(DataClassDictMixin): provider: str item_id: str - quality: Optional[TrackQuality] = TrackQuality.UNKNOWN - details: Optional[str] = None + quality: TrackQuality = TrackQuality.UNKNOWN + details: str = None class ExternalId(Enum): @@ -97,7 +97,7 @@ class Album(MediaItem): media_type: MediaType = MediaType.Album version: str = "" year: int = 0 - artist: Optional[Artist] = None + artist: Artist = None labels: List[str] = field(default_factory=list) album_type: AlbumType = AlbumType.Album @@ -110,7 +110,7 @@ class Track(MediaItem): duration: int = 0 version: str = "" artists: List[Artist] = field(default_factory=list) - album: Optional[Album] = None + album: Album = None disc_number: int = 1 track_number: int = 1 diff --git a/music_assistant/models/player.py b/music_assistant/models/player.py index 25617769..15999a3f 100755 --- a/music_assistant/models/player.py +++ b/music_assistant/models/player.py @@ -3,7 +3,7 @@ from dataclasses import dataclass, field from datetime import datetime from enum import Enum -from typing import Any, List, Optional +from typing import Any, List from mashumaro import DataClassDictMixin from music_assistant.models.config_entry import ConfigEntry @@ -23,9 +23,9 @@ class PlayerState(Enum): class DeviceInfo(DataClassDictMixin): """Model for a player's deviceinfo.""" - model: Optional[str] = "" - address: Optional[str] = "" - manufacturer: Optional[str] = "" + model: str = "" + address: str = "" + manufacturer: str = "" class PlayerFeature(CustomIntEnum): @@ -96,5 +96,5 @@ class PlayerControl(DataClassDictMixin): type: PlayerControlType = PlayerControlType.UNKNOWN id: str = "" name: str = "" - state: Optional[Any] = None + state: Any = None set_state: Any = None diff --git a/music_assistant/models/player_queue.py b/music_assistant/models/player_queue.py index 348d766b..cd8bc41e 100755 --- a/music_assistant/models/player_queue.py +++ b/music_assistant/models/player_queue.py @@ -483,7 +483,7 @@ class PlayerQueue: "shuffle_enabled": self.shuffle_enabled, "repeat_enabled": self.repeat_enabled, "crossfade_enabled": self.crossfade_enabled, - "items": len(self.items), + "items": len(self._items), "cur_item_id": self.cur_item_id, "cur_index": self.cur_index, "next_index": self.next_index, diff --git a/music_assistant/models/streamdetails.py b/music_assistant/models/streamdetails.py index fa34426e..1333a1c3 100644 --- a/music_assistant/models/streamdetails.py +++ b/music_assistant/models/streamdetails.py @@ -2,7 +2,7 @@ from dataclasses import dataclass from enum import Enum -from typing import Any, Optional +from typing import Any from mashumaro import DataClassDictMixin @@ -37,5 +37,6 @@ class StreamDetails(DataClassDictMixin): sample_rate: int bit_depth: int player_id: str = "" - details: Optional[Any] = None - seconds_played: int = None + details: Any = None + seconds_played: int = 0 + sox_options: str = None -- 2.34.1