diff --git a/CHANGES.md b/CHANGES.md
index 42b50d8c..6d1ebde0 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -11,6 +11,7 @@
* Update SimpleJSON 3.18.1 (c891b95) to 3.19.1 (aeb63ee)
* Update Tornado Web Server 6.3.0 (7186b86) to 6.3.1 (419838b)
* Update urllib3 1.26.14 (a06c05c) to 1.26.15 (25cca389)
+* Change remove redundant py2 import futures
* Change add jobs to centralise scheduler activities
* Change refactor scene_exceptions
* Add config to change media process log message if there is no media to process
diff --git a/SickBeard.py b/SickBeard.py
index 2c8add05..a19d66f5 100644
--- a/SickBeard.py
+++ b/SickBeard.py
@@ -15,7 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
from time import sleep
import runpy
print(
diff --git a/lib/api_tmdb/tmdb_api.py b/lib/api_tmdb/tmdb_api.py
index 2f3a8fad..faa41608 100644
--- a/lib/api_tmdb/tmdb_api.py
+++ b/lib/api_tmdb/tmdb_api.py
@@ -1,7 +1,6 @@
# encoding:utf-8
# author:Prinz23
# project:tmdb_api
-from __future__ import division
__author__ = 'Prinz23'
__version__ = '1.0'
diff --git a/lib/api_tvdb/tvdb_api.py b/lib/api_tvdb/tvdb_api.py
index c254d9a0..3edf1eb0 100644
--- a/lib/api_tvdb/tvdb_api.py
+++ b/lib/api_tvdb/tvdb_api.py
@@ -5,7 +5,6 @@
# repository:http://github.com/dbr/tvdb_api
# license:un license (http://unlicense.org/)
-from __future__ import absolute_import
from functools import wraps
__author__ = 'dbr/Ben'
diff --git a/lib/api_tvdb/tvdb_cache.py b/lib/api_tvdb/tvdb_cache.py
index 9edc9b97..1d7b7e68 100644
--- a/lib/api_tvdb/tvdb_cache.py
+++ b/lib/api_tvdb/tvdb_cache.py
@@ -9,7 +9,6 @@
urllib2 caching handler
Modified from http://code.activestate.com/recipes/491261/
"""
-from __future__ import with_statement
__author__ = "dbr/Ben"
__version__ = "1.9"
diff --git a/lib/sg_helpers.py b/lib/sg_helpers.py
index 4dc99d1c..6111a441 100644
--- a/lib/sg_helpers.py
+++ b/lib/sg_helpers.py
@@ -2,7 +2,6 @@
# ---------------
# functions are placed here to remove cyclic import issues from placement in helpers
#
-from __future__ import division
import ast
import codecs
import datetime
diff --git a/lib/simplejson/tool.py b/lib/simplejson/tool.py
index 062e8e2c..35627db7 100644
--- a/lib/simplejson/tool.py
+++ b/lib/simplejson/tool.py
@@ -10,7 +10,6 @@ Usage::
Expecting property name: line 1 column 2 (char 2)
"""
-from __future__ import with_statement
import sys
import simplejson as json
diff --git a/sickgear.py b/sickgear.py
index 0b5925dc..c37e2b01 100755
--- a/sickgear.py
+++ b/sickgear.py
@@ -16,9 +16,6 @@
# along with SickGear. If not, see .
# Check needed software dependencies to nudge users to fix their setup
-from __future__ import print_function
-from __future__ import with_statement
-
import codecs
import datetime
import errno
diff --git a/sickgear/__init__.py b/sickgear/__init__.py
index 94102c50..de2f55ea 100644
--- a/sickgear/__init__.py
+++ b/sickgear/__init__.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
from collections import OrderedDict
from threading import Lock
diff --git a/sickgear/common.py b/sickgear/common.py
index ae5ecaa2..20ba2777 100644
--- a/sickgear/common.py
+++ b/sickgear/common.py
@@ -13,8 +13,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import division
-
from functools import reduce
import operator
import os.path
diff --git a/sickgear/db.py b/sickgear/db.py
index b20485fa..6bdaf26e 100644
--- a/sickgear/db.py
+++ b/sickgear/db.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import datetime
import itertools
import os.path
diff --git a/sickgear/failedProcessor.py b/sickgear/failedProcessor.py
index 7af0483b..ff9d261c 100644
--- a/sickgear/failedProcessor.py
+++ b/sickgear/failedProcessor.py
@@ -14,8 +14,6 @@
#
# You should have received a copy of the GNU General Public License
-from __future__ import with_statement
-
import exceptions_helper
import sickgear
diff --git a/sickgear/helpers.py b/sickgear/helpers.py
index 117ec034..4d610df8 100644
--- a/sickgear/helpers.py
+++ b/sickgear/helpers.py
@@ -15,10 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import division
-from __future__ import print_function
-from __future__ import with_statement
-
from itertools import cycle
import datetime
import hashlib
diff --git a/sickgear/logger.py b/sickgear/logger.py
index 1ecbca02..beaaebb1 100644
--- a/sickgear/logger.py
+++ b/sickgear/logger.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import codecs
import datetime
import logging
diff --git a/sickgear/metadata/generic.py b/sickgear/metadata/generic.py
index 33cd8e1c..ad075d2c 100644
--- a/sickgear/metadata/generic.py
+++ b/sickgear/metadata/generic.py
@@ -14,7 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
from collections import OrderedDict
import datetime
diff --git a/sickgear/metadata/kodi.py b/sickgear/metadata/kodi.py
index f0787a36..2efee242 100644
--- a/sickgear/metadata/kodi.py
+++ b/sickgear/metadata/kodi.py
@@ -13,8 +13,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import absolute_import
-
import datetime
import io
import os
diff --git a/sickgear/metadata/mede8er.py b/sickgear/metadata/mede8er.py
index 62c0ec9b..46905273 100644
--- a/sickgear/metadata/mede8er.py
+++ b/sickgear/metadata/mede8er.py
@@ -13,8 +13,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import absolute_import
-
import datetime
from . import mediabrowser
diff --git a/sickgear/metadata/mediabrowser.py b/sickgear/metadata/mediabrowser.py
index 5ae2cd60..2746bbb8 100644
--- a/sickgear/metadata/mediabrowser.py
+++ b/sickgear/metadata/mediabrowser.py
@@ -13,8 +13,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import absolute_import
-
import datetime
import os
import re
diff --git a/sickgear/metadata/tivo.py b/sickgear/metadata/tivo.py
index 9d749bee..412ea0aa 100644
--- a/sickgear/metadata/tivo.py
+++ b/sickgear/metadata/tivo.py
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement, absolute_import
-
import datetime
import os
diff --git a/sickgear/metadata/wdtv.py b/sickgear/metadata/wdtv.py
index b0c87c92..e342d963 100644
--- a/sickgear/metadata/wdtv.py
+++ b/sickgear/metadata/wdtv.py
@@ -13,7 +13,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import absolute_import
import datetime
import os
diff --git a/sickgear/metadata/xbmc.py b/sickgear/metadata/xbmc.py
index ae5de5a3..7628b3ef 100644
--- a/sickgear/metadata/xbmc.py
+++ b/sickgear/metadata/xbmc.py
@@ -13,7 +13,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import absolute_import
import os
diff --git a/sickgear/metadata/xbmc_12plus.py b/sickgear/metadata/xbmc_12plus.py
index 2721d291..545cbcc0 100644
--- a/sickgear/metadata/xbmc_12plus.py
+++ b/sickgear/metadata/xbmc_12plus.py
@@ -13,7 +13,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import absolute_import
import datetime
diff --git a/sickgear/name_parser/parser.py b/sickgear/name_parser/parser.py
index 9c0bd936..1e242202 100644
--- a/sickgear/name_parser/parser.py
+++ b/sickgear/name_parser/parser.py
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement, division
-
import datetime
import os
import os.path
diff --git a/sickgear/notifiers/growl.py b/sickgear/notifiers/growl.py
index ffc51c9a..a50516ce 100644
--- a/sickgear/notifiers/growl.py
+++ b/sickgear/notifiers/growl.py
@@ -14,7 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
import re
from .generic import Notifier, notify_strings
diff --git a/sickgear/notifiers/telegram.py b/sickgear/notifiers/telegram.py
index 96d86319..3522f3a0 100644
--- a/sickgear/notifiers/telegram.py
+++ b/sickgear/notifiers/telegram.py
@@ -14,7 +14,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import absolute_import
import os
import re
diff --git a/sickgear/nzbSplitter.py b/sickgear/nzbSplitter.py
index c4334544..474212a7 100644
--- a/sickgear/nzbSplitter.py
+++ b/sickgear/nzbSplitter.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import os
import re
diff --git a/sickgear/people_queue.py b/sickgear/people_queue.py
index 0e99721c..7441508b 100644
--- a/sickgear/people_queue.py
+++ b/sickgear/people_queue.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import traceback
# noinspection PyPep8Naming
diff --git a/sickgear/postProcessor.py b/sickgear/postProcessor.py
index 711e0bf6..050276c4 100644
--- a/sickgear/postProcessor.py
+++ b/sickgear/postProcessor.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import glob
import os
import re
diff --git a/sickgear/processTV.py b/sickgear/processTV.py
index c3fafbae..45f28304 100644
--- a/sickgear/processTV.py
+++ b/sickgear/processTV.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
from functools import partial
import datetime
import os
diff --git a/sickgear/providers/btn.py b/sickgear/providers/btn.py
index 6b87bff9..2c953a36 100644
--- a/sickgear/providers/btn.py
+++ b/sickgear/providers/btn.py
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import division
-
import math
import random
import re
diff --git a/sickgear/providers/generic.py b/sickgear/providers/generic.py
index e5ccb797..f3fbcff0 100644
--- a/sickgear/providers/generic.py
+++ b/sickgear/providers/generic.py
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement, division
-
from base64 import b64decode
import codecs
import datetime
diff --git a/sickgear/providers/newznab.py b/sickgear/providers/newznab.py
index 244b92e2..02c425fb 100644
--- a/sickgear/providers/newznab.py
+++ b/sickgear/providers/newznab.py
@@ -14,7 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import division
# from collections import OrderedDict
from io import BytesIO
from math import ceil
diff --git a/sickgear/providers/thepiratebay.py b/sickgear/providers/thepiratebay.py
index 1e390aef..4956e181 100644
--- a/sickgear/providers/thepiratebay.py
+++ b/sickgear/providers/thepiratebay.py
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement, division
-
import re
import traceback
diff --git a/sickgear/scheduler.py b/sickgear/scheduler.py
index 130e5771..ad7dbb8a 100644
--- a/sickgear/scheduler.py
+++ b/sickgear/scheduler.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import division
-
import datetime
import time
import threading
diff --git a/sickgear/search.py b/sickgear/search.py
index 67f3b22f..9c80f7d8 100644
--- a/sickgear/search.py
+++ b/sickgear/search.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import datetime
import os
import re
diff --git a/sickgear/search_backlog.py b/sickgear/search_backlog.py
index 1181581b..170ed818 100644
--- a/sickgear/search_backlog.py
+++ b/sickgear/search_backlog.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement, division
-
import datetime
from math import ceil
diff --git a/sickgear/search_propers.py b/sickgear/search_propers.py
index 87c7ced9..addcde64 100644
--- a/sickgear/search_propers.py
+++ b/sickgear/search_propers.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import sickgear
from .scheduler import Job
diff --git a/sickgear/search_queue.py b/sickgear/search_queue.py
index 200910b9..3880dcbe 100644
--- a/sickgear/search_queue.py
+++ b/sickgear/search_queue.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import copy
import datetime
import re
diff --git a/sickgear/search_recent.py b/sickgear/search_recent.py
index 5ad92515..58497644 100644
--- a/sickgear/search_recent.py
+++ b/sickgear/search_recent.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import sickgear
from .scheduler import Job
diff --git a/sickgear/show_queue.py b/sickgear/show_queue.py
index 8f90d4d2..3f16d18a 100644
--- a/sickgear/show_queue.py
+++ b/sickgear/show_queue.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import datetime
import os
import traceback
diff --git a/sickgear/tv.py b/sickgear/tv.py
index 0587137d..6aa7c28a 100644
--- a/sickgear/tv.py
+++ b/sickgear/tv.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import random
import weakref
from collections import Counter, OrderedDict
diff --git a/sickgear/tvcache.py b/sickgear/tvcache.py
index d7fbd365..72889e78 100644
--- a/sickgear/tvcache.py
+++ b/sickgear/tvcache.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
import datetime
import itertools
import time
diff --git a/sickgear/watchedstate_queue.py b/sickgear/watchedstate_queue.py
index c7449506..55119d45 100644
--- a/sickgear/watchedstate_queue.py
+++ b/sickgear/watchedstate_queue.py
@@ -14,8 +14,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
from . import logger, generic_queue
from .webserve import History
diff --git a/sickgear/webapi.py b/sickgear/webapi.py
index cafec481..ba3ca528 100644
--- a/sickgear/webapi.py
+++ b/sickgear/webapi.py
@@ -16,8 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement
-
# noinspection PyProtectedMember
from mimetypes import MimeTypes
from random import randint
diff --git a/sickgear/webserve.py b/sickgear/webserve.py
index 4cdeb8f8..c75944f1 100644
--- a/sickgear/webserve.py
+++ b/sickgear/webserve.py
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import with_statement, division
-
# noinspection PyProtectedMember
from mimetypes import MimeTypes
from urllib.parse import urljoin
diff --git a/tests/all_tests.py b/tests/all_tests.py
index 1583dfb8..62334531 100644
--- a/tests/all_tests.py
+++ b/tests/all_tests.py
@@ -17,7 +17,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
if '__main__' == __name__:
import warnings
warnings.filterwarnings('ignore', module=r'.*fuz.*', message='.*Sequence.*')
diff --git a/tests/db_tests.py b/tests/db_tests.py
index 3bf868fc..ae362290 100644
--- a/tests/db_tests.py
+++ b/tests/db_tests.py
@@ -16,7 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
import unittest
import test_lib as test
from sickgear import cache_db, mainDB, failed_db
diff --git a/tests/migration_tests.py b/tests/migration_tests.py
index a03cd27c..ce394261 100644
--- a/tests/migration_tests.py
+++ b/tests/migration_tests.py
@@ -1,5 +1,3 @@
-from __future__ import print_function
-
import gc
import sys
import os.path
diff --git a/tests/name_parser_tests.py b/tests/name_parser_tests.py
index 05cefe99..c993ea11 100644
--- a/tests/name_parser_tests.py
+++ b/tests/name_parser_tests.py
@@ -1,4 +1,3 @@
-from __future__ import print_function
import datetime
import os.path
import test_lib as test
diff --git a/tests/newznab_tests.py b/tests/newznab_tests.py
index a5afea27..59d88c31 100644
--- a/tests/newznab_tests.py
+++ b/tests/newznab_tests.py
@@ -1,5 +1,4 @@
# coding=utf-8
-from __future__ import print_function
import warnings
warnings.filterwarnings('ignore', module=r'.*fuz.*', message='.*Sequence.*')
warnings.filterwarnings('ignore', module=r'.*dateutil.*', message='.*Unicode.*')
diff --git a/tests/pp_tests.py b/tests/pp_tests.py
index 58e05bf5..036d2f4d 100644
--- a/tests/pp_tests.py
+++ b/tests/pp_tests.py
@@ -16,7 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
import warnings
warnings.filterwarnings('ignore', module=r'.*fuz.*', message='.*Sequence.*')
diff --git a/tests/show_tests.py b/tests/show_tests.py
index 82bac9b0..a47c878f 100644
--- a/tests/show_tests.py
+++ b/tests/show_tests.py
@@ -15,8 +15,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
-
import datetime
import unittest
diff --git a/tests/snatch_tests.py b/tests/snatch_tests.py
index 5240becd..a23ef71b 100644
--- a/tests/snatch_tests.py
+++ b/tests/snatch_tests.py
@@ -16,7 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
# import random
import unittest
diff --git a/tests/test_lib.py b/tests/test_lib.py
index 58b07ac8..8fefd243 100644
--- a/tests/test_lib.py
+++ b/tests/test_lib.py
@@ -16,9 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
-from __future__ import with_statement
-
import gc
import glob
import os.path
diff --git a/tests/tv_tests.py b/tests/tv_tests.py
index ab7568a0..32a5f784 100644
--- a/tests/tv_tests.py
+++ b/tests/tv_tests.py
@@ -16,7 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
import unittest
import test_lib as test
from random import randint
@@ -208,10 +207,10 @@ find_tests = [
'description': 'simple standard search via main id dict'},
{'para': {'show_id': {TVINFO_TVDB: 12345}}, 'result': None,
'description': 'simple standard search via main id dict, for non-existing show'},
- {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVMAZE: 123}, 'check_multishow': True},
+ {'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVMAZE: 123}, 'check_multishow': True},
'result': {'success': False},
'description': 'search via 2 ids matching multiple shows and multi show check'},
- {'para': {'show_id': {TVINFO_TVDB: 5555, TVINFO_TVMAZE: 123}, 'check_multishow': True},
+ {'para': {'show_id': {TVINFO_TVDB: 5555, TVINFO_TVMAZE: 123}, 'check_multishow': True},
'result': {'tvid': TVINFO_TVMAZE, 'prodid': 123},
'description': 'search via 2 ids matching only 1 show and multi show check'},
{'para': {'show_id': {TVINFO_TVDB: 123, TVINFO_TVMAZE: 123}},
diff --git a/tests/webapi_tests.py b/tests/webapi_tests.py
index 816de55b..6ccac0ae 100644
--- a/tests/webapi_tests.py
+++ b/tests/webapi_tests.py
@@ -16,7 +16,6 @@
#
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
import datetime
import itertools
import os
diff --git a/tests/xem_tests.py b/tests/xem_tests.py
index 1d3cb6d6..7490e66b 100644
--- a/tests/xem_tests.py
+++ b/tests/xem_tests.py
@@ -16,9 +16,6 @@
# You should have received a copy of the GNU General Public License
# along with SickGear. If not, see .
-from __future__ import print_function
-from __future__ import with_statement
-
import os.path
import re
import sys