Update converter to use app registry and deferred imports
This commit is contained in:
@@ -2,4 +2,7 @@ from __future__ import absolute_import
|
||||
|
||||
from navigation.api import register_sidebar_template
|
||||
|
||||
from .exceptions import (UnknownFileFormat, IdentifyError, UnkownConvertError,
|
||||
OfficeConversionError, OfficeBackendError)
|
||||
|
||||
register_sidebar_template(['formats_list'], 'converter_file_formats_help.html')
|
||||
|
||||
@@ -12,7 +12,6 @@ from mimetype.api import get_mimetype
|
||||
|
||||
from .literals import (DEFAULT_PAGE_NUMBER,
|
||||
DEFAULT_ZOOM_LEVEL, DEFAULT_ROTATION, DEFAULT_FILE_FORMAT)
|
||||
from .runtime import backend
|
||||
from .literals import (TRANSFORMATION_CHOICES, TRANSFORMATION_RESIZE,
|
||||
TRANSFORMATION_ROTATE, TRANSFORMATION_ZOOM, DIMENSION_SEPARATOR,
|
||||
FILE_FORMATS)
|
||||
@@ -43,6 +42,8 @@ def create_image_cache_filename(input_filepath, *args, **kwargs):
|
||||
|
||||
|
||||
def convert(input_filepath, output_filepath=None, cleanup_files=False, mimetype=None, *args, **kwargs):
|
||||
from .runtime import backend
|
||||
|
||||
size = kwargs.get('size')
|
||||
file_format = kwargs.get('file_format', DEFAULT_FILE_FORMAT)
|
||||
zoom = kwargs.get('zoom', DEFAULT_ZOOM_LEVEL)
|
||||
@@ -121,6 +122,8 @@ def convert(input_filepath, output_filepath=None, cleanup_files=False, mimetype=
|
||||
|
||||
|
||||
def get_page_count(input_filepath):
|
||||
from .runtime import backend
|
||||
|
||||
# Try to determine the page count first with the TextParser
|
||||
with open(input_filepath, 'rb') as descriptor:
|
||||
mimetype, encoding = get_mimetype(descriptor, input_filepath, mimetype_only=True)
|
||||
|
||||
@@ -7,7 +7,6 @@ import logging
|
||||
from mimetype.api import get_mimetype
|
||||
from common.settings import TEMPORARY_DIRECTORY
|
||||
|
||||
from .settings import LIBREOFFICE_PATH
|
||||
from .exceptions import OfficeBackendError, UnknownFileFormat
|
||||
|
||||
CACHED_FILE_SUFFIX = u'_office_converter'
|
||||
@@ -79,7 +78,9 @@ class OfficeConverter(object):
|
||||
|
||||
class OfficeConverterBackendDirect(object):
|
||||
def __init__(self):
|
||||
self.libreoffice_path = LIBREOFFICE_PATH if LIBREOFFICE_PATH else u'/usr/bin/libreoffice'
|
||||
from .settings import LIBREOFFICE_PATH
|
||||
|
||||
self.libreoffice_path = LIBREOFFICE_PATH
|
||||
if not os.path.exists(self.libreoffice_path):
|
||||
raise OfficeBackendError('cannot find LibreOffice executable')
|
||||
logger.debug('self.libreoffice_path: %s' % self.libreoffice_path)
|
||||
|
||||
Reference in New Issue
Block a user