Fix StorageFile compatibility & some lint issues

This commit is contained in:
Fabre Florian 2020-01-07 11:34:51 +01:00
parent 0ad5e1238a
commit ac1e4dc9ce
5 changed files with 36 additions and 28 deletions

View file

@ -3,20 +3,20 @@ from django.utils.version import get_version
try:
from django.conf.urls import patterns
from django.conf.urls import patterns # noqa
except ImportError:
def patterns(prefix, *args):
return list(args)
try:
from django.urls import reverse
from django.urls import reverse # noqa
except ImportError:
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse # noqa
if StrictVersion(get_version()) >= StrictVersion('2.0'):
from django.conf.urls import include as urlinclude
from django.conf.urls import include as urlinclude # noqa
def include(arg, namespace=None, app_name=None):
return urlinclude((arg, app_name), namespace=namespace)
else:
from django.conf.urls import include
from django.conf.urls import include # noqa

View file

@ -1,6 +1,7 @@
# -*- coding: utf-8 -*-
"""File wrappers for use as exchange data between views and responses."""
from __future__ import absolute_import
from io import BytesIO
from six.moves.urllib.parse import urlparse
@ -122,7 +123,10 @@ class StorageFile(File):
Proxy to self.storage.accessed_time(self.name).
"""
return self.storage.accessed(self.name)
try:
return self.storage.get_accessed_time(self.name)
except AttributeError:
return self.storage.accessed_time(self.name)
@property
def created_time(self):
@ -131,7 +135,10 @@ class StorageFile(File):
Proxy to self.storage.created_time(self.name).
"""
return self.storage.created_time(self.name)
try:
return self.storage.get_created_time(self.name)
except AttributeError:
return self.storage.created_time(self.name)
@property
def modified_time(self):
@ -140,7 +147,10 @@ class StorageFile(File):
Proxy to self.storage.modified_time(self.name).
"""
return self.storage.modified_time(self.name)
try:
return self.storage.get_modified_time(self.name)
except AttributeError:
return self.storage.modified_time(self.name)
class VirtualFile(File):

View file

@ -40,38 +40,38 @@ class TextIteratorIO(io.TextIOBase):
def read(self, n=None):
"""Return content up to ``n`` length."""
l = []
chunks = []
if n is None or n < 0:
while True:
m = self._read1()
if not m:
break
l.append(m)
chunks.append(m)
else:
while n > 0:
m = self._read1(n)
if not m:
break
n -= len(m)
l.append(m)
return u''.join(l)
chunks.append(m)
return u''.join(chunks)
def readline(self):
l = []
chunks = []
while True:
i = self._left.find(u'\n')
if i == -1:
l.append(self._left)
chunks.append(self._left)
try:
self._left = next(self._iter)
except StopIteration:
self._left = u''
break
else:
l.append(self._left[:i + 1])
chunks.append(self._left[:i + 1])
self._left = self._left[i + 1:]
break
return u''.join(l)
return u''.join(chunks)
class BytesIteratorIO(io.BytesIO):
@ -108,35 +108,35 @@ class BytesIteratorIO(io.BytesIO):
def read(self, n=None):
"""Return content up to ``n`` length."""
l = []
chunks = []
if n is None or n < 0:
while True:
m = self._read1()
if not m:
break
l.append(m)
chunks.append(m)
else:
while n > 0:
m = self._read1(n)
if not m:
break
n -= len(m)
l.append(m)
return b''.join(l)
chunks.append(m)
return b''.join(chunks)
def readline(self):
l = []
chunks = []
while True:
i = self._left.find(b'\n')
if i == -1:
l.append(self._left)
chunks.append(self._left)
try:
self._left = next(self._iter)
except StopIteration:
self._left = b''
break
else:
l.append(self._left[:i + 1])
chunks.append(self._left[:i + 1])
self._left = self._left[i + 1:]
break
return b''.join(l)
return b''.join(chunks)

View file

@ -116,7 +116,8 @@ class DownloadMixin(object):
modification_time = calendar.timegm(
file_instance.modified_time.utctimetuple())
size = file_instance.size
except (AttributeError, NotImplementedError):
except (AttributeError, NotImplementedError) as e:
print("!=======!", e)
return True
else:
return was_modified_since(since, modification_time, size)

View file

@ -11,9 +11,6 @@ envlist = py{27}-django{18,19,110,111},
[travis:env]
DJANGO =
1.8: django18
1.9: django19
1.10: django110
1.11: django111
2.0: django20
2.1: django21