From f027fbec0687c0c8f94db6bb355718cac6c6e4d4 Mon Sep 17 00:00:00 2001 From: Chen Zhe Date: Mon, 29 Jul 2019 11:13:44 +0800 Subject: [PATCH] changes for django1.11 --- linkcheck/__init__.py | 5 +++-- linkcheck/apps.py | 10 +++++----- linkcheck/listeners.py | 6 +++--- linkcheck/migrations/0001_initial.py | 2 +- linkcheck/migrations/0002_url_redirect_to.py | 2 +- linkcheck/migrations/0003_redirect_to_as_textfield.py | 2 +- linkcheck/models.py | 2 +- linkcheck/tests/test_linkcheck.py | 2 +- linkcheck/tests/urls.py | 2 +- linkcheck/utils.py | 4 ++-- linkcheck/views.py | 4 ++-- 11 files changed, 21 insertions(+), 20 deletions(-) diff --git a/linkcheck/__init__.py b/linkcheck/__init__.py index 1f21b00..3c8f901 100644 --- a/linkcheck/__init__.py +++ b/linkcheck/__init__.py @@ -1,10 +1,11 @@ import threading +import collections try: from django.utils.html_parser import HTMLParser # Gone in Django 2.1 except ImportError: try: - from HTMLParser import HTMLParser # Python 2 + from html.parser import HTMLParser # Python 2 except ImportError: from html.parser import HTMLParser # Python 3 @@ -129,7 +130,7 @@ def __get(self, name, obj, default=None): attr = getattr(self, name) except AttributeError: return default - if callable(attr): + if isinstance(attr, collections.Callable): return attr(obj) return attr diff --git a/linkcheck/apps.py b/linkcheck/apps.py index 1629948..30831b1 100644 --- a/linkcheck/apps.py +++ b/linkcheck/apps.py @@ -27,12 +27,12 @@ def build_linklists(self): continue the_module = import_module("%s.linklists" % app.name) try: - for k in the_module.linklists.keys(): - if k in self.all_linklists.keys(): + for k in list(the_module.linklists.keys()): + if k in list(self.all_linklists.keys()): raise AlreadyRegistered('The key %s is already registered in all_linklists' % k) - for l in the_module.linklists.values(): - for l2 in self.all_linklists.values(): + for l in list(the_module.linklists.values()): + for l2 in list(self.all_linklists.values()): if l.model == l2.model: raise AlreadyRegistered('The LinkList %s is already registered in all_linklists' % l) self.all_linklists.update(the_module.linklists) @@ -40,7 +40,7 @@ def build_linklists(self): pass # Add a reference to the linklist in the model. This change is for internal hash link, # But might also be useful elsewhere in the future - for key, linklist in self.all_linklists.items(): + for key, linklist in list(self.all_linklists.items()): setattr(linklist.model, '_linklist', linklist) diff --git a/linkcheck/listeners.py b/linkcheck/listeners.py index f12de5d..33d3637 100644 --- a/linkcheck/listeners.py +++ b/linkcheck/listeners.py @@ -4,7 +4,7 @@ from threading import Thread try: - import Queue + import queue except ImportError: # Python 3 import queue as Queue @@ -27,7 +27,7 @@ from linkcheck.models import Url, Link -tasks_queue = Queue.LifoQueue() +tasks_queue = queue.LifoQueue() worker_running = False tests_running = len(sys.argv) > 1 and sys.argv[1] == 'test' or sys.argv[0].endswith('runtests.py') @@ -185,7 +185,7 @@ def instance_pre_delete(sender, instance, **kwargs): # 1. register listeners for the objects that contain Links -for linklist_name, linklist_cls in apps.get_app_config('linkcheck').all_linklists.items(): +for linklist_name, linklist_cls in list(apps.get_app_config('linkcheck').all_linklists.items()): model_signals.post_save.connect(check_instance_links, sender=linklist_cls.model) model_signals.post_delete.connect(delete_instance_links, sender=linklist_cls.model) diff --git a/linkcheck/migrations/0001_initial.py b/linkcheck/migrations/0001_initial.py index fc1e6fe..8c0a859 100644 --- a/linkcheck/migrations/0001_initial.py +++ b/linkcheck/migrations/0001_initial.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import unicode_literals + from django.db import models, migrations diff --git a/linkcheck/migrations/0002_url_redirect_to.py b/linkcheck/migrations/0002_url_redirect_to.py index 560dd73..95e8a74 100644 --- a/linkcheck/migrations/0002_url_redirect_to.py +++ b/linkcheck/migrations/0002_url_redirect_to.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import unicode_literals + from django.db import models, migrations diff --git a/linkcheck/migrations/0003_redirect_to_as_textfield.py b/linkcheck/migrations/0003_redirect_to_as_textfield.py index 2a124e0..761baff 100644 --- a/linkcheck/migrations/0003_redirect_to_as_textfield.py +++ b/linkcheck/migrations/0003_redirect_to_as_textfield.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import unicode_literals + from django.db import migrations, models diff --git a/linkcheck/models.py b/linkcheck/models.py index a28ca33..0f09955 100644 --- a/linkcheck/models.py +++ b/linkcheck/models.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals + import re import os.path diff --git a/linkcheck/tests/test_linkcheck.py b/linkcheck/tests/test_linkcheck.py index 50eb7d6..68b37c7 100644 --- a/linkcheck/tests/test_linkcheck.py +++ b/linkcheck/tests/test_linkcheck.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from __future__ import unicode_literals + from datetime import datetime, timedelta import os diff --git a/linkcheck/tests/urls.py b/linkcheck/tests/urls.py index 6ff44ee..e6c4cf3 100644 --- a/linkcheck/tests/urls.py +++ b/linkcheck/tests/urls.py @@ -1,5 +1,5 @@ # -*- encoding: utf-8 -*- -from __future__ import unicode_literals + from django.conf.urls import include, url from django.contrib import admin diff --git a/linkcheck/utils.py b/linkcheck/utils.py index 6240815..9ddb0cc 100644 --- a/linkcheck/utils.py +++ b/linkcheck/utils.py @@ -149,7 +149,7 @@ def find_all_links(linklists=None): Url.objects.all().update(still_exists=False) - for linklist_name, linklist_cls in linklists.items(): + for linklist_name, linklist_cls in list(linklists.items()): content_type = linklist_cls.content_type() linklists = linklist_cls().get_linklist() @@ -234,7 +234,7 @@ def get_type_fields(klass, the_type): def is_model_covered(klass): app = apps.get_app_config('linkcheck') - for linklist in app.all_linklists.items(): + for linklist in list(app.all_linklists.items()): if linklist[1].model == klass: return True return False diff --git a/linkcheck/views.py b/linkcheck/views.py index b3f1e71..8e012ce 100644 --- a/linkcheck/views.py +++ b/linkcheck/views.py @@ -108,7 +108,7 @@ def report(request): # It's a bit nasty but we can't use groupby unless be get values() # instead of a queryset because of the 'Object is not subscriptable' error - t = sorted(links.object_list.values(), key=outerkeyfunc) + t = sorted(list(links.object_list.values()), key=outerkeyfunc) for tk, tg in groupby(t, outerkeyfunc): innerkeyfunc = itemgetter('object_id') objects = [] @@ -132,7 +132,7 @@ def report(request): objects.append({ 'object': object, - 'link_list': Link.objects.in_bulk([x['id'] for x in og]).values(), # Convert values_list back to queryset. Do we need to get values() or do we just need a list of ids? + 'link_list': list(Link.objects.in_bulk([x['id'] for x in og]).values()), # Convert values_list back to queryset. Do we need to get values() or do we just need a list of ids? 'admin_url': admin_url, }) content_types_list.append({