Unverified Commit e51a3fb9 authored by Diederik van der Boor's avatar Diederik van der Boor
Browse files

Drop Python 2 support and Django 1.8/1.9 support

parent 40400755
#-*- coding: utf-8 -*- #-*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime import datetime
import logging import logging
import os import os
...@@ -23,12 +21,6 @@ from .storage import private_storage ...@@ -23,12 +21,6 @@ from .storage import private_storage
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
try:
string_types = basestring, # Python 2
except NameError:
string_types = str, # Python 3
class PrivateFileField(models.FileField): class PrivateFileField(models.FileField):
""" """
Filefield with private storage, custom filename and size checks. Filefield with private storage, custom filename and size checks.
...@@ -90,7 +82,7 @@ class PrivateFileField(models.FileField): ...@@ -90,7 +82,7 @@ class PrivateFileField(models.FileField):
extra_dirs = upload_subfolder(instance) extra_dirs = upload_subfolder(instance)
# Avoid mistakes by developers, no "s/u/b/p/a/t/h/" # 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" warnings.warn("{}.{}.upload_subfolder should return a list"
" to avoid path-separator issues.".format( " to avoid path-separator issues.".format(
instance.__class__.__name__, self.name), UserWarning) instance.__class__.__name__, self.name), UserWarning)
......
...@@ -4,7 +4,8 @@ Sending files efficiently for different kind of webservers. ...@@ -4,7 +4,8 @@ Sending files efficiently for different kind of webservers.
import os import os
import sys import sys
import time import time
from functools import wraps from functools import lru_cache, wraps
from urllib.parse import quote
from django.conf import settings from django.conf import settings
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
...@@ -13,15 +14,6 @@ from django.utils.http import http_date ...@@ -13,15 +14,6 @@ from django.utils.http import http_date
from django.utils.module_loading import import_string from django.utils.module_loading import import_string
from django.views.static import serve, was_modified_since 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() @lru_cache()
def get_server_class(path): def get_server_class(path):
......
...@@ -2,16 +2,12 @@ ...@@ -2,16 +2,12 @@
Django Storage interface, using the file system backend. Django Storage interface, using the file system backend.
""" """
from django.core.files.storage import FileSystemStorage from django.core.files.storage import FileSystemStorage
from django.urls import reverse_lazy
from django.utils.deconstruct import deconstructible from django.utils.deconstruct import deconstructible
from django.utils.encoding import force_text from django.utils.encoding import force_text
from private_storage import appconfig 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 @deconstructible
class PrivateFileSystemStorage(FileSystemStorage): class PrivateFileSystemStorage(FileSystemStorage):
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
Views to send private files. Views to send private files.
""" """
import os import os
from urllib.parse import quote
from django.http import Http404 from django.http import Http404
from django.utils.module_loading import import_string from django.utils.module_loading import import_string
...@@ -14,11 +15,6 @@ from .models import PrivateFile ...@@ -14,11 +15,6 @@ from .models import PrivateFile
from .servers import get_server_class from .servers import get_server_class
from .storage import private_storage from .storage import private_storage
try:
from urllib.parse import quote
except ImportError:
from urllib import quote # Python 2
class PrivateStorageView(View): class PrivateStorageView(View):
""" """
......
...@@ -41,6 +41,7 @@ if not settings.configured: ...@@ -41,6 +41,7 @@ if not settings.configured:
}, },
}, },
], ],
DEFAULT_AUTO_FIELD='django.db.models.BigAutoField',
AWS_PRIVATE_STORAGE_BUCKET_NAME='foobar', AWS_PRIVATE_STORAGE_BUCKET_NAME='foobar',
PRIVATE_STORAGE_ROOT=path.join(module_root, 'test-media-root'), PRIVATE_STORAGE_ROOT=path.join(module_root, 'test-media-root'),
) )
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment