From e3c5af0ad5b72cb4fd5f4aba66f8eb54f638807c Mon Sep 17 00:00:00 2001 From: knokko Date: Mon, 1 Aug 2022 11:58:41 +0200 Subject: [PATCH 1/2] Fix Django 3 deprecation warnings --- binder/history.py | 3 ++- binder/router.py | 16 ++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/binder/history.py b/binder/history.py index 698f9377..5d77f01d 100644 --- a/binder/history.py +++ b/binder/history.py @@ -11,7 +11,8 @@ from .json import jsondumps, JsonResponse -transaction_commit = Signal(providing_args=['changeset']) +# Providing args is ['changeset'] +transaction_commit = Signal() class Changeset(models.Model): diff --git a/binder/router.py b/binder/router.py index ad4cc097..85520a9a 100644 --- a/binder/router.py +++ b/binder/router.py @@ -2,7 +2,7 @@ import django from django.apps import apps -from django.urls import reverse +from django.urls import reverse, re_path from binder.views import ModelView from .exceptions import BinderRequestError, BinderCSRFFailure, BinderMethodNotAllowed, BinderNotFound @@ -171,18 +171,18 @@ def urls(self): name = view.model.__name__ if view.model else route.route # List and detail endpoints if route.list_endpoint: - urls.append(django.conf.urls.url(r'^{}/$'.format(route.route), view.as_view(), {'router': self}, name=name)) + urls.append(re_path(r'^{}/$'.format(route.route), view.as_view(), {'router': self}, name=name)) if route.detail_endpoint: - urls.append(django.conf.urls.url(r'^{}/(?P[0-9]+)/$'.format(route.route), view.as_view(), {'router': self}, name=name)) + urls.append(re_path(r'^{}/(?P[0-9]+)/$'.format(route.route), view.as_view(), {'router': self}, name=name)) # History views if view.model and hasattr(view.model, 'Binder') and view.model.Binder.history: - urls.append(django.conf.urls.url(r'^{}/(?P[0-9]+)/history/$'.format(route.route), view.as_view(), {'history': 'normal', 'router': self}, name=name)) - urls.append(django.conf.urls.url(r'^{}/(?P[0-9]+)/history/debug/$'.format(route.route), view.as_view(), {'history': 'debug', 'router': self}, name=name)) + urls.append(re_path(r'^{}/(?P[0-9]+)/history/$'.format(route.route), view.as_view(), {'history': 'normal', 'router': self}, name=name)) + urls.append(re_path(r'^{}/(?P[0-9]+)/history/debug/$'.format(route.route), view.as_view(), {'history': 'debug', 'router': self}, name=name)) # File field endpoints for ff in view.file_fields: - urls.append(django.conf.urls.url(r'^{}/(?P[0-9]+)/{}/$'.format(route.route, ff), + urls.append(re_path(r'^{}/(?P[0-9]+)/{}/$'.format(route.route, ff), view.as_view(), {'file_field': ff, 'router': self}, name='{}.{}'.format(name, ff))) # Custom endpoints @@ -195,10 +195,10 @@ def urls(self): if method.unauthenticated: kwargs['unauthenticated'] = True if hasattr(method, 'detail_route'): - urls.append(django.conf.urls.url(r'^{}/(?P[0-9]+)/{}/{}$'.format(route.route, route_name, extra), + urls.append(re_path(r'^{}/(?P[0-9]+)/{}/{}$'.format(route.route, route_name, extra), view.as_view(), kwargs, name='{}.{}'.format(name, route_name))) if hasattr(method, 'list_route'): - urls.append(django.conf.urls.url(r'^{}/{}/{}$'.format(route.route, route_name, extra), + urls.append(re_path(r'^{}/{}/{}$'.format(route.route, route_name, extra), view.as_view(), kwargs, name='{}.{}'.format(name, route_name))) return urls From f7b465b7d2d178d1b92b4a558cabb8c4e7004e68 Mon Sep 17 00:00:00 2001 From: knokko Date: Mon, 1 Aug 2022 12:07:35 +0200 Subject: [PATCH 2/2] Fix linting --- binder/models.py | 2 +- binder/router.py | 1 - binder/views.py | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/binder/models.py b/binder/models.py index ab1e05e1..84bcc260 100644 --- a/binder/models.py +++ b/binder/models.py @@ -941,7 +941,7 @@ def update_dimension_fields(self, instance, force=False, *args, **kwargs): if not file and not force: return - dimension_fields_filled = not( + dimension_fields_filled = not ( (self.width_field and not getattr(instance, self.width_field)) or (self.height_field and not getattr(instance, self.height_field)) ) diff --git a/binder/router.py b/binder/router.py index 85520a9a..8e4bb9d6 100644 --- a/binder/router.py +++ b/binder/router.py @@ -1,6 +1,5 @@ from importlib import import_module -import django from django.apps import apps from django.urls import reverse, re_path diff --git a/binder/views.py b/binder/views.py index 2c419db4..f8395a90 100644 --- a/binder/views.py +++ b/binder/views.py @@ -718,7 +718,7 @@ def _annotate_objs(self, datas_by_id, objs_by_id): for obj_id, data in datas_by_id.items(): # TODO: Don't require OneToOneFields in the m2m_fields list if isinstance(local_field, models.OneToOneRel): - assert(len(idmap[obj_id]) <= 1) + assert len(idmap[obj_id]) <= 1 data[field_name] = idmap[obj_id][0] if len(idmap[obj_id]) == 1 else None else: data[field_name] = idmap[obj_id] @@ -1634,7 +1634,7 @@ def store_m2m_field(obj, field, value, request): try: obj.save() - assert(obj.pk is not None) # At this point, the object must have been created. + assert obj.pk is not None # At this point, the object must have been created. except ValidationError as ve: validation_errors.append(self.binder_validation_error(obj, ve, pk=pk))