From 01fbd1e8b90f64a34c77b42c9623ea5b657bb376 Mon Sep 17 00:00:00 2001
From: jo <ljonas@riseup.net>
Date: Thu, 3 Jun 2021 15:20:39 +0200
Subject: [PATCH] Add isort pre-commit hook

Sort import statement in python files

See https://github.com/PyCQA/isort
---
 .pre-commit-config.yaml                       |  6 +++++
 api/libretimeapi/models/authentication.py     |  4 +++-
 api/libretimeapi/models/playlists.py          |  1 +
 api/libretimeapi/models/playout.py            |  1 +
 api/libretimeapi/models/podcasts.py           |  1 +
 api/libretimeapi/models/schedule.py           |  1 +
 api/libretimeapi/models/shows.py              |  3 ++-
 api/libretimeapi/models/tracks.py             |  1 +
 api/libretimeapi/models/webstreams.py         |  3 ++-
 api/libretimeapi/permission_constants.py      |  4 +++-
 api/libretimeapi/permissions.py               |  3 ++-
 api/libretimeapi/serializers.py               |  1 +
 api/libretimeapi/settings.py                  |  3 ++-
 api/libretimeapi/tests/test_models.py         |  6 ++---
 api/libretimeapi/tests/test_permissions.py    | 13 +++++-----
 api/libretimeapi/tests/test_views.py          |  7 +++---
 api/libretimeapi/utils.py                     |  4 ++--
 api/libretimeapi/views.py                     |  6 +++--
 api/setup.py                                  |  3 ++-
 dev_tools/compare_cc_files_to_fs.py           |  8 +++----
 .../airtime-celery/celeryconfig.py            |  1 +
 .../airtime-celery/airtime-celery/tasks.py    | 14 +++++------
 python_apps/airtime-celery/setup.py           |  7 +++---
 .../airtime_analyzer/airtime_analyzer.py      |  7 +++---
 .../airtime_analyzer/analyzer_pipeline.py     | 15 ++++++------
 .../airtime_analyzer/airtime_analyzer/cli.py  |  3 ++-
 .../airtime_analyzer/cuepoint_analyzer.py     |  9 +++----
 .../airtime_analyzer/filemover_analyzer.py    |  3 +--
 .../airtime_analyzer/message_listener.py      | 12 ++++++----
 .../airtime_analyzer/metadata_analyzer.py     | 12 ++++++----
 .../airtime_analyzer/playability_analyzer.py  |  3 ++-
 .../airtime_analyzer/replaygain_analyzer.py   |  5 ++--
 .../airtime_analyzer/status_reporter.py       |  9 +++----
 python_apps/airtime_analyzer/setup.py         |  3 ++-
 .../tests/airtime_analyzer_test.py            |  2 +-
 .../tests/analyzer_pipeline_test.py           |  9 +++----
 .../airtime_analyzer/tests/analyzer_test.py   |  2 +-
 .../tests/cuepoint_analyzer_test.py           |  2 +-
 .../tests/filemover_analyzer_test.py          |  7 +++---
 .../tests/metadata_analyzer_test.py           |  6 +++--
 .../tests/playability_analyzer_test.py        |  2 +-
 .../tests/replaygain_analyzer_test.py         |  3 ++-
 python_apps/api_clients/api_clients/utils.py  |  3 ++-
 .../api_clients/api_clients/version1.py       | 13 +++++-----
 .../api_clients/api_clients/version2.py       |  7 ++++--
 python_apps/api_clients/setup.py              |  8 ++++---
 python_apps/api_clients/tests/apcurl_test.py  |  3 ++-
 .../api_clients/tests/apirequest_test.py      |  5 ++--
 .../api_clients/tests/requestprovider_test.py |  9 +++----
 python_apps/api_clients/tests/utils_test.py   |  3 ++-
 .../icecast2/install/icecast2-install.py      |  2 +-
 python_apps/pypo/bin/pyponotify               | 12 +++++-----
 python_apps/pypo/liquidsoap/__main__.py       |  6 +++--
 .../liquidsoap/generate_liquidsoap_cfg.py     |  1 +
 .../pypo/liquidsoap/liquidsoap_auth.py        |  3 ++-
 .../liquidsoap_prepare_terminate.py           |  5 ++--
 python_apps/pypo/pypo/__main__.py             | 10 ++++----
 python_apps/pypo/pypo/listenerstat.py         | 12 ++++++----
 python_apps/pypo/pypo/pure.py                 |  1 +
 python_apps/pypo/pypo/pypofetch.py            | 23 +++++++++---------
 python_apps/pypo/pypo/pypofile.py             | 22 ++++++++---------
 python_apps/pypo/pypo/pypoliqqueue.py         | 14 ++++-------
 python_apps/pypo/pypo/pypoliquidsoap.py       | 10 ++++----
 python_apps/pypo/pypo/pypomessagehandler.py   | 12 +++++-----
 python_apps/pypo/pypo/pypopush.py             | 24 ++++++++-----------
 python_apps/pypo/pypo/recorder.py             | 24 ++++++++-----------
 python_apps/pypo/pypo/telnetliquidsoap.py     |  3 ++-
 python_apps/pypo/pypo/testpypoliqqueue.py     | 15 +++++-------
 python_apps/pypo/pypo/timeout.py              |  1 +
 python_apps/pypo/setup.py                     |  8 ++++---
 utils/airtime-import/airtime-import           | 11 +++++----
 utils/airtime-silan                           | 10 ++++----
 utils/airtime-test-soundcard.py               |  7 +++---
 utils/airtime-test-stream.py                  |  7 +++---
 utils/upgrade.py                              |  5 ++--
 75 files changed, 282 insertions(+), 232 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index f60d2c52d..f792da783 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -40,6 +40,12 @@ repos:
     hooks:
       - id: black
 
+  - repo: https://github.com/pycqa/isort
+    rev: 5.8.0
+    hooks:
+      - id: isort
+        args: ["--profile", "black", "--filter-files"]
+
   # - repo: https://github.com/pre-commit/mirrors-pylint
   #   rev: v3.0.0a3
   #   hooks:
diff --git a/api/libretimeapi/models/authentication.py b/api/libretimeapi/models/authentication.py
index 343c6011b..c0542f7c5 100644
--- a/api/libretimeapi/models/authentication.py
+++ b/api/libretimeapi/models/authentication.py
@@ -1,11 +1,13 @@
 import hashlib
+
 from django.contrib import auth
 from django.contrib.auth.models import AbstractBaseUser, Permission
 from django.core.exceptions import PermissionDenied
 from django.db import models
 from libretimeapi.managers import UserManager
 from libretimeapi.permission_constants import GROUPS
-from .user_constants import USER_TYPES, ADMIN
+
+from .user_constants import ADMIN, USER_TYPES
 
 
 class LoginAttempt(models.Model):
diff --git a/api/libretimeapi/models/playlists.py b/api/libretimeapi/models/playlists.py
index 3e4c4379f..98638a029 100644
--- a/api/libretimeapi/models/playlists.py
+++ b/api/libretimeapi/models/playlists.py
@@ -1,4 +1,5 @@
 from django.db import models
+
 from .files import File
 from .smart_blocks import SmartBlock
 
diff --git a/api/libretimeapi/models/playout.py b/api/libretimeapi/models/playout.py
index 203ec0149..7659932da 100644
--- a/api/libretimeapi/models/playout.py
+++ b/api/libretimeapi/models/playout.py
@@ -1,4 +1,5 @@
 from django.db import models
+
 from .files import File
 
 
diff --git a/api/libretimeapi/models/podcasts.py b/api/libretimeapi/models/podcasts.py
index ade2ee5b9..0640b2c25 100644
--- a/api/libretimeapi/models/podcasts.py
+++ b/api/libretimeapi/models/podcasts.py
@@ -1,4 +1,5 @@
 from django.db import models
+
 from .authentication import User
 from .files import File
 
diff --git a/api/libretimeapi/models/schedule.py b/api/libretimeapi/models/schedule.py
index b45234fb3..ce87a06b1 100644
--- a/api/libretimeapi/models/schedule.py
+++ b/api/libretimeapi/models/schedule.py
@@ -1,4 +1,5 @@
 from django.db import models
+
 from .files import File
 
 
diff --git a/api/libretimeapi/models/shows.py b/api/libretimeapi/models/shows.py
index 79fb37334..de7abb3f3 100644
--- a/api/libretimeapi/models/shows.py
+++ b/api/libretimeapi/models/shows.py
@@ -1,6 +1,7 @@
 from django.db import models
-from .playlists import Playlist
+
 from .files import File
+from .playlists import Playlist
 
 
 class Show(models.Model):
diff --git a/api/libretimeapi/models/tracks.py b/api/libretimeapi/models/tracks.py
index 7e2f97810..8467d0517 100644
--- a/api/libretimeapi/models/tracks.py
+++ b/api/libretimeapi/models/tracks.py
@@ -1,4 +1,5 @@
 from django.db import models
+
 from .files import File
 
 
diff --git a/api/libretimeapi/models/webstreams.py b/api/libretimeapi/models/webstreams.py
index 14c6066c2..72f2022f7 100644
--- a/api/libretimeapi/models/webstreams.py
+++ b/api/libretimeapi/models/webstreams.py
@@ -1,5 +1,6 @@
-from django.db import models
 from django.contrib.auth import get_user_model
+from django.db import models
+
 from .schedule import Schedule
 
 
diff --git a/api/libretimeapi/permission_constants.py b/api/libretimeapi/permission_constants.py
index 4a3d1c353..eead5598f 100644
--- a/api/libretimeapi/permission_constants.py
+++ b/api/libretimeapi/permission_constants.py
@@ -1,6 +1,8 @@
 import logging
+
 from django.contrib.auth.models import Group, Permission
-from .models.user_constants import GUEST, DJ, PROGRAM_MANAGER, USER_TYPES
+
+from .models.user_constants import DJ, GUEST, PROGRAM_MANAGER, USER_TYPES
 
 logger = logging.getLogger(__name__)
 
diff --git a/api/libretimeapi/permissions.py b/api/libretimeapi/permissions.py
index bc05146f2..84e61eda7 100644
--- a/api/libretimeapi/permissions.py
+++ b/api/libretimeapi/permissions.py
@@ -1,5 +1,6 @@
-from rest_framework.permissions import BasePermission
 from django.conf import settings
+from rest_framework.permissions import BasePermission
+
 from .models.user_constants import DJ
 
 REQUEST_PERMISSION_TYPE_MAP = {
diff --git a/api/libretimeapi/serializers.py b/api/libretimeapi/serializers.py
index f8b780dc0..4ecd8e8db 100644
--- a/api/libretimeapi/serializers.py
+++ b/api/libretimeapi/serializers.py
@@ -1,5 +1,6 @@
 from django.contrib.auth import get_user_model
 from rest_framework import serializers
+
 from .models import *
 
 
diff --git a/api/libretimeapi/settings.py b/api/libretimeapi/settings.py
index a88c6b371..6c916a00e 100644
--- a/api/libretimeapi/settings.py
+++ b/api/libretimeapi/settings.py
@@ -1,6 +1,7 @@
 import configparser
 import os
-from .utils import read_config_file, get_random_string
+
+from .utils import get_random_string, read_config_file
 
 LIBRETIME_CONF_DIR = os.getenv("LIBRETIME_CONF_DIR", "/etc/airtime")
 DEFAULT_CONFIG_PATH = os.getenv(
diff --git a/api/libretimeapi/tests/test_models.py b/api/libretimeapi/tests/test_models.py
index e23c18f90..b29e2a058 100644
--- a/api/libretimeapi/tests/test_models.py
+++ b/api/libretimeapi/tests/test_models.py
@@ -1,9 +1,9 @@
-from rest_framework.test import APITestCase
-from django.contrib.auth.models import Group
 from django.apps import apps
+from django.contrib.auth.models import Group
 from libretimeapi.models import User
-from libretimeapi.models.user_constants import GUEST, DJ
+from libretimeapi.models.user_constants import DJ, GUEST
 from libretimeapi.permission_constants import GROUPS
+from rest_framework.test import APITestCase
 
 
 class TestUserManager(APITestCase):
diff --git a/api/libretimeapi/tests/test_permissions.py b/api/libretimeapi/tests/test_permissions.py
index 8383f0605..20fd14d5c 100644
--- a/api/libretimeapi/tests/test_permissions.py
+++ b/api/libretimeapi/tests/test_permissions.py
@@ -1,16 +1,17 @@
 import os
+
+from django.conf import settings
 from django.contrib.auth import get_user_model
 from django.contrib.auth.models import AnonymousUser
-from django.conf import settings
-from rest_framework.test import APITestCase, APIRequestFactory
-from model_bakery import baker
-from libretimeapi.permissions import IsSystemTokenOrUser
+from libretimeapi.models.user_constants import ADMIN, DJ, GUEST, PROGRAM_MANAGER
 from libretimeapi.permission_constants import (
-    GUEST_PERMISSIONS,
     DJ_PERMISSIONS,
+    GUEST_PERMISSIONS,
     PROGRAM_MANAGER_PERMISSIONS,
 )
-from libretimeapi.models.user_constants import GUEST, DJ, PROGRAM_MANAGER, ADMIN
+from libretimeapi.permissions import IsSystemTokenOrUser
+from model_bakery import baker
+from rest_framework.test import APIRequestFactory, APITestCase
 
 
 class TestIsSystemTokenOrUser(APITestCase):
diff --git a/api/libretimeapi/tests/test_views.py b/api/libretimeapi/tests/test_views.py
index 510251374..cb00ce222 100644
--- a/api/libretimeapi/tests/test_views.py
+++ b/api/libretimeapi/tests/test_views.py
@@ -1,9 +1,10 @@
 import os
-from django.contrib.auth.models import AnonymousUser
+
 from django.conf import settings
-from rest_framework.test import APITestCase, APIRequestFactory
-from model_bakery import baker
+from django.contrib.auth.models import AnonymousUser
 from libretimeapi.views import FileViewSet
+from model_bakery import baker
+from rest_framework.test import APIRequestFactory, APITestCase
 
 
 class TestFileViewSet(APITestCase):
diff --git a/api/libretimeapi/utils.py b/api/libretimeapi/utils.py
index 83acc6261..dc43b3a96 100644
--- a/api/libretimeapi/utils.py
+++ b/api/libretimeapi/utils.py
@@ -1,7 +1,7 @@
 import configparser
-import sys
-import string
 import random
+import string
+import sys
 
 
 def read_config_file(config_path):
diff --git a/api/libretimeapi/views.py b/api/libretimeapi/views.py
index 39d1f96d8..793a3b593 100644
--- a/api/libretimeapi/views.py
+++ b/api/libretimeapi/views.py
@@ -1,13 +1,15 @@
 import os
+
 from django.conf import settings
 from django.http import FileResponse
 from django.shortcuts import get_object_or_404
 from rest_framework import status, viewsets
-from rest_framework.decorators import api_view, action, permission_classes
+from rest_framework.decorators import action, api_view, permission_classes
 from rest_framework.permissions import AllowAny
 from rest_framework.response import Response
-from .serializers import *
+
 from .permissions import IsAdminOrOwnUser
+from .serializers import *
 
 
 class UserViewSet(viewsets.ModelViewSet):
diff --git a/api/setup.py b/api/setup.py
index cd499e845..fd016b7cd 100644
--- a/api/setup.py
+++ b/api/setup.py
@@ -1,6 +1,7 @@
 import os
 import shutil
-from setuptools import setup, find_packages
+
+from setuptools import find_packages, setup
 
 script_path = os.path.dirname(os.path.realpath(__file__))
 print(script_path)
diff --git a/dev_tools/compare_cc_files_to_fs.py b/dev_tools/compare_cc_files_to_fs.py
index 5aa88e28c..df0bb9d03 100644
--- a/dev_tools/compare_cc_files_to_fs.py
+++ b/dev_tools/compare_cc_files_to_fs.py
@@ -1,12 +1,12 @@
+import logging
 import os
-import time
 import shutil
 import sys
-import logging
+import time
+from subprocess import PIPE, Popen
 
-from configobj import ConfigObj
-from subprocess import Popen, PIPE
 from api_clients import api_client as apc
+from configobj import ConfigObj
 
 """
 The purpose of this script is that you can run it, and it will compare what the database has to what your filesystem
diff --git a/python_apps/airtime-celery/airtime-celery/celeryconfig.py b/python_apps/airtime-celery/airtime-celery/celeryconfig.py
index 3de503d92..9d0a58840 100644
--- a/python_apps/airtime-celery/airtime-celery/celeryconfig.py
+++ b/python_apps/airtime-celery/airtime-celery/celeryconfig.py
@@ -1,4 +1,5 @@
 import os
+
 from configobj import ConfigObj
 from kombu import Exchange, Queue
 
diff --git a/python_apps/airtime-celery/airtime-celery/tasks.py b/python_apps/airtime-celery/airtime-celery/tasks.py
index 198b59772..83f5bc785 100644
--- a/python_apps/airtime-celery/airtime-celery/tasks.py
+++ b/python_apps/airtime-celery/airtime-celery/tasks.py
@@ -2,21 +2,21 @@ from future.standard_library import install_aliases
 
 install_aliases()
 
-import os
-import json
-import requests
 import cgi
+import json
+import os
 import posixpath
 import shutil
 import tempfile
 import traceback
-import mutagen
-from io import StringIO
-from celery import Celery
-from celery.utils.log import get_task_logger
 from contextlib import closing
+from io import StringIO
 from urllib.parse import urlsplit
 
+import mutagen
+import requests
+from celery import Celery
+from celery.utils.log import get_task_logger
 
 celery = Celery()
 logger = get_task_logger(__name__)
diff --git a/python_apps/airtime-celery/setup.py b/python_apps/airtime-celery/setup.py
index 48f62b295..d42e54dd3 100644
--- a/python_apps/airtime-celery/setup.py
+++ b/python_apps/airtime-celery/setup.py
@@ -1,8 +1,9 @@
-from pathlib import Path
-from setuptools import setup
-from subprocess import call
 import os
 import sys
+from pathlib import Path
+from subprocess import call
+
+from setuptools import setup
 
 # Change directory since setuptools uses relative paths
 script_path = os.path.dirname(os.path.realpath(__file__))
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/airtime_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/airtime_analyzer.py
index 8ad2092e7..705ebe55d 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/airtime_analyzer.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/airtime_analyzer.py
@@ -2,15 +2,16 @@
 """
 import logging
 import logging.handlers
-import sys
 import signal
+import sys
 import traceback
-from . import config_file
 from functools import partial
+
+from . import config_file
+from .message_listener import MessageListener
 from .metadata_analyzer import MetadataAnalyzer
 from .replaygain_analyzer import ReplayGainAnalyzer
 from .status_reporter import StatusReporter
-from .message_listener import MessageListener
 
 
 class AirtimeAnalyzerServer:
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/analyzer_pipeline.py b/python_apps/airtime_analyzer/airtime_analyzer/analyzer_pipeline.py
index 7ae73d907..057dd5485 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/analyzer_pipeline.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/analyzer_pipeline.py
@@ -1,15 +1,16 @@
 """ Analyzes and imports an audio file into the Airtime library.
 """
-import logging
-import threading
-import multiprocessing
-from queue import Queue
 import configparser
-from .metadata_analyzer import MetadataAnalyzer
-from .filemover_analyzer import FileMoverAnalyzer
+import logging
+import multiprocessing
+import threading
+from queue import Queue
+
 from .cuepoint_analyzer import CuePointAnalyzer
-from .replaygain_analyzer import ReplayGainAnalyzer
+from .filemover_analyzer import FileMoverAnalyzer
+from .metadata_analyzer import MetadataAnalyzer
 from .playability_analyzer import *
+from .replaygain_analyzer import ReplayGainAnalyzer
 
 
 class AnalyzerPipeline:
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/cli.py b/python_apps/airtime_analyzer/airtime_analyzer/cli.py
index 274a450b2..cb7b36b46 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/cli.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/cli.py
@@ -2,10 +2,11 @@
 Main CLI entrypoint for the libretime-analyzer app.
 """
 
-import daemon
 import argparse
 import os
+
 import airtime_analyzer.airtime_analyzer as aa
+import daemon
 
 VERSION = "1.0"
 LIBRETIME_CONF_DIR = os.getenv("LIBRETIME_CONF_DIR", "/etc/airtime")
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/cuepoint_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/cuepoint_analyzer.py
index bdd314913..444221a02 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/cuepoint_analyzer.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/cuepoint_analyzer.py
@@ -1,8 +1,9 @@
-import subprocess
-import logging
-import traceback
-import json
 import datetime
+import json
+import logging
+import subprocess
+import traceback
+
 from .analyzer import Analyzer
 
 
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/filemover_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/filemover_analyzer.py
index 0ba78041c..034951eae 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/filemover_analyzer.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/filemover_analyzer.py
@@ -1,8 +1,7 @@
+import errno
 import logging
 import os
-import time
 import shutil
-import os, errno
 import time
 import uuid
 
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py b/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py
index 083e0aa7d..f1c9d9d62 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/message_listener.py
@@ -1,12 +1,14 @@
-import sys
-import pika
 import json
-import time
-import select
-import signal
 import logging
 import multiprocessing
 import queue
+import select
+import signal
+import sys
+import time
+
+import pika
+
 from .analyzer_pipeline import AnalyzerPipeline
 from .status_reporter import StatusReporter
 
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py
index 1d819aa84..fccaf0f15 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/metadata_analyzer.py
@@ -1,11 +1,13 @@
-import time
 import datetime
-import mutagen
-import magic
-import wave
+import hashlib
 import logging
 import os
-import hashlib
+import time
+import wave
+
+import magic
+import mutagen
+
 from .analyzer import Analyzer
 
 
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/playability_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/playability_analyzer.py
index c790be866..5aa4da786 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/playability_analyzer.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/playability_analyzer.py
@@ -1,7 +1,8 @@
 __author__ = "asantoni"
 
-import subprocess
 import logging
+import subprocess
+
 from .analyzer import Analyzer
 
 
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/replaygain_analyzer.py b/python_apps/airtime_analyzer/airtime_analyzer/replaygain_analyzer.py
index 71da68cd2..6f512bf0c 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/replaygain_analyzer.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/replaygain_analyzer.py
@@ -1,7 +1,8 @@
-import subprocess
 import logging
-from .analyzer import Analyzer
 import re
+import subprocess
+
+from .analyzer import Analyzer
 
 
 class ReplayGainAnalyzer(Analyzer):
diff --git a/python_apps/airtime_analyzer/airtime_analyzer/status_reporter.py b/python_apps/airtime_analyzer/airtime_analyzer/status_reporter.py
index 4e0d5bbf4..e55a1a064 100644
--- a/python_apps/airtime_analyzer/airtime_analyzer/status_reporter.py
+++ b/python_apps/airtime_analyzer/airtime_analyzer/status_reporter.py
@@ -1,14 +1,15 @@
-import requests
+import collections
 import json
 import logging
-import collections
+import pickle
 import queue
+import threading
 import time
 import traceback
-import pickle
-import threading
 from urllib.parse import urlparse
 
+import requests
+
 # Disable urllib3 warnings because these can cause a rare deadlock due to Python 2's crappy internal non-reentrant locking
 # around POSIX stuff. See SAAS-714. The hasattr() is for compatibility with older versions of requests.
 if hasattr(requests, "packages"):
diff --git a/python_apps/airtime_analyzer/setup.py b/python_apps/airtime_analyzer/setup.py
index 8ca460894..9ed0c0490 100644
--- a/python_apps/airtime_analyzer/setup.py
+++ b/python_apps/airtime_analyzer/setup.py
@@ -1,6 +1,7 @@
-from setuptools import setup
 import os
 
+from setuptools import setup
+
 # Change directory since setuptools uses relative paths
 os.chdir(os.path.dirname(os.path.realpath(__file__)))
 
diff --git a/python_apps/airtime_analyzer/tests/airtime_analyzer_test.py b/python_apps/airtime_analyzer/tests/airtime_analyzer_test.py
index 13092b3da..283122091 100644
--- a/python_apps/airtime_analyzer/tests/airtime_analyzer_test.py
+++ b/python_apps/airtime_analyzer/tests/airtime_analyzer_test.py
@@ -1,5 +1,5 @@
-from nose.tools import *
 import airtime_analyzer
+from nose.tools import *
 
 
 def setup():
diff --git a/python_apps/airtime_analyzer/tests/analyzer_pipeline_test.py b/python_apps/airtime_analyzer/tests/analyzer_pipeline_test.py
index 5948e75f8..98f95e460 100644
--- a/python_apps/airtime_analyzer/tests/analyzer_pipeline_test.py
+++ b/python_apps/airtime_analyzer/tests/analyzer_pipeline_test.py
@@ -1,11 +1,12 @@
-from nose.tools import *
+import datetime
+import multiprocessing
 import os
 import shutil
-import multiprocessing
 from queue import Queue
-import datetime
-from airtime_analyzer.analyzer_pipeline import AnalyzerPipeline
+
 from airtime_analyzer import config_file
+from airtime_analyzer.analyzer_pipeline import AnalyzerPipeline
+from nose.tools import *
 
 DEFAULT_AUDIO_FILE = u"tests/test_data/44100Hz-16bit-mono.mp3"
 DEFAULT_IMPORT_DEST = u"Test Artist/Test Album/44100Hz-16bit-mono.mp3"
diff --git a/python_apps/airtime_analyzer/tests/analyzer_test.py b/python_apps/airtime_analyzer/tests/analyzer_test.py
index 06745d77b..00bf57e51 100644
--- a/python_apps/airtime_analyzer/tests/analyzer_test.py
+++ b/python_apps/airtime_analyzer/tests/analyzer_test.py
@@ -1,5 +1,5 @@
-from nose.tools import *
 from airtime_analyzer.analyzer import Analyzer
+from nose.tools import *
 
 
 def setup():
diff --git a/python_apps/airtime_analyzer/tests/cuepoint_analyzer_test.py b/python_apps/airtime_analyzer/tests/cuepoint_analyzer_test.py
index 9f3a59330..df7685e3a 100644
--- a/python_apps/airtime_analyzer/tests/cuepoint_analyzer_test.py
+++ b/python_apps/airtime_analyzer/tests/cuepoint_analyzer_test.py
@@ -1,5 +1,5 @@
-from nose.tools import *
 from airtime_analyzer.cuepoint_analyzer import CuePointAnalyzer
+from nose.tools import *
 
 
 def check_default_metadata(metadata):
diff --git a/python_apps/airtime_analyzer/tests/filemover_analyzer_test.py b/python_apps/airtime_analyzer/tests/filemover_analyzer_test.py
index 4c1294ae8..063da69f6 100644
--- a/python_apps/airtime_analyzer/tests/filemover_analyzer_test.py
+++ b/python_apps/airtime_analyzer/tests/filemover_analyzer_test.py
@@ -1,11 +1,12 @@
-from nose.tools import *
+import multiprocessing
 import os
 import shutil
-import multiprocessing
 import time
-import mock
 from pprint import pprint
+
+import mock
 from airtime_analyzer.filemover_analyzer import FileMoverAnalyzer
+from nose.tools import *
 
 DEFAULT_AUDIO_FILE = u"tests/test_data/44100Hz-16bit-mono.mp3"
 DEFAULT_IMPORT_DEST = u"Test Artist/Test Album/44100Hz-16bit-mono.mp3"
diff --git a/python_apps/airtime_analyzer/tests/metadata_analyzer_test.py b/python_apps/airtime_analyzer/tests/metadata_analyzer_test.py
index 658997213..c9d92667d 100644
--- a/python_apps/airtime_analyzer/tests/metadata_analyzer_test.py
+++ b/python_apps/airtime_analyzer/tests/metadata_analyzer_test.py
@@ -1,9 +1,11 @@
 from __future__ import print_function
+
 import datetime
-import mutagen
+
 import mock
-from nose.tools import *
+import mutagen
 from airtime_analyzer.metadata_analyzer import MetadataAnalyzer
+from nose.tools import *
 
 
 def setup():
diff --git a/python_apps/airtime_analyzer/tests/playability_analyzer_test.py b/python_apps/airtime_analyzer/tests/playability_analyzer_test.py
index 0b87d5d17..f0e4377d4 100644
--- a/python_apps/airtime_analyzer/tests/playability_analyzer_test.py
+++ b/python_apps/airtime_analyzer/tests/playability_analyzer_test.py
@@ -1,5 +1,5 @@
-from nose.tools import *
 from airtime_analyzer.playability_analyzer import *
+from nose.tools import *
 
 
 def check_default_metadata(metadata):
diff --git a/python_apps/airtime_analyzer/tests/replaygain_analyzer_test.py b/python_apps/airtime_analyzer/tests/replaygain_analyzer_test.py
index f41301985..40b90d2dc 100644
--- a/python_apps/airtime_analyzer/tests/replaygain_analyzer_test.py
+++ b/python_apps/airtime_analyzer/tests/replaygain_analyzer_test.py
@@ -1,6 +1,7 @@
 from __future__ import print_function
-from nose.tools import *
+
 from airtime_analyzer.replaygain_analyzer import ReplayGainAnalyzer
+from nose.tools import *
 
 
 def check_default_metadata(metadata):
diff --git a/python_apps/api_clients/api_clients/utils.py b/python_apps/api_clients/api_clients/utils.py
index f297c87b4..0c491d36b 100644
--- a/python_apps/api_clients/api_clients/utils.py
+++ b/python_apps/api_clients/api_clients/utils.py
@@ -1,7 +1,8 @@
-import json
 import datetime
+import json
 import logging
 import socket
+
 import requests
 from requests.auth import AuthBase
 
diff --git a/python_apps/api_clients/api_clients/version1.py b/python_apps/api_clients/api_clients/version1.py
index 6a7d4735c..6d94f9329 100644
--- a/python_apps/api_clients/api_clients/version1.py
+++ b/python_apps/api_clients/api_clients/version1.py
@@ -6,17 +6,18 @@
 # probably want to create a script on your server side to automatically
 # schedule a playlist one minute from the current time.
 ###############################################################################
+import base64
+import json
+import logging
 import sys
 import time
-import urllib.parse
-import requests
-import logging
-import json
-import base64
 import traceback
+import urllib.parse
+
+import requests
 from configobj import ConfigObj
 
-from .utils import RequestProvider, ApiRequest, get_protocol
+from .utils import ApiRequest, RequestProvider, get_protocol
 
 AIRTIME_API_VERSION = "1.1"
 
diff --git a/python_apps/api_clients/api_clients/version2.py b/python_apps/api_clients/api_clients/version2.py
index e12131a2a..4f86f5709 100644
--- a/python_apps/api_clients/api_clients/version2.py
+++ b/python_apps/api_clients/api_clients/version2.py
@@ -7,10 +7,13 @@
 # schedule a playlist one minute from the current time.
 ###############################################################################
 import datetime
-from dateutil.parser import isoparse
 import logging
+import sys
+
 from configobj import ConfigObj
-from .utils import RequestProvider, time_in_seconds, time_in_milliseconds, fromisoformat
+from dateutil.parser import isoparse
+
+from .utils import RequestProvider, fromisoformat, time_in_milliseconds, time_in_seconds
 
 LIBRETIME_API_VERSION = "2.0"
 
diff --git a/python_apps/api_clients/setup.py b/python_apps/api_clients/setup.py
index b2957fb15..d09fa17b7 100644
--- a/python_apps/api_clients/setup.py
+++ b/python_apps/api_clients/setup.py
@@ -1,8 +1,10 @@
 from __future__ import print_function
-from setuptools import setup
-from subprocess import call
-import sys
+
 import os
+import sys
+from subprocess import call
+
+from setuptools import setup
 
 script_path = os.path.dirname(os.path.realpath(__file__))
 print(script_path)
diff --git a/python_apps/api_clients/tests/apcurl_test.py b/python_apps/api_clients/tests/apcurl_test.py
index 1b69f9b03..0c88bf695 100644
--- a/python_apps/api_clients/tests/apcurl_test.py
+++ b/python_apps/api_clients/tests/apcurl_test.py
@@ -1,5 +1,6 @@
 import unittest
-from api_clients.utils import ApcUrl, UrlBadParam, IncompleteUrl
+
+from api_clients.utils import ApcUrl, IncompleteUrl, UrlBadParam
 
 
 class TestApcUrl(unittest.TestCase):
diff --git a/python_apps/api_clients/tests/apirequest_test.py b/python_apps/api_clients/tests/apirequest_test.py
index 57daa1716..052b981f7 100644
--- a/python_apps/api_clients/tests/apirequest_test.py
+++ b/python_apps/api_clients/tests/apirequest_test.py
@@ -1,7 +1,8 @@
-import unittest
 import json
-from mock import MagicMock, patch
+import unittest
+
 from api_clients.utils import ApcUrl, ApiRequest
+from mock import MagicMock, patch
 
 
 class ResponseInfo:
diff --git a/python_apps/api_clients/tests/requestprovider_test.py b/python_apps/api_clients/tests/requestprovider_test.py
index e7b2d9792..3f0fc4fad 100644
--- a/python_apps/api_clients/tests/requestprovider_test.py
+++ b/python_apps/api_clients/tests/requestprovider_test.py
@@ -1,9 +1,10 @@
-import unittest
 import json
-from mock import patch, MagicMock
-from configobj import ConfigObj
-from api_clients.version1 import api_config
+import unittest
+
 from api_clients.utils import RequestProvider
+from api_clients.version1 import api_config
+from configobj import ConfigObj
+from mock import MagicMock, patch
 
 
 class TestRequestProvider(unittest.TestCase):
diff --git a/python_apps/api_clients/tests/utils_test.py b/python_apps/api_clients/tests/utils_test.py
index 17e7e359e..d74cf0ae8 100644
--- a/python_apps/api_clients/tests/utils_test.py
+++ b/python_apps/api_clients/tests/utils_test.py
@@ -1,6 +1,7 @@
-import datetime
 import configparser
+import datetime
 import unittest
+
 from api_clients import utils
 
 
diff --git a/python_apps/icecast2/install/icecast2-install.py b/python_apps/icecast2/install/icecast2-install.py
index 28428a96a..ad7f441e4 100644
--- a/python_apps/icecast2/install/icecast2-install.py
+++ b/python_apps/icecast2/install/icecast2-install.py
@@ -1,5 +1,5 @@
-import shutil
 import os
+import shutil
 import sys
 
 if os.geteuid() != 0:
diff --git a/python_apps/pypo/bin/pyponotify b/python_apps/pypo/bin/pyponotify
index 6130b9200..9efd0738e 100755
--- a/python_apps/pypo/bin/pyponotify
+++ b/python_apps/pypo/bin/pyponotify
@@ -17,18 +17,18 @@ Main case:
 
 """
 
-from optparse import OptionParser
-import sys
-import logging.config
 import json
-
-# additional modules (should be checked)
-from configobj import ConfigObj
+import logging.config
+import sys
+from optparse import OptionParser
 
 # custom imports
 # from util import *
 from api_clients import version1 as api_client
 
+# additional modules (should be checked)
+from configobj import ConfigObj
+
 LOG_LEVEL = logging.INFO
 LOG_PATH = "/var/log/airtime/pypo/notify.log"
 
diff --git a/python_apps/pypo/liquidsoap/__main__.py b/python_apps/pypo/liquidsoap/__main__.py
index af8145a79..e25e07aab 100644
--- a/python_apps/pypo/liquidsoap/__main__.py
+++ b/python_apps/pypo/liquidsoap/__main__.py
@@ -1,12 +1,14 @@
 """ Runs Airtime liquidsoap
 """
 import argparse
-import os
-from . import generate_liquidsoap_cfg
 import logging
+import os
 import subprocess
+
 from pypo import pure
 
+from . import generate_liquidsoap_cfg
+
 PYPO_HOME = "/var/tmp/airtime/pypo/"
 
 
diff --git a/python_apps/pypo/liquidsoap/generate_liquidsoap_cfg.py b/python_apps/pypo/liquidsoap/generate_liquidsoap_cfg.py
index 137dfa376..70426a03e 100644
--- a/python_apps/pypo/liquidsoap/generate_liquidsoap_cfg.py
+++ b/python_apps/pypo/liquidsoap/generate_liquidsoap_cfg.py
@@ -3,6 +3,7 @@ import os
 import sys
 import time
 import traceback
+
 from api_clients.version1 import AirtimeApiClient
 
 
diff --git a/python_apps/pypo/liquidsoap/liquidsoap_auth.py b/python_apps/pypo/liquidsoap/liquidsoap_auth.py
index 5f9b57a0d..fc17a6132 100644
--- a/python_apps/pypo/liquidsoap/liquidsoap_auth.py
+++ b/python_apps/pypo/liquidsoap/liquidsoap_auth.py
@@ -1,6 +1,7 @@
-from api_clients import version1 as api_client
 import sys
 
+from api_clients import version1 as api_client
+
 api_clients = api_client.AirtimeApiClient()
 
 dj_type = sys.argv[1]
diff --git a/python_apps/pypo/liquidsoap/liquidsoap_prepare_terminate.py b/python_apps/pypo/liquidsoap/liquidsoap_prepare_terminate.py
index 86f8b10d6..f336ee166 100644
--- a/python_apps/pypo/liquidsoap/liquidsoap_prepare_terminate.py
+++ b/python_apps/pypo/liquidsoap/liquidsoap_prepare_terminate.py
@@ -1,6 +1,7 @@
-from configobj import ConfigObj
-import telnetlib
 import sys
+import telnetlib
+
+from configobj import ConfigObj
 
 try:
     config = ConfigObj("/etc/airtime/airtime.conf")
diff --git a/python_apps/pypo/pypo/__main__.py b/python_apps/pypo/pypo/__main__.py
index a3f27bcbc..1e318d7fa 100644
--- a/python_apps/pypo/pypo/__main__.py
+++ b/python_apps/pypo/pypo/__main__.py
@@ -3,6 +3,7 @@ Python part of radio playout (pypo)
 """
 
 
+import importlib
 import locale
 import logging
 import os
@@ -11,19 +12,20 @@ import signal
 import sys
 import telnetlib
 import time
+from datetime import datetime
+from optparse import OptionParser
 
 from api_clients import version1 as api_client
 from configobj import ConfigObj
-from datetime import datetime
-from optparse import OptionParser
-import importlib
 
 try:
     from queue import Queue
 except ImportError:  # Python 2.7.5 (CentOS 7)
     from queue import Queue
+
 from threading import Lock
 
+from . import pure
 from .listenerstat import ListenerStat
 from .pypofetch import PypoFetch
 from .pypofile import PypoFile
@@ -32,8 +34,6 @@ from .pypomessagehandler import PypoMessageHandler
 from .pypopush import PypoPush
 from .recorder import Recorder
 from .timeout import ls_timeout
-from . import pure
-
 
 LOG_PATH = "/var/log/airtime/pypo/pypo.log"
 LOG_LEVEL = logging.INFO
diff --git a/python_apps/pypo/pypo/listenerstat.py b/python_apps/pypo/pypo/listenerstat.py
index b10de33c0..fdff90caf 100644
--- a/python_apps/pypo/pypo/listenerstat.py
+++ b/python_apps/pypo/pypo/listenerstat.py
@@ -1,12 +1,14 @@
-from threading import Thread
-import urllib.request, urllib.error, urllib.parse
-import defusedxml.minidom
 import base64
-from datetime import datetime
-import traceback
 import logging
 import time
+import traceback
+import urllib.error
+import urllib.parse
+import urllib.request
+from datetime import datetime
+from threading import Thread
 
+import defusedxml.minidom
 from api_clients import version1 as api_client
 
 
diff --git a/python_apps/pypo/pypo/pure.py b/python_apps/pypo/pypo/pure.py
index f0ff9843e..7acbc5400 100644
--- a/python_apps/pypo/pypo/pure.py
+++ b/python_apps/pypo/pypo/pure.py
@@ -1,4 +1,5 @@
 import re
+
 from packaging.version import Version, parse
 
 
diff --git a/python_apps/pypo/pypo/pypofetch.py b/python_apps/pypo/pypo/pypofetch.py
index a0c857bdb..dc2cb5c85 100644
--- a/python_apps/pypo/pypo/pypofetch.py
+++ b/python_apps/pypo/pypo/pypofetch.py
@@ -1,21 +1,22 @@
-import os
-import sys
-import time
-import logging.config
-import json
-import telnetlib
 import copy
-import subprocess
-import signal
-from datetime import datetime
+import json
+import logging.config
 import mimetypes
-from . import pure
+import os
+import signal
+import subprocess
+import sys
+import telnetlib
+import time
+from datetime import datetime
 from queue import Empty
+from subprocess import PIPE, Popen
 from threading import Thread, Timer
-from subprocess import Popen, PIPE
 
 from api_clients import version1 as v1_api_client
 from api_clients import version2 as api_client
+
+from . import pure
 from .timeout import ls_timeout
 
 
diff --git a/python_apps/pypo/pypo/pypofile.py b/python_apps/pypo/pypo/pypofile.py
index a835e4635..f7d5a2cab 100644
--- a/python_apps/pypo/pypo/pypofile.py
+++ b/python_apps/pypo/pypo/pypofile.py
@@ -1,20 +1,20 @@
-from threading import Thread
-from queue import Empty
-from configparser import NoOptionError
-
+import configparser
+import hashlib
+import json
 import logging
+import os
 import shutil
+import stat
+import sys
 import time
 import traceback
-import os
-import sys
-import stat
+from configparser import NoOptionError
+from queue import Empty
+from threading import Thread
+
 import requests
-import configparser
-import json
-import hashlib
-from requests.exceptions import ConnectionError, HTTPError, Timeout
 from api_clients import version2 as api_client
+from requests.exceptions import ConnectionError, HTTPError, Timeout
 
 CONFIG_PATH = "/etc/airtime/airtime.conf"
 
diff --git a/python_apps/pypo/pypo/pypoliqqueue.py b/python_apps/pypo/pypo/pypoliqqueue.py
index 6972c5376..607455061 100644
--- a/python_apps/pypo/pypo/pypoliqqueue.py
+++ b/python_apps/pypo/pypo/pypoliqqueue.py
@@ -1,15 +1,11 @@
-from threading import Thread
-from collections import deque
-from datetime import datetime
-
-import traceback
+import signal
 import sys
 import time
-
-
+import traceback
+from collections import deque
+from datetime import datetime
 from queue import Empty
-
-import signal
+from threading import Thread
 
 
 def keyboardInterruptHandler(signum, frame):
diff --git a/python_apps/pypo/pypo/pypoliquidsoap.py b/python_apps/pypo/pypo/pypoliquidsoap.py
index 03af2a89c..d48b29836 100644
--- a/python_apps/pypo/pypo/pypoliquidsoap.py
+++ b/python_apps/pypo/pypo/pypoliquidsoap.py
@@ -1,11 +1,9 @@
-from .pypofetch import PypoFetch
-from .telnetliquidsoap import TelnetLiquidsoap
-
-from datetime import datetime
-from datetime import timedelta
+import time
+from datetime import datetime, timedelta
 
 from . import eventtypes
-import time
+from .pypofetch import PypoFetch
+from .telnetliquidsoap import TelnetLiquidsoap
 
 
 class PypoLiquidsoap:
diff --git a/python_apps/pypo/pypo/pypomessagehandler.py b/python_apps/pypo/pypo/pypomessagehandler.py
index 78718109a..be7f630fa 100644
--- a/python_apps/pypo/pypo/pypomessagehandler.py
+++ b/python_apps/pypo/pypo/pypomessagehandler.py
@@ -1,18 +1,18 @@
+import json
 import logging
-import traceback
 import os
 import sys
-from threading import Thread
 import time
+import traceback
+from threading import Thread
+
+from amqp.exceptions import AMQPError
 
 # For RabbitMQ
 from kombu.connection import Connection
 from kombu.messaging import Exchange, Queue
-from kombu.simple import SimpleQueue
-from amqp.exceptions import AMQPError
-import json
-
 from kombu.mixins import ConsumerMixin
+from kombu.simple import SimpleQueue
 
 logging.captureWarnings(True)
 
diff --git a/python_apps/pypo/pypo/pypopush.py b/python_apps/pypo/pypo/pypopush.py
index 86e3177dc..bdc084f66 100644
--- a/python_apps/pypo/pypo/pypopush.py
+++ b/python_apps/pypo/pypo/pypopush.py
@@ -1,24 +1,20 @@
-from datetime import datetime
-from datetime import timedelta
-from configobj import ConfigObj
-
-import sys
-import time
-import logging.config
-import telnetlib
 import calendar
+import logging.config
 import math
-import traceback
 import os
-
-from .pypofetch import PypoFetch
-from .pypoliqqueue import PypoLiqQueue
-
+import sys
+import telnetlib
+import time
+import traceback
+from datetime import datetime, timedelta
 from queue import Empty, Queue
-
 from threading import Thread
 
 from api_clients import version1 as api_client
+from configobj import ConfigObj
+
+from .pypofetch import PypoFetch
+from .pypoliqqueue import PypoLiqQueue
 from .timeout import ls_timeout
 
 logging.captureWarnings(True)
diff --git a/python_apps/pypo/pypo/recorder.py b/python_apps/pypo/pypo/recorder.py
index 80ede3be9..c785fef23 100644
--- a/python_apps/pypo/pypo/recorder.py
+++ b/python_apps/pypo/pypo/recorder.py
@@ -1,25 +1,21 @@
-import logging
-import json
-import time
 import datetime
-import os
-import sys
-import pytz
-import signal
+import json
+import logging
 import math
-import traceback
+import os
 import re
-
-from configobj import ConfigObj
-
-from subprocess import Popen
-from subprocess import PIPE
+import signal
+import sys
+import time
+import traceback
+from subprocess import PIPE, Popen
 from threading import Thread
 
 import mutagen
-
+import pytz
 from api_clients import version1 as v1_api_client
 from api_clients import version2 as api_client
+from configobj import ConfigObj
 
 
 def api_client(logger):
diff --git a/python_apps/pypo/pypo/telnetliquidsoap.py b/python_apps/pypo/pypo/telnetliquidsoap.py
index 7d2a577ef..4fad0f82c 100644
--- a/python_apps/pypo/pypo/telnetliquidsoap.py
+++ b/python_apps/pypo/pypo/telnetliquidsoap.py
@@ -1,7 +1,8 @@
 import telnetlib
-from .timeout import ls_timeout
 import traceback
 
+from .timeout import ls_timeout
+
 
 def create_liquidsoap_annotation(media):
     # We need liq_start_next value in the annotate. That is the value that controls overlap duration of crossfade.
diff --git a/python_apps/pypo/pypo/testpypoliqqueue.py b/python_apps/pypo/pypo/testpypoliqqueue.py
index 94e224fcb..d84bd1dea 100644
--- a/python_apps/pypo/pypo/testpypoliqqueue.py
+++ b/python_apps/pypo/pypo/testpypoliqqueue.py
@@ -1,15 +1,12 @@
-from .pypoliqqueue import PypoLiqQueue
-from .telnetliquidsoap import DummyTelnetLiquidsoap, TelnetLiquidsoap
-
-
+import logging
+import signal
+import sys
+from datetime import datetime, timedelta
 from queue import Queue
 from threading import Lock
 
-import sys
-import signal
-import logging
-from datetime import datetime
-from datetime import timedelta
+from .pypoliqqueue import PypoLiqQueue
+from .telnetliquidsoap import DummyTelnetLiquidsoap, TelnetLiquidsoap
 
 
 def keyboardInterruptHandler(signum, frame):
diff --git a/python_apps/pypo/pypo/timeout.py b/python_apps/pypo/pypo/timeout.py
index d5892ff9f..3c62773de 100644
--- a/python_apps/pypo/pypo/timeout.py
+++ b/python_apps/pypo/pypo/timeout.py
@@ -1,4 +1,5 @@
 import threading
+
 from . import pypofetch
 
 
diff --git a/python_apps/pypo/setup.py b/python_apps/pypo/setup.py
index 069cefe0f..44a63bc2d 100644
--- a/python_apps/pypo/setup.py
+++ b/python_apps/pypo/setup.py
@@ -1,8 +1,10 @@
 from __future__ import print_function
-from setuptools import setup
-from subprocess import call
-import sys
+
 import os
+import sys
+from subprocess import call
+
+from setuptools import setup
 
 script_path = os.path.dirname(os.path.realpath(__file__))
 print(script_path)
diff --git a/utils/airtime-import/airtime-import b/utils/airtime-import/airtime-import
index b66355c78..c8773c18e 100755
--- a/utils/airtime-import/airtime-import
+++ b/utils/airtime-import/airtime-import
@@ -1,12 +1,13 @@
 #!/usr/bin/python2 import sys
-import os
-import logging
-from configobj import ConfigObj
-from optparse import OptionParser, OptionValueError
-from api_clients import api_client as apc
 import json
+import logging
+import os
 import shutil
+from optparse import OptionParser, OptionValueError
+
 import commands
+from api_clients import api_client as apc
+from configobj import ConfigObj
 
 # sys.path.append('/usr/lib/airtime/media-monitor/mm2/')
 from mm2.media.monitor.pure import is_file_supported
diff --git a/utils/airtime-silan b/utils/airtime-silan
index 26ad6fdc6..124b9c920 100755
--- a/utils/airtime-silan
+++ b/utils/airtime-silan
@@ -1,14 +1,14 @@
 #!/usr/bin/python
-from configobj import ConfigObj
-from api_clients import api_client as apc
-
-import logging
 import json
+import logging
 import os
-import sys
 import subprocess
+import sys
 import traceback
 
+from api_clients import api_client as apc
+from configobj import ConfigObj
+
 # create logger
 logger = logging.getLogger()
 
diff --git a/utils/airtime-test-soundcard.py b/utils/airtime-test-soundcard.py
index 17b5b0ad3..d9345b107 100644
--- a/utils/airtime-test-soundcard.py
+++ b/utils/airtime-test-soundcard.py
@@ -1,11 +1,10 @@
-import subprocess
+import getopt
+import grp
 import os
 import pwd
-import grp
+import subprocess
 import sys
 
-import getopt
-
 """
 we need to run the program as non-root because Liquidsoap refuses to run as root.
 It is possible to run change the effective user id (seteuid) before calling Liquidsoap
diff --git a/utils/airtime-test-stream.py b/utils/airtime-test-stream.py
index d8f7b226f..0bf6a25ce 100644
--- a/utils/airtime-test-stream.py
+++ b/utils/airtime-test-stream.py
@@ -1,11 +1,10 @@
-import subprocess
+import getopt
+import grp
 import os
 import pwd
-import grp
+import subprocess
 import sys
 
-import getopt
-
 """
 we need to run the program as non-root because Liquidsoap refuses to run as root.
 It is possible to run change the effective user id (seteuid) before calling Liquidsoap
diff --git a/utils/upgrade.py b/utils/upgrade.py
index f030af01b..56a501b07 100755
--- a/utils/upgrade.py
+++ b/utils/upgrade.py
@@ -1,10 +1,11 @@
 #!/usr/bin/python
 
-import ConfigParser
 import argparse
+import sys
+
+import ConfigParser
 import requests
 from urlparse import urlparse
-import sys
 
 CONFIG_PATH = "/etc/airtime/airtime.conf"
 GENERAL_CONFIG_SECTION = "general"