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
# list see the documentation:
# https://www.sphinx-doc.org/en/master/usage/configuration.html
# -- Path setup --------------------------------------------------------------
# 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
# documentation root, use os.path.abspath to make it absolute, like shown here.
@ -13,44 +11,43 @@
# import os
# import sys
# sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
project = 'librespot-python'
copyright = '2021, kokarare1212'
author = 'kokarare1212'
project = "librespot-python"
copyright = "2021, kokarare1212"
author = "kokarare1212"
# -- General configuration ---------------------------------------------------
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = ['recommonmark']
extensions = ["recommonmark"]
# 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
# directories to ignore when looking for source files.
# 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 -------------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# 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,
# relative to this directory. They are copied after the builtin static files,
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
html_static_path = ["_static"]
# -- Markdown ----------------------------------------------------------------
source_suffix = ['.rst', '.md']
source_suffix = [".rst", ".md"]
source_parsers = {
'.md': 'recommonmark.parser.CommonMarkParser',
".md": "recommonmark.parser.CommonMarkParser",
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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