diff --git a/bin/gpodder b/bin/gpodder
index 3e9b3ed9..a070a1b1 100755
--- a/bin/gpodder
+++ b/bin/gpodder
@@ -39,7 +39,6 @@ logger = logging.getLogger(__name__)
try:
import dbus
- from dbus.mainloop.glib import DBusGMainLoop
have_dbus = True
except ImportError:
print("""
diff --git a/bin/gpodder-migrate2tres b/bin/gpodder-migrate2tres
index e300e151..e3aaddaa 100755
--- a/bin/gpodder-migrate2tres
+++ b/bin/gpodder-migrate2tres
@@ -26,7 +26,6 @@
import configparser
import os
-import re
import shutil
import sys
diff --git a/setup.py b/setup.py
index f42a07c9..050be572 100644
--- a/setup.py
+++ b/setup.py
@@ -18,7 +18,6 @@
# along with this program. If not, see .
#
-import glob
import os
import re
import sys
diff --git a/share/gpodder/extensions/command_on_download.py b/share/gpodder/extensions/command_on_download.py
index 51374d9c..4ce2d1b8 100644
--- a/share/gpodder/extensions/command_on_download.py
+++ b/share/gpodder/extensions/command_on_download.py
@@ -6,7 +6,6 @@
import datetime
import logging
import os
-import subprocess
import gpodder
from gpodder import util
diff --git a/share/gpodder/extensions/concatenate_videos.py b/share/gpodder/extensions/concatenate_videos.py
index 34561621..3167854d 100644
--- a/share/gpodder/extensions/concatenate_videos.py
+++ b/share/gpodder/extensions/concatenate_videos.py
@@ -5,7 +5,6 @@
import logging
import os
-import subprocess
from gi.repository import Gtk
diff --git a/share/gpodder/extensions/enqueue_in_mediaplayer.py b/share/gpodder/extensions/enqueue_in_mediaplayer.py
index d8ad66ff..5673ae87 100644
--- a/share/gpodder/extensions/enqueue_in_mediaplayer.py
+++ b/share/gpodder/extensions/enqueue_in_mediaplayer.py
@@ -5,7 +5,6 @@
# Released under the same license terms as gPodder itself.
import functools
import logging
-import subprocess
import gpodder
from gpodder import util
diff --git a/share/gpodder/extensions/notification-win32.py b/share/gpodder/extensions/notification-win32.py
index d1d8151c..c99f3796 100644
--- a/share/gpodder/extensions/notification-win32.py
+++ b/share/gpodder/extensions/notification-win32.py
@@ -44,11 +44,6 @@ import tempfile
import gpodder
-import gi # isort:skip
-gi.require_version('Gtk', '3.0') # isort:skip
-from gi.repository import Gtk # isort:skip
-
-
logger = logging.getLogger(__name__)
_ = gpodder.gettext
diff --git a/share/gpodder/extensions/tagging.py b/share/gpodder/extensions/tagging.py
index 0e0697c4..bfcd6d04 100644
--- a/share/gpodder/extensions/tagging.py
+++ b/share/gpodder/extensions/tagging.py
@@ -26,7 +26,6 @@ import base64
import datetime
import logging
import mimetypes
-import os
from mutagen import File
from mutagen.easyid3 import EasyID3
diff --git a/share/gpodder/extensions/taskbar_progress.py b/share/gpodder/extensions/taskbar_progress.py
index 63195ffa..93d56f78 100644
--- a/share/gpodder/extensions/taskbar_progress.py
+++ b/share/gpodder/extensions/taskbar_progress.py
@@ -32,6 +32,7 @@ from comtypes import COMMETHOD, GUID, IUnknown, client, wireHWND
import gpodder
import gi # isort:skip
+gi.require_version('Gtk', '3.0')
from gi.repository import Gtk # isort:skip
diff --git a/share/gpodder/extensions/ubuntu_unity.py b/share/gpodder/extensions/ubuntu_unity.py
index ffe12162..22b8dbfb 100644
--- a/share/gpodder/extensions/ubuntu_unity.py
+++ b/share/gpodder/extensions/ubuntu_unity.py
@@ -4,12 +4,8 @@
# Thomas Perl ; 2012-02-06
import logging
-import os
-import subprocess
-import sys
import gpodder
-from gpodder import util
import gi # isort:skip
gi.require_version('Unity', '7.0') # isort:skip
diff --git a/share/gpodder/extensions/video_converter.py b/share/gpodder/extensions/video_converter.py
index 363bc34f..d1230e9f 100644
--- a/share/gpodder/extensions/video_converter.py
+++ b/share/gpodder/extensions/video_converter.py
@@ -11,7 +11,7 @@ import os
import subprocess
import gpodder
-from gpodder import util, youtube
+from gpodder import util
logger = logging.getLogger(__name__)
diff --git a/src/gpodder/dbsqlite.py b/src/gpodder/dbsqlite.py
index 94fc17a8..c6f7686c 100644
--- a/src/gpodder/dbsqlite.py
+++ b/src/gpodder/dbsqlite.py
@@ -25,8 +25,6 @@
#
import logging
-import re
-import sys
import threading
from sqlite3 import dbapi2 as sqlite
diff --git a/src/gpodder/directory.py b/src/gpodder/directory.py
index b092e03f..e2ff7091 100644
--- a/src/gpodder/directory.py
+++ b/src/gpodder/directory.py
@@ -23,8 +23,6 @@
# Thomas Perl ; 2014-10-22
#
-import json
-import os
import urllib.error
import urllib.parse
import urllib.request
diff --git a/src/gpodder/download.py b/src/gpodder/download.py
index f26a5d80..fa6323ab 100644
--- a/src/gpodder/download.py
+++ b/src/gpodder/download.py
@@ -25,15 +25,12 @@
# Based on libwget.py (2005-10-29)
#
-import collections
-import email
import glob
import logging
import mimetypes
import os
import os.path
import shutil
-import socket
import threading
import time
import urllib.error
diff --git a/src/gpodder/extensions.py b/src/gpodder/extensions.py
index 0509387d..d7e8e666 100644
--- a/src/gpodder/extensions.py
+++ b/src/gpodder/extensions.py
@@ -32,15 +32,9 @@ For an example extension see share/gpodder/examples/extensions.py
import functools
import glob
import imp
-import inspect
-import json
import logging
import os
import re
-import shlex
-import subprocess
-import sys
-from datetime import datetime
import gpodder
from gpodder import util
@@ -414,7 +408,6 @@ class ExtensionManager(object):
@param update_podcast_callback: Function to update a podcast feed
@param download_episode_callback: Function to download an episode
"""
- pass
@call_extensions
def on_podcast_subscribe(self, podcast):
@@ -422,7 +415,6 @@ class ExtensionManager(object):
@param podcast: A gpodder.model.PodcastChannel instance
"""
- pass
@call_extensions
def on_podcast_updated(self, podcast):
@@ -432,7 +424,6 @@ class ExtensionManager(object):
@param podcast: A gpodder.model.PodcastChannel instance
"""
- pass
@call_extensions
def on_podcast_update_failed(self, podcast, exception):
@@ -442,7 +433,6 @@ class ExtensionManager(object):
@param exception: The reason.
"""
- pass
@call_extensions
def on_podcast_save(self, podcast):
@@ -453,7 +443,6 @@ class ExtensionManager(object):
@param podcast: A gpodder.model.PodcastChannel instance
"""
- pass
@call_extensions
def on_podcast_delete(self, podcast):
@@ -461,7 +450,6 @@ class ExtensionManager(object):
@param podcast: A gpodder.model.PodcastChannel instance
"""
- pass
@call_extensions
def on_episode_playback(self, episode):
@@ -472,7 +460,6 @@ class ExtensionManager(object):
@param episode: A gpodder.model.PodcastEpisode instance
"""
- pass
@call_extensions
def on_episode_save(self, episode):
@@ -483,7 +470,6 @@ class ExtensionManager(object):
@param episode: A gpodder.model.PodcastEpisode instance
"""
- pass
@call_extensions
def on_episode_downloaded(self, episode):
@@ -493,13 +479,11 @@ class ExtensionManager(object):
@param episode: A gpodder.model.PodcastEpisode instance
"""
- pass
@call_extensions
def on_all_episodes_downloaded(self):
"""Called when all episodes has been downloaded
"""
- pass
@call_extensions
def on_episode_synced(self, device, episode):
@@ -515,7 +499,6 @@ class ExtensionManager(object):
@param device: A gpodder.sync.Device instance
@param episode: A gpodder.model.PodcastEpisode instance
"""
- pass
@call_extensions
def on_create_menu(self):
@@ -529,7 +512,6 @@ class ExtensionManager(object):
[('Sync to Smartphone', lambda : ...)]
"""
- pass
@call_extensions
def on_episodes_context_menu(self, episodes):
@@ -546,7 +528,6 @@ class ExtensionManager(object):
@param episodes: A list of gpodder.model.PodcastEpisode instances
"""
- pass
@call_extensions
def on_channel_context_menu(self, channel):
@@ -561,13 +542,11 @@ class ExtensionManager(object):
[('Update channel', lambda channel: ...)]
@param channel: A gpodder.model.PodcastChannel instance
"""
- pass
@call_extensions
def on_episode_delete(self, episode, filename):
"""Called just before the episode's disk file is about to be
deleted."""
- pass
@call_extensions
def on_episode_removed_from_podcast(self, episode):
@@ -577,7 +556,6 @@ class ExtensionManager(object):
@param podcast: A gpodder.model.PodcastChannel instance
"""
- pass
@call_extensions
def on_notification_show(self, title, message):
@@ -586,7 +564,6 @@ class ExtensionManager(object):
@param title: title of the notification
@param message: message of the notification
"""
- pass
@call_extensions
def on_download_progress(self, progress):
@@ -594,7 +571,6 @@ class ExtensionManager(object):
@param progress: The current progress value (0..1)
"""
- pass
@call_extensions
def on_ui_object_available(self, name, ui_object):
@@ -606,7 +582,6 @@ class ExtensionManager(object):
@param name: The name/ID of the object
@param ui_object: The object itself
"""
- pass
@call_extensions
def on_application_started(self):
@@ -619,7 +594,6 @@ class ExtensionManager(object):
It is called after on_ui_object_available and on_ui_initialized.
"""
- pass
@call_extensions
def on_find_partial_downloads_done(self):
@@ -630,7 +604,6 @@ class ExtensionManager(object):
It is called after on_application_started.
"""
- pass
@call_extensions
def on_preferences(self):
@@ -644,7 +617,6 @@ class ExtensionManager(object):
[('Tab name', lambda: ...)]
"""
- pass
@call_extensions
def on_channel_settings(self, channel):
@@ -661,4 +633,3 @@ class ExtensionManager(object):
@param channel: A gpodder.model.PodcastChannel instance
"""
- pass
diff --git a/src/gpodder/feedcore.py b/src/gpodder/feedcore.py
index 2563aa32..c8457965 100644
--- a/src/gpodder/feedcore.py
+++ b/src/gpodder/feedcore.py
@@ -27,8 +27,6 @@ import urllib.parse
from html.parser import HTMLParser
from io import BytesIO
-from requests.exceptions import RequestException
-
from gpodder import util, youtube
logger = logging.getLogger(__name__)
diff --git a/src/gpodder/gtkui/base.py b/src/gpodder/gtkui/base.py
index b1f91fbe..25cf3f3e 100644
--- a/src/gpodder/gtkui/base.py
+++ b/src/gpodder/gtkui/base.py
@@ -22,7 +22,6 @@ Based on SimpleGladeApp.py Copyright (C) 2004 Sandino Flores Moreno
import os
import re
-import sys
import tokenize
from gi.repository import Gtk
@@ -103,7 +102,6 @@ class GtkBuilderWidget(object):
Method called when the user interface is loaded and ready to be used.
At this moment, the widgets are loaded and can be refered as self.widget_name
"""
- pass
def main(self):
"""
@@ -149,4 +147,3 @@ class GtkBuilderWidget(object):
This method is called by the default implementation of run()
after a program is finished by pressing Control-C.
"""
- pass
diff --git a/src/gpodder/gtkui/desktop/exportlocal.py b/src/gpodder/gtkui/desktop/exportlocal.py
index 973b21aa..3f8f96f9 100644
--- a/src/gpodder/gtkui/desktop/exportlocal.py
+++ b/src/gpodder/gtkui/desktop/exportlocal.py
@@ -18,10 +18,7 @@
#
import os
-from gi.repository import Gtk, Pango
-
import gpodder
-from gpodder import util
from gpodder.gtkui.interface.common import BuilderWidget
_ = gpodder.gettext
diff --git a/src/gpodder/gtkui/desktop/preferences.py b/src/gpodder/gtkui/desktop/preferences.py
index b19108ef..edbb16e1 100644
--- a/src/gpodder/gtkui/desktop/preferences.py
+++ b/src/gpodder/gtkui/desktop/preferences.py
@@ -19,7 +19,6 @@
import html
import logging
-import urllib.parse
from gi.repository import Gdk, Gtk, Pango
diff --git a/src/gpodder/gtkui/desktopfile.py b/src/gpodder/gtkui/desktopfile.py
index 3b937083..19ba597d 100644
--- a/src/gpodder/gtkui/desktopfile.py
+++ b/src/gpodder/gtkui/desktopfile.py
@@ -169,7 +169,6 @@ class UserAppsReader(object):
self.__has_read = True
if gpodder.ui.win32:
- import winreg
for caption, types, hkey in WIN32_APP_REG_KEYS:
try:
cmdline = win32_read_registry_key(hkey)
diff --git a/src/gpodder/gtkui/draw.py b/src/gpodder/gtkui/draw.py
index 7a97f19b..f6afa428 100644
--- a/src/gpodder/gtkui/draw.py
+++ b/src/gpodder/gtkui/draw.py
@@ -28,8 +28,6 @@ import math
import cairo
-import gpodder
-
import gi # isort:skip
gi.require_version('Gdk', '3.0') # isort:skip
gi.require_version('Gtk', '3.0') # isort:skip
diff --git a/src/gpodder/gtkui/interface/common.py b/src/gpodder/gtkui/interface/common.py
index 48889f27..17adafe9 100644
--- a/src/gpodder/gtkui/interface/common.py
+++ b/src/gpodder/gtkui/interface/common.py
@@ -18,7 +18,6 @@
#
import os
-import shutil
from gi.repository import Gdk, Gtk
diff --git a/src/gpodder/gtkui/main.py b/src/gpodder/gtkui/main.py
index 19514007..7a00279c 100644
--- a/src/gpodder/gtkui/main.py
+++ b/src/gpodder/gtkui/main.py
@@ -34,8 +34,7 @@ import requests.exceptions
import urllib3.exceptions
import gpodder
-from gpodder import (common, download, extensions, feedcore, my, opml, player,
- util, youtube)
+from gpodder import common, download, feedcore, my, opml, player, util, youtube
from gpodder.dbusproxy import DBusPodcastsProxy
from gpodder.model import Model, PodcastEpisode
from gpodder.syncui import gPodderSyncUI
@@ -59,7 +58,7 @@ from .services import CoverDownloader
import gi # isort:skip
gi.require_version('Gtk', '3.0') # isort:skip
-from gi.repository import Gdk, GdkPixbuf, Gio, GLib, Gtk, Pango # isort:skip
+from gi.repository import Gdk, Gio, GLib, Gtk, Pango # isort:skip
logger = logging.getLogger(__name__)
diff --git a/src/gpodder/gtkui/services.py b/src/gpodder/gtkui/services.py
index 2147c6ff..8ac25465 100644
--- a/src/gpodder/gtkui/services.py
+++ b/src/gpodder/gtkui/services.py
@@ -25,7 +25,7 @@
import logging
-from gi.repository import GdkPixbuf, Gtk
+from gi.repository import GdkPixbuf
import gpodder
from gpodder import coverart, util
diff --git a/src/gpodder/gtkui/shownotes.py b/src/gpodder/gtkui/shownotes.py
index a08aa975..a906e835 100644
--- a/src/gpodder/gtkui/shownotes.py
+++ b/src/gpodder/gtkui/shownotes.py
@@ -18,7 +18,6 @@
#
import html
import logging
-import re
from urllib.parse import urlparse
import gpodder
diff --git a/src/gpodder/gtkui/widgets.py b/src/gpodder/gtkui/widgets.py
index 9ff30f1e..70f7e2dc 100644
--- a/src/gpodder/gtkui/widgets.py
+++ b/src/gpodder/gtkui/widgets.py
@@ -23,9 +23,8 @@
# Thomas Perl 2009-03-31
#
-import html
-from gi.repository import Gdk, GObject, Gtk, Pango
+from gi.repository import Gtk
class SpinningProgressIndicator(Gtk.Image):
diff --git a/src/gpodder/libgpod_ctypes.py b/src/gpodder/libgpod_ctypes.py
index f900c580..f0ee9219 100644
--- a/src/gpodder/libgpod_ctypes.py
+++ b/src/gpodder/libgpod_ctypes.py
@@ -28,7 +28,6 @@
import ctypes
import logging
import os
-import struct
logger = logging.getLogger(__name__)
diff --git a/src/gpodder/model.py b/src/gpodder/model.py
index 3f3447c2..a3290383 100644
--- a/src/gpodder/model.py
+++ b/src/gpodder/model.py
@@ -24,7 +24,6 @@
# Based on libpodcasts.py (thp, 2005-10-29)
#
-import collections
import datetime
import glob
import hashlib
diff --git a/src/gpodder/opml.py b/src/gpodder/opml.py
index 75e69df4..d7e03d16 100644
--- a/src/gpodder/opml.py
+++ b/src/gpodder/opml.py
@@ -38,7 +38,6 @@ import io
import logging
import os
import os.path
-import shutil
import xml.dom.minidom
from email.utils import formatdate
diff --git a/src/gpodder/plugins/soundcloud.py b/src/gpodder/plugins/soundcloud.py
index 831f0538..c4fef651 100644
--- a/src/gpodder/plugins/soundcloud.py
+++ b/src/gpodder/plugins/soundcloud.py
@@ -20,7 +20,6 @@
# Soundcloud.com API client module for gPodder
# Thomas Perl ; 2009-11-03
-import email
import json
import logging
import os
diff --git a/src/gpodder/sync.py b/src/gpodder/sync.py
index d75e859e..20b6610b 100644
--- a/src/gpodder/sync.py
+++ b/src/gpodder/sync.py
@@ -23,15 +23,10 @@
# based on libipodsync.py (2006-04-05 Thomas Perl)
# Ported to gPodder 3 by Joseph Wickremasinghe in June 2012
-import calendar
-import glob
import logging
import os.path
import threading
import time
-from enum import Enum
-from re import S
-from urllib.parse import urlparse
import gpodder
from gpodder import download, services, util
diff --git a/src/gpodder/syncui.py b/src/gpodder/syncui.py
index 04ce0741..b5ef8f71 100644
--- a/src/gpodder/syncui.py
+++ b/src/gpodder/syncui.py
@@ -22,7 +22,6 @@
# Ported to gPodder 3 by Joseph Wickremasinghe in June 2012
import logging
-import os
import gpodder
from gpodder import sync, util
diff --git a/src/gpodder/util.py b/src/gpodder/util.py
index 936a2901..3604ab49 100644
--- a/src/gpodder/util.py
+++ b/src/gpodder/util.py
@@ -33,11 +33,8 @@ import collections
import datetime
import email
import glob
-import gzip
import http.client
-import io
import itertools
-import json
import locale
import logging
import mimetypes
@@ -57,7 +54,6 @@ import time
import urllib.error
import urllib.parse
import webbrowser
-import xml.dom.minidom
from html.entities import entitydefs, name2codepoint
from html.parser import HTMLParser
@@ -2373,7 +2369,6 @@ def mount_volume_for_file(file, op=None):
def scale_pixbuf(pixbuf, max):
- import gi
from gi.repository import GdkPixbuf
w_cur = pixbuf.get_width()
diff --git a/src/gpodder/utilwin32ctypes.py b/src/gpodder/utilwin32ctypes.py
index 3e5ded3c..ca6d48f6 100644
--- a/src/gpodder/utilwin32ctypes.py
+++ b/src/gpodder/utilwin32ctypes.py
@@ -20,7 +20,7 @@
import ctypes
from ctypes import HRESULT, Structure, byref, c_ulonglong
-from ctypes.wintypes import (BOOL, BYTE, DWORD, HANDLE, LPCWSTR, MAX_PATH,
+from ctypes.wintypes import (BOOL, BYTE, DWORD, HANDLE, LPCWSTR,
PULARGE_INTEGER, WORD)
from uuid import UUID
diff --git a/src/gpodder/vimeo.py b/src/gpodder/vimeo.py
index bf181b83..ad15e25f 100644
--- a/src/gpodder/vimeo.py
+++ b/src/gpodder/vimeo.py
@@ -23,7 +23,6 @@
#
-import json
import logging
import re
diff --git a/tests/model.py b/tests/model.py
index a3468eec..149e7a22 100644
--- a/tests/model.py
+++ b/tests/model.py
@@ -23,7 +23,6 @@
import unittest
-import gpodder
from gpodder import model
diff --git a/tests/test_feedcore.py b/tests/test_feedcore.py
index 13402424..b7c70ac7 100644
--- a/tests/test_feedcore.py
+++ b/tests/test_feedcore.py
@@ -21,7 +21,7 @@ import io
import pytest
import requests.exceptions
-from gpodder.feedcore import Fetcher, Result, NEW_LOCATION, NOT_MODIFIED, UPDATED_FEED
+from gpodder.feedcore import Fetcher, NEW_LOCATION, Result, UPDATED_FEED
class MyFetcher(Fetcher):
diff --git a/tools/create-desktop-icon.py b/tools/create-desktop-icon.py
index 4f539316..67b383b5 100755
--- a/tools/create-desktop-icon.py
+++ b/tools/create-desktop-icon.py
@@ -5,7 +5,6 @@
import os
import sys
-import gi
from gi.repository import GLib
BASE = os.path.normpath(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
diff --git a/tools/fake-dbus-module/dbus/__init__.py b/tools/fake-dbus-module/dbus/__init__.py
index ee0190c4..0058585c 100644
--- a/tools/fake-dbus-module/dbus/__init__.py
+++ b/tools/fake-dbus-module/dbus/__init__.py
@@ -1,10 +1,9 @@
-import dbus.exceptions
+import dbus.exceptions # noqa: F401
class SessionBus(object):
def __init__(self, *args, **kwargs):
self.fake = True
- pass
def add_signal_receiver(self, *args, **kwargs):
pass
diff --git a/tools/i18n/summary.py b/tools/i18n/summary.py
index 1f5a4ca0..851828d5 100755
--- a/tools/i18n/summary.py
+++ b/tools/i18n/summary.py
@@ -10,7 +10,6 @@ import math
import os
import re
import subprocess
-import sys
width = 40
diff --git a/tools/mac-osx/launcher.py b/tools/mac-osx/launcher.py
index e86ab2af..9c9fce50 100755
--- a/tools/mac-osx/launcher.py
+++ b/tools/mac-osx/launcher.py
@@ -7,7 +7,7 @@ import subprocess
import sys
import time
import traceback
-from os.path import dirname, expanduser, join
+from os.path import join
from subprocess import PIPE, CalledProcessError, Popen