From e51a3fb96e63b7fb975bb62c38f4d4912475df46 Mon Sep 17 00:00:00 2001 From: Diederik van der Boor Date: Mon, 17 May 2021 11:06:30 +0200 Subject: [PATCH] Drop Python 2 support and Django 1.8/1.9 support --- private_storage/fields.py | 10 +--------- private_storage/servers.py | 12 ++---------- private_storage/storage/files.py | 6 +----- private_storage/views.py | 6 +----- runtests.py | 1 + 5 files changed, 6 insertions(+), 29 deletions(-) diff --git a/private_storage/fields.py b/private_storage/fields.py index 5102edf..7f4f5be 100644 --- a/private_storage/fields.py +++ b/private_storage/fields.py @@ -1,6 +1,4 @@ #-*- coding: utf-8 -*- -from __future__ import unicode_literals - import datetime import logging import os @@ -23,12 +21,6 @@ logger = logging.getLogger(__name__) -try: - string_types = basestring, # Python 2 -except NameError: - string_types = str, # Python 3 - - class PrivateFileField(models.FileField): """ Filefield with private storage, custom filename and size checks. @@ -90,7 +82,7 @@ def generate_filename(self, instance, filename): extra_dirs = upload_subfolder(instance) # Avoid mistakes by developers, no "s/u/b/p/a/t/h/" - if isinstance(extra_dirs, string_types): + if isinstance(extra_dirs, str): warnings.warn("{}.{}.upload_subfolder should return a list" " to avoid path-separator issues.".format( instance.__class__.__name__, self.name), UserWarning) diff --git a/private_storage/servers.py b/private_storage/servers.py index 7a91e8b..1030085 100644 --- a/private_storage/servers.py +++ b/private_storage/servers.py @@ -4,7 +4,8 @@ import os import sys import time -from functools import wraps +from functools import lru_cache, wraps +from urllib.parse import quote from django.conf import settings from django.core.exceptions import ImproperlyConfigured @@ -13,15 +14,6 @@ from django.utils.module_loading import import_string from django.views.static import serve, was_modified_since -try: - # python 3 - from urllib.parse import quote - from functools import lru_cache # Python 3 -except ImportError: - # python 2 - from urllib import quote - from django.utils.lru_cache import lru_cache # Django <3 - @lru_cache() def get_server_class(path): diff --git a/private_storage/storage/files.py b/private_storage/storage/files.py index 724c918..1a277b2 100644 --- a/private_storage/storage/files.py +++ b/private_storage/storage/files.py @@ -2,16 +2,12 @@ Django Storage interface, using the file system backend. """ from django.core.files.storage import FileSystemStorage +from django.urls import reverse_lazy from django.utils.deconstruct import deconstructible from django.utils.encoding import force_text from private_storage import appconfig -try: - from django.urls import reverse_lazy # Added in Django 1.10 -except ImportError: - from django.core.urlresolvers import reverse_lazy - @deconstructible class PrivateFileSystemStorage(FileSystemStorage): diff --git a/private_storage/views.py b/private_storage/views.py index 81c161e..d4014b9 100644 --- a/private_storage/views.py +++ b/private_storage/views.py @@ -2,6 +2,7 @@ Views to send private files. """ import os +from urllib.parse import quote from django.http import Http404 from django.utils.module_loading import import_string @@ -14,11 +15,6 @@ from .servers import get_server_class from .storage import private_storage -try: - from urllib.parse import quote -except ImportError: - from urllib import quote # Python 2 - class PrivateStorageView(View): """ diff --git a/runtests.py b/runtests.py index 92afbe3..b98d398 100755 --- a/runtests.py +++ b/runtests.py @@ -41,6 +41,7 @@ }, }, ], + DEFAULT_AUTO_FIELD='django.db.models.BigAutoField', AWS_PRIVATE_STORAGE_BUCKET_NAME='foobar', PRIVATE_STORAGE_ROOT=path.join(module_root, 'test-media-root'), )