From f37aad28f24a373d457ef7f247fc548978d2b8fc Mon Sep 17 00:00:00 2001
From: Ernesto Rico Schmidt <ernesto@helsinki.at>
Date: Mon, 14 Mar 2022 19:19:05 -0400
Subject: [PATCH] Apply isort

---
 profile/migrations/0001_initial.py            |  5 +-
 profile/migrations/0001_squashed.py           |  6 +-
 profile/migrations/0002_auto_20171129_1828.py | 13 +++--
 profile/serializers.py                        |  4 +-
 program/auth.py                               |  3 +-
 program/management/commands/addnote.py        |  7 +--
 .../management/commands/create_oidc_client.py |  5 +-
 program/management/commands/export_showlog.py |  1 +
 .../commands/remove_automation_id.py          |  1 -
 program/migrations/0001_initial.py            |  2 +-
 program/migrations/0001_squashed.py           | 55 ++++++++++---------
 program/migrations/0004_auto_20220111_1806.py |  2 +-
 program/migrations/0008_auto_20220117_1721.py |  3 +-
 program/migrations/0011_link.py               |  2 +-
 program/migrations/0012_auto_20180104_0005.py | 35 ++++++------
 program/migrations/0013_auto_20220221_1637.py |  5 +-
 program/migrations/0014_auto_20180216_2000.py |  2 +-
 program/migrations/0016_auto_20180222_1253.py |  7 ++-
 program/migrations/0018_auto_20190810_1146.py | 10 ++--
 program/migrations/0019_auto_20190810_1340.py |  2 +-
 program/migrations/0020_auto_20190810_1341.py |  2 +-
 program/migrations/0022_show_is_public.py     |  2 +-
 program/models.py                             | 10 ++--
 program/serializers.py                        | 25 +++++----
 program/utils.py                              |  6 +-
 program/views.py                              | 36 ++++++------
 steering/oidc_provider_settings.py            |  3 +-
 steering/urls.py                              | 20 +++----
 28 files changed, 141 insertions(+), 133 deletions(-)

diff --git a/profile/migrations/0001_initial.py b/profile/migrations/0001_initial.py
index cf221f50..ad7c45b8 100644
--- a/profile/migrations/0001_initial.py
+++ b/profile/migrations/0001_initial.py
@@ -2,10 +2,11 @@
 # Generated by Django 1.11.3 on 2017-11-09 18:42
 from __future__ import unicode_literals
 
+import versatileimagefield.fields
+
+import django.db.models.deletion
 from django.conf import settings
 from django.db import migrations, models
-import django.db.models.deletion
-import versatileimagefield.fields
 
 
 class Migration(migrations.Migration):
diff --git a/profile/migrations/0001_squashed.py b/profile/migrations/0001_squashed.py
index 50f9e213..1313caa1 100644
--- a/profile/migrations/0001_squashed.py
+++ b/profile/migrations/0001_squashed.py
@@ -1,8 +1,8 @@
 # Generated by Django 2.2.12 on 2020-11-21 01:34
 
+import django.db.models.deletion
 from django.conf import settings
 from django.db import migrations, models
-import django.db.models.deletion
 
 
 class Migration(migrations.Migration):
@@ -37,7 +37,7 @@ class Migration(migrations.Migration):
                     models.CharField(
                         blank=True,
                         help_text="Your username in CBA. This is necessary for uploading files to"
-                                  " your account.",
+                        " your account.",
                         max_length=60,
                         verbose_name="CBA Username",
                     ),
@@ -47,7 +47,7 @@ class Migration(migrations.Migration):
                     models.CharField(
                         blank=True,
                         help_text="The CBA upload token for your account. This is NOT your"
-                                  " password which you use to log into CBA!",
+                        " password which you use to log into CBA!",
                         max_length=255,
                         verbose_name="CBA Token",
                     ),
diff --git a/profile/migrations/0002_auto_20171129_1828.py b/profile/migrations/0002_auto_20171129_1828.py
index 1f30c9a0..38955424 100644
--- a/profile/migrations/0002_auto_20171129_1828.py
+++ b/profile/migrations/0002_auto_20171129_1828.py
@@ -2,10 +2,11 @@
 # Generated by Django 1.11.3 on 2017-11-29 18:28
 from __future__ import unicode_literals
 
+import versatileimagefield.fields
+
+import django.db.models.deletion
 from django.conf import settings
 from django.db import migrations, models
-import django.db.models.deletion
-import versatileimagefield.fields
 
 
 class Migration(migrations.Migration):
@@ -38,7 +39,7 @@ class Migration(migrations.Migration):
             field=models.CharField(
                 blank=True,
                 help_text="The CBA upload token for your account. This is NOT your password which"
-                          " you use to log into CBA!",
+                " you use to log into CBA!",
                 max_length=255,
                 verbose_name="CBA Token",
             ),
@@ -49,7 +50,7 @@ class Migration(migrations.Migration):
             field=models.CharField(
                 blank=True,
                 help_text="Your username in CBA. This is necessary for uploading files to your"
-                          " account.",
+                " account.",
                 max_length=60,
                 verbose_name="CBA Username",
             ),
@@ -88,8 +89,8 @@ class Migration(migrations.Migration):
                 blank=True,
                 height_field="height",
                 help_text="Upload a picture of yourself. Images are automatically cropped around"
-                          " the 'Primary Point of Interest'. Click in the image to change it and"
-                          " press Save.",
+                " the 'Primary Point of Interest'. Click in the image to change it and"
+                " press Save.",
                 null=True,
                 upload_to="user_images",
                 verbose_name="Profile picture",
diff --git a/profile/serializers.py b/profile/serializers.py
index dd06250e..efff1c2f 100644
--- a/profile/serializers.py
+++ b/profile/serializers.py
@@ -17,10 +17,10 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-from rest_framework import serializers
-
 from profile.models import Profile
 
+from rest_framework import serializers
+
 
 class ProfileSerializer(serializers.ModelSerializer):
     class Meta:
diff --git a/program/auth.py b/program/auth.py
index 17221ae5..19d2b997 100644
--- a/program/auth.py
+++ b/program/auth.py
@@ -20,8 +20,7 @@
 
 from oidc_provider.lib.utils.oauth2 import extract_access_token
 from oidc_provider.models import Token
-from rest_framework import authentication
-from rest_framework import exceptions
+from rest_framework import authentication, exceptions
 
 
 class OidcOauth2Auth(authentication.BaseAuthentication):
diff --git a/program/management/commands/addnote.py b/program/management/commands/addnote.py
index d78ec535..e19ede8d 100644
--- a/program/management/commands/addnote.py
+++ b/program/management/commands/addnote.py
@@ -1,9 +1,8 @@
-from django.core.management.base import BaseCommand, CommandError
-from django.core.exceptions import ValidationError
-
 import sys
 
-from program.models import Show, TimeSlot, Note
+from django.core.exceptions import ValidationError
+from django.core.management.base import BaseCommand, CommandError
+from program.models import Note, Show, TimeSlot
 from program.utils import parse_date
 
 
diff --git a/program/management/commands/create_oidc_client.py b/program/management/commands/create_oidc_client.py
index 46d3d2b1..b7c247da 100644
--- a/program/management/commands/create_oidc_client.py
+++ b/program/management/commands/create_oidc_client.py
@@ -2,9 +2,10 @@ import random
 import string
 import sys
 
-from django.core.management.base import BaseCommand, CommandError
 from oidc_provider.models import Client, ResponseType
 
+from django.core.management.base import BaseCommand, CommandError
+
 
 class Command(BaseCommand):
     help = (
@@ -49,7 +50,7 @@ class Command(BaseCommand):
             dest="reuse_consent",
             action="store_false",
             help="By default user consent will be reused. Use this if the user should provide"
-                 " consent on every login.",
+            " consent on every login.",
         )
         parser.set_defaults(require_consent=True, reuse_consent=True)
         parser.add_argument(
diff --git a/program/management/commands/export_showlog.py b/program/management/commands/export_showlog.py
index 0cf4ca0d..df471d48 100644
--- a/program/management/commands/export_showlog.py
+++ b/program/management/commands/export_showlog.py
@@ -3,6 +3,7 @@
 import codecs
 import sys
 from datetime import datetime
+
 from django.core.management.base import BaseCommand, CommandError
 from program.models import TimeSlot
 
diff --git a/program/management/commands/remove_automation_id.py b/program/management/commands/remove_automation_id.py
index 6045ff23..519e7681 100644
--- a/program/management/commands/remove_automation_id.py
+++ b/program/management/commands/remove_automation_id.py
@@ -1,5 +1,4 @@
 from django.core.management.base import BaseCommand, CommandError
-
 from program.models import Schedule
 
 
diff --git a/program/migrations/0001_initial.py b/program/migrations/0001_initial.py
index 7a93e423..34b3079b 100644
--- a/program/migrations/0001_initial.py
+++ b/program/migrations/0001_initial.py
@@ -1,8 +1,8 @@
 # -*- coding: utf-8 -*-
 from __future__ import unicode_literals
 
-from django.db import migrations, models
 from django.conf import settings
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
diff --git a/program/migrations/0001_squashed.py b/program/migrations/0001_squashed.py
index a231524b..4a3a39fe 100644
--- a/program/migrations/0001_squashed.py
+++ b/program/migrations/0001_squashed.py
@@ -1,9 +1,10 @@
 # Generated by Django 2.2.12 on 2020-11-21 01:34
 
+import versatileimagefield.fields
+
+import django.db.models.deletion
 from django.conf import settings
 from django.db import migrations, models
-import django.db.models.deletion
-import versatileimagefield.fields
 
 
 class Migration(migrations.Migration):
@@ -72,7 +73,7 @@ class Migration(migrations.Migration):
                     models.TextField(
                         blank=True,
                         help_text="Describe yourself and your fields of interest in a few"
-                                  " sentences.",
+                        " sentences.",
                         null=True,
                         verbose_name="Biography",
                     ),
@@ -124,8 +125,8 @@ class Migration(migrations.Migration):
                         blank=True,
                         height_field="height",
                         help_text="Upload a picture of yourself. Images are automatically cropped"
-                                  " around the 'Primary Point of Interest'. Click in the image to"
-                                  " change it and press Save.",
+                        " around the 'Primary Point of Interest'. Click in the image to"
+                        " change it and press Save.",
                         null=True,
                         upload_to="host_images",
                         verbose_name="Profile picture",
@@ -332,8 +333,8 @@ class Migration(migrations.Migration):
                         blank=True,
                         height_field="height",
                         help_text="Upload an image to your show. Images are automatically cropped"
-                                  " around the 'Primary Point of Interest'. Click in the image to"
-                                  " change it and press Save.",
+                        " around the 'Primary Point of Interest'. Click in the image to"
+                        " change it and press Save.",
                         null=True,
                         upload_to="show_images",
                         verbose_name="Image",
@@ -344,8 +345,8 @@ class Migration(migrations.Migration):
                     "short_description",
                     models.TextField(
                         help_text="Describe your show in some sentences. Avoid technical data like"
-                                  " airing times and contact information. They will be added"
-                                  " automatically.",
+                        " airing times and contact information. They will be added"
+                        " automatically.",
                         verbose_name="Short description",
                     ),
                 ),
@@ -422,9 +423,9 @@ class Migration(migrations.Migration):
                     models.IntegerField(
                         blank=True,
                         help_text="Link your show to a CBA series by giving its ID. This will"
-                                  " enable CBA upload and will automatically link your show to"
-                                  " your CBA archive. Find out your ID under"
-                                  " https://cba.fro.at/series",
+                        " enable CBA upload and will automatically link your show to"
+                        " your CBA archive. Find out your ID under"
+                        " https://cba.fro.at/series",
                         null=True,
                         verbose_name="CBA Series ID",
                     ),
@@ -811,9 +812,9 @@ class Migration(migrations.Migration):
                     "title",
                     models.CharField(
                         help_text="Give your note a good headline. What will your upcoming show be"
-                                  " about? Try to arouse interest to listen to it!<br>Avoid"
-                                  " technical data like the show's name, its airing times or its"
-                                  " episode number. These data are added automatically.",
+                        " about? Try to arouse interest to listen to it!<br>Avoid"
+                        " technical data like the show's name, its airing times or its"
+                        " episode number. These data are added automatically.",
                         max_length=128,
                         verbose_name="Title",
                     ),
@@ -869,8 +870,8 @@ class Migration(migrations.Migration):
                     models.IntegerField(
                         blank=True,
                         help_text="Link the note to a certain CBA post by giving its ID. (E.g. if"
-                                  " your post's CBA URL is https://cba.fro.at/1234, then your CBA"
-                                  " ID is 1234)",
+                        " your post's CBA URL is https://cba.fro.at/1234, then your CBA"
+                        " ID is 1234)",
                         null=True,
                         verbose_name="CBA ID",
                     ),
@@ -899,8 +900,8 @@ class Migration(migrations.Migration):
                         blank=True,
                         height_field="height",
                         help_text="Upload an image to your note. Images are automatically cropped"
-                                  " around the 'Primary Point of Interest'. Click in the image to"
-                                  " change it and press Save.",
+                        " around the 'Primary Point of Interest'. Click in the image to"
+                        " change it and press Save.",
                         null=True,
                         upload_to="note_images",
                         verbose_name="Featured image",
@@ -931,8 +932,8 @@ class Migration(migrations.Migration):
                     models.TextField(
                         blank=True,
                         help_text="Describe your upcoming show in some sentences. Avoid technical"
-                                  " data like airing times and contact information. They will be"
-                                  " added automatically.",
+                        " data like airing times and contact information. They will be"
+                        " added automatically.",
                         verbose_name="Summary",
                     ),
                 ),
@@ -1076,8 +1077,8 @@ class Migration(migrations.Migration):
             field=models.IntegerField(
                 blank=True,
                 help_text="Link your show to a CBA series by giving its ID. This will enable CBA"
-                          " upload and will automatically link your show to your CBA archive. Find"
-                          " out your show's ID under https://cba.fro.at/series",
+                " upload and will automatically link your show to your CBA archive. Find"
+                " out your show's ID under https://cba.fro.at/series",
                 null=True,
                 verbose_name="CBA Series ID",
             ),
@@ -1088,7 +1089,7 @@ class Migration(migrations.Migration):
             field=models.IntegerField(
                 blank=True,
                 help_text="If a timeslot of your show is empty, this playlist will be aired as a"
-                          " backup.",
+                " backup.",
                 null=True,
                 verbose_name="Fallback ID",
             ),
@@ -1109,8 +1110,8 @@ class Migration(migrations.Migration):
             name="short_description",
             field=models.TextField(
                 help_text="Describe your show for your listeners in some sentences. Avoid"
-                          " technical data like airing times and contact information. They will be"
-                          " added automatically.",
+                " technical data like airing times and contact information. They will be"
+                " added automatically.",
                 verbose_name="Short description",
             ),
         ),
@@ -1137,7 +1138,7 @@ class Migration(migrations.Migration):
             field=models.BooleanField(
                 default=False,
                 help_text="Files and Playlists of Public Shows can only be changed by owners but"
-                          " may be used by everyone.",
+                " may be used by everyone.",
                 verbose_name="Is Public?",
             ),
         ),
diff --git a/program/migrations/0004_auto_20220111_1806.py b/program/migrations/0004_auto_20220111_1806.py
index cb6e547b..17cf8ad1 100644
--- a/program/migrations/0004_auto_20220111_1806.py
+++ b/program/migrations/0004_auto_20220111_1806.py
@@ -69,7 +69,7 @@ class Migration(migrations.Migration):
             field=models.IntegerField(
                 blank=True,
                 help_text="If a timeslot of your show is empty, this playlist will be aired as a"
-                          " backup.",
+                " backup.",
                 null=True,
                 verbose_name="Default Playlist ID",
             ),
diff --git a/program/migrations/0008_auto_20220117_1721.py b/program/migrations/0008_auto_20220117_1721.py
index d5f39e87..6009f039 100644
--- a/program/migrations/0008_auto_20220117_1721.py
+++ b/program/migrations/0008_auto_20220117_1721.py
@@ -1,8 +1,9 @@
 # Generated by Django 2.2.25 on 2022-01-17 16:21
 
-from django.db import migrations, models
 import versatileimagefield.fields
 
+from django.db import migrations, models
+
 
 class Migration(migrations.Migration):
 
diff --git a/program/migrations/0011_link.py b/program/migrations/0011_link.py
index 209ff5fd..120dd78a 100644
--- a/program/migrations/0011_link.py
+++ b/program/migrations/0011_link.py
@@ -1,7 +1,7 @@
 # Generated by Django 3.2.11 on 2022-01-27 16:33
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
diff --git a/program/migrations/0012_auto_20180104_0005.py b/program/migrations/0012_auto_20180104_0005.py
index b3a70111..a1b9dd1a 100644
--- a/program/migrations/0012_auto_20180104_0005.py
+++ b/program/migrations/0012_auto_20180104_0005.py
@@ -2,10 +2,11 @@
 # Generated by Django 1.11.3 on 2018-01-03 23:05
 from __future__ import unicode_literals
 
+import versatileimagefield.fields
+
+import django.db.models.deletion
 from django.conf import settings
 from django.db import migrations, models
-import django.db.models.deletion
-import versatileimagefield.fields
 
 
 class Migration(migrations.Migration):
@@ -382,8 +383,8 @@ class Migration(migrations.Migration):
                 blank=True,
                 height_field="height",
                 help_text="Upload a picture of yourself. Images are automatically cropped around"
-                          " the 'Primary Point of Interest'. Click in the image to change it and"
-                          " press Save.",
+                " the 'Primary Point of Interest'. Click in the image to change it and"
+                " press Save.",
                 null=True,
                 upload_to="host_images",
                 verbose_name="Profile picture",
@@ -449,7 +450,7 @@ class Migration(migrations.Migration):
             field=models.IntegerField(
                 blank=True,
                 help_text="Link the note to a certain CBA post by giving its ID. (E.g. if your"
-                          " post's CBA URL is https://cba.fro.at/1234, then your CBA ID is 1234)",
+                " post's CBA URL is https://cba.fro.at/1234, then your CBA ID is 1234)",
                 null=True,
                 verbose_name="CBA ID",
             ),
@@ -478,8 +479,8 @@ class Migration(migrations.Migration):
                 blank=True,
                 height_field="height",
                 help_text="Upload an image to your show. Images are automatically cropped around"
-                          " the 'Primary Point of Interest'. Click in the image to change it and"
-                          " press Save.",
+                " the 'Primary Point of Interest'. Click in the image to change it and"
+                " press Save.",
                 null=True,
                 upload_to="note_images",
                 verbose_name="Featured image",
@@ -514,8 +515,8 @@ class Migration(migrations.Migration):
             field=models.TextField(
                 blank=True,
                 help_text="Describe your upcoming show in some sentences. Avoid technical data"
-                          " like airing times and contact information. They will be added"
-                          " automatically.",
+                " like airing times and contact information. They will be added"
+                " automatically.",
                 verbose_name="Summary",
             ),
         ),
@@ -543,8 +544,8 @@ class Migration(migrations.Migration):
             field=models.IntegerField(
                 blank=True,
                 help_text="Link your show to a CBA series by giving its ID. This will enable CBA"
-                          " upload and will automatically link your show to your CBA archive. Find"
-                          " out your ID under https://cba.fro.at/series",
+                " upload and will automatically link your show to your CBA archive. Find"
+                " out your ID under https://cba.fro.at/series",
                 null=True,
                 verbose_name="CBA Series ID",
             ),
@@ -660,9 +661,9 @@ class Migration(migrations.Migration):
             name="title",
             field=models.CharField(
                 help_text="Give your note a good headline. What will your upcoming show be about?"
-                          " Try to arouse interest to listen to it!<br>Avoid technical data like"
-                          " the show's name, its airing times or its episode number. These data"
-                          " are added automatically.",
+                " Try to arouse interest to listen to it!<br>Avoid technical data like"
+                " the show's name, its airing times or its episode number. These data"
+                " are added automatically.",
                 max_length=128,
                 verbose_name="Title",
             ),
@@ -695,8 +696,8 @@ class Migration(migrations.Migration):
                 blank=True,
                 height_field="height",
                 help_text="Upload an image to your show. Images are automatically cropped around"
-                          " the 'Primary Point of Interest'. Click in the image to change it and"
-                          " press Save.",
+                " the 'Primary Point of Interest'. Click in the image to change it and"
+                " press Save.",
                 null=True,
                 upload_to="show_images",
                 verbose_name="Image",
@@ -717,7 +718,7 @@ class Migration(migrations.Migration):
             name="short_description",
             field=models.TextField(
                 help_text="Describe your show in some sentences. Avoid technical data like airing"
-                          " times and contact information. They will be added automatically.",
+                " times and contact information. They will be added automatically.",
                 verbose_name="Short description",
             ),
         ),
diff --git a/program/migrations/0013_auto_20220221_1637.py b/program/migrations/0013_auto_20220221_1637.py
index 7832adec..dbd6cb51 100644
--- a/program/migrations/0013_auto_20220221_1637.py
+++ b/program/migrations/0013_auto_20220221_1637.py
@@ -1,9 +1,10 @@
 # Generated by Django 3.2.11 on 2022-02-21 15:37
 
+import versatileimagefield.fields
+
+import django.db.models.deletion
 from django.conf import settings
 from django.db import migrations, models
-import django.db.models.deletion
-import versatileimagefield.fields
 
 
 class Migration(migrations.Migration):
diff --git a/program/migrations/0014_auto_20180216_2000.py b/program/migrations/0014_auto_20180216_2000.py
index 787fbf70..6329c3f1 100644
--- a/program/migrations/0014_auto_20180216_2000.py
+++ b/program/migrations/0014_auto_20180216_2000.py
@@ -2,8 +2,8 @@
 # Generated by Django 1.11.3 on 2018-02-16 20:00
 from __future__ import unicode_literals
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
diff --git a/program/migrations/0016_auto_20180222_1253.py b/program/migrations/0016_auto_20180222_1253.py
index a62ca8d1..0510a881 100644
--- a/program/migrations/0016_auto_20180222_1253.py
+++ b/program/migrations/0016_auto_20180222_1253.py
@@ -2,9 +2,10 @@
 # Generated by Django 1.11.3 on 2018-02-22 12:53
 from __future__ import unicode_literals
 
-from django.db import migrations
 import versatileimagefield.fields
 
+from django.db import migrations
+
 
 class Migration(migrations.Migration):
 
@@ -20,8 +21,8 @@ class Migration(migrations.Migration):
                 blank=True,
                 height_field="height",
                 help_text="Upload an image to your note. Images are automatically cropped around"
-                          " the 'Primary Point of Interest'. Click in the image to change it and"
-                          " press Save.",
+                " the 'Primary Point of Interest'. Click in the image to change it and"
+                " press Save.",
                 null=True,
                 upload_to="note_images",
                 verbose_name="Featured image",
diff --git a/program/migrations/0018_auto_20190810_1146.py b/program/migrations/0018_auto_20190810_1146.py
index 4ed38795..846fb56b 100644
--- a/program/migrations/0018_auto_20190810_1146.py
+++ b/program/migrations/0018_auto_20190810_1146.py
@@ -18,8 +18,8 @@ class Migration(migrations.Migration):
             field=models.IntegerField(
                 blank=True,
                 help_text="Link your show to a CBA series by giving its ID. This will enable CBA"
-                          " upload and will automatically link your show to your CBA archive. Find"
-                          " out your show's ID under https://cba.fro.at/series",
+                " upload and will automatically link your show to your CBA archive. Find"
+                " out your show's ID under https://cba.fro.at/series",
                 null=True,
                 verbose_name="CBA Series ID",
             ),
@@ -30,7 +30,7 @@ class Migration(migrations.Migration):
             field=models.IntegerField(
                 blank=True,
                 help_text="If a timeslot of your show is empty, this playlist will be aired as a"
-                          " backup.",
+                " backup.",
                 null=True,
                 verbose_name="Fallback ID",
             ),
@@ -51,8 +51,8 @@ class Migration(migrations.Migration):
             name="short_description",
             field=models.TextField(
                 help_text="Describe your show for your listeners in some sentences. Avoid"
-                          " technical data like airing times and contact information. They will be"
-                          " added automatically.",
+                " technical data like airing times and contact information. They will be"
+                " added automatically.",
                 verbose_name="Short description",
             ),
         ),
diff --git a/program/migrations/0019_auto_20190810_1340.py b/program/migrations/0019_auto_20190810_1340.py
index f6138a3e..85bf5ca5 100644
--- a/program/migrations/0019_auto_20190810_1340.py
+++ b/program/migrations/0019_auto_20190810_1340.py
@@ -2,8 +2,8 @@
 # Generated by Django 1.11.3 on 2019-08-10 13:40
 from __future__ import unicode_literals
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
diff --git a/program/migrations/0020_auto_20190810_1341.py b/program/migrations/0020_auto_20190810_1341.py
index ad8b2f99..d98c1889 100644
--- a/program/migrations/0020_auto_20190810_1341.py
+++ b/program/migrations/0020_auto_20190810_1341.py
@@ -2,8 +2,8 @@
 # Generated by Django 1.11.3 on 2019-08-10 13:41
 from __future__ import unicode_literals
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
diff --git a/program/migrations/0022_show_is_public.py b/program/migrations/0022_show_is_public.py
index ef05e399..adce478b 100644
--- a/program/migrations/0022_show_is_public.py
+++ b/program/migrations/0022_show_is_public.py
@@ -18,7 +18,7 @@ class Migration(migrations.Migration):
             field=models.BooleanField(
                 default=False,
                 help_text="Files and Playlists of Public Shows can only be changed by owners but"
-                          " may be used by everyone.",
+                " may be used by everyone.",
                 verbose_name="Is Public?",
             ),
         ),
diff --git a/program/models.py b/program/models.py
index 3ee04e0d..511ba383 100644
--- a/program/models.py
+++ b/program/models.py
@@ -22,6 +22,8 @@ from datetime import datetime, time, timedelta
 
 from dateutil.relativedelta import relativedelta
 from dateutil.rrule import rrule
+from versatileimagefield.fields import PPOIField, VersatileImageField
+
 from django.contrib.auth.models import User
 from django.core.exceptions import ObjectDoesNotExist
 from django.db import models
@@ -29,14 +31,12 @@ from django.db.models import Q
 from django.forms.models import model_to_dict
 from django.utils import timezone
 from django.utils.translation import gettext_lazy as _
-from versatileimagefield.fields import VersatileImageField, PPOIField
-
+from program.utils import parse_date, parse_datetime, parse_time
 from steering.settings import (
-    THUMBNAIL_SIZES,
-    AUTO_SET_UNTIL_DATE_TO_END_OF_YEAR,
     AUTO_SET_UNTIL_DATE_TO_DAYS_IN_FUTURE,
+    AUTO_SET_UNTIL_DATE_TO_END_OF_YEAR,
+    THUMBNAIL_SIZES,
 )
-from program.utils import parse_datetime, parse_date, parse_time
 
 
 class Type(models.Model):
diff --git a/program/serializers.py b/program/serializers.py
index 9c798b1f..a8b85bba 100644
--- a/program/serializers.py
+++ b/program/serializers.py
@@ -18,30 +18,31 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+from profile.models import Profile
+from profile.serializers import ProfileSerializer
+
+from rest_framework import serializers
+
 from django.contrib.auth.models import User
 from django.core.exceptions import ObjectDoesNotExist
 from django.utils import timezone
-from rest_framework import serializers
-
-from profile.models import Profile
-from profile.serializers import ProfileSerializer
 from program.models import (
-    Show,
-    Schedule,
-    TimeSlot,
     Category,
     FundingCategory,
     Host,
-    Topic,
+    Language,
+    Link,
     MusicFocus,
     Note,
-    Type,
-    Language,
     RRule,
-    Link,
+    Schedule,
+    Show,
+    TimeSlot,
+    Topic,
+    Type,
 )
-from steering.settings import THUMBNAIL_SIZES
 from program.utils import get_audio_url
+from steering.settings import THUMBNAIL_SIZES
 
 
 class UserSerializer(serializers.ModelSerializer):
diff --git a/program/utils.py b/program/utils.py
index 729af024..6d30c207 100644
--- a/program/utils.py
+++ b/program/utils.py
@@ -18,12 +18,12 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-from datetime import datetime, date, time
-from typing import Dict, Optional, Union, Tuple
+from datetime import date, datetime, time
+from typing import Dict, Optional, Tuple, Union
 
 import requests
-from django.utils import timezone
 
+from django.utils import timezone
 from steering.settings import CBA_AJAX_URL, CBA_API_KEY, DEBUG
 
 
diff --git a/program/views.py b/program/views.py
index 197f32c2..e2ec555c 100644
--- a/program/views.py
+++ b/program/views.py
@@ -22,44 +22,44 @@ import json
 import logging
 from datetime import date, datetime, time, timedelta
 
+from rest_framework import permissions, status, viewsets
+from rest_framework.pagination import LimitOffsetPagination
+from rest_framework.response import Response
+
 from django.contrib.auth.models import User
 from django.db.models import Q
 from django.http import HttpResponse
 from django.shortcuts import get_object_or_404
 from django.utils import timezone
 from django.utils.translation import gettext as _
-from rest_framework import permissions, status, viewsets
-from rest_framework.pagination import LimitOffsetPagination
-from rest_framework.response import Response
-
 from program.models import (
-    Type,
-    MusicFocus,
-    Language,
-    Note,
-    Show,
     Category,
     FundingCategory,
-    Topic,
-    TimeSlot,
     Host,
+    Language,
+    MusicFocus,
+    Note,
     Schedule,
+    Show,
+    TimeSlot,
+    Topic,
+    Type,
 )
 from program.serializers import (
-    TypeSerializer,
+    CategorySerializer,
+    FundingCategorySerializer,
+    HostSerializer,
     LanguageSerializer,
     MusicFocusSerializer,
     NoteSerializer,
-    ShowSerializer,
     ScheduleSerializer,
-    CategorySerializer,
-    FundingCategorySerializer,
-    TopicSerializer,
+    ShowSerializer,
     TimeSlotSerializer,
-    HostSerializer,
+    TopicSerializer,
+    TypeSerializer,
     UserSerializer,
 )
-from program.utils import parse_date, get_values, get_pk_and_slug
+from program.utils import get_pk_and_slug, get_values, parse_date
 
 logger = logging.getLogger(__name__)
 
diff --git a/steering/oidc_provider_settings.py b/steering/oidc_provider_settings.py
index e0f5537e..400fe29b 100644
--- a/steering/oidc_provider_settings.py
+++ b/steering/oidc_provider_settings.py
@@ -18,9 +18,10 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-from django.utils.translation import gettext as _
 from oidc_provider.lib.claims import ScopeClaims
 
+from django.utils.translation import gettext as _
+
 
 class AuraScopeClaims(ScopeClaims):
     info_username = (
diff --git a/steering/urls.py b/steering/urls.py
index e2be51e3..fdad4b38 100644
--- a/steering/urls.py
+++ b/steering/urls.py
@@ -18,23 +18,23 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
-from django.urls import include, path
-from django.contrib import admin
 from rest_framework_nested import routers
 
+from django.contrib import admin
+from django.urls import include, path
 from program.views import (
-    APIUserViewSet,
+    APICategoryViewSet,
+    APIFundingCategoryViewSet,
     APIHostViewSet,
-    APIShowViewSet,
+    APILanguageViewSet,
+    APIMusicFocusViewSet,
+    APINoteViewSet,
     APIScheduleViewSet,
+    APIShowViewSet,
     APITimeSlotViewSet,
-    APINoteViewSet,
-    APICategoryViewSet,
-    APITypeViewSet,
     APITopicViewSet,
-    APIMusicFocusViewSet,
-    APIFundingCategoryViewSet,
-    APILanguageViewSet,
+    APITypeViewSet,
+    APIUserViewSet,
     json_day_schedule,
     json_playout,
 )
-- 
GitLab