PEP8 cleanups, style cleanups, unused imports
This commit is contained in:
@@ -11,8 +11,8 @@ import logging
|
||||
try:
|
||||
from cStringIO import StringIO
|
||||
except ImportError:
|
||||
from StringIO import StringIO
|
||||
|
||||
from StringIO import StringIO
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.translation import ugettext
|
||||
@@ -30,7 +30,7 @@ from converter.literals import (DEFAULT_ZOOM_LEVEL, DEFAULT_ROTATION,
|
||||
DEFAULT_PAGE_NUMBER)
|
||||
|
||||
from .conf.settings import (CHECKSUM_FUNCTION, UUID_FUNCTION,
|
||||
STORAGE_BACKEND, PREVIEW_SIZE, DISPLAY_SIZE, CACHE_PATH,
|
||||
STORAGE_BACKEND, DISPLAY_SIZE, CACHE_PATH,
|
||||
ZOOM_MAX_LEVEL, ZOOM_MIN_LEVEL)
|
||||
from .managers import (RecentDocumentManager,
|
||||
DocumentPageTransformationManager)
|
||||
@@ -70,9 +70,9 @@ class DocumentType(models.Model):
|
||||
|
||||
|
||||
class Document(models.Model):
|
||||
'''
|
||||
"""
|
||||
Defines a single document with it's fields and properties
|
||||
'''
|
||||
"""
|
||||
uuid = models.CharField(max_length=48, blank=True, editable=False)
|
||||
document_type = models.ForeignKey(DocumentType, verbose_name=_(u'document type'), null=True, blank=True)
|
||||
description = models.TextField(blank=True, null=True, verbose_name=_(u'description'))
|
||||
@@ -133,7 +133,7 @@ class Document(models.Model):
|
||||
zoom = ZOOM_MAX_LEVEL
|
||||
|
||||
rotation = rotation % 360
|
||||
|
||||
|
||||
try:
|
||||
file_path = self.get_valid_image(size=size, page=page, zoom=zoom, rotation=rotation, version=version)
|
||||
except UnknownFileFormat:
|
||||
@@ -142,7 +142,7 @@ class Document(models.Model):
|
||||
file_path = get_error_icon_file_path()
|
||||
except:
|
||||
file_path = get_error_icon_file_path()
|
||||
|
||||
|
||||
if as_base64:
|
||||
image = open(file_path, 'r')
|
||||
out = StringIO()
|
||||
@@ -159,16 +159,16 @@ class Document(models.Model):
|
||||
|
||||
def add_as_recent_document_for_user(self, user):
|
||||
RecentDocument.objects.add_document_for_user(user, self)
|
||||
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
for version in self.versions.all():
|
||||
version.delete()
|
||||
return super(Document, self).delete(*args, **kwargs)
|
||||
|
||||
|
||||
@property
|
||||
def size(self):
|
||||
return self.latest_version.size
|
||||
|
||||
|
||||
def new_version(self, file, comment=None, version_update=None, release_level=None, serial=None):
|
||||
logger.debug('creating new document version')
|
||||
if version_update:
|
||||
@@ -177,12 +177,12 @@ class Document(models.Model):
|
||||
new_version = DocumentVersion(
|
||||
document=self,
|
||||
file=file,
|
||||
major = new_version_dict.get('major'),
|
||||
minor = new_version_dict.get('minor'),
|
||||
micro = new_version_dict.get('micro'),
|
||||
release_level = release_level,
|
||||
serial = serial,
|
||||
comment = comment,
|
||||
major=new_version_dict.get('major'),
|
||||
minor=new_version_dict.get('minor'),
|
||||
micro=new_version_dict.get('micro'),
|
||||
release_level=release_level,
|
||||
serial=serial,
|
||||
comment=comment,
|
||||
)
|
||||
new_version.save()
|
||||
else:
|
||||
@@ -198,20 +198,20 @@ class Document(models.Model):
|
||||
|
||||
# Proxy methods
|
||||
def open(self, *args, **kwargs):
|
||||
'''
|
||||
"""
|
||||
Return a file descriptor to a document's file irrespective of
|
||||
the storage backend
|
||||
'''
|
||||
"""
|
||||
return self.latest_version.open(*args, **kwargs)
|
||||
|
||||
|
||||
def save_to_file(self, *args, **kwargs):
|
||||
return self.latest_version.save_to_file(*args, **kwargs)
|
||||
|
||||
def exists(self):
|
||||
'''
|
||||
Returns a boolean value that indicates if the document's
|
||||
"""
|
||||
Returns a boolean value that indicates if the document's
|
||||
latest version file exists in storage
|
||||
'''
|
||||
"""
|
||||
return self.latest_version.exists()
|
||||
|
||||
# Compatibility methods
|
||||
@@ -226,7 +226,7 @@ class Document(models.Model):
|
||||
@property
|
||||
def file_mime_encoding(self):
|
||||
return self.latest_version.encoding
|
||||
|
||||
|
||||
@property
|
||||
def file_filename(self):
|
||||
return self.latest_version.filename
|
||||
@@ -275,12 +275,12 @@ class Document(models.Model):
|
||||
|
||||
|
||||
class DocumentVersion(models.Model):
|
||||
'''
|
||||
"""
|
||||
Model that describes a document version and its properties
|
||||
'''
|
||||
"""
|
||||
_pre_open_hooks = {}
|
||||
_post_save_hooks = {}
|
||||
|
||||
|
||||
@staticmethod
|
||||
def get_version_update_choices(document_version):
|
||||
return (
|
||||
@@ -288,7 +288,7 @@ class DocumentVersion(models.Model):
|
||||
(VERSION_UPDATE_MINOR, _(u'Minor %(major)i.%(minor)i, (some updates)') % document_version.get_new_version_dict(VERSION_UPDATE_MINOR)),
|
||||
(VERSION_UPDATE_MICRO, _(u'Micro %(major)i.%(minor)i.%(micro)i, (fixes)') % document_version.get_new_version_dict(VERSION_UPDATE_MICRO))
|
||||
)
|
||||
|
||||
|
||||
@classmethod
|
||||
def register_pre_open_hook(cls, order, func):
|
||||
cls._pre_open_hooks[order] = func
|
||||
@@ -296,7 +296,7 @@ class DocumentVersion(models.Model):
|
||||
@classmethod
|
||||
def register_post_save_hook(cls, order, func):
|
||||
cls._post_save_hooks[order] = func
|
||||
|
||||
|
||||
document = models.ForeignKey(Document, verbose_name=_(u'document'), editable=False)
|
||||
major = models.PositiveIntegerField(verbose_name=_(u'mayor'), default=1, editable=False)
|
||||
minor = models.PositiveIntegerField(verbose_name=_(u'minor'), default=0, editable=False)
|
||||
@@ -305,7 +305,7 @@ class DocumentVersion(models.Model):
|
||||
serial = models.PositiveIntegerField(verbose_name=_(u'serial'), default=0, editable=False)
|
||||
timestamp = models.DateTimeField(verbose_name=_(u'timestamp'), editable=False)
|
||||
comment = models.TextField(blank=True, verbose_name=_(u'comment'))
|
||||
|
||||
|
||||
# File related fields
|
||||
file = models.FileField(upload_to=get_filename_from_uuid, storage=STORAGE_BACKEND(), verbose_name=_(u'file'))
|
||||
mimetype = models.CharField(max_length=64, default='', editable=False)
|
||||
@@ -342,11 +342,11 @@ class DocumentVersion(models.Model):
|
||||
'minor': self.minor,
|
||||
'micro': self.micro + 1,
|
||||
}
|
||||
|
||||
|
||||
def get_formated_version(self):
|
||||
'''
|
||||
"""
|
||||
Return the formatted version information
|
||||
'''
|
||||
"""
|
||||
vers = [u'%i.%i' % (self.major, self.minor), ]
|
||||
|
||||
if self.micro:
|
||||
@@ -360,10 +360,10 @@ class DocumentVersion(models.Model):
|
||||
return self.documentpage_set
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
'''
|
||||
"""
|
||||
Overloaded save method that updates the document version's checksum,
|
||||
mimetype, page count and transformation when created
|
||||
'''
|
||||
"""
|
||||
new_document = not self.pk
|
||||
if not self.pk:
|
||||
self.timestamp = datetime.datetime.now()
|
||||
@@ -371,9 +371,9 @@ class DocumentVersion(models.Model):
|
||||
#Only do this for new documents
|
||||
transformations = kwargs.pop('transformations', None)
|
||||
super(DocumentVersion, self).save(*args, **kwargs)
|
||||
|
||||
|
||||
for key in sorted(DocumentVersion._post_save_hooks):
|
||||
DocumentVersion._post_save_hooks[key](self)
|
||||
DocumentVersion._post_save_hooks[key](self)
|
||||
|
||||
if new_document:
|
||||
#Only do this for new documents
|
||||
@@ -385,10 +385,10 @@ class DocumentVersion(models.Model):
|
||||
self.apply_default_transformations(transformations)
|
||||
|
||||
def update_checksum(self, save=True):
|
||||
'''
|
||||
"""
|
||||
Open a document version's file and update the checksum field using the
|
||||
user provided checksum function
|
||||
'''
|
||||
"""
|
||||
if self.exists():
|
||||
source = self.open()
|
||||
self.checksum = unicode(CHECKSUM_FUNCTION(source.read()))
|
||||
@@ -444,17 +444,17 @@ class DocumentVersion(models.Model):
|
||||
page_transformation.save()
|
||||
|
||||
def revert(self):
|
||||
'''
|
||||
"""
|
||||
Delete the subsequent versions after this one
|
||||
'''
|
||||
"""
|
||||
for version in self.document.versions.filter(timestamp__gt=self.timestamp):
|
||||
version.delete()
|
||||
|
||||
def update_mimetype(self, save=True):
|
||||
'''
|
||||
"""
|
||||
Read a document verions's file and determine the mimetype by calling the
|
||||
get_mimetype wrapper
|
||||
'''
|
||||
"""
|
||||
if self.exists():
|
||||
try:
|
||||
self.mimetype, self.encoding = get_mimetype(self.open(), self.filename)
|
||||
@@ -466,35 +466,35 @@ class DocumentVersion(models.Model):
|
||||
self.save()
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
self.file.storage.delete(self.file.path)
|
||||
self.file.storage.delete(self.file.path)
|
||||
return super(DocumentVersion, self).delete(*args, **kwargs)
|
||||
|
||||
def exists(self):
|
||||
'''
|
||||
"""
|
||||
Returns a boolean value that indicates if the document's file
|
||||
exists in storage
|
||||
'''
|
||||
"""
|
||||
return self.file.storage.exists(self.file.path)
|
||||
|
||||
|
||||
def open(self, raw=False):
|
||||
'''
|
||||
"""
|
||||
Return a file descriptor to a document version's file irrespective of
|
||||
the storage backend
|
||||
'''
|
||||
"""
|
||||
if raw:
|
||||
return self.file.storage.open(self.file.path)
|
||||
else:
|
||||
result = self.file.storage.open(self.file.path)
|
||||
for key in sorted(DocumentVersion._pre_open_hooks):
|
||||
result = DocumentVersion._pre_open_hooks[key](result, self)
|
||||
|
||||
|
||||
return result
|
||||
|
||||
def save_to_file(self, filepath, buffer_size=1024 * 1024):
|
||||
'''
|
||||
"""
|
||||
Save a copy of the document from the document storage backend
|
||||
to the local filesystem
|
||||
'''
|
||||
"""
|
||||
input_descriptor = self.open()
|
||||
output_descriptor = open(filepath, 'wb')
|
||||
while True:
|
||||
@@ -507,7 +507,7 @@ class DocumentVersion(models.Model):
|
||||
output_descriptor.close()
|
||||
input_descriptor.close()
|
||||
return filepath
|
||||
|
||||
|
||||
@property
|
||||
def size(self):
|
||||
if self.exists():
|
||||
@@ -517,10 +517,10 @@ class DocumentVersion(models.Model):
|
||||
|
||||
|
||||
class DocumentTypeFilename(models.Model):
|
||||
'''
|
||||
"""
|
||||
List of filenames available to a specific document type for the
|
||||
quick rename functionality
|
||||
'''
|
||||
"""
|
||||
document_type = models.ForeignKey(DocumentType, verbose_name=_(u'document type'))
|
||||
filename = models.CharField(max_length=128, verbose_name=_(u'filename'), db_index=True)
|
||||
enabled = models.BooleanField(default=True, verbose_name=_(u'enabled'))
|
||||
@@ -535,12 +535,12 @@ class DocumentTypeFilename(models.Model):
|
||||
|
||||
|
||||
class DocumentPage(models.Model):
|
||||
'''
|
||||
"""
|
||||
Model that describes a document version page including it's content
|
||||
'''
|
||||
"""
|
||||
# New parent field
|
||||
document_version = models.ForeignKey(DocumentVersion, verbose_name=_(u'document version'))
|
||||
|
||||
|
||||
# Unchanged fields
|
||||
content = models.TextField(blank=True, null=True, verbose_name=_(u'content'))
|
||||
page_label = models.CharField(max_length=32, blank=True, null=True, verbose_name=_(u'page label'))
|
||||
@@ -568,7 +568,7 @@ class DocumentPage(models.Model):
|
||||
@property
|
||||
def siblings(self):
|
||||
return DocumentPage.objects.filter(document_version=self.document_version)
|
||||
|
||||
|
||||
# Compatibility methods
|
||||
@property
|
||||
def document(self):
|
||||
|
||||
Reference in New Issue
Block a user