From 8728167044adf62b52f3035faedfaca13bfe58f5 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 10 Sep 2012 23:10:23 -0400 Subject: [PATCH] Update converter to use app registry and deferred imports --- apps/converter/__init__.py | 3 +++ apps/converter/api.py | 5 ++++- apps/converter/office_converter.py | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/converter/__init__.py b/apps/converter/__init__.py index 1616548ee8..67554ebf9f 100644 --- a/apps/converter/__init__.py +++ b/apps/converter/__init__.py @@ -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') diff --git a/apps/converter/api.py b/apps/converter/api.py index d7feaee9d1..20f8d923e8 100644 --- a/apps/converter/api.py +++ b/apps/converter/api.py @@ -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) diff --git a/apps/converter/office_converter.py b/apps/converter/office_converter.py index 8b13d54648..8e7790e56d 100644 --- a/apps/converter/office_converter.py +++ b/apps/converter/office_converter.py @@ -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)