Merge pull request #5 from kokarare1212/restyled/deepsource-transform-696db435

Restyle Format code with yapf
This commit is contained in:
こうから 2021-04-10 08:18:37 +09:00 committed by GitHub
commit 0d0c4e8506
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 86 additions and 53 deletions

View File

@ -3,9 +3,7 @@
# This file only contains a selection of the most common options. For a full # This file only contains a selection of the most common options. For a full
# list see the documentation: # list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html # https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup -------------------------------------------------------------- # -- Path setup --------------------------------------------------------------
# If extensions (or modules to document with autodoc) are in another directory, # If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the # add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here. # documentation root, use os.path.abspath to make it absolute, like shown here.
@ -13,44 +11,43 @@
# import os # import os
# import sys # import sys
# sys.path.insert(0, os.path.abspath('.')) # sys.path.insert(0, os.path.abspath('.'))
# -- Project information ----------------------------------------------------- # -- Project information -----------------------------------------------------
project = 'librespot-python' project = "librespot-python"
copyright = '2021, kokarare1212' copyright = "2021, kokarare1212"
author = 'kokarare1212' author = "kokarare1212"
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be # Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones. # ones.
extensions = ['recommonmark'] extensions = ["recommonmark"]
# Add any paths that contain templates here, relative to this directory. # Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates'] templates_path = ["_templates"]
# List of patterns, relative to source directory, that match files and # List of patterns, relative to source directory, that match files and
# directories to ignore when looking for source files. # directories to ignore when looking for source files.
# This pattern also affects html_static_path and html_extra_path. # This pattern also affects html_static_path and html_extra_path.
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"]
# -- Options for HTML output ------------------------------------------------- # -- Options for HTML output -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for # The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes. # a list of builtin themes.
# #
html_theme = 'sphinx_rtd_theme' html_theme = "sphinx_rtd_theme"
# Add any paths that contain custom static files (such as style sheets) here, # Add any paths that contain custom static files (such as style sheets) here,
# relative to this directory. They are copied after the builtin static files, # relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css". # so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static'] html_static_path = ["_static"]
# -- Markdown ---------------------------------------------------------------- # -- Markdown ----------------------------------------------------------------
source_suffix = ['.rst', '.md'] source_suffix = [".rst", ".md"]
source_parsers = { source_parsers = {
'.md': 'recommonmark.parser.CommonMarkParser', ".md": "recommonmark.parser.CommonMarkParser",
} }

View File

@ -1,9 +1,11 @@
from __future__ import annotations from __future__ import annotations
from librespot.common import Base62, Utils
from librespot.metadata import SpotifyId
import re import re
from librespot.common import Base62
from librespot.common import Utils
from librespot.metadata import SpotifyId
class AlbumId(SpotifyId.SpotifyId): class AlbumId(SpotifyId.SpotifyId):
_PATTERN = re.compile(r"spotify:album:(.{22})") _PATTERN = re.compile(r"spotify:album:(.{22})")

View File

@ -1,8 +1,11 @@
from __future__ import annotations from __future__ import annotations
from librespot.common import Base62, Utils
from librespot.metadata import SpotifyId
import re import re
from librespot.common import Base62
from librespot.common import Utils
from librespot.metadata import SpotifyId
class ArtistId(SpotifyId.SpotifyId): class ArtistId(SpotifyId.SpotifyId):
_PATTERN = re.compile("spotify:artist:(.{22})") _PATTERN = re.compile("spotify:artist:(.{22})")

View File

@ -1,8 +1,11 @@
from __future__ import annotations from __future__ import annotations
from librespot.common import Base62, Utils
from librespot.metadata import SpotifyId
import re import re
from librespot.common import Base62
from librespot.common import Utils
from librespot.metadata import SpotifyId
class ShowId(SpotifyId.SpotifyId): class ShowId(SpotifyId.SpotifyId):
_PATTERN = re.compile("spotify:show:(.{22})") _PATTERN = re.compile("spotify:show:(.{22})")

View File

@ -1,8 +1,10 @@
from __future__ import annotations from __future__ import annotations
import re
from librespot.common import Utils from librespot.common import Utils
from librespot.metadata import SpotifyId from librespot.metadata import SpotifyId
from librespot.metadata.PlayableId import PlayableId from librespot.metadata.PlayableId import PlayableId
import re
class TrackId(PlayableId, SpotifyId): class TrackId(PlayableId, SpotifyId):

View File

@ -1,14 +1,17 @@
from __future__ import annotations from __future__ import annotations
import logging
import sched
import time
from librespot.core.Session import Session from librespot.core.Session import Session
from librespot.player import PlayerConfiguration, StateWrapper from librespot.player import PlayerConfiguration
from librespot.player import StateWrapper
from librespot.player.metrics import PlaybackMetrics from librespot.player.metrics import PlaybackMetrics
from librespot.player.mixing import AudioSink from librespot.player.mixing import AudioSink
from librespot.player.playback.PlayerSession import PlayerSession from librespot.player.playback.PlayerSession import PlayerSession
from librespot.player.state.DeviceStateHandler import DeviceStateHandler from librespot.player.state.DeviceStateHandler import DeviceStateHandler
from librespot.standard.Closeable import Closeable from librespot.standard.Closeable import Closeable
import logging
import sched
import time
class Player(Closeable, PlayerSession.Listener, AudioSink.Listener): class Player(Closeable, PlayerSession.Listener, AudioSink.Listener):
@ -46,8 +49,11 @@ class Player(Closeable, PlayerSession.Listener, AudioSink.Listener):
def ready(self) -> None: def ready(self) -> None:
pass pass
def command(self, endpoint: DeviceStateHandler.Endpoint, def command(
data: DeviceStateHandler.CommandBody) -> None: self,
endpoint: DeviceStateHandler.Endpoint,
data: DeviceStateHandler.CommandBody,
) -> None:
self._player._LOGGER.debug( self._player._LOGGER.debug(
"Received command: {}".format(endpoint)) "Received command: {}".format(endpoint))

View File

@ -1,10 +1,15 @@
from __future__ import annotations from __future__ import annotations
from librespot.core import Session from librespot.core import Session
from librespot.dealer import DealerClient from librespot.dealer import DealerClient
from librespot.player import Player, PlayerConfiguration from librespot.player import Player
from librespot.player import PlayerConfiguration
from librespot.player.state import DeviceStateHandler from librespot.player.state import DeviceStateHandler
from librespot.proto import Connect from librespot.proto import Connect
from librespot.proto.Player import ContextPlayerOptions, PlayerState, Restrictions, Suppressions from librespot.proto.Player import ContextPlayerOptions
from librespot.proto.Player import PlayerState
from librespot.proto.Player import Restrictions
from librespot.proto.Player import Suppressions
class StateWrapper(DeviceStateHandler.Listener, DealerClient.MessageListener): class StateWrapper(DeviceStateHandler.Listener, DealerClient.MessageListener):
@ -22,20 +27,24 @@ class StateWrapper(DeviceStateHandler.Listener, DealerClient.MessageListener):
self._device.add_listener(self) self._device.add_listener(self)
self._session.dealer().add_message_listener( self._session.dealer().add_message_listener(
self, "spotify:user:attributes:update", "hm://playlist/", self,
"hm://collection/collection/" + self._session.username() + "/json") "spotify:user:attributes:update",
"hm://playlist/",
"hm://collection/collection/" + self._session.username() + "/json",
)
def _init_state(self) -> PlayerState: def _init_state(self) -> PlayerState:
return PlayerState(playback_speed=1.0, return PlayerState(
suppressions=Suppressions(), playback_speed=1.0,
context_restrictions=Restrictions(), suppressions=Suppressions(),
options=ContextPlayerOptions( context_restrictions=Restrictions(),
repeating_context=False, options=ContextPlayerOptions(repeating_context=False,
shuffling_context=False, shuffling_context=False,
repeating_track=False), repeating_track=False),
position_as_of_timestamp=0, position_as_of_timestamp=0,
position=0, position=0,
is_playing=False) is_playing=False,
)
def add_listener(self, listener: DeviceStateHandler.Listener): def add_listener(self, listener: DeviceStateHandler.Listener):
self._device.add_listener(listener) self._device.add_listener(listener)

View File

@ -1,4 +1,5 @@
from __future__ import annotations from __future__ import annotations
from librespot.player import PlayerConfiguration from librespot.player import PlayerConfiguration

View File

@ -1,8 +1,5 @@
from __future__ import annotations from __future__ import annotations
from librespot.common import Utils
from librespot.core import Session
from librespot.player import PlayerConfiguration
from librespot.proto import Connect, Player
import base64 import base64
import concurrent.futures import concurrent.futures
import enum import enum
@ -11,6 +8,12 @@ import time
import typing import typing
import urllib.parse import urllib.parse
from librespot.common import Utils
from librespot.core import Session
from librespot.player import PlayerConfiguration
from librespot.proto import Connect
from librespot.proto import Player
class DeviceStateHandler: class DeviceStateHandler:
_LOGGER: logging = logging.getLogger(__name__) _LOGGER: logging = logging.getLogger(__name__)
@ -18,8 +21,8 @@ class DeviceStateHandler:
_deviceInfo: Connect.DeviceInfo = None _deviceInfo: Connect.DeviceInfo = None
_listeners: list[DeviceStateHandler.Listener] = list() _listeners: list[DeviceStateHandler.Listener] = list()
_putState: Connect.PutStateRequest = None _putState: Connect.PutStateRequest = None
_putStateWorker: concurrent.futures.ThreadPoolExecutor = concurrent.futures.ThreadPoolExecutor( _putStateWorker: concurrent.futures.ThreadPoolExecutor = (
) concurrent.futures.ThreadPoolExecutor())
_connectionId: str = None _connectionId: str = None
def __init__(self, session: Session, player, conf: PlayerConfiguration): def __init__(self, session: Session, player, conf: PlayerConfiguration):
@ -30,8 +33,7 @@ class DeviceStateHandler:
def _update_connection_id(self, newer: str) -> None: def _update_connection_id(self, newer: str) -> None:
newer = urllib.parse.unquote(newer, "UTF-8") newer = urllib.parse.unquote(newer, "UTF-8")
if self._connectionId is None or \ if self._connectionId is None or self._connectionId != newer:
self._connectionId != newer:
self._connectionId = newer self._connectionId = newer
self._LOGGER.debug("Updated Spotify-Connection-Id: {}".format( self._LOGGER.debug("Updated Spotify-Connection-Id: {}".format(
self._connectionId)) self._connectionId))
@ -44,8 +46,12 @@ class DeviceStateHandler:
for listener in self._listeners: for listener in self._listeners:
listener.ready() listener.ready()
def update_state(self, reason: Connect.PutStateReason, player_time: int, def update_state(
state: Player.PlayerState): self,
reason: Connect.PutStateReason,
player_time: int,
state: Player.PlayerState,
):
if self._connectionId is None: if self._connectionId is None:
raise TypeError() raise TypeError()
@ -66,7 +72,8 @@ class DeviceStateHandler:
self._LOGGER.info("Put state. ts: {}, connId: {}, reason: {}".format( self._LOGGER.info("Put state. ts: {}, connId: {}, reason: {}".format(
req.client_side_timestamp, req.client_side_timestamp,
Utils.truncate_middle(self._connectionId, 10), Utils.truncate_middle(self._connectionId, 10),
req.put_state_reason)) req.put_state_reason,
))
class Endpoint(enum.Enum): class Endpoint(enum.Enum):
Play: str = "play" Play: str = "play"
@ -80,8 +87,11 @@ class DeviceStateHandler:
def ready(self) -> None: def ready(self) -> None:
pass pass
def command(self, endpoint: DeviceStateHandler.Endpoint, def command(
data: DeviceStateHandler.CommandBody) -> None: self,
endpoint: DeviceStateHandler.Endpoint,
data: DeviceStateHandler.CommandBody,
) -> None:
pass pass
def volume_changed(self) -> None: def volume_changed(self) -> None: