From 94f1dd7786b4f802ad66a6adb45059effb99542f Mon Sep 17 00:00:00 2001
From: Yifan J <yifanj2007@gmail.com>
Date: Wed, 11 Aug 2021 16:06:56 +0800
Subject: [PATCH 2/2] Revert "coresong: Add static type annotations"

This reverts commit b710b1b66a053ef04c011adc0a566ff2a12e1f32.
---
 gnomemusic/coresong.py | 55 ++++++++++++++++++------------------------
 1 file changed, 24 insertions(+), 31 deletions(-)

diff --git a/gnomemusic/coresong.py b/gnomemusic/coresong.py
index 862cb66a..8365d6be 100644
--- a/gnomemusic/coresong.py
+++ b/gnomemusic/coresong.py
@@ -22,20 +22,13 @@
 # code, but you are not obligated to do so.  If you do not wish to do so,
 # delete this exception statement from your version.
 
-from __future__ import annotations
 from enum import IntEnum
-from typing import Optional
-import typing
 
 import gi
 gi.require_version('Grl', '0.3')
 from gi.repository import Grl, GLib, GObject
 
 from gnomemusic.songart import SongArt
-if typing.TYPE_CHECKING:
-    from gnomemusic.application import Application
-    from gnomemusic.coregrilo import CoreGrilo
-    from gnomemusic.coreselection import CoreSelection
 import gnomemusic.utils as utils
 
 
@@ -58,12 +51,12 @@ class CoreSong(GObject.GObject):
 
     class Validation(IntEnum):
         """Enum for song validation"""
-        PENDING: int = 0
-        IN_PROGRESS: int = 1
-        FAILED: int = 2
-        SUCCEEDED: int = 3
+        PENDING = 0
+        IN_PROGRESS = 1
+        FAILED = 2
+        SUCCEEDED = 3
 
-    def __init__(self, application: Application, media: Grl.Media) -> None:
+    def __init__(self, application, media):
         """Initiate the CoreSong object
 
         :param Application application: The application object
@@ -71,40 +64,40 @@ class CoreSong(GObject.GObject):
         """
         super().__init__()
 
-        self._application: Application = application
-        self._coregrilo: CoreGrilo = application.props.coregrilo
-        self._coreselection: CoreSelection = application.props.coreselection
-        self._favorite: bool = False
-        self._selected: bool = False
-        self._thumbnail: Optional[str] = None
+        self._application = application
+        self._coregrilo = application.props.coregrilo
+        self._coreselection = application.props.coreselection
+        self._favorite = False
+        self._selected = False
+        self._thumbnail = None
 
         self.props.grlid = media.get_source() + media.get_id()
-        self._is_tracker: bool = media.get_source() == "grl-tracker3-source"
+        self._is_tracker = media.get_source() == "grl-tracker3-source"
         self.props.validation = CoreSong.Validation.PENDING
         self.update(media)
 
-    def __eq__(self, other: object) -> bool:
+    def __eq__(self, other):
         return (isinstance(other, CoreSong)
                 and other.props.media.get_id() == self.props.media.get_id())
 
     @GObject.Property(
         type=bool, default=False, flags=GObject.ParamFlags.READABLE)
-    def is_tracker(self) -> bool:
+    def is_tracker(self):
         return self._is_tracker
 
     @GObject.Property(type=bool, default=False)
-    def favorite(self) -> bool:
+    def favorite(self):
         return self._favorite
 
     @favorite.setter  # type: ignore
-    def favorite(self, favorite: bool) -> None:
+    def favorite(self, favorite):
         if not self._is_tracker:
             return
 
         self._favorite = favorite
 
         # FIXME: Circular trigger, can probably be solved more neatly.
-        old_fav: bool = self.props.media.get_favourite()
+        old_fav = self.props.media.get_favourite()
         if old_fav == self._favorite:
             return
 
@@ -113,11 +106,11 @@ class CoreSong(GObject.GObject):
             self.props.media, "favorite")
 
     @GObject.Property(type=bool, default=False)
-    def selected(self) -> bool:
+    def selected(self):
         return self._selected
 
     @selected.setter  # type: ignore
-    def selected(self, value: bool) -> None:
+    def selected(self, value):
         if not self._is_tracker:
             return
 
@@ -128,7 +121,7 @@ class CoreSong(GObject.GObject):
         self._coreselection.update_selection(self, self._selected)
 
     @GObject.Property(type=str, default=None)
-    def thumbnail(self) -> str:
+    def thumbnail(self):
         """Song art thumbnail retrieval
 
         :return: The song art uri or "generic" or "loading"
@@ -141,14 +134,14 @@ class CoreSong(GObject.GObject):
         return self._thumbnail
 
     @thumbnail.setter  # type: ignore
-    def thumbnail(self, value: str) -> None:
+    def thumbnail(self, value):
         """Song art thumbnail setter
 
         :param string value: uri, "generic" or "loading"
         """
         self._thumbnail = value
 
-    def update(self, media: Grl.Media) -> None:
+    def update(self, media):
         self.props.media = media
         self.props.album = utils.get_album_title(media)
         self.props.album_disc_number = media.get_album_disc_number()
@@ -160,7 +153,7 @@ class CoreSong(GObject.GObject):
         self.props.track_number = media.get_track_number()
         self.props.url = media.get_url()
 
-    def bump_play_count(self) -> None:
+    def bump_play_count(self):
         if not self._is_tracker:
             return
 
@@ -168,7 +161,7 @@ class CoreSong(GObject.GObject):
         self._coregrilo.writeback_tracker(
             self.props.media, "play-count")
 
-    def set_last_played(self) -> None:
+    def set_last_played(self):
         if not self._is_tracker:
             return
 
-- 
2.31.1

