From 2d7c9629aa86c6b5311eeaa0af6585d1258c0ae9 Mon Sep 17 00:00:00 2001
From: Henrik Levkowetz <henrik@levkowetz.com>
Date: Mon, 15 Jul 2019 15:40:51 +0000
Subject: [PATCH] Added 'from __future__' imports all over the place, to bring
 code behaviour into closer alignment between python2 and python3  -
 Legacy-Id: 16446

---
 ietf/__init__.py                                           | 3 +++
 ietf/api/tests.py                                          | 4 ++++
 ietf/community/admin.py                                    | 2 +-
 ietf/community/forms.py                                    | 5 +++++
 ietf/community/migrations/0001_initial.py                  | 2 +-
 ietf/community/migrations/0002_auto_20180220_1052.py       | 2 ++
 .../migrations/0003_add_communitylist_docs2_m2m.py         | 2 ++
 ietf/community/migrations/0004_set_document_m2m_keys.py    | 2 ++
 ietf/community/migrations/0005_1_del_docs_m2m_table.py     | 2 ++
 ietf/community/migrations/0005_2_add_docs_m2m_table.py     | 2 ++
 ietf/community/migrations/0006_copy_docs_m2m_table.py      | 2 ++
 ietf/community/migrations/0007_remove_docs2_m2m.py         | 2 ++
 ietf/community/resources.py                                | 3 +++
 ietf/community/tests.py                                    | 3 +++
 ietf/community/utils.py                                    | 3 +++
 ietf/cookies/__init__.py                                   | 3 +++
 ietf/cookies/views.py                                      | 4 ++++
 ietf/dbtemplate/forms.py                                   | 5 +++++
 ietf/dbtemplate/migrations/0001_initial.py                 | 2 ++
 ietf/dbtemplate/migrations/0002_auto_20180220_1052.py      | 2 ++
 ietf/dbtemplate/migrations/0003_adjust_review_templates.py | 2 ++
 .../0004_adjust_assignment_email_summary_templates.py      | 2 ++
 ietf/dbtemplate/resources.py                               | 3 +++
 ietf/dbtemplate/template.py                                | 5 +++++
 ietf/doc/admin.py                                          | 3 +++
 ietf/doc/expire.py                                         | 4 ++++
 ietf/doc/factories.py                                      | 3 +++
 ietf/doc/forms.py                                          | 3 +++
 ietf/doc/migrations/0001_initial.py                        | 2 ++
 ietf/doc/migrations/0002_auto_20180220_1052.py             | 2 ++
 ietf/doc/migrations/0003_auto_20180401_1231.py             | 2 ++
 .../migrations/0004_add_draft_stream_replaced_states.py    | 2 ++
 .../migrations/0005_fix_replaced_iab_irtf_stream_docs.py   | 2 ++
 .../migrations/0006_ballotpositiondocevent_send_email.py   | 2 ++
 ietf/doc/migrations/0007_idexists.py                       | 2 ++
 ietf/doc/migrations/0008_add_uploaded_filename.py          | 2 ++
 .../0009_move_non_url_externalurls_to_uploaded_filename.py | 2 ++
 ietf/doc/migrations/0010_auto_20190225_1302.py             | 2 ++
 ietf/doc/migrations/0011_reviewassignmentdocevent.py       | 2 ++
 .../0012_add_event_type_closed_review_assignment.py        | 2 ++
 ietf/doc/migrations/0013_add_document_docalias_id.py       | 2 ++
 ietf/doc/migrations/0014_set_document_docalias_id.py       | 2 ++
 ietf/doc/migrations/0015_1_add_fk_to_document_id.py        | 2 ++
 ietf/doc/migrations/0015_2_add_doc_document_m2m_fields.py  | 2 ++
 ietf/doc/migrations/0017_make_document_id_primary_key.py   | 2 ++
 ietf/doc/migrations/0018_remove_old_document_field.py      | 2 ++
 ietf/doc/migrations/0019_rename_field_document2.py         | 2 ++
 ietf/doc/migrations/0020_copy_docs_m2m_table.py            | 2 ++
 ietf/doc/migrations/0021_remove_docs2_m2m.py               | 2 ++
 ietf/doc/migrations/0022_document_primary_key_cleanup.py   | 2 ++
 ietf/doc/migrations/0023_one_to_many_docalias.py           | 2 ++
 ietf/doc/templatetags/managed_groups.py                    | 2 ++
 ietf/doc/tests_downref.py                                  | 2 ++
 ietf/doc/urls.py                                           | 4 ++++
 ietf/doc/urls_conflict_review.py                           | 4 ++++
 ietf/doc/views_ballot.py                                   | 4 ++++
 ietf/doc/views_downref.py                                  | 3 +++
 ietf/group/admin.py                                        | 3 +++
 ietf/group/dot.py                                          | 3 +++
 ietf/group/feeds.py                                        | 3 +++
 ietf/group/forms.py                                        | 2 ++
 ietf/group/mails.py                                        | 4 ++++
 ietf/group/migrations/0001_initial.py                      | 2 ++
 .../0002_groupfeatures_historicalgroupfeatures.py          | 2 ++
 ietf/group/migrations/0003_groupfeatures_data.py           | 2 ++
 ietf/group/migrations/0004_add_group_feature_fields.py     | 2 ++
 .../migrations/0005_group_features_list_data_to_json.py    | 2 ++
 .../migrations/0006_group_features_lists_to_jsonfield.py   | 2 ++
 ietf/group/migrations/0007_new_group_features_data.py      | 2 ++
 ietf/group/migrations/0008_group_features_onetoone.py      | 2 ++
 ietf/group/migrations/0009_auto_20190122_1012.py           | 2 ++
 ietf/group/migrations/0010_add_group_types.py              | 2 ++
 ietf/group/migrations/0011_auto_20190225_1302.py           | 2 ++
 ietf/group/migrations/0012_add_old_nomcom_announcements.py | 2 ++
 ietf/group/migrations/0013_add_groupmilestone_docs2_m2m.py | 2 ++
 ietf/group/migrations/0014_set_document_m2m_keys.py        | 2 ++
 ietf/group/migrations/0015_1_del_docs_m2m_table.py         | 2 ++
 ietf/group/migrations/0015_2_add_docs_m2m_table.py         | 2 ++
 ietf/group/migrations/0016_copy_docs_m2m_table.py          | 2 ++
 ietf/group/migrations/0017_remove_docs2_m2m.py             | 2 ++
 ietf/group/migrations/0018_remove_old_document_field.py    | 2 ++
 ietf/group/migrations/0019_rename_field_document2.py       | 2 ++
 ietf/group/resources.py                                    | 3 +++
 ietf/group/tests.py                                        | 3 +++
 ietf/iesg/__init__.py                                      | 5 ++++-
 ietf/iesg/feeds.py                                         | 5 +++++
 ietf/iesg/resources.py                                     | 3 +++
 ietf/ietfauth/forms.py                                     | 2 ++
 .../management/commands/send_apikey_usage_emails.py        | 2 ++
 ietf/ietfauth/utils.py                                     | 6 +++++-
 ietf/ipr/admin.py                                          | 3 +++
 ietf/ipr/factories.py                                      | 3 +++
 ietf/ipr/migrations/0001_initial.py                        | 2 ++
 ietf/ipr/migrations/0002_auto_20180225_1207.py             | 2 ++
 ietf/ipr/migrations/0003_add_ipdocrel_document2_fk.py      | 2 ++
 ietf/ipr/migrations/0004_remove_iprdocrel_document.py      | 2 ++
 ietf/ipr/migrations/0005_rename_field_document2.py         | 2 ++
 ietf/ipr/migrations/0006_document_primary_key_cleanup.py   | 2 ++
 ietf/ipr/resources.py                                      | 3 +++
 ietf/ipr/templatetags/ipr_filters.py                       | 4 ++++
 ietf/ipr/utils.py                                          | 3 +++
 ietf/liaisons/__init__.py                                  | 3 +++
 ietf/liaisons/admin.py                                     | 5 +++++
 ietf/liaisons/feeds.py                                     | 4 ++++
 ietf/liaisons/mails.py                                     | 5 +++++
 .../management/commands/check_liaison_deadlines.py         | 5 +++++
 .../liaisons/management/commands/remind_update_sdo_list.py | 4 ++++
 ietf/liaisons/migrations/0001_initial.py                   | 2 ++
 ietf/liaisons/migrations/0002_auto_20180225_1207.py        | 2 ++
 ietf/liaisons/migrations/0003_liaison_document2_fk.py      | 2 ++
 .../0004_remove_liaisonstatementattachment_document.py     | 2 ++
 ietf/liaisons/migrations/0005_rename_field_document2.py    | 2 ++
 .../migrations/0006_document_primary_key_cleanup.py        | 2 ++
 ietf/liaisons/resources.py                                 | 3 +++
 ietf/liaisons/widgets.py                                   | 5 +++++
 ietf/mailinglists/factories.py                             | 2 ++
 ietf/mailinglists/migrations/0001_initial.py               | 2 ++
 ietf/mailinglists/resources.py                             | 3 +++
 ietf/mailinglists/tests.py                                 | 2 ++
 ietf/mailtrigger/migrations/0001_initial.py                | 2 ++
 ietf/mailtrigger/migrations/0002_conflrev_changes.py       | 2 ++
 ietf/mailtrigger/migrations/0003_add_review_notify_ad.py   | 2 ++
 .../0004_ballot_rfceditornote_changed_postapproval.py      | 2 ++
 ietf/mailtrigger/migrations/0005_slides_proposed.py        | 2 ++
 ietf/mailtrigger/migrations/0006_sub_new_wg_00.py          | 2 ++
 ietf/mailtrigger/tests.py                                  | 5 +++++
 ietf/meeting/admin.py                                      | 5 +++++
 ietf/meeting/factories.py                                  | 5 +++++
 ietf/meeting/feeds.py                                      | 5 +++++
 ietf/meeting/management/commands/update_important_dates.py | 3 +++
 ietf/meeting/migrations/0001_initial.py                    | 2 ++
 ietf/meeting/migrations/0002_auto_20180225_1207.py         | 2 ++
 ietf/meeting/migrations/0003_rename_modified_fields.py     | 2 ++
 ietf/meeting/migrations/0004_meeting_attendees.py          | 2 ++
 ietf/meeting/migrations/0005_backfill_old_meetings.py      | 2 ++
 ietf/meeting/migrations/0006_backfill_attendees.py         | 2 ++
 ietf/meeting/migrations/0007_auto_20180716_1337.py         | 2 ++
 ietf/meeting/migrations/0008_rename_meeting_agenda_note.py | 2 ++
 ietf/meeting/migrations/0009_add_agenda_info_note.py       | 2 ++
 .../migrations/0010_set_ietf_103_agenda_info_note.py       | 2 ++
 ietf/meeting/migrations/0011_auto_20190114_0550.py         | 2 ++
 ietf/meeting/migrations/0012_add_slide_submissions.py      | 2 ++
 .../meeting/migrations/0013_make_separate_break_sessobj.py | 2 ++
 ietf/meeting/migrations/0014_auto_20190426_0305.py         | 2 ++
 .../migrations/0015_sessionpresentation_document2_fk.py    | 2 ++
 .../migrations/0016_remove_sessionpresentation_document.py | 2 ++
 ietf/meeting/migrations/0017_rename_field_document2.py     | 2 ++
 .../migrations/0018_document_primary_key_cleanup.py        | 2 ++
 ietf/meeting/resources.py                                  | 3 +++
 ietf/meeting/templatetags/agenda_custom_tags.py            | 5 +++++
 ietf/meeting/test_data.py                                  | 5 +++++
 ietf/meeting/tests_js.py                                   | 4 ++++
 ietf/message/migrations/0001_initial.py                    | 2 ++
 ietf/message/migrations/0002_add_message_docs2_m2m.py      | 2 ++
 ietf/message/migrations/0003_set_document_m2m_keys.py      | 2 ++
 ietf/message/migrations/0004_1_del_docs_m2m_table.py       | 2 ++
 ietf/message/migrations/0004_2_add_docs_m2m_table.py       | 2 ++
 ietf/message/migrations/0005_copy_docs_m2m_table.py        | 2 ++
 ietf/message/migrations/0006_remove_docs2_m2m.py           | 2 ++
 ietf/message/resources.py                                  | 3 +++
 ietf/message/tests.py                                      | 5 +++++
 ietf/middleware.py                                         | 4 ++++
 ietf/name/migrations/0001_initial.py                       | 2 ++
 ietf/name/migrations/0002_agendatypename.py                | 2 ++
 ietf/name/migrations/0003_agendatypename_data.py           | 2 ++
 ietf/name/migrations/0004_add_prefix_to_doctypenames.py    | 2 ++
 ietf/name/migrations/0005_reviewassignmentstatename.py     | 2 ++
 ietf/name/migrations/0006_adjust_statenames.py             | 2 ++
 ietf/nomcom/admin.py                                       | 5 +++++
 ietf/nomcom/decorators.py                                  | 5 +++++
 ietf/nomcom/factories.py                                   | 5 +++++
 ietf/nomcom/management/commands/make_dummy_nomcom.py       | 2 ++
 ietf/nomcom/management/commands/send_reminders.py          | 5 +++++
 ietf/nomcom/migrations/0001_initial.py                     | 2 ++
 ietf/nomcom/migrations/0002_auto_20180918_0550.py          | 2 ++
 .../migrations/0003_nomcom_show_accepted_nominees.py       | 2 ++
 ...set_show_accepted_nominees_false_on_existing_nomcoms.py | 2 ++
 ietf/nomcom/migrations/0005_auto_20181008_0602.py          | 2 ++
 ietf/nomcom/resources.py                                   | 3 +++
 ietf/person/forms.py                                       | 3 +++
 ietf/person/migrations/0001_initial.py                     | 2 ++
 ietf/person/migrations/0002_auto_20180330_0808.py          | 2 ++
 ietf/person/migrations/0003_auto_20180504_1519.py          | 2 ++
 ietf/person/migrations/0004_populate_email_origin.py       | 2 ++
 .../migrations/0005_populate_person_name_from_draft.py     | 2 ++
 ietf/person/migrations/0006_auto_20180910_0719.py          | 2 ++
 ietf/person/migrations/0007_auto_20180929_1303.py          | 2 ++
 ietf/person/migrations/0008_auto_20181014_1448.py          | 2 ++
 ietf/person/migrations/0009_auto_20190118_0725.py          | 2 ++
 ietf/person/name.py                                        | 5 +++++
 ietf/person/resources.py                                   | 3 +++
 ietf/person/views.py                                       | 5 +++++
 ietf/redirects/resources.py                                | 3 +++
 ietf/release/tests.py                                      | 2 ++
 ietf/release/urls.py                                       | 2 ++
 ietf/review/admin.py                                       | 5 +++++
 ietf/review/migrations/0001_initial.py                     | 2 ++
 ietf/review/migrations/0002_unavailableperiod_reason.py    | 2 ++
 ietf/review/migrations/0003_add_notify_ad_when.py          | 2 ++
 .../migrations/0004_reviewteamsettings_secr_mail_alias.py  | 2 ++
 ietf/review/migrations/0005_set_secdir_notify_ad_when.py   | 2 ++
 ietf/review/migrations/0006_historicalreviewersettings.py  | 2 ++
 .../migrations/0007_allow_notify_ad_when_to_be_blank.py    | 2 ++
 ietf/review/migrations/0008_remove_reviewrequest_old_id.py | 2 ++
 ietf/review/migrations/0009_refactor_review_request.py     | 2 ++
 ietf/review/migrations/0010_populate_review_assignments.py | 2 ++
 ietf/review/migrations/0011_review_document2_fk.py         | 4 +++-
 ietf/review/migrations/0012_remove_old_document_field.py   | 4 +++-
 ietf/review/migrations/0013_rename_field_document2.py      | 4 +++-
 .../review/migrations/0014_document_primary_key_cleanup.py | 4 +++-
 ietf/review/resources.py                                   | 3 +++
 ietf/review/tests.py                                       | 3 +++
 ietf/secr/announcement/forms.py                            | 5 +++++
 ietf/secr/announcement/tests.py                            | 5 +++++
 ietf/secr/console/tests.py                                 | 5 +++++
 ietf/secr/drafts/forms.py                                  | 5 +++++
 ietf/secr/groups/tests.py                                  | 4 ++++
 ietf/secr/meetings/tests.py                                | 5 +++++
 ietf/secr/proceedings/migrations/0001_initial.py           | 2 ++
 ietf/secr/roles/tests.py                                   | 4 ++++
 ietf/secr/rolodex/forms.py                                 | 2 ++
 ietf/secr/sreq/forms.py                                    | 5 +++++
 ietf/secr/sreq/views.py                                    | 5 +++++
 ietf/secr/telechat/tests.py                                | 3 +++
 ietf/secr/utils/document.py                                | 3 +++
 ietf/secr/utils/test.py                                    | 5 +++++
 ietf/settings_releasetest.py                               | 6 ++++++
 ietf/settings_sqlitetest.py                                | 5 +++++
 ietf/settings_testcrawl.py                                 | 5 +++++
 ietf/stats/migrations/0001_initial.py                      | 2 ++
 ietf/stats/resources.py                                    | 3 +++
 ietf/stats/tests.py                                        | 3 +++
 ietf/stats/urls.py                                         | 5 +++++
 ietf/submit/migrations/0001_initial.py                     | 2 ++
 ietf/submit/migrations/0002_submission_document2_fk.py     | 2 ++
 ietf/submit/migrations/0003_remove_old_document_field.py   | 2 ++
 ietf/submit/migrations/0004_rename_field_document2.py      | 2 ++
 ietf/submit/parsers/base.py                                | 4 ++++
 ietf/submit/parsers/plain_parser.py                        | 3 +++
 ietf/submit/resources.py                                   | 3 +++
 ietf/submit/templatetags/submit_tags.py                    | 5 +++++
 ietf/utils/aliases.py                                      | 7 ++++++-
 ietf/utils/bootstrap.py                                    | 5 +++++
 ietf/utils/draft_search.py                                 | 5 +++++
 ietf/utils/history.py                                      | 3 +++
 ietf/utils/management/commands/loadrelated.py              | 2 ++
 ietf/utils/management/commands/populate_yang_model_dirs.py | 3 +++
 ietf/utils/management/commands/pyflakes.py                 | 4 ++++
 ietf/utils/management/commands/run_yang_model_checks.py    | 3 +++
 ietf/utils/management/commands/send_apikey_usage_emails.py | 4 +++-
 .../management/commands/update_community_list_index.py     | 2 ++
 .../management/commands/update_external_command_info.py    | 3 +++
 ietf/utils/migrations/0001_initial.py                      | 2 ++
 ietf/utils/ordereddict.py                                  | 5 +++++
 ietf/utils/pipe.py                                         | 7 ++++++-
 ietf/utils/resources.py                                    | 3 +++
 ietf/utils/templatetags/htmlfilters.py                     | 3 +++
 ietf/utils/templatetags/textfilters.py                     | 3 +++
 ietf/utils/test_data.py                                    | 2 ++
 ietf/utils/texescape.py                                    | 4 ++++
 ietf/utils/textupload.py                                   | 5 +++++
 261 files changed, 735 insertions(+), 11 deletions(-)

diff --git a/ietf/__init__.py b/ietf/__init__.py
index 2830859d2..82bed7bcf 100644
--- a/ietf/__init__.py
+++ b/ietf/__init__.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from . import checks                           # pyflakes:ignore
 
 # Don't add patch number here:
diff --git a/ietf/api/tests.py b/ietf/api/tests.py
index 75351c798..accc96989 100644
--- a/ietf/api/tests.py
+++ b/ietf/api/tests.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2015-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 import os
 import sys
diff --git a/ietf/community/admin.py b/ietf/community/admin.py
index e36ac256e..fd7889f74 100644
--- a/ietf/community/admin.py
+++ b/ietf/community/admin.py
@@ -1,6 +1,6 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
-
+from __future__ import absolute_import, print_function, unicode_literals
 
 from django.contrib import admin
 
diff --git a/ietf/community/forms.py b/ietf/community/forms.py
index 5ad6cddaa..1677c950c 100644
--- a/ietf/community/forms.py
+++ b/ietf/community/forms.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django import forms
 from django.db.models import Q
 
diff --git a/ietf/community/migrations/0001_initial.py b/ietf/community/migrations/0001_initial.py
index 18270ac3d..784093123 100644
--- a/ietf/community/migrations/0001_initial.py
+++ b/ietf/community/migrations/0001_initial.py
@@ -1,7 +1,7 @@
 # Copyright The IETF Trust 2018-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 # Generated by Django 1.11.10 on 2018-02-20 10:52
-
+from __future__ import absolute_import, print_function, unicode_literals
 
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/community/migrations/0002_auto_20180220_1052.py b/ietf/community/migrations/0002_auto_20180220_1052.py
index eda75147f..93a0ebd5e 100644
--- a/ietf/community/migrations/0002_auto_20180220_1052.py
+++ b/ietf/community/migrations/0002_auto_20180220_1052.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/community/migrations/0003_add_communitylist_docs2_m2m.py b/ietf/community/migrations/0003_add_communitylist_docs2_m2m.py
index 4bd72b17c..34c620fbe 100644
--- a/ietf/community/migrations/0003_add_communitylist_docs2_m2m.py
+++ b/ietf/community/migrations/0003_add_communitylist_docs2_m2m.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 14:23
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/community/migrations/0004_set_document_m2m_keys.py b/ietf/community/migrations/0004_set_document_m2m_keys.py
index f28a44a6b..095ef5243 100644
--- a/ietf/community/migrations/0004_set_document_m2m_keys.py
+++ b/ietf/community/migrations/0004_set_document_m2m_keys.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 14:27
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from tqdm import tqdm
diff --git a/ietf/community/migrations/0005_1_del_docs_m2m_table.py b/ietf/community/migrations/0005_1_del_docs_m2m_table.py
index 2aaaa1de9..0ff9ace87 100644
--- a/ietf/community/migrations/0005_1_del_docs_m2m_table.py
+++ b/ietf/community/migrations/0005_1_del_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-22 08:15
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/community/migrations/0005_2_add_docs_m2m_table.py b/ietf/community/migrations/0005_2_add_docs_m2m_table.py
index 7e7d4e794..8847eadc4 100644
--- a/ietf/community/migrations/0005_2_add_docs_m2m_table.py
+++ b/ietf/community/migrations/0005_2_add_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-22 08:15
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/community/migrations/0006_copy_docs_m2m_table.py b/ietf/community/migrations/0006_copy_docs_m2m_table.py
index 0390ab03d..9a9b40a7b 100644
--- a/ietf/community/migrations/0006_copy_docs_m2m_table.py
+++ b/ietf/community/migrations/0006_copy_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-27 05:56
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 import sys, time
diff --git a/ietf/community/migrations/0007_remove_docs2_m2m.py b/ietf/community/migrations/0007_remove_docs2_m2m.py
index 2fec92659..dce7e45cc 100644
--- a/ietf/community/migrations/0007_remove_docs2_m2m.py
+++ b/ietf/community/migrations/0007_remove_docs2_m2m.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-30 03:06
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/community/resources.py b/ietf/community/resources.py
index eea118ed7..2d87f3ce9 100644
--- a/ietf/community/resources.py
+++ b/ietf/community/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from tastypie.fields import ToOneField, ToManyField
 from tastypie.constants import ALL, ALL_WITH_RELATIONS
diff --git a/ietf/community/tests.py b/ietf/community/tests.py
index 1076750f9..2882a0df7 100644
--- a/ietf/community/tests.py
+++ b/ietf/community/tests.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from pyquery import PyQuery
 
 from django.urls import reverse as urlreverse
diff --git a/ietf/community/utils.py b/ietf/community/utils.py
index 357a48366..2d7ed5ef5 100644
--- a/ietf/community/utils.py
+++ b/ietf/community/utils.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 
 from django.db.models import Q
diff --git a/ietf/cookies/__init__.py b/ietf/cookies/__init__.py
index 65eb4a033..f17c21d38 100644
--- a/ietf/cookies/__init__.py
+++ b/ietf/cookies/__init__.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
 # coding: latin-1
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from types import ModuleType
 
 # These people will be sent a stack trace if there's an uncaught exception in
diff --git a/ietf/cookies/views.py b/ietf/cookies/views.py
index 700222b48..58268dc61 100644
--- a/ietf/cookies/views.py
+++ b/ietf/cookies/views.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 from django.shortcuts import render
 from django.conf import settings
diff --git a/ietf/dbtemplate/forms.py b/ietf/dbtemplate/forms.py
index f502249b0..987d61b60 100644
--- a/ietf/dbtemplate/forms.py
+++ b/ietf/dbtemplate/forms.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django import forms
 from django.core.exceptions import ValidationError
 from django.template import Context
diff --git a/ietf/dbtemplate/migrations/0001_initial.py b/ietf/dbtemplate/migrations/0001_initial.py
index 32fbae322..dd4944906 100644
--- a/ietf/dbtemplate/migrations/0001_initial.py
+++ b/ietf/dbtemplate/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/dbtemplate/migrations/0002_auto_20180220_1052.py b/ietf/dbtemplate/migrations/0002_auto_20180220_1052.py
index 7545334d0..84f026f7a 100644
--- a/ietf/dbtemplate/migrations/0002_auto_20180220_1052.py
+++ b/ietf/dbtemplate/migrations/0002_auto_20180220_1052.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/dbtemplate/migrations/0003_adjust_review_templates.py b/ietf/dbtemplate/migrations/0003_adjust_review_templates.py
index cd8e9d8c0..80699981c 100644
--- a/ietf/dbtemplate/migrations/0003_adjust_review_templates.py
+++ b/ietf/dbtemplate/migrations/0003_adjust_review_templates.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-03-05 11:39
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/dbtemplate/migrations/0004_adjust_assignment_email_summary_templates.py b/ietf/dbtemplate/migrations/0004_adjust_assignment_email_summary_templates.py
index ccee5eb17..9aa7493fe 100644
--- a/ietf/dbtemplate/migrations/0004_adjust_assignment_email_summary_templates.py
+++ b/ietf/dbtemplate/migrations/0004_adjust_assignment_email_summary_templates.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-03-13 13:41
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/dbtemplate/resources.py b/ietf/dbtemplate/resources.py
index 73e11a9de..3db6e4e11 100644
--- a/ietf/dbtemplate/resources.py
+++ b/ietf/dbtemplate/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from tastypie.fields import ToOneField
 from tastypie.constants import ALL, ALL_WITH_RELATIONS
diff --git a/ietf/dbtemplate/template.py b/ietf/dbtemplate/template.py
index efb3b06b4..1b207458a 100644
--- a/ietf/dbtemplate/template.py
+++ b/ietf/dbtemplate/template.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import os
 import string
 from docutils.core import publish_string
diff --git a/ietf/doc/admin.py b/ietf/doc/admin.py
index 08719a6a2..73dfb22e3 100644
--- a/ietf/doc/admin.py
+++ b/ietf/doc/admin.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.contrib import admin
 from django import forms
 
diff --git a/ietf/doc/expire.py b/ietf/doc/expire.py
index 0bfe5c40d..5e1add9cd 100644
--- a/ietf/doc/expire.py
+++ b/ietf/doc/expire.py
@@ -1,6 +1,10 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # expiry of Internet Drafts
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 
 import datetime, os, shutil, glob, re
diff --git a/ietf/doc/factories.py b/ietf/doc/factories.py
index ad46c66f2..af707eda3 100644
--- a/ietf/doc/factories.py
+++ b/ietf/doc/factories.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import debug    # pyflakes:ignore
 import factory
 import datetime
diff --git a/ietf/doc/forms.py b/ietf/doc/forms.py
index a9c0e1e19..1dd23f474 100644
--- a/ietf/doc/forms.py
+++ b/ietf/doc/forms.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 import datetime
 import debug #pyflakes:ignore
diff --git a/ietf/doc/migrations/0001_initial.py b/ietf/doc/migrations/0001_initial.py
index 71caeb27c..6ec0f547a 100644
--- a/ietf/doc/migrations/0001_initial.py
+++ b/ietf/doc/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 import django.core.validators
 from django.db import migrations, models
diff --git a/ietf/doc/migrations/0002_auto_20180220_1052.py b/ietf/doc/migrations/0002_auto_20180220_1052.py
index 47e409a96..78b706cf5 100644
--- a/ietf/doc/migrations/0002_auto_20180220_1052.py
+++ b/ietf/doc/migrations/0002_auto_20180220_1052.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/doc/migrations/0003_auto_20180401_1231.py b/ietf/doc/migrations/0003_auto_20180401_1231.py
index 10c2700cd..f6f6144bc 100644
--- a/ietf/doc/migrations/0003_auto_20180401_1231.py
+++ b/ietf/doc/migrations/0003_auto_20180401_1231.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.11 on 2018-04-01 12:31
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0004_add_draft_stream_replaced_states.py b/ietf/doc/migrations/0004_add_draft_stream_replaced_states.py
index 7d09d7ea2..5ab95997f 100644
--- a/ietf/doc/migrations/0004_add_draft_stream_replaced_states.py
+++ b/ietf/doc/migrations/0004_add_draft_stream_replaced_states.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-05-03 11:50
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/doc/migrations/0005_fix_replaced_iab_irtf_stream_docs.py b/ietf/doc/migrations/0005_fix_replaced_iab_irtf_stream_docs.py
index 18840a621..da03c5fa1 100644
--- a/ietf/doc/migrations/0005_fix_replaced_iab_irtf_stream_docs.py
+++ b/ietf/doc/migrations/0005_fix_replaced_iab_irtf_stream_docs.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-05-03 12:16
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/doc/migrations/0006_ballotpositiondocevent_send_email.py b/ietf/doc/migrations/0006_ballotpositiondocevent_send_email.py
index 7da218deb..44ea6295f 100644
--- a/ietf/doc/migrations/0006_ballotpositiondocevent_send_email.py
+++ b/ietf/doc/migrations/0006_ballotpositiondocevent_send_email.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.15 on 2018-10-03 06:39
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0007_idexists.py b/ietf/doc/migrations/0007_idexists.py
index f943a380a..3731661ae 100644
--- a/ietf/doc/migrations/0007_idexists.py
+++ b/ietf/doc/migrations/0007_idexists.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-11-04 10:56
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from tqdm import tqdm
 
 from django.db import migrations
diff --git a/ietf/doc/migrations/0008_add_uploaded_filename.py b/ietf/doc/migrations/0008_add_uploaded_filename.py
index 97c149bb3..82e528b8d 100644
--- a/ietf/doc/migrations/0008_add_uploaded_filename.py
+++ b/ietf/doc/migrations/0008_add_uploaded_filename.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.17 on 2018-12-28 13:11
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0009_move_non_url_externalurls_to_uploaded_filename.py b/ietf/doc/migrations/0009_move_non_url_externalurls_to_uploaded_filename.py
index c05baa5d6..95ef47d11 100644
--- a/ietf/doc/migrations/0009_move_non_url_externalurls_to_uploaded_filename.py
+++ b/ietf/doc/migrations/0009_move_non_url_externalurls_to_uploaded_filename.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.17 on 2018-12-28 13:33
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 from django.db.models import F
 
diff --git a/ietf/doc/migrations/0010_auto_20190225_1302.py b/ietf/doc/migrations/0010_auto_20190225_1302.py
index dcad974fb..1d581c59b 100644
--- a/ietf/doc/migrations/0010_auto_20190225_1302.py
+++ b/ietf/doc/migrations/0010_auto_20190225_1302.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-02-25 13:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0011_reviewassignmentdocevent.py b/ietf/doc/migrations/0011_reviewassignmentdocevent.py
index ac04a7577..0482dd967 100644
--- a/ietf/doc/migrations/0011_reviewassignmentdocevent.py
+++ b/ietf/doc/migrations/0011_reviewassignmentdocevent.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-11 11:22
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/doc/migrations/0012_add_event_type_closed_review_assignment.py b/ietf/doc/migrations/0012_add_event_type_closed_review_assignment.py
index c946e3e12..813943da5 100644
--- a/ietf/doc/migrations/0012_add_event_type_closed_review_assignment.py
+++ b/ietf/doc/migrations/0012_add_event_type_closed_review_assignment.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-01 04:43
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0013_add_document_docalias_id.py b/ietf/doc/migrations/0013_add_document_docalias_id.py
index 75700530c..09d3f1a87 100644
--- a/ietf/doc/migrations/0013_add_document_docalias_id.py
+++ b/ietf/doc/migrations/0013_add_document_docalias_id.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-08 08:41
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0014_set_document_docalias_id.py b/ietf/doc/migrations/0014_set_document_docalias_id.py
index 5c97c81e5..785b82bf2 100644
--- a/ietf/doc/migrations/0014_set_document_docalias_id.py
+++ b/ietf/doc/migrations/0014_set_document_docalias_id.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-08 08:42
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from tqdm import tqdm
diff --git a/ietf/doc/migrations/0015_1_add_fk_to_document_id.py b/ietf/doc/migrations/0015_1_add_fk_to_document_id.py
index fff0c56af..1efabe53d 100644
--- a/ietf/doc/migrations/0015_1_add_fk_to_document_id.py
+++ b/ietf/doc/migrations/0015_1_add_fk_to_document_id.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-08 10:29
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import django.core.validators
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/doc/migrations/0015_2_add_doc_document_m2m_fields.py b/ietf/doc/migrations/0015_2_add_doc_document_m2m_fields.py
index 8b426b77d..2bd8a7ae1 100644
--- a/ietf/doc/migrations/0015_2_add_doc_document_m2m_fields.py
+++ b/ietf/doc/migrations/0015_2_add_doc_document_m2m_fields.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-28 12:42
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys, time
 
 from django.db import migrations, models
diff --git a/ietf/doc/migrations/0017_make_document_id_primary_key.py b/ietf/doc/migrations/0017_make_document_id_primary_key.py
index 57fd2e379..3bbaa8176 100644
--- a/ietf/doc/migrations/0017_make_document_id_primary_key.py
+++ b/ietf/doc/migrations/0017_make_document_id_primary_key.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-09 05:46
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0018_remove_old_document_field.py b/ietf/doc/migrations/0018_remove_old_document_field.py
index f02cc6fa4..19a8a4065 100644
--- a/ietf/doc/migrations/0018_remove_old_document_field.py
+++ b/ietf/doc/migrations/0018_remove_old_document_field.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-20 09:53
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/doc/migrations/0019_rename_field_document2.py b/ietf/doc/migrations/0019_rename_field_document2.py
index 0319e5461..1d7cc0b21 100644
--- a/ietf/doc/migrations/0019_rename_field_document2.py
+++ b/ietf/doc/migrations/0019_rename_field_document2.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 05:31
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/doc/migrations/0020_copy_docs_m2m_table.py b/ietf/doc/migrations/0020_copy_docs_m2m_table.py
index 0817ca716..1bc395c33 100644
--- a/ietf/doc/migrations/0020_copy_docs_m2m_table.py
+++ b/ietf/doc/migrations/0020_copy_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 05:31
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys, time
 
 from django.db import migrations
diff --git a/ietf/doc/migrations/0021_remove_docs2_m2m.py b/ietf/doc/migrations/0021_remove_docs2_m2m.py
index b89aba803..469523732 100644
--- a/ietf/doc/migrations/0021_remove_docs2_m2m.py
+++ b/ietf/doc/migrations/0021_remove_docs2_m2m.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-30 03:36
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/doc/migrations/0022_document_primary_key_cleanup.py b/ietf/doc/migrations/0022_document_primary_key_cleanup.py
index 3700228fc..5b666907c 100644
--- a/ietf/doc/migrations/0022_document_primary_key_cleanup.py
+++ b/ietf/doc/migrations/0022_document_primary_key_cleanup.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-06-10 03:47
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/doc/migrations/0023_one_to_many_docalias.py b/ietf/doc/migrations/0023_one_to_many_docalias.py
index 9e0d3de26..cf7f54756 100644
--- a/ietf/doc/migrations/0023_one_to_many_docalias.py
+++ b/ietf/doc/migrations/0023_one_to_many_docalias.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-06-10 04:36
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from tqdm import tqdm
diff --git a/ietf/doc/templatetags/managed_groups.py b/ietf/doc/templatetags/managed_groups.py
index c971d21c6..53a16d3a2 100644
--- a/ietf/doc/templatetags/managed_groups.py
+++ b/ietf/doc/templatetags/managed_groups.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django import template
 
 import debug                            # pyflakes:ignore
diff --git a/ietf/doc/tests_downref.py b/ietf/doc/tests_downref.py
index bf5dcfa7b..714e2d965 100644
--- a/ietf/doc/tests_downref.py
+++ b/ietf/doc/tests_downref.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 from django.urls import reverse as urlreverse
 from pyquery import PyQuery
diff --git a/ietf/doc/urls.py b/ietf/doc/urls.py
index 32f3ae5bc..2de7d2806 100644
--- a/ietf/doc/urls.py
+++ b/ietf/doc/urls.py
@@ -1,4 +1,5 @@
 # Copyright The IETF Trust 2009-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
 # All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
 #
@@ -31,6 +32,9 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf.urls import include
 from django.views.generic import RedirectView
 from django.conf import settings
diff --git a/ietf/doc/urls_conflict_review.py b/ietf/doc/urls_conflict_review.py
index e59f39189..3e244d852 100644
--- a/ietf/doc/urls_conflict_review.py
+++ b/ietf/doc/urls_conflict_review.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 from ietf.doc import views_conflict_review, views_doc
 from ietf.utils.urls import url
diff --git a/ietf/doc/views_ballot.py b/ietf/doc/views_ballot.py
index 85d533442..78e0d64f7 100644
--- a/ietf/doc/views_ballot.py
+++ b/ietf/doc/views_ballot.py
@@ -1,7 +1,11 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # ballot management (voting, commenting, writeups, ...) for Area
 # Directors and Secretariat
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime, json
 
 from django import forms
diff --git a/ietf/doc/views_downref.py b/ietf/doc/views_downref.py
index 662fe87b0..4336566f8 100644
--- a/ietf/doc/views_downref.py
+++ b/ietf/doc/views_downref.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 from django.urls import reverse as urlreverse
 from django.http import HttpResponseRedirect
diff --git a/ietf/group/admin.py b/ietf/group/admin.py
index a6b31a1d5..b44babe1b 100644
--- a/ietf/group/admin.py
+++ b/ietf/group/admin.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from functools import update_wrapper
 
 from django.contrib import admin
diff --git a/ietf/group/dot.py b/ietf/group/dot.py
index a29a509e3..0efc40545 100644
--- a/ietf/group/dot.py
+++ b/ietf/group/dot.py
@@ -1,7 +1,10 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # -*- check-flake8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db.models import Q
 from django.template.loader import render_to_string
 
diff --git a/ietf/group/feeds.py b/ietf/group/feeds.py
index 57521c983..8cc8a98ee 100644
--- a/ietf/group/feeds.py
+++ b/ietf/group/feeds.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2011-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.contrib.syndication.views import Feed, FeedDoesNotExist
 from django.utils.feedgenerator import Atom1Feed
 from django.urls import reverse as urlreverse
diff --git a/ietf/group/forms.py b/ietf/group/forms.py
index 6663ec796..50c56baa2 100644
--- a/ietf/group/forms.py
+++ b/ietf/group/forms.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 # Stdlib imports
 import re
 
diff --git a/ietf/group/mails.py b/ietf/group/mails.py
index e4f1042fc..9adcbc4d1 100644
--- a/ietf/group/mails.py
+++ b/ietf/group/mails.py
@@ -1,6 +1,10 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # generation of mails 
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 
 
diff --git a/ietf/group/migrations/0001_initial.py b/ietf/group/migrations/0001_initial.py
index a0593af8c..331aeb166 100644
--- a/ietf/group/migrations/0001_initial.py
+++ b/ietf/group/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/group/migrations/0002_groupfeatures_historicalgroupfeatures.py b/ietf/group/migrations/0002_groupfeatures_historicalgroupfeatures.py
index ac3bf887b..54f7f784e 100644
--- a/ietf/group/migrations/0002_groupfeatures_historicalgroupfeatures.py
+++ b/ietf/group/migrations/0002_groupfeatures_historicalgroupfeatures.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-07-10 15:58
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import django.core.validators
 import django.db.models.deletion
 
diff --git a/ietf/group/migrations/0003_groupfeatures_data.py b/ietf/group/migrations/0003_groupfeatures_data.py
index 7d971c8b3..6d78632ed 100644
--- a/ietf/group/migrations/0003_groupfeatures_data.py
+++ b/ietf/group/migrations/0003_groupfeatures_data.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-07-10 15:58
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 from django.db import migrations
 
diff --git a/ietf/group/migrations/0004_add_group_feature_fields.py b/ietf/group/migrations/0004_add_group_feature_fields.py
index 8897d7530..625273c74 100644
--- a/ietf/group/migrations/0004_add_group_feature_fields.py
+++ b/ietf/group/migrations/0004_add_group_feature_fields.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2019-01-10 07:51
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import django.core.validators
 from django.db import migrations, models
 
diff --git a/ietf/group/migrations/0005_group_features_list_data_to_json.py b/ietf/group/migrations/0005_group_features_list_data_to_json.py
index 9a2309226..1a1597833 100644
--- a/ietf/group/migrations/0005_group_features_list_data_to_json.py
+++ b/ietf/group/migrations/0005_group_features_list_data_to_json.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2019-01-09 09:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import json
 import re
 
diff --git a/ietf/group/migrations/0006_group_features_lists_to_jsonfield.py b/ietf/group/migrations/0006_group_features_lists_to_jsonfield.py
index 26d5cccdd..bd045f6f5 100644
--- a/ietf/group/migrations/0006_group_features_lists_to_jsonfield.py
+++ b/ietf/group/migrations/0006_group_features_lists_to_jsonfield.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2019-01-16 05:53
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import jsonfield.fields
 
diff --git a/ietf/group/migrations/0007_new_group_features_data.py b/ietf/group/migrations/0007_new_group_features_data.py
index 555be5809..697f1a04a 100644
--- a/ietf/group/migrations/0007_new_group_features_data.py
+++ b/ietf/group/migrations/0007_new_group_features_data.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2019-01-09 09:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 from django.db import migrations
 
diff --git a/ietf/group/migrations/0008_group_features_onetoone.py b/ietf/group/migrations/0008_group_features_onetoone.py
index 3daed25f2..27883d18f 100644
--- a/ietf/group/migrations/0008_group_features_onetoone.py
+++ b/ietf/group/migrations/0008_group_features_onetoone.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2019-01-19 10:08
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/group/migrations/0009_auto_20190122_1012.py b/ietf/group/migrations/0009_auto_20190122_1012.py
index 7b556dd5d..254ec9e69 100644
--- a/ietf/group/migrations/0009_auto_20190122_1012.py
+++ b/ietf/group/migrations/0009_auto_20190122_1012.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-22 10:12
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 
diff --git a/ietf/group/migrations/0010_add_group_types.py b/ietf/group/migrations/0010_add_group_types.py
index ad4472c67..3f16d377f 100644
--- a/ietf/group/migrations/0010_add_group_types.py
+++ b/ietf/group/migrations/0010_add_group_types.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2019-01-09 09:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 from django.db import migrations
 
diff --git a/ietf/group/migrations/0011_auto_20190225_1302.py b/ietf/group/migrations/0011_auto_20190225_1302.py
index 5c11c9574..0dfa13f25 100644
--- a/ietf/group/migrations/0011_auto_20190225_1302.py
+++ b/ietf/group/migrations/0011_auto_20190225_1302.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-02-25 13:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/group/migrations/0012_add_old_nomcom_announcements.py b/ietf/group/migrations/0012_add_old_nomcom_announcements.py
index 19d232f66..50308af2c 100644
--- a/ietf/group/migrations/0012_add_old_nomcom_announcements.py
+++ b/ietf/group/migrations/0012_add_old_nomcom_announcements.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-03-23 17:50
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 from ietf.group.models import Group 
diff --git a/ietf/group/migrations/0013_add_groupmilestone_docs2_m2m.py b/ietf/group/migrations/0013_add_groupmilestone_docs2_m2m.py
index b980f5d0c..823ac3ee5 100644
--- a/ietf/group/migrations/0013_add_groupmilestone_docs2_m2m.py
+++ b/ietf/group/migrations/0013_add_groupmilestone_docs2_m2m.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-02-25 13:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/group/migrations/0014_set_document_m2m_keys.py b/ietf/group/migrations/0014_set_document_m2m_keys.py
index 520c15e8a..46311d284 100644
--- a/ietf/group/migrations/0014_set_document_m2m_keys.py
+++ b/ietf/group/migrations/0014_set_document_m2m_keys.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-10 06:48
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from tqdm import tqdm
diff --git a/ietf/group/migrations/0015_1_del_docs_m2m_table.py b/ietf/group/migrations/0015_1_del_docs_m2m_table.py
index 1e5e856b3..1f9868880 100644
--- a/ietf/group/migrations/0015_1_del_docs_m2m_table.py
+++ b/ietf/group/migrations/0015_1_del_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-22 08:00
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/group/migrations/0015_2_add_docs_m2m_table.py b/ietf/group/migrations/0015_2_add_docs_m2m_table.py
index d66087372..02d16942c 100644
--- a/ietf/group/migrations/0015_2_add_docs_m2m_table.py
+++ b/ietf/group/migrations/0015_2_add_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-22 08:00
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/group/migrations/0016_copy_docs_m2m_table.py b/ietf/group/migrations/0016_copy_docs_m2m_table.py
index 9a380f601..0b34ff7ff 100644
--- a/ietf/group/migrations/0016_copy_docs_m2m_table.py
+++ b/ietf/group/migrations/0016_copy_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-27 05:57
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys, time
 
 from tqdm import tqdm
diff --git a/ietf/group/migrations/0017_remove_docs2_m2m.py b/ietf/group/migrations/0017_remove_docs2_m2m.py
index 4f67ac8d3..0839ace4f 100644
--- a/ietf/group/migrations/0017_remove_docs2_m2m.py
+++ b/ietf/group/migrations/0017_remove_docs2_m2m.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-30 03:23
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/group/migrations/0018_remove_old_document_field.py b/ietf/group/migrations/0018_remove_old_document_field.py
index 0ee29de38..46b165e29 100644
--- a/ietf/group/migrations/0018_remove_old_document_field.py
+++ b/ietf/group/migrations/0018_remove_old_document_field.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-25 06:51
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/group/migrations/0019_rename_field_document2.py b/ietf/group/migrations/0019_rename_field_document2.py
index 2bd82f5bc..ee6747514 100644
--- a/ietf/group/migrations/0019_rename_field_document2.py
+++ b/ietf/group/migrations/0019_rename_field_document2.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-25 06:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/group/resources.py b/ietf/group/resources.py
index d8f86504b..d32a6da29 100644
--- a/ietf/group/resources.py
+++ b/ietf/group/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:15
+
+
 from ietf.api import ModelResource
 from ietf.api import ToOneField
 from tastypie.fields import ToManyField, CharField
diff --git a/ietf/group/tests.py b/ietf/group/tests.py
index 6b37b4f90..1fbe40cb6 100644
--- a/ietf/group/tests.py
+++ b/ietf/group/tests.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import os
 from unittest import skipIf
 
diff --git a/ietf/iesg/__init__.py b/ietf/iesg/__init__.py
index 4473dca5e..78e8b3ff8 100644
--- a/ietf/iesg/__init__.py
+++ b/ietf/iesg/__init__.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
-# coding: latin-1
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 from types import ModuleType
 
diff --git a/ietf/iesg/feeds.py b/ietf/iesg/feeds.py
index 3e620a780..0cd17f5fe 100644
--- a/ietf/iesg/feeds.py
+++ b/ietf/iesg/feeds.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from django.contrib.syndication.views import Feed
diff --git a/ietf/iesg/resources.py b/ietf/iesg/resources.py
index 96293bc45..a67dbc3a4 100644
--- a/ietf/iesg/resources.py
+++ b/ietf/iesg/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from tastypie.constants import ALL
 from tastypie.cache import SimpleCache
diff --git a/ietf/ietfauth/forms.py b/ietf/ietfauth/forms.py
index ab550a52a..db4874412 100644
--- a/ietf/ietfauth/forms.py
+++ b/ietf/ietfauth/forms.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 from unidecode import unidecode
 
diff --git a/ietf/ietfauth/management/commands/send_apikey_usage_emails.py b/ietf/ietfauth/management/commands/send_apikey_usage_emails.py
index ead143e92..ad671c218 100644
--- a/ietf/ietfauth/management/commands/send_apikey_usage_emails.py
+++ b/ietf/ietfauth/management/commands/send_apikey_usage_emails.py
@@ -2,6 +2,8 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from textwrap import dedent
diff --git a/ietf/ietfauth/utils.py b/ietf/ietfauth/utils.py
index b07509268..59eaa99a5 100644
--- a/ietf/ietfauth/utils.py
+++ b/ietf/ietfauth/utils.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 # various authentication and authorization utilities
 
@@ -30,7 +34,7 @@ def has_role(user, role_names, *args, **kwargs):
     """Determines whether user has any of the given standard roles
     given. Role names must be a list or, in case of a single value, a
     string."""
-    if isinstance(role_names, str) or isinstance(role_names, str):
+    if not isinstance(role_names, (list, tuple)):
         role_names = [ role_names ]
     
     if not user or not user.is_authenticated:
diff --git a/ietf/ipr/admin.py b/ietf/ipr/admin.py
index 72201b726..bcc0c33aa 100644
--- a/ietf/ipr/admin.py
+++ b/ietf/ipr/admin.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django import forms
 from django.contrib import admin
 from ietf.name.models import DocRelationshipName
diff --git a/ietf/ipr/factories.py b/ietf/ipr/factories.py
index 62a96f191..038117f75 100644
--- a/ietf/ipr/factories.py
+++ b/ietf/ipr/factories.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2018-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 import factory
 
diff --git a/ietf/ipr/migrations/0001_initial.py b/ietf/ipr/migrations/0001_initial.py
index 96225f7d2..ac077dd85 100644
--- a/ietf/ipr/migrations/0001_initial.py
+++ b/ietf/ipr/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/ipr/migrations/0002_auto_20180225_1207.py b/ietf/ipr/migrations/0002_auto_20180225_1207.py
index 31c1a23fe..01c1fa9b1 100644
--- a/ietf/ipr/migrations/0002_auto_20180225_1207.py
+++ b/ietf/ipr/migrations/0002_auto_20180225_1207.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-25 12:07
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/ipr/migrations/0003_add_ipdocrel_document2_fk.py b/ietf/ipr/migrations/0003_add_ipdocrel_document2_fk.py
index bd1542c61..35576ffb3 100644
--- a/ietf/ipr/migrations/0003_add_ipdocrel_document2_fk.py
+++ b/ietf/ipr/migrations/0003_add_ipdocrel_document2_fk.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-08 11:58
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/ipr/migrations/0004_remove_iprdocrel_document.py b/ietf/ipr/migrations/0004_remove_iprdocrel_document.py
index d5c538cfb..2439193a6 100644
--- a/ietf/ipr/migrations/0004_remove_iprdocrel_document.py
+++ b/ietf/ipr/migrations/0004_remove_iprdocrel_document.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-20 09:53
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/ipr/migrations/0005_rename_field_document2.py b/ietf/ipr/migrations/0005_rename_field_document2.py
index 8c55ba473..6db908888 100644
--- a/ietf/ipr/migrations/0005_rename_field_document2.py
+++ b/ietf/ipr/migrations/0005_rename_field_document2.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 05:31
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/ipr/migrations/0006_document_primary_key_cleanup.py b/ietf/ipr/migrations/0006_document_primary_key_cleanup.py
index caa193771..32dca70c4 100644
--- a/ietf/ipr/migrations/0006_document_primary_key_cleanup.py
+++ b/ietf/ipr/migrations/0006_document_primary_key_cleanup.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-06-10 03:42
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/ipr/resources.py b/ietf/ipr/resources.py
index 65cb551f5..665b0ab02 100644
--- a/ietf/ipr/resources.py
+++ b/ietf/ipr/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2015-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2015-03-21 14:05 PDT
+
+
 from ietf.api import ModelResource
 from ietf.api import ToOneField
 from tastypie.fields import ToManyField     # pyflakes:ignore
diff --git a/ietf/ipr/templatetags/ipr_filters.py b/ietf/ipr/templatetags/ipr_filters.py
index 424726baa..43bf90234 100644
--- a/ietf/ipr/templatetags/ipr_filters.py
+++ b/ietf/ipr/templatetags/ipr_filters.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 from django import template
 from django.utils.html import format_html
diff --git a/ietf/ipr/utils.py b/ietf/ipr/utils.py
index 2cb05aa29..b31d5195a 100644
--- a/ietf/ipr/utils.py
+++ b/ietf/ipr/utils.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import debug                            # pyflakes:ignore
 
 def get_genitive(name):
diff --git a/ietf/liaisons/__init__.py b/ietf/liaisons/__init__.py
index e4d3e43e0..fd066bea4 100644
--- a/ietf/liaisons/__init__.py
+++ b/ietf/liaisons/__init__.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from types import ModuleType
 
 # These people will be sent a stack trace if there's an uncaught exception in
diff --git a/ietf/liaisons/admin.py b/ietf/liaisons/admin.py
index 8983cafbf..7bf4ad8aa 100644
--- a/ietf/liaisons/admin.py
+++ b/ietf/liaisons/admin.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.contrib import admin
 from django.urls import reverse
 
diff --git a/ietf/liaisons/feeds.py b/ietf/liaisons/feeds.py
index d2f0b43a9..21920935a 100644
--- a/ietf/liaisons/feeds.py
+++ b/ietf/liaisons/feeds.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 import re
 
diff --git a/ietf/liaisons/mails.py b/ietf/liaisons/mails.py
index 0c13f51c1..caba5d366 100644
--- a/ietf/liaisons/mails.py
+++ b/ietf/liaisons/mails.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2011-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from django.conf import settings
diff --git a/ietf/liaisons/management/commands/check_liaison_deadlines.py b/ietf/liaisons/management/commands/check_liaison_deadlines.py
index 10cbc4291..77032fe4b 100644
--- a/ietf/liaisons/management/commands/check_liaison_deadlines.py
+++ b/ietf/liaisons/management/commands/check_liaison_deadlines.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from django.core.management.base import BaseCommand
diff --git a/ietf/liaisons/management/commands/remind_update_sdo_list.py b/ietf/liaisons/management/commands/remind_update_sdo_list.py
index 5eae4acd2..264b11b21 100644
--- a/ietf/liaisons/management/commands/remind_update_sdo_list.py
+++ b/ietf/liaisons/management/commands/remind_update_sdo_list.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 from django.core.management.base import BaseCommand
 
diff --git a/ietf/liaisons/migrations/0001_initial.py b/ietf/liaisons/migrations/0001_initial.py
index 5d8e78d7a..df733a3cd 100644
--- a/ietf/liaisons/migrations/0001_initial.py
+++ b/ietf/liaisons/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/liaisons/migrations/0002_auto_20180225_1207.py b/ietf/liaisons/migrations/0002_auto_20180225_1207.py
index c3f679ca9..f848a0391 100644
--- a/ietf/liaisons/migrations/0002_auto_20180225_1207.py
+++ b/ietf/liaisons/migrations/0002_auto_20180225_1207.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-25 12:07
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/liaisons/migrations/0003_liaison_document2_fk.py b/ietf/liaisons/migrations/0003_liaison_document2_fk.py
index 5105bdf3f..b46ced747 100644
--- a/ietf/liaisons/migrations/0003_liaison_document2_fk.py
+++ b/ietf/liaisons/migrations/0003_liaison_document2_fk.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-08 11:58
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/liaisons/migrations/0004_remove_liaisonstatementattachment_document.py b/ietf/liaisons/migrations/0004_remove_liaisonstatementattachment_document.py
index 52bcd462e..30a697d58 100644
--- a/ietf/liaisons/migrations/0004_remove_liaisonstatementattachment_document.py
+++ b/ietf/liaisons/migrations/0004_remove_liaisonstatementattachment_document.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-20 09:53
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/liaisons/migrations/0005_rename_field_document2.py b/ietf/liaisons/migrations/0005_rename_field_document2.py
index f6a2b0e1e..c557b3360 100644
--- a/ietf/liaisons/migrations/0005_rename_field_document2.py
+++ b/ietf/liaisons/migrations/0005_rename_field_document2.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 05:31
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/liaisons/migrations/0006_document_primary_key_cleanup.py b/ietf/liaisons/migrations/0006_document_primary_key_cleanup.py
index 4fc689698..bc2918667 100644
--- a/ietf/liaisons/migrations/0006_document_primary_key_cleanup.py
+++ b/ietf/liaisons/migrations/0006_document_primary_key_cleanup.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-06-10 03:47
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/liaisons/resources.py b/ietf/liaisons/resources.py
index 3bfd6321f..6ca4188ba 100644
--- a/ietf/liaisons/resources.py
+++ b/ietf/liaisons/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2015-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the makeresources management command 2015-10-11 13:15 PDT
+
+
 from ietf.api import ModelResource
 from ietf.api import ToOneField
 from tastypie.fields import ToManyField     # pyflakes:ignore
diff --git a/ietf/liaisons/widgets.py b/ietf/liaisons/widgets.py
index ef4074390..c29700653 100644
--- a/ietf/liaisons/widgets.py
+++ b/ietf/liaisons/widgets.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.urls import reverse as urlreverse
 from django.db.models.query import QuerySet
 from django.forms.widgets import Widget
diff --git a/ietf/mailinglists/factories.py b/ietf/mailinglists/factories.py
index 10f41c8da..d713cbbde 100644
--- a/ietf/mailinglists/factories.py
+++ b/ietf/mailinglists/factories.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import factory
 import random
 
diff --git a/ietf/mailinglists/migrations/0001_initial.py b/ietf/mailinglists/migrations/0001_initial.py
index f53f00a9f..c127e7621 100644
--- a/ietf/mailinglists/migrations/0001_initial.py
+++ b/ietf/mailinglists/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import django.core.validators
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/mailinglists/resources.py b/ietf/mailinglists/resources.py
index 7f48ac35e..b2fce0900 100644
--- a/ietf/mailinglists/resources.py
+++ b/ietf/mailinglists/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the makeresources management command 2016-06-12 12:29 PDT
+
+
 from ietf.api import ModelResource
 from tastypie.fields import ToManyField                 # pyflakes:ignore
 from tastypie.constants import ALL, ALL_WITH_RELATIONS  # pyflakes:ignore
diff --git a/ietf/mailinglists/tests.py b/ietf/mailinglists/tests.py
index 29cd06518..34b555d91 100644
--- a/ietf/mailinglists/tests.py
+++ b/ietf/mailinglists/tests.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from pyquery import PyQuery
 
 from django.urls import reverse as urlreverse
diff --git a/ietf/mailtrigger/migrations/0001_initial.py b/ietf/mailtrigger/migrations/0001_initial.py
index 1b41575fc..03eb02262 100644
--- a/ietf/mailtrigger/migrations/0001_initial.py
+++ b/ietf/mailtrigger/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/mailtrigger/migrations/0002_conflrev_changes.py b/ietf/mailtrigger/migrations/0002_conflrev_changes.py
index c801f6fe9..3330e196d 100644
--- a/ietf/mailtrigger/migrations/0002_conflrev_changes.py
+++ b/ietf/mailtrigger/migrations/0002_conflrev_changes.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-05-21 12:07
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/mailtrigger/migrations/0003_add_review_notify_ad.py b/ietf/mailtrigger/migrations/0003_add_review_notify_ad.py
index 3389d050d..b8eebea5e 100644
--- a/ietf/mailtrigger/migrations/0003_add_review_notify_ad.py
+++ b/ietf/mailtrigger/migrations/0003_add_review_notify_ad.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-11-02 11:34
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/mailtrigger/migrations/0004_ballot_rfceditornote_changed_postapproval.py b/ietf/mailtrigger/migrations/0004_ballot_rfceditornote_changed_postapproval.py
index 097ebd6a3..411fc68b1 100644
--- a/ietf/mailtrigger/migrations/0004_ballot_rfceditornote_changed_postapproval.py
+++ b/ietf/mailtrigger/migrations/0004_ballot_rfceditornote_changed_postapproval.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-11-03 00:24
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/mailtrigger/migrations/0005_slides_proposed.py b/ietf/mailtrigger/migrations/0005_slides_proposed.py
index 8c1e71f8d..8efa3397d 100644
--- a/ietf/mailtrigger/migrations/0005_slides_proposed.py
+++ b/ietf/mailtrigger/migrations/0005_slides_proposed.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-03-25 06:11
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/mailtrigger/migrations/0006_sub_new_wg_00.py b/ietf/mailtrigger/migrations/0006_sub_new_wg_00.py
index 712803015..a380a20a1 100644
--- a/ietf/mailtrigger/migrations/0006_sub_new_wg_00.py
+++ b/ietf/mailtrigger/migrations/0006_sub_new_wg_00.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/mailtrigger/tests.py b/ietf/mailtrigger/tests.py
index db5d0281a..802c2a6bb 100644
--- a/ietf/mailtrigger/tests.py
+++ b/ietf/mailtrigger/tests.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2015-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.urls import reverse as urlreverse
 
 from ietf.utils.test_utils import TestCase
diff --git a/ietf/meeting/admin.py b/ietf/meeting/admin.py
index d6ea3a5ee..63bb68067 100644
--- a/ietf/meeting/admin.py
+++ b/ietf/meeting/admin.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.contrib import admin
 
 from ietf.meeting.models import (Meeting, Room, Session, TimeSlot, Constraint, Schedule,
diff --git a/ietf/meeting/factories.py b/ietf/meeting/factories.py
index 9eb6d6b56..df54dd646 100644
--- a/ietf/meeting/factories.py
+++ b/ietf/meeting/factories.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import factory
 import random
 import datetime
diff --git a/ietf/meeting/feeds.py b/ietf/meeting/feeds.py
index bc9fa4ecd..0a1e0a42a 100644
--- a/ietf/meeting/feeds.py
+++ b/ietf/meeting/feeds.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import os
 
 from django.contrib.syndication.views import Feed
diff --git a/ietf/meeting/management/commands/update_important_dates.py b/ietf/meeting/management/commands/update_important_dates.py
index 656cbdb02..8689ba7b3 100644
--- a/ietf/meeting/management/commands/update_important_dates.py
+++ b/ietf/meeting/management/commands/update_important_dates.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2018-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from django.core.management.base import BaseCommand
diff --git a/ietf/meeting/migrations/0001_initial.py b/ietf/meeting/migrations/0001_initial.py
index e71b0ae90..5d8910e68 100644
--- a/ietf/meeting/migrations/0001_initial.py
+++ b/ietf/meeting/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 import django.core.validators
 from django.db import migrations, models
diff --git a/ietf/meeting/migrations/0002_auto_20180225_1207.py b/ietf/meeting/migrations/0002_auto_20180225_1207.py
index 6f5aab8af..981dcf831 100644
--- a/ietf/meeting/migrations/0002_auto_20180225_1207.py
+++ b/ietf/meeting/migrations/0002_auto_20180225_1207.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-25 12:07
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/meeting/migrations/0003_rename_modified_fields.py b/ietf/meeting/migrations/0003_rename_modified_fields.py
index dea714019..c63aa49a8 100644
--- a/ietf/meeting/migrations/0003_rename_modified_fields.py
+++ b/ietf/meeting/migrations/0003_rename_modified_fields.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-03-02 14:33
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/meeting/migrations/0004_meeting_attendees.py b/ietf/meeting/migrations/0004_meeting_attendees.py
index ea7546a5b..502b0b126 100644
--- a/ietf/meeting/migrations/0004_meeting_attendees.py
+++ b/ietf/meeting/migrations/0004_meeting_attendees.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.11 on 2018-03-20 09:17
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/meeting/migrations/0005_backfill_old_meetings.py b/ietf/meeting/migrations/0005_backfill_old_meetings.py
index 36e308dc7..af245617c 100644
--- a/ietf/meeting/migrations/0005_backfill_old_meetings.py
+++ b/ietf/meeting/migrations/0005_backfill_old_meetings.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/meeting/migrations/0006_backfill_attendees.py b/ietf/meeting/migrations/0006_backfill_attendees.py
index 5b6a70958..2e4103c16 100644
--- a/ietf/meeting/migrations/0006_backfill_attendees.py
+++ b/ietf/meeting/migrations/0006_backfill_attendees.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/meeting/migrations/0007_auto_20180716_1337.py b/ietf/meeting/migrations/0007_auto_20180716_1337.py
index 2fcf4804c..b348d07cb 100644
--- a/ietf/meeting/migrations/0007_auto_20180716_1337.py
+++ b/ietf/meeting/migrations/0007_auto_20180716_1337.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.14 on 2018-07-16 13:37
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/meeting/migrations/0008_rename_meeting_agenda_note.py b/ietf/meeting/migrations/0008_rename_meeting_agenda_note.py
index 1cef45068..528bb2afd 100644
--- a/ietf/meeting/migrations/0008_rename_meeting_agenda_note.py
+++ b/ietf/meeting/migrations/0008_rename_meeting_agenda_note.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.15 on 2018-10-09 13:09
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/meeting/migrations/0009_add_agenda_info_note.py b/ietf/meeting/migrations/0009_add_agenda_info_note.py
index e9136158f..109fcd910 100644
--- a/ietf/meeting/migrations/0009_add_agenda_info_note.py
+++ b/ietf/meeting/migrations/0009_add_agenda_info_note.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-10-09 14:07
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/meeting/migrations/0010_set_ietf_103_agenda_info_note.py b/ietf/meeting/migrations/0010_set_ietf_103_agenda_info_note.py
index 14d68538f..92bbd6a24 100644
--- a/ietf/meeting/migrations/0010_set_ietf_103_agenda_info_note.py
+++ b/ietf/meeting/migrations/0010_set_ietf_103_agenda_info_note.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-10-09 14:23
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps,schema_editor):
diff --git a/ietf/meeting/migrations/0011_auto_20190114_0550.py b/ietf/meeting/migrations/0011_auto_20190114_0550.py
index bc9a076fa..0a12b5fc0 100644
--- a/ietf/meeting/migrations/0011_auto_20190114_0550.py
+++ b/ietf/meeting/migrations/0011_auto_20190114_0550.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-14 05:50
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/meeting/migrations/0012_add_slide_submissions.py b/ietf/meeting/migrations/0012_add_slide_submissions.py
index 659b8f475..617809de0 100644
--- a/ietf/meeting/migrations/0012_add_slide_submissions.py
+++ b/ietf/meeting/migrations/0012_add_slide_submissions.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-03-23 07:41
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/meeting/migrations/0013_make_separate_break_sessobj.py b/ietf/meeting/migrations/0013_make_separate_break_sessobj.py
index c7af0cf0b..359f75ce5 100644
--- a/ietf/meeting/migrations/0013_make_separate_break_sessobj.py
+++ b/ietf/meeting/migrations/0013_make_separate_break_sessobj.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-03-23 06:11
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from django.db import migrations
 
diff --git a/ietf/meeting/migrations/0014_auto_20190426_0305.py b/ietf/meeting/migrations/0014_auto_20190426_0305.py
index 84f4dc4fc..4f7d47a62 100644
--- a/ietf/meeting/migrations/0014_auto_20190426_0305.py
+++ b/ietf/meeting/migrations/0014_auto_20190426_0305.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-04-26 03:05
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/meeting/migrations/0015_sessionpresentation_document2_fk.py b/ietf/meeting/migrations/0015_sessionpresentation_document2_fk.py
index 8897f0b44..8354d546e 100644
--- a/ietf/meeting/migrations/0015_sessionpresentation_document2_fk.py
+++ b/ietf/meeting/migrations/0015_sessionpresentation_document2_fk.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-08 11:58
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/meeting/migrations/0016_remove_sessionpresentation_document.py b/ietf/meeting/migrations/0016_remove_sessionpresentation_document.py
index 741153eb5..724bfcfc0 100644
--- a/ietf/meeting/migrations/0016_remove_sessionpresentation_document.py
+++ b/ietf/meeting/migrations/0016_remove_sessionpresentation_document.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 03:57
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/meeting/migrations/0017_rename_field_document2.py b/ietf/meeting/migrations/0017_rename_field_document2.py
index 672112a91..5095a33ff 100644
--- a/ietf/meeting/migrations/0017_rename_field_document2.py
+++ b/ietf/meeting/migrations/0017_rename_field_document2.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 05:31
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/meeting/migrations/0018_document_primary_key_cleanup.py b/ietf/meeting/migrations/0018_document_primary_key_cleanup.py
index 08b1f5ab0..786530908 100644
--- a/ietf/meeting/migrations/0018_document_primary_key_cleanup.py
+++ b/ietf/meeting/migrations/0018_document_primary_key_cleanup.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-06-10 03:47
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/meeting/resources.py b/ietf/meeting/resources.py
index 62fea679c..a8783c295 100644
--- a/ietf/meeting/resources.py
+++ b/ietf/meeting/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:15
+
+
 from ietf.api import ModelResource
 from ietf.api import ToOneField
 from tastypie.fields import ToManyField, DateTimeField
diff --git a/ietf/meeting/templatetags/agenda_custom_tags.py b/ietf/meeting/templatetags/agenda_custom_tags.py
index 5adeb314c..a1501ab64 100644
--- a/ietf/meeting/templatetags/agenda_custom_tags.py
+++ b/ietf/meeting/templatetags/agenda_custom_tags.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django import template
 
 register = template.Library()
diff --git a/ietf/meeting/test_data.py b/ietf/meeting/test_data.py
index 53879166f..6cb2c8f39 100644
--- a/ietf/meeting/test_data.py
+++ b/ietf/meeting/test_data.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from django.utils.text import slugify
diff --git a/ietf/meeting/tests_js.py b/ietf/meeting/tests_js.py
index 6dd0ef6e1..b306814aa 100644
--- a/ietf/meeting/tests_js.py
+++ b/ietf/meeting/tests_js.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 import sys
 import time
diff --git a/ietf/message/migrations/0001_initial.py b/ietf/message/migrations/0001_initial.py
index dad23f182..9fe4ff38e 100644
--- a/ietf/message/migrations/0001_initial.py
+++ b/ietf/message/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/message/migrations/0002_add_message_docs2_m2m.py b/ietf/message/migrations/0002_add_message_docs2_m2m.py
index 9f65c4a84..1402fa8d8 100644
--- a/ietf/message/migrations/0002_add_message_docs2_m2m.py
+++ b/ietf/message/migrations/0002_add_message_docs2_m2m.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 14:23
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/message/migrations/0003_set_document_m2m_keys.py b/ietf/message/migrations/0003_set_document_m2m_keys.py
index 70d1b08fa..493adc2ee 100644
--- a/ietf/message/migrations/0003_set_document_m2m_keys.py
+++ b/ietf/message/migrations/0003_set_document_m2m_keys.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-21 14:27
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from tqdm import tqdm
diff --git a/ietf/message/migrations/0004_1_del_docs_m2m_table.py b/ietf/message/migrations/0004_1_del_docs_m2m_table.py
index 38e160a91..670609fc7 100644
--- a/ietf/message/migrations/0004_1_del_docs_m2m_table.py
+++ b/ietf/message/migrations/0004_1_del_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-22 08:01
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/message/migrations/0004_2_add_docs_m2m_table.py b/ietf/message/migrations/0004_2_add_docs_m2m_table.py
index 8fc173e5a..9da02c6e6 100644
--- a/ietf/message/migrations/0004_2_add_docs_m2m_table.py
+++ b/ietf/message/migrations/0004_2_add_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-22 08:01
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/message/migrations/0005_copy_docs_m2m_table.py b/ietf/message/migrations/0005_copy_docs_m2m_table.py
index 4a52e9096..f85def627 100644
--- a/ietf/message/migrations/0005_copy_docs_m2m_table.py
+++ b/ietf/message/migrations/0005_copy_docs_m2m_table.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-27 05:56
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys, time
 
 from django.db import migrations
diff --git a/ietf/message/migrations/0006_remove_docs2_m2m.py b/ietf/message/migrations/0006_remove_docs2_m2m.py
index c3e54f232..58743da07 100644
--- a/ietf/message/migrations/0006_remove_docs2_m2m.py
+++ b/ietf/message/migrations/0006_remove_docs2_m2m.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-30 03:32
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/message/resources.py b/ietf/message/resources.py
index f1e77cb5b..30c7ac1e8 100644
--- a/ietf/message/resources.py
+++ b/ietf/message/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from ietf.api import ToOneField
 from tastypie.fields import ToManyField
diff --git a/ietf/message/tests.py b/ietf/message/tests.py
index 13e599568..5781a72d8 100644
--- a/ietf/message/tests.py
+++ b/ietf/message/tests.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from django.urls import reverse as urlreverse
diff --git a/ietf/middleware.py b/ietf/middleware.py
index 149a87f72..b0759894e 100644
--- a/ietf/middleware.py
+++ b/ietf/middleware.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 from django.db import connection
 from django.db.utils import OperationalError
diff --git a/ietf/name/migrations/0001_initial.py b/ietf/name/migrations/0001_initial.py
index b7e31cf98..72b30039f 100644
--- a/ietf/name/migrations/0001_initial.py
+++ b/ietf/name/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/name/migrations/0002_agendatypename.py b/ietf/name/migrations/0002_agendatypename.py
index 4089f9b73..cf9f42950 100644
--- a/ietf/name/migrations/0002_agendatypename.py
+++ b/ietf/name/migrations/0002_agendatypename.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-07-10 13:47
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 class Migration(migrations.Migration):
diff --git a/ietf/name/migrations/0003_agendatypename_data.py b/ietf/name/migrations/0003_agendatypename_data.py
index c5d224bab..48d72129d 100644
--- a/ietf/name/migrations/0003_agendatypename_data.py
+++ b/ietf/name/migrations/0003_agendatypename_data.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-07-10 13:47
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 agenda_type_names = (
diff --git a/ietf/name/migrations/0004_add_prefix_to_doctypenames.py b/ietf/name/migrations/0004_add_prefix_to_doctypenames.py
index 31a3d60cc..038b7c2a5 100644
--- a/ietf/name/migrations/0004_add_prefix_to_doctypenames.py
+++ b/ietf/name/migrations/0004_add_prefix_to_doctypenames.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-10-19 11:34
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/name/migrations/0005_reviewassignmentstatename.py b/ietf/name/migrations/0005_reviewassignmentstatename.py
index 9b2567e0c..c8660920d 100644
--- a/ietf/name/migrations/0005_reviewassignmentstatename.py
+++ b/ietf/name/migrations/0005_reviewassignmentstatename.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-04 13:59
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/name/migrations/0006_adjust_statenames.py b/ietf/name/migrations/0006_adjust_statenames.py
index 30c49e774..116e25f3c 100644
--- a/ietf/name/migrations/0006_adjust_statenames.py
+++ b/ietf/name/migrations/0006_adjust_statenames.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-04 14:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/nomcom/admin.py b/ietf/nomcom/admin.py
index 6e25736e0..9e8ba57b3 100644
--- a/ietf/nomcom/admin.py
+++ b/ietf/nomcom/admin.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.contrib import admin
 
 from ietf.nomcom.models import ( ReminderDates, NomCom, Nomination, Nominee, NomineePosition, 
diff --git a/ietf/nomcom/decorators.py b/ietf/nomcom/decorators.py
index 99d85d487..bbaebd0cd 100644
--- a/ietf/nomcom/decorators.py
+++ b/ietf/nomcom/decorators.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import functools
 
 from django.urls import reverse
diff --git a/ietf/nomcom/factories.py b/ietf/nomcom/factories.py
index bffdd338b..1f41466a0 100644
--- a/ietf/nomcom/factories.py
+++ b/ietf/nomcom/factories.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2015-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import factory
 import random
 
diff --git a/ietf/nomcom/management/commands/make_dummy_nomcom.py b/ietf/nomcom/management/commands/make_dummy_nomcom.py
index bb55ba9f2..92d71dcac 100644
--- a/ietf/nomcom/management/commands/make_dummy_nomcom.py
+++ b/ietf/nomcom/management/commands/make_dummy_nomcom.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import socket
 
 from django.core.management.base import BaseCommand
diff --git a/ietf/nomcom/management/commands/send_reminders.py b/ietf/nomcom/management/commands/send_reminders.py
index 85318df60..a4a442de8 100644
--- a/ietf/nomcom/management/commands/send_reminders.py
+++ b/ietf/nomcom/management/commands/send_reminders.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 import syslog
 
diff --git a/ietf/nomcom/migrations/0001_initial.py b/ietf/nomcom/migrations/0001_initial.py
index d45a1a33b..09bdebd6f 100644
--- a/ietf/nomcom/migrations/0001_initial.py
+++ b/ietf/nomcom/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/nomcom/migrations/0002_auto_20180918_0550.py b/ietf/nomcom/migrations/0002_auto_20180918_0550.py
index 9c68a359a..9d32121c9 100644
--- a/ietf/nomcom/migrations/0002_auto_20180918_0550.py
+++ b/ietf/nomcom/migrations/0002_auto_20180918_0550.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.15 on 2018-09-18 05:50
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 from django.db import migrations
 import django.db.models.deletion
diff --git a/ietf/nomcom/migrations/0003_nomcom_show_accepted_nominees.py b/ietf/nomcom/migrations/0003_nomcom_show_accepted_nominees.py
index ec16a045f..5076c70a8 100644
--- a/ietf/nomcom/migrations/0003_nomcom_show_accepted_nominees.py
+++ b/ietf/nomcom/migrations/0003_nomcom_show_accepted_nominees.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.15 on 2018-09-26 11:10
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/nomcom/migrations/0004_set_show_accepted_nominees_false_on_existing_nomcoms.py b/ietf/nomcom/migrations/0004_set_show_accepted_nominees_false_on_existing_nomcoms.py
index 05245b4c0..d3ab2f478 100644
--- a/ietf/nomcom/migrations/0004_set_show_accepted_nominees_false_on_existing_nomcoms.py
+++ b/ietf/nomcom/migrations/0004_set_show_accepted_nominees_false_on_existing_nomcoms.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.15 on 2018-09-26 11:12
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/nomcom/migrations/0005_auto_20181008_0602.py b/ietf/nomcom/migrations/0005_auto_20181008_0602.py
index 3a6f42805..9a5a37d4f 100644
--- a/ietf/nomcom/migrations/0005_auto_20181008_0602.py
+++ b/ietf/nomcom/migrations/0005_auto_20181008_0602.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-10-08 06:02
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/nomcom/resources.py b/ietf/nomcom/resources.py
index cc95d5ff7..61d101052 100644
--- a/ietf/nomcom/resources.py
+++ b/ietf/nomcom/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from ietf.api import ToOneField
 from tastypie.fields import ToManyField
diff --git a/ietf/person/forms.py b/ietf/person/forms.py
index 2759c2ea7..d146aa0b1 100644
--- a/ietf/person/forms.py
+++ b/ietf/person/forms.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2018-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 from django import forms
 from ietf.person.models import Person
diff --git a/ietf/person/migrations/0001_initial.py b/ietf/person/migrations/0001_initial.py
index f406c4221..66d405bbf 100644
--- a/ietf/person/migrations/0001_initial.py
+++ b/ietf/person/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from django.conf import settings
 import django.core.validators
diff --git a/ietf/person/migrations/0002_auto_20180330_0808.py b/ietf/person/migrations/0002_auto_20180330_0808.py
index 03ffc8363..3c4d7c9ab 100644
--- a/ietf/person/migrations/0002_auto_20180330_0808.py
+++ b/ietf/person/migrations/0002_auto_20180330_0808.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.11 on 2018-03-30 08:08
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/person/migrations/0003_auto_20180504_1519.py b/ietf/person/migrations/0003_auto_20180504_1519.py
index db7d6ca55..f24581584 100644
--- a/ietf/person/migrations/0003_auto_20180504_1519.py
+++ b/ietf/person/migrations/0003_auto_20180504_1519.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.12 on 2018-05-04 15:19
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from django.conf import settings
 import django.core.validators
diff --git a/ietf/person/migrations/0004_populate_email_origin.py b/ietf/person/migrations/0004_populate_email_origin.py
index 55a926665..5a07e0b83 100644
--- a/ietf/person/migrations/0004_populate_email_origin.py
+++ b/ietf/person/migrations/0004_populate_email_origin.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.12 on 2018-05-10 05:28
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from django.db import migrations
diff --git a/ietf/person/migrations/0005_populate_person_name_from_draft.py b/ietf/person/migrations/0005_populate_person_name_from_draft.py
index 3eb26ce63..dc4cb829d 100644
--- a/ietf/person/migrations/0005_populate_person_name_from_draft.py
+++ b/ietf/person/migrations/0005_populate_person_name_from_draft.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.12 on 2018-05-10 05:28
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from django.db import migrations
diff --git a/ietf/person/migrations/0006_auto_20180910_0719.py b/ietf/person/migrations/0006_auto_20180910_0719.py
index 44d280305..2a86ac351 100644
--- a/ietf/person/migrations/0006_auto_20180910_0719.py
+++ b/ietf/person/migrations/0006_auto_20180910_0719.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.13 on 2018-09-10 07:19
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 from django.db import migrations
 import django.db.models.deletion
diff --git a/ietf/person/migrations/0007_auto_20180929_1303.py b/ietf/person/migrations/0007_auto_20180929_1303.py
index de1b3660f..310691e6d 100644
--- a/ietf/person/migrations/0007_auto_20180929_1303.py
+++ b/ietf/person/migrations/0007_auto_20180929_1303.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.15 on 2018-09-29 13:03
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/person/migrations/0008_auto_20181014_1448.py b/ietf/person/migrations/0008_auto_20181014_1448.py
index 8a7116e8a..a7cee4884 100644
--- a/ietf/person/migrations/0008_auto_20181014_1448.py
+++ b/ietf/person/migrations/0008_auto_20181014_1448.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-10-14 14:48
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/person/migrations/0009_auto_20190118_0725.py b/ietf/person/migrations/0009_auto_20190118_0725.py
index 24c6148b4..d96edbe59 100644
--- a/ietf/person/migrations/0009_auto_20190118_0725.py
+++ b/ietf/person/migrations/0009_auto_20190118_0725.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-18 07:25
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/person/name.py b/ietf/person/name.py
index 74bb5cd64..1cfbd06fb 100644
--- a/ietf/person/name.py
+++ b/ietf/person/name.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2011-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 import unidecode
 
diff --git a/ietf/person/resources.py b/ietf/person/resources.py
index 049b3e104..91dc19d4f 100644
--- a/ietf/person/resources.py
+++ b/ietf/person/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from tastypie.fields import ToOneField
 from tastypie.constants import ALL, ALL_WITH_RELATIONS
diff --git a/ietf/person/views.py b/ietf/person/views.py
index 582b78337..59e0cc101 100644
--- a/ietf/person/views.py
+++ b/ietf/person/views.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from io import StringIO
 
diff --git a/ietf/redirects/resources.py b/ietf/redirects/resources.py
index d65726280..672edd958 100644
--- a/ietf/redirects/resources.py
+++ b/ietf/redirects/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from tastypie.fields import ToOneField
 from tastypie.constants import ALL, ALL_WITH_RELATIONS
diff --git a/ietf/release/tests.py b/ietf/release/tests.py
index fa91c33ab..4f9fdded2 100644
--- a/ietf/release/tests.py
+++ b/ietf/release/tests.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from pyquery import PyQuery
 
 from django.urls import reverse
diff --git a/ietf/release/urls.py b/ietf/release/urls.py
index 01b90d95e..34cb023e5 100644
--- a/ietf/release/urls.py
+++ b/ietf/release/urls.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.views.generic import TemplateView
 
 from ietf.release import views
diff --git a/ietf/review/admin.py b/ietf/review/admin.py
index 3d2541bf3..7a36fec88 100644
--- a/ietf/review/admin.py
+++ b/ietf/review/admin.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import simple_history
 
 from django.contrib import admin
diff --git a/ietf/review/migrations/0001_initial.py b/ietf/review/migrations/0001_initial.py
index d9b618de3..a57ead202 100644
--- a/ietf/review/migrations/0001_initial.py
+++ b/ietf/review/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/review/migrations/0002_unavailableperiod_reason.py b/ietf/review/migrations/0002_unavailableperiod_reason.py
index 046697e2f..6a2754388 100644
--- a/ietf/review/migrations/0002_unavailableperiod_reason.py
+++ b/ietf/review/migrations/0002_unavailableperiod_reason.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.14 on 2018-07-23 15:11
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/review/migrations/0003_add_notify_ad_when.py b/ietf/review/migrations/0003_add_notify_ad_when.py
index 26f7e3376..3a950a413 100644
--- a/ietf/review/migrations/0003_add_notify_ad_when.py
+++ b/ietf/review/migrations/0003_add_notify_ad_when.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-11-02 10:10
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import ietf.review.models
 
diff --git a/ietf/review/migrations/0004_reviewteamsettings_secr_mail_alias.py b/ietf/review/migrations/0004_reviewteamsettings_secr_mail_alias.py
index 315642947..91fbcf94a 100644
--- a/ietf/review/migrations/0004_reviewteamsettings_secr_mail_alias.py
+++ b/ietf/review/migrations/0004_reviewteamsettings_secr_mail_alias.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-11-03 03:10
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/review/migrations/0005_set_secdir_notify_ad_when.py b/ietf/review/migrations/0005_set_secdir_notify_ad_when.py
index aa4eeaed2..ade5a5287 100644
--- a/ietf/review/migrations/0005_set_secdir_notify_ad_when.py
+++ b/ietf/review/migrations/0005_set_secdir_notify_ad_when.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-11-02 10:20
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 def forward(apps, schema_editor):
diff --git a/ietf/review/migrations/0006_historicalreviewersettings.py b/ietf/review/migrations/0006_historicalreviewersettings.py
index 0d641d733..0f9bc75d8 100644
--- a/ietf/review/migrations/0006_historicalreviewersettings.py
+++ b/ietf/review/migrations/0006_historicalreviewersettings.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.16 on 2018-11-09 08:31
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/review/migrations/0007_allow_notify_ad_when_to_be_blank.py b/ietf/review/migrations/0007_allow_notify_ad_when_to_be_blank.py
index ba38a4478..91016a8ed 100644
--- a/ietf/review/migrations/0007_allow_notify_ad_when_to_be_blank.py
+++ b/ietf/review/migrations/0007_allow_notify_ad_when_to_be_blank.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.17 on 2018-12-06 13:16
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/review/migrations/0008_remove_reviewrequest_old_id.py b/ietf/review/migrations/0008_remove_reviewrequest_old_id.py
index 5454b5eaa..df107e5b0 100644
--- a/ietf/review/migrations/0008_remove_reviewrequest_old_id.py
+++ b/ietf/review/migrations/0008_remove_reviewrequest_old_id.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.17 on 2019-01-03 12:34
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/review/migrations/0009_refactor_review_request.py b/ietf/review/migrations/0009_refactor_review_request.py
index 642cf32a6..78638239d 100644
--- a/ietf/review/migrations/0009_refactor_review_request.py
+++ b/ietf/review/migrations/0009_refactor_review_request.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-04 14:27
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/review/migrations/0010_populate_review_assignments.py b/ietf/review/migrations/0010_populate_review_assignments.py
index d254576be..3602645c4 100644
--- a/ietf/review/migrations/0010_populate_review_assignments.py
+++ b/ietf/review/migrations/0010_populate_review_assignments.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.18 on 2019-01-04 14:34
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from tqdm import tqdm
diff --git a/ietf/review/migrations/0011_review_document2_fk.py b/ietf/review/migrations/0011_review_document2_fk.py
index 78cc4d87c..f613cdb9b 100644
--- a/ietf/review/migrations/0011_review_document2_fk.py
+++ b/ietf/review/migrations/0011_review_document2_fk.py
@@ -1,8 +1,10 @@
+# Copyright The IETF Trust 2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 # Generated by Django 1.11.20 on 2019-05-08 11:58
-# Copyright The IETF Trust 2019, All Rights Reserved
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/review/migrations/0012_remove_old_document_field.py b/ietf/review/migrations/0012_remove_old_document_field.py
index 8f6971ce5..56790f507 100644
--- a/ietf/review/migrations/0012_remove_old_document_field.py
+++ b/ietf/review/migrations/0012_remove_old_document_field.py
@@ -1,8 +1,10 @@
+# Copyright The IETF Trust 2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 # Generated by Django 1.11.20 on 2019-05-20 09:53
-# Copyright The IETF Trust 2019, All Rights Reserved
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/review/migrations/0013_rename_field_document2.py b/ietf/review/migrations/0013_rename_field_document2.py
index ba9f556aa..da3c17ea0 100644
--- a/ietf/review/migrations/0013_rename_field_document2.py
+++ b/ietf/review/migrations/0013_rename_field_document2.py
@@ -1,8 +1,10 @@
+# Copyright The IETF Trust 2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 # Generated by Django 1.11.20 on 2019-05-21 05:31
-# Copyright The IETF Trust 2019, All Rights Reserved
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/review/migrations/0014_document_primary_key_cleanup.py b/ietf/review/migrations/0014_document_primary_key_cleanup.py
index 818782e4e..c8ef25beb 100644
--- a/ietf/review/migrations/0014_document_primary_key_cleanup.py
+++ b/ietf/review/migrations/0014_document_primary_key_cleanup.py
@@ -1,8 +1,10 @@
+# Copyright The IETF Trust 2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 # Generated by Django 1.11.20 on 2019-06-10 03:47
-# Copyright The IETF Trust 2019, All Rights Reserved
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/review/resources.py b/ietf/review/resources.py
index 7b5a912d5..a7850dcb8 100644
--- a/ietf/review/resources.py
+++ b/ietf/review/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the makeresources management command 2016-06-14 04:21 PDT
+
+
 from tastypie.resources import ModelResource
 from tastypie.fields import ToManyField                 # pyflakes:ignore
 from tastypie.constants import ALL, ALL_WITH_RELATIONS  # pyflakes:ignore
diff --git a/ietf/review/tests.py b/ietf/review/tests.py
index b0ace5272..5d599669a 100644
--- a/ietf/review/tests.py
+++ b/ietf/review/tests.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from ietf.utils.test_utils import TestCase
 from .mailarch import hash_list_message_id
 
diff --git a/ietf/secr/announcement/forms.py b/ietf/secr/announcement/forms.py
index 8be5044e2..ea8be460c 100644
--- a/ietf/secr/announcement/forms.py
+++ b/ietf/secr/announcement/forms.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django import forms
 
 from ietf.group.models import Group, Role
diff --git a/ietf/secr/announcement/tests.py b/ietf/secr/announcement/tests.py
index 1110c0f23..6200af090 100644
--- a/ietf/secr/announcement/tests.py
+++ b/ietf/secr/announcement/tests.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.urls import reverse
 
 from pyquery import PyQuery
diff --git a/ietf/secr/console/tests.py b/ietf/secr/console/tests.py
index 2f686a9b1..75ddf483b 100644
--- a/ietf/secr/console/tests.py
+++ b/ietf/secr/console/tests.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 """
 This file demonstrates two different styles of tests (one doctest and one
 unittest). These will both pass when you run "manage.py test".
diff --git a/ietf/secr/drafts/forms.py b/ietf/secr/drafts/forms.py
index 076a43575..0dd7539a0 100644
--- a/ietf/secr/drafts/forms.py
+++ b/ietf/secr/drafts/forms.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 import os
 
diff --git a/ietf/secr/groups/tests.py b/ietf/secr/groups/tests.py
index af05d2079..c49d95cd1 100644
--- a/ietf/secr/groups/tests.py
+++ b/ietf/secr/groups/tests.py
@@ -1,5 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.urls import reverse
 from ietf.utils.test_utils import TestCase
 from ietf.group.models import Group
diff --git a/ietf/secr/meetings/tests.py b/ietf/secr/meetings/tests.py
index 2ebe85dc2..5082cb6b9 100644
--- a/ietf/secr/meetings/tests.py
+++ b/ietf/secr/meetings/tests.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 import os
 import shutil
diff --git a/ietf/secr/proceedings/migrations/0001_initial.py b/ietf/secr/proceedings/migrations/0001_initial.py
index ff57ba5fe..48d6b6264 100644
--- a/ietf/secr/proceedings/migrations/0001_initial.py
+++ b/ietf/secr/proceedings/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/secr/roles/tests.py b/ietf/secr/roles/tests.py
index 344634563..e70d5e563 100644
--- a/ietf/secr/roles/tests.py
+++ b/ietf/secr/roles/tests.py
@@ -1,5 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.urls import reverse
 from ietf.utils.test_utils import TestCase
 
diff --git a/ietf/secr/rolodex/forms.py b/ietf/secr/rolodex/forms.py
index 4c3351fcb..ab094bdca 100644
--- a/ietf/secr/rolodex/forms.py
+++ b/ietf/secr/rolodex/forms.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 
 from django import forms
diff --git a/ietf/secr/sreq/forms.py b/ietf/secr/sreq/forms.py
index 6ed1ca4a9..36a804042 100644
--- a/ietf/secr/sreq/forms.py
+++ b/ietf/secr/sreq/forms.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django import forms
 
 import debug                            # pyflakes:ignore
diff --git a/ietf/secr/sreq/views.py b/ietf/secr/sreq/views.py
index ef8ebfff9..f55ed4060 100644
--- a/ietf/secr/sreq/views.py
+++ b/ietf/secr/sreq/views.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from django.conf import settings
diff --git a/ietf/secr/telechat/tests.py b/ietf/secr/telechat/tests.py
index 26d50d2ba..0b6aa524e 100644
--- a/ietf/secr/telechat/tests.py
+++ b/ietf/secr/telechat/tests.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from pyquery import PyQuery
 
diff --git a/ietf/secr/utils/document.py b/ietf/secr/utils/document.py
index 72ffbda31..216958b70 100644
--- a/ietf/secr/utils/document.py
+++ b/ietf/secr/utils/document.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 def get_full_path(doc):
     '''
     Returns for name of file on disk with full path.  This should really be a method on doc
diff --git a/ietf/secr/utils/test.py b/ietf/secr/utils/test.py
index 9fca188b1..3fc791923 100644
--- a/ietf/secr/utils/test.py
+++ b/ietf/secr/utils/test.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2013-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 '''
 Functions to aid unit testing
 '''
diff --git a/ietf/settings_releasetest.py b/ietf/settings_releasetest.py
index 7c2a87889..421e6f851 100644
--- a/ietf/settings_releasetest.py
+++ b/ietf/settings_releasetest.py
@@ -1,4 +1,10 @@
 # Copyright The IETF Trust 2015-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
+
 # Standard settings except we use SQLite, this is useful for speeding
 # up tests that depend on the test database, try for instance:
 #
diff --git a/ietf/settings_sqlitetest.py b/ietf/settings_sqlitetest.py
index e41fbf96c..9657f7775 100644
--- a/ietf/settings_sqlitetest.py
+++ b/ietf/settings_sqlitetest.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 # Standard settings except we use SQLite and skip migrations, this is
 # useful for speeding up tests that depend on the test database, try
 # for instance:
diff --git a/ietf/settings_testcrawl.py b/ietf/settings_testcrawl.py
index 5f48abd30..ce1f4f8b3 100644
--- a/ietf/settings_testcrawl.py
+++ b/ietf/settings_testcrawl.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2015-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 # Standard settings except we enable caching like in the production
 # environment, this is useful for speeding up the test crawl, try for
 # instance:
diff --git a/ietf/stats/migrations/0001_initial.py b/ietf/stats/migrations/0001_initial.py
index 671036647..cc96985e8 100644
--- a/ietf/stats/migrations/0001_initial.py
+++ b/ietf/stats/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/stats/resources.py b/ietf/stats/resources.py
index 6d7afd9f5..f7bae4a25 100644
--- a/ietf/stats/resources.py
+++ b/ietf/stats/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the makeresources management command 2017-02-15 10:10 PST
+
+
 from tastypie.resources import ModelResource
 from tastypie.fields import ToManyField                 # pyflakes:ignore
 from tastypie.constants import ALL, ALL_WITH_RELATIONS  # pyflakes:ignore
diff --git a/ietf/stats/tests.py b/ietf/stats/tests.py
index 314763097..d4247e305 100644
--- a/ietf/stats/tests.py
+++ b/ietf/stats/tests.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from mock import patch
diff --git a/ietf/stats/urls.py b/ietf/stats/urls.py
index d36f3c1a2..7929ecadd 100644
--- a/ietf/stats/urls.py
+++ b/ietf/stats/urls.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.conf import settings
 
 from ietf.stats import views
diff --git a/ietf/submit/migrations/0001_initial.py b/ietf/submit/migrations/0001_initial.py
index feeb457b4..a7b039aa5 100644
--- a/ietf/submit/migrations/0001_initial.py
+++ b/ietf/submit/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 from django.db import migrations, models
 import django.db.models.deletion
diff --git a/ietf/submit/migrations/0002_submission_document2_fk.py b/ietf/submit/migrations/0002_submission_document2_fk.py
index e6a7c3b7c..debd1d52c 100644
--- a/ietf/submit/migrations/0002_submission_document2_fk.py
+++ b/ietf/submit/migrations/0002_submission_document2_fk.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-08 11:58
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 import django.db.models.deletion
 import ietf.utils.models
diff --git a/ietf/submit/migrations/0003_remove_old_document_field.py b/ietf/submit/migrations/0003_remove_old_document_field.py
index a0412cbae..fe4d880ef 100644
--- a/ietf/submit/migrations/0003_remove_old_document_field.py
+++ b/ietf/submit/migrations/0003_remove_old_document_field.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-25 06:44
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/submit/migrations/0004_rename_field_document2.py b/ietf/submit/migrations/0004_rename_field_document2.py
index 0e928dc8c..b1bdbdcec 100644
--- a/ietf/submit/migrations/0004_rename_field_document2.py
+++ b/ietf/submit/migrations/0004_rename_field_document2.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.20 on 2019-05-25 06:46
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations
 
 
diff --git a/ietf/submit/parsers/base.py b/ietf/submit/parsers/base.py
index c9eb7478f..b92fabdb7 100644
--- a/ietf/submit/parsers/base.py
+++ b/ietf/submit/parsers/base.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2011-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
 
 import re
 import magic
diff --git a/ietf/submit/parsers/plain_parser.py b/ietf/submit/parsers/plain_parser.py
index be76c69ee..c7b0538af 100644
--- a/ietf/submit/parsers/plain_parser.py
+++ b/ietf/submit/parsers/plain_parser.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2011-2019, All Rights Reserved
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 
 import debug                            # pyflakes:ignore
diff --git a/ietf/submit/resources.py b/ietf/submit/resources.py
index 66a82cdf8..aed899717 100644
--- a/ietf/submit/resources.py
+++ b/ietf/submit/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 23:53
+
+
 from ietf.api import ModelResource
 from tastypie.fields import ToOneField, ToManyField
 from tastypie.constants import ALL, ALL_WITH_RELATIONS
diff --git a/ietf/submit/templatetags/submit_tags.py b/ietf/submit/templatetags/submit_tags.py
index aefd3cb9e..514e8a7f4 100644
--- a/ietf/submit/templatetags/submit_tags.py
+++ b/ietf/submit/templatetags/submit_tags.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2011-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import os
 
 from django import template
diff --git a/ietf/utils/aliases.py b/ietf/utils/aliases.py
index 8068e8d17..6c31e9ec2 100644
--- a/ietf/utils/aliases.py
+++ b/ietf/utils/aliases.py
@@ -1,5 +1,5 @@
-# Copyright The IETF Trust 2013-2019, All Rights Reserved
 #!/usr/bin/env python
+# Copyright The IETF Trust 2013-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 # -*- Python -*-
 #
@@ -7,12 +7,17 @@
 #
 # Author: Markus Stenberg <mstenber@cisco.com>
 #
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 """
 
 Mailing list alias dumping utilities
 
 """
 
+
 from django.conf import settings
 
 import debug                            # pyflakes:ignore
diff --git a/ietf/utils/bootstrap.py b/ietf/utils/bootstrap.py
index 150f92b57..b4e169f5a 100644
--- a/ietf/utils/bootstrap.py
+++ b/ietf/utils/bootstrap.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import bootstrap3.renderers
 
 class SeparateErrorsFromHelpTextFieldRenderer(bootstrap3.renderers.FieldRenderer):
diff --git a/ietf/utils/draft_search.py b/ietf/utils/draft_search.py
index 4afb56f8e..dd250e319 100644
--- a/ietf/utils/draft_search.py
+++ b/ietf/utils/draft_search.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2007-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 
 def normalize_draftname(string):
diff --git a/ietf/utils/history.py b/ietf/utils/history.py
index a4e37e81f..35d532641 100644
--- a/ietf/utils/history.py
+++ b/ietf/utils/history.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2011-2019, All Rights Reserved
 # -*- coding: utf-8 -*-
 
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import debug                            # pyflakes:ignore
 
 def find_history_active_at(obj, time):
diff --git a/ietf/utils/management/commands/loadrelated.py b/ietf/utils/management/commands/loadrelated.py
index 2e68d2163..78da0e33e 100644
--- a/ietf/utils/management/commands/loadrelated.py
+++ b/ietf/utils/management/commands/loadrelated.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import gzip
 import os
 #import sys
diff --git a/ietf/utils/management/commands/populate_yang_model_dirs.py b/ietf/utils/management/commands/populate_yang_model_dirs.py
index 5d7adea17..671912b26 100644
--- a/ietf/utils/management/commands/populate_yang_model_dirs.py
+++ b/ietf/utils/management/commands/populate_yang_model_dirs.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import os
 import sys
 import time
diff --git a/ietf/utils/management/commands/pyflakes.py b/ietf/utils/management/commands/pyflakes.py
index a0cefbac5..bf9c4b17e 100644
--- a/ietf/utils/management/commands/pyflakes.py
+++ b/ietf/utils/management/commands/pyflakes.py
@@ -1,4 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import
 
 import ast
 import os
diff --git a/ietf/utils/management/commands/run_yang_model_checks.py b/ietf/utils/management/commands/run_yang_model_checks.py
index 8df7e9da8..2b3c324d7 100644
--- a/ietf/utils/management/commands/run_yang_model_checks.py
+++ b/ietf/utils/management/commands/run_yang_model_checks.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 import json
 
diff --git a/ietf/utils/management/commands/send_apikey_usage_emails.py b/ietf/utils/management/commands/send_apikey_usage_emails.py
index ead143e92..f8f923021 100644
--- a/ietf/utils/management/commands/send_apikey_usage_emails.py
+++ b/ietf/utils/management/commands/send_apikey_usage_emails.py
@@ -1,7 +1,9 @@
-# -*- coding: utf-8 -*-
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import datetime
 
 from textwrap import dedent
diff --git a/ietf/utils/management/commands/update_community_list_index.py b/ietf/utils/management/commands/update_community_list_index.py
index a7d8bcbfe..299038388 100644
--- a/ietf/utils/management/commands/update_community_list_index.py
+++ b/ietf/utils/management/commands/update_community_list_index.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 from django.core.management.base import BaseCommand
 
diff --git a/ietf/utils/management/commands/update_external_command_info.py b/ietf/utils/management/commands/update_external_command_info.py
index d950eb01b..7e63d7c65 100644
--- a/ietf/utils/management/commands/update_external_command_info.py
+++ b/ietf/utils/management/commands/update_external_command_info.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import sys
 
 from textwrap import dedent
diff --git a/ietf/utils/migrations/0001_initial.py b/ietf/utils/migrations/0001_initial.py
index 38c7566ae..d9f9002e4 100644
--- a/ietf/utils/migrations/0001_initial.py
+++ b/ietf/utils/migrations/0001_initial.py
@@ -3,6 +3,8 @@
 # Generated by Django 1.11.10 on 2018-02-20 10:52
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 from django.db import migrations, models
 
 
diff --git a/ietf/utils/ordereddict.py b/ietf/utils/ordereddict.py
index 18ec55f8f..bdc911efd 100644
--- a/ietf/utils/ordereddict.py
+++ b/ietf/utils/ordereddict.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 def insert_after_in_ordered_dict(dictionary, key, value, after):
     """There's no "insert" in ordered dict so simulate it instead by
     re-adding entries. Obviously that's not ideal, but for small dicts the
diff --git a/ietf/utils/pipe.py b/ietf/utils/pipe.py
index 5d4d28e5f..62a67e671 100644
--- a/ietf/utils/pipe.py
+++ b/ietf/utils/pipe.py
@@ -1,7 +1,12 @@
 # Copyright The IETF Trust 2010-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 # Simplified interface to os.popen3()
 
-def pipe(cmd:bytes, str:bytes=None) -> (int, bytes, bytes):
+def pipe(cmd, str=None):
     from subprocess import Popen, PIPE
     bufsize = 4096
     MAX = 65536*16
diff --git a/ietf/utils/resources.py b/ietf/utils/resources.py
index c1f115d05..6d61c5e2e 100644
--- a/ietf/utils/resources.py
+++ b/ietf/utils/resources.py
@@ -1,5 +1,8 @@
 # Copyright The IETF Trust 2014-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 # Autogenerated by the mkresources management command 2014-11-13 05:39
+
+
 from ietf.api import ModelResource
 from tastypie.fields import CharField
 from tastypie.constants import ALL
diff --git a/ietf/utils/templatetags/htmlfilters.py b/ietf/utils/templatetags/htmlfilters.py
index 6d8e666b7..80ad13e78 100644
--- a/ietf/utils/templatetags/htmlfilters.py
+++ b/ietf/utils/templatetags/htmlfilters.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2017-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 from django.template.library import Library
 from django.template.defaultfilters import stringfilter
diff --git a/ietf/utils/templatetags/textfilters.py b/ietf/utils/templatetags/textfilters.py
index 63a694199..ad4d6cb64 100644
--- a/ietf/utils/templatetags/textfilters.py
+++ b/ietf/utils/templatetags/textfilters.py
@@ -1,6 +1,9 @@
 # Copyright The IETF Trust 2016-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 import bleach
 
 from django import template
diff --git a/ietf/utils/test_data.py b/ietf/utils/test_data.py
index 2351727f9..17763825a 100644
--- a/ietf/utils/test_data.py
+++ b/ietf/utils/test_data.py
@@ -2,6 +2,8 @@
 # -*- coding: utf-8 -*-
 
 
+from __future__ import absolute_import, print_function, unicode_literals
+
 
 import datetime
 
diff --git a/ietf/utils/texescape.py b/ietf/utils/texescape.py
index 83a78812e..623c192db 100644
--- a/ietf/utils/texescape.py
+++ b/ietf/utils/texescape.py
@@ -2,6 +2,10 @@
 # -*- coding: utf-8 -*-
 # Copied from https://github.com/sphinx-doc/sphinx/blob/master/sphinx/util/texescape.py
 # Copyright and license as indicated in the original and below
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 """
     sphinx.util.texescape
     ~~~~~~~~~~~~~~~~~~~~~
diff --git a/ietf/utils/textupload.py b/ietf/utils/textupload.py
index 751a75450..6dc010d56 100644
--- a/ietf/utils/textupload.py
+++ b/ietf/utils/textupload.py
@@ -1,4 +1,9 @@
 # Copyright The IETF Trust 2012-2019, All Rights Reserved
+# -*- coding: utf-8 -*-
+
+
+from __future__ import absolute_import, print_function, unicode_literals
+
 import re
 
 from django.core.exceptions import ValidationError