[gnome-music/wip/mschraal/type-checking: 29/33] CI: Add static type checking pass
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/mschraal/type-checking: 29/33] CI: Add static type checking pass
- Date: Tue, 6 Oct 2020 09:51:35 +0000 (UTC)
commit 29b275a7547e6d0839cd75ba6b9d596bc95b7e40
Author: Marinus Schraal <mschraal gnome org>
Date: Sat May 30 14:09:44 2020 +0200
CI: Add static type checking pass
Also:
* Ignore initial propertyerrors
* Add relevant .gitignore
* Add some required types
.gitignore | 1 +
.gitlab-ci.yml | 6 ++++++
gnomemusic/artcache.py | 7 ++++++-
gnomemusic/corealbum.py | 4 ++--
gnomemusic/coreartist.py | 4 ++--
gnomemusic/coredisc.py | 2 +-
gnomemusic/coremodel.py | 2 +-
gnomemusic/coresong.py | 4 ++--
gnomemusic/grilowrappers/grltrackerplaylists.py | 4 ++--
gnomemusic/grilowrappers/grltrackerwrapper.py | 2 +-
gnomemusic/gstplayer.py | 6 +++---
gnomemusic/player.py | 2 +-
gnomemusic/scrobbler.py | 6 +++---
gnomemusic/views/artistsview.py | 2 +-
gnomemusic/views/emptyview.py | 2 +-
gnomemusic/views/searchview.py | 2 +-
gnomemusic/views/songsview.py | 2 +-
gnomemusic/widgets/artstack.py | 5 ++---
gnomemusic/widgets/headerbar.py | 6 +++---
gnomemusic/widgets/playertoolbar.py | 2 +-
gnomemusic/widgets/playlistcontrols.py | 4 ++--
gnomemusic/widgets/searchheaderbar.py | 4 ++--
gnomemusic/widgets/smoothscale.py | 2 +-
gnomemusic/widgets/songwidget.py | 6 +++---
gnomemusic/widgets/starhandlerwidget.py | 2 +-
gnomemusic/widgets/starimage.py | 4 ++--
26 files changed, 52 insertions(+), 41 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index cbbcb9ca..3ccde405 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,6 +12,7 @@ builddir/
/.dirstamp
/.gitignore
/.libs
+/.mypy_cache/*
/AUTHORS
/ABOUT-NLS
/GPATH
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a484574a..9eea22f4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -28,3 +28,9 @@ flake8:
script:
- dnf install -y python3-flake8
- flake8 --ignore E402,W503 --show-source gnomemusic/
+
+mypy:
+ stage: check
+ script:
+ - dnf install -y python3-mypy
+ - mypy --follow-imports=skip --ignore-missing-imports gnomemusic
diff --git a/gnomemusic/artcache.py b/gnomemusic/artcache.py
index 67cfebc3..d22ae44c 100644
--- a/gnomemusic/artcache.py
+++ b/gnomemusic/artcache.py
@@ -21,8 +21,10 @@
# modify this code, you may extend this exception to your version of the
# 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 enum import Enum
from math import pi
+from typing import Dict, Tuple
import cairo
from gi.repository import Gdk, GdkPixbuf, Gio, Gtk, GLib, GObject
@@ -31,6 +33,7 @@ from gnomemusic.corealbum import CoreAlbum
from gnomemusic.coreartist import CoreArtist
from gnomemusic.coresong import CoreSong
from gnomemusic.musiclogger import MusicLogger
+from gnomemusic.utils import ArtSize
def _make_icon_frame(
@@ -127,7 +130,9 @@ class DefaultIcon(GObject.GObject):
LOADING = "content-loading-symbolic"
MUSIC = "folder-music-symbolic"
- _cache = {}
+ _cache: Dict[
+ Tuple["DefaultIcon.Type", ArtSize, int, bool], cairo.Surface] = {}
+
_default_theme = Gtk.IconTheme.get_default()
def __init__(self):
diff --git a/gnomemusic/corealbum.py b/gnomemusic/corealbum.py
index 3be2f5bf..4ab1569c 100644
--- a/gnomemusic/corealbum.py
+++ b/gnomemusic/corealbum.py
@@ -118,7 +118,7 @@ class CoreAlbum(GObject.GObject):
def selected(self):
return self._selected
- @selected.setter
+ @selected.setter # type: ignore
def selected(self, value):
if value == self._selected:
return
@@ -145,7 +145,7 @@ class CoreAlbum(GObject.GObject):
return self._thumbnail
- @thumbnail.setter
+ @thumbnail.setter # type: ignore
def thumbnail(self, value):
"""Album art thumbnail setter
diff --git a/gnomemusic/coreartist.py b/gnomemusic/coreartist.py
index 036f4c17..1630d3fb 100644
--- a/gnomemusic/coreartist.py
+++ b/gnomemusic/coreartist.py
@@ -93,7 +93,7 @@ class CoreArtist(GObject.GObject):
def selected(self):
return self._selected
- @selected.setter
+ @selected.setter # type: ignore
def selected(self, value):
if value == self._selected:
return
@@ -120,7 +120,7 @@ class CoreArtist(GObject.GObject):
return self._thumbnail
- @thumbnail.setter
+ @thumbnail.setter # type: ignore
def thumbnail(self, value):
"""Artist art thumbnail setter
diff --git a/gnomemusic/coredisc.py b/gnomemusic/coredisc.py
index 4307f0ed..697089a6 100644
--- a/gnomemusic/coredisc.py
+++ b/gnomemusic/coredisc.py
@@ -113,7 +113,7 @@ class CoreDisc(GObject.GObject):
def selected(self):
return self._selected
- @selected.setter
+ @selected.setter # type: ignore
def selected(self, value):
self._selected = value
diff --git a/gnomemusic/coremodel.py b/gnomemusic/coremodel.py
index 7d8f8173..2a3f7967 100644
--- a/gnomemusic/coremodel.py
+++ b/gnomemusic/coremodel.py
@@ -311,7 +311,7 @@ class CoreModel(GObject.GObject):
"""
return self._active_core_object
- @active_core_object.setter
+ @active_core_object.setter # type: ignore
def active_core_object(self, value):
"""Set the current playing core object
(album, artist, playlist, search result or song).
diff --git a/gnomemusic/coresong.py b/gnomemusic/coresong.py
index 6099b3d5..34f6c161 100644
--- a/gnomemusic/coresong.py
+++ b/gnomemusic/coresong.py
@@ -89,7 +89,7 @@ class CoreSong(GObject.GObject):
def favorite(self):
return self._favorite
- @favorite.setter
+ @favorite.setter # type: ignore
def favorite(self, favorite):
if not self._is_tracker:
return
@@ -109,7 +109,7 @@ class CoreSong(GObject.GObject):
def selected(self):
return self._selected
- @selected.setter
+ @selected.setter # type: ignore
def selected(self, value):
if not self._is_tracker:
return
diff --git a/gnomemusic/grilowrappers/grltrackerplaylists.py b/gnomemusic/grilowrappers/grltrackerplaylists.py
index 566a6762..720c541c 100644
--- a/gnomemusic/grilowrappers/grltrackerplaylists.py
+++ b/gnomemusic/grilowrappers/grltrackerplaylists.py
@@ -325,7 +325,7 @@ class Playlist(GObject.GObject):
return self._model
- @model.setter
+ @model.setter # type: ignore
def model(self, value):
self._model = value
@@ -432,7 +432,7 @@ class Playlist(GObject.GObject):
"""
return self._title
- @title.setter
+ @title.setter # type: ignore
def title(self, new_name):
"""Rename a playlist
diff --git a/gnomemusic/grilowrappers/grltrackerwrapper.py b/gnomemusic/grilowrappers/grltrackerwrapper.py
index 96b19897..681e5998 100644
--- a/gnomemusic/grilowrappers/grltrackerwrapper.py
+++ b/gnomemusic/grilowrappers/grltrackerwrapper.py
@@ -134,7 +134,7 @@ class GrlTrackerWrapper(GObject.GObject):
def source(self):
return self._source
- @source.setter
+ @source.setter # type: ignore
def source(self, new_source):
"""Set a new grilo tracker source
diff --git a/gnomemusic/gstplayer.py b/gnomemusic/gstplayer.py
index 978a0e8d..cb248fd8 100644
--- a/gnomemusic/gstplayer.py
+++ b/gnomemusic/gstplayer.py
@@ -215,7 +215,7 @@ class GstPlayer(GObject.GObject):
"""
return self._state
- @state.setter
+ @state.setter # type: ignore
def state(self, state):
"""Set state of the player
@@ -239,7 +239,7 @@ class GstPlayer(GObject.GObject):
"""
return self._player.props.current_uri
- @url.setter
+ @url.setter # type: ignore
def url(self, url_):
"""url to load next
@@ -274,7 +274,7 @@ class GstPlayer(GObject.GObject):
# Setter provided to trigger a property signal.
# For internal use only.
- @duration.setter
+ @duration.setter # type: ignore
def duration(self, duration):
"""Set duration of current media (internal)
diff --git a/gnomemusic/player.py b/gnomemusic/player.py
index 64d29e48..bdf85daf 100644
--- a/gnomemusic/player.py
+++ b/gnomemusic/player.py
@@ -585,7 +585,7 @@ class Player(GObject.GObject):
def repeat_mode(self):
return self._repeat
- @repeat_mode.setter
+ @repeat_mode.setter # type: ignore
def repeat_mode(self, mode):
if mode == self._repeat:
return
diff --git a/gnomemusic/scrobbler.py b/gnomemusic/scrobbler.py
index 857a7580..aed95156 100644
--- a/gnomemusic/scrobbler.py
+++ b/gnomemusic/scrobbler.py
@@ -274,7 +274,7 @@ class LastFmScrobbler(GObject.GObject):
"""
return self._account_state
- @account_state.setter
+ @account_state.setter # type: ignore
def account_state(self, value):
"""Set the Last.fm account state
@@ -298,7 +298,7 @@ class LastFmScrobbler(GObject.GObject):
return (self.props.account_state == GoaLastFM.State.ENABLED
and self._report is True)
- @can_scrobble.setter
+ @can_scrobble.setter # type: ignore
def can_scrobble(self, value):
"""Set the can_scrobble status
@@ -324,7 +324,7 @@ class LastFmScrobbler(GObject.GObject):
"""Bool indicating current scrobble status"""
return self._scrobbled
- @scrobbled.setter
+ @scrobbled.setter # type: ignore
def scrobbled(self, scrobbled):
self._scrobbled = scrobbled
diff --git a/gnomemusic/views/artistsview.py b/gnomemusic/views/artistsview.py
index e7a7c1c2..7666b6ce 100644
--- a/gnomemusic/views/artistsview.py
+++ b/gnomemusic/views/artistsview.py
@@ -175,7 +175,7 @@ class ArtistsView(Gtk.Box):
"""
return self._selection_mode
- @selection_mode.setter
+ @selection_mode.setter # type: ignore
def selection_mode(self, value):
"""selection-mode setter
diff --git a/gnomemusic/views/emptyview.py b/gnomemusic/views/emptyview.py
index e82a1d21..52418f74 100644
--- a/gnomemusic/views/emptyview.py
+++ b/gnomemusic/views/emptyview.py
@@ -89,7 +89,7 @@ class EmptyView(Gtk.Stack):
"""
return self._state
- @state.setter
+ @state.setter # type: ignore
def state(self, value):
"""Set the state of the empty view
diff --git a/gnomemusic/views/searchview.py b/gnomemusic/views/searchview.py
index 5760e06e..59c98353 100644
--- a/gnomemusic/views/searchview.py
+++ b/gnomemusic/views/searchview.py
@@ -474,7 +474,7 @@ class SearchView(Gtk.Stack):
"""
return self._search_mode_active
- @search_mode_active.setter
+ @search_mode_active.setter # type: ignore
def search_mode_active(self, value):
"""Set search mode status.
diff --git a/gnomemusic/views/songsview.py b/gnomemusic/views/songsview.py
index 9eea53c0..e487a54b 100644
--- a/gnomemusic/views/songsview.py
+++ b/gnomemusic/views/songsview.py
@@ -113,7 +113,7 @@ class SongsView(Gtk.ScrolledWindow):
"""
return self._selection_mode
- @selection_mode.setter
+ @selection_mode.setter # type: ignore
def selection_mode(self, value):
"""selection-mode setter
diff --git a/gnomemusic/widgets/artstack.py b/gnomemusic/widgets/artstack.py
index eb75be93..129b67a8 100644
--- a/gnomemusic/widgets/artstack.py
+++ b/gnomemusic/widgets/artstack.py
@@ -73,7 +73,7 @@ class ArtStack(Gtk.Stack):
"""
return self._size
- @size.setter
+ @size.setter # type: ignore
def size(self, value):
"""Set the cover size
@@ -86,14 +86,13 @@ class ArtStack(Gtk.Stack):
def coreobject(self):
return self._coreobject
- @coreobject.setter
+ @coreobject.setter # type: ignore
def coreobject(self, coreobject):
if self._thumbnail_id != 0:
self._coreobject.disconnect(self._thumbnail_id)
self._thumbnail_id = 0
self._coreobject = coreobject
-
self._thumbnail_id = self._coreobject.connect(
"notify::thumbnail", self._on_thumbnail_changed)
diff --git a/gnomemusic/widgets/headerbar.py b/gnomemusic/widgets/headerbar.py
index d6b70d59..ee163963 100644
--- a/gnomemusic/widgets/headerbar.py
+++ b/gnomemusic/widgets/headerbar.py
@@ -55,7 +55,7 @@ class SelectionBarMenuButton(Gtk.MenuButton):
"""
return self._selected_songs_count
- @selected_songs_count.setter
+ @selected_songs_count.setter # type: ignore
def selected_songs_count(self, value):
"""Set the number of songs selected
@@ -157,7 +157,7 @@ class HeaderBar(Gtk.HeaderBar):
"""
return self._selection_mode
- @selection_mode.setter
+ @selection_mode.setter # type: ignore
def selection_mode(self, mode):
"""Set the selection mode
@@ -182,7 +182,7 @@ class HeaderBar(Gtk.HeaderBar):
"""
return self._state
- @state.setter
+ @state.setter # type: ignore
def state(self, value):
"""Set state of the of widget
diff --git a/gnomemusic/widgets/playertoolbar.py b/gnomemusic/widgets/playertoolbar.py
index 78eb0f46..16f7ac31 100644
--- a/gnomemusic/widgets/playertoolbar.py
+++ b/gnomemusic/widgets/playertoolbar.py
@@ -83,7 +83,7 @@ class PlayerToolbar(Gtk.ActionBar):
"""
return self._player
- @player.setter
+ @player.setter # type: ignore
def player(self, player):
"""Set the GstPlayer object used
diff --git a/gnomemusic/widgets/playlistcontrols.py b/gnomemusic/widgets/playlistcontrols.py
index c406c18f..def8b944 100644
--- a/gnomemusic/widgets/playlistcontrols.py
+++ b/gnomemusic/widgets/playlistcontrols.py
@@ -70,7 +70,7 @@ class PlaylistControls(Gtk.Grid):
"""
return self._application
- @application.setter
+ @application.setter # type: ignore
def application(self, application):
"""Set the Application object used
@@ -157,7 +157,7 @@ class PlaylistControls(Gtk.Grid):
"""
return self._playlist
- @playlist.setter
+ @playlist.setter # type: ignore
def playlist(self, new_playlist):
"""Playlist property setter.
diff --git a/gnomemusic/widgets/searchheaderbar.py b/gnomemusic/widgets/searchheaderbar.py
index 3335726b..3e05a866 100644
--- a/gnomemusic/widgets/searchheaderbar.py
+++ b/gnomemusic/widgets/searchheaderbar.py
@@ -112,7 +112,7 @@ class SearchHeaderBar(Gtk.HeaderBar):
"""
return self._selection_mode
- @selection_mode.setter
+ @selection_mode.setter # type: ignore
def selection_mode(self, mode):
"""Set the selection mode
@@ -137,7 +137,7 @@ class SearchHeaderBar(Gtk.HeaderBar):
"""
return self._state
- @state.setter
+ @state.setter # type: ignore
def state(self, value):
"""Set state of the of widget
diff --git a/gnomemusic/widgets/smoothscale.py b/gnomemusic/widgets/smoothscale.py
index 31bd85cd..d1f6d3f9 100644
--- a/gnomemusic/widgets/smoothscale.py
+++ b/gnomemusic/widgets/smoothscale.py
@@ -64,7 +64,7 @@ class SmoothScale(Gtk.Scale):
"""
return self._player
- @player.setter
+ @player.setter # type: ignore
def player(self, player):
"""Set the Player object used
diff --git a/gnomemusic/widgets/songwidget.py b/gnomemusic/widgets/songwidget.py
index 8846e876..1c494e07 100644
--- a/gnomemusic/widgets/songwidget.py
+++ b/gnomemusic/widgets/songwidget.py
@@ -234,7 +234,7 @@ class SongWidget(Gtk.EventBox):
"""
return self._selection_mode
- @selection_mode.setter
+ @selection_mode.setter # type: ignore
def selection_mode(self, value):
"""Set the selection mode
@@ -262,7 +262,7 @@ class SongWidget(Gtk.EventBox):
"""
return self._state
- @state.setter
+ @state.setter # type: ignore
def state(self, value):
"""Set state of the of widget
@@ -308,7 +308,7 @@ class SongWidget(Gtk.EventBox):
"""
return self._number_label.props.label
- @song_number.setter
+ @song_number.setter # type: ignore
def song_number(self, new_nr):
"""Set song number label from an integer
diff --git a/gnomemusic/widgets/starhandlerwidget.py b/gnomemusic/widgets/starhandlerwidget.py
index 2657237f..08df4e88 100644
--- a/gnomemusic/widgets/starhandlerwidget.py
+++ b/gnomemusic/widgets/starhandlerwidget.py
@@ -81,7 +81,7 @@ class CellRendererStar(Gtk.CellRendererPixbuf):
def show_star(self):
return self._show_star
- @show_star.setter
+ @show_star.setter # type: ignore
def show_star(self, value):
"""Set the show-star value
diff --git a/gnomemusic/widgets/starimage.py b/gnomemusic/widgets/starimage.py
index 032bf6e3..1d84ecd3 100644
--- a/gnomemusic/widgets/starimage.py
+++ b/gnomemusic/widgets/starimage.py
@@ -47,7 +47,7 @@ class StarImage(Gtk.Image):
"""
return self._favorite
- @favorite.setter
+ @favorite.setter # type: ignore
def favorite(self, value):
"""Set favorite
@@ -66,7 +66,7 @@ class StarImage(Gtk.Image):
def hover(self):
return self._hover
- @hover.setter
+ @hover.setter # type: ignore
def hover(self, value):
if value:
self.set_state_flags(Gtk.StateFlags.PRELIGHT, False)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]