From d275aaa3f70ad8103cb3068ac7a7dcd75237a990 Mon Sep 17 00:00:00 2001 From: Matthew Tretter Date: Mon, 13 Feb 2012 22:05:33 -0500 Subject: [PATCH] A little reorganization --- imagekit/__init__.py | 2 -- imagekit/{base.py => files.py} | 48 +------------------------- imagekit/templatetags/imagekit_tags.py | 3 +- imagekit/utils.py | 47 ++++++++++++++++++++++++- 4 files changed, 49 insertions(+), 51 deletions(-) rename imagekit/{base.py => files.py} (50%) diff --git a/imagekit/__init__.py b/imagekit/__init__.py index d19b0f1..1b2a4a3 100644 --- a/imagekit/__init__.py +++ b/imagekit/__init__.py @@ -2,5 +2,3 @@ __title__ = 'django-imagekit' __author__ = 'Justin Driscoll, Bryan Veloso, Greg Newman, Chris Drackett, Matthew Tretter, Eric Eldredge' __version__ = (1, 1, 0, 'final', 0) __license__ = 'BSD' - -from .base import * diff --git a/imagekit/base.py b/imagekit/files.py similarity index 50% rename from imagekit/base.py rename to imagekit/files.py index b6865d7..ddfa4a8 100644 --- a/imagekit/base.py +++ b/imagekit/files.py @@ -1,55 +1,9 @@ import os -from django.core.files.images import ImageFile from django.db.models.fields.files import ImageFieldFile -from .imagecache import get_default_image_cache_backend from .generators import SpecFileGenerator -from .processors import ProcessorPipeline, AutoConvert - - -def autodiscover(): - """ - Auto-discover INSTALLED_APPS imagespecs.py modules and fail silently when - not present. This forces an import on them to register any admin bits they - may want. - - Copied from django.contrib.admin - """ - - import copy - from django.conf import settings - from django.utils.importlib import import_module - from django.utils.module_loading import module_has_submodule - from .templatetags import imagekit_tags - - for app in settings.INSTALLED_APPS: - mod = import_module(app) - # Attempt to import the app's admin module. - try: - import_module('%s.imagespecs' % app) - except: - # Decide whether to bubble up this error. If the app just - # doesn't have an admin module, we can ignore the error - # attempting to import it, otherwise we want it to bubble up. - if module_has_submodule(mod, 'imagespecs'): - raise - - -class SpecWrapper(object): - """ - Wraps a user-defined spec object so we can access properties that don't - exist without errors. - - """ - def __init__(self, spec): - self.processors = getattr(spec, 'processors', None) - self.format = getattr(spec, 'format', None) - self.options = getattr(spec, 'options', None) - self.autoconvert = getattr(spec, 'autoconvert', True) - self.storage = getattr(spec, 'storage', None) - self.image_cache_backend = getattr(spec, 'image_cache_backend', None) \ - or get_default_image_cache_backend() +from .utils import SpecWrapper class ImageSpecFile(ImageFieldFile): diff --git a/imagekit/templatetags/imagekit_tags.py b/imagekit/templatetags/imagekit_tags.py index c8069a8..202118f 100644 --- a/imagekit/templatetags/imagekit_tags.py +++ b/imagekit/templatetags/imagekit_tags.py @@ -1,6 +1,7 @@ import os from django import template -from .. import ImageSpecFile + +from ..files import ImageSpecFile register = template.Library() diff --git a/imagekit/utils.py b/imagekit/utils.py index 305bdd4..4f695cf 100644 --- a/imagekit/utils.py +++ b/imagekit/utils.py @@ -4,7 +4,8 @@ import types from django.db.models.loading import cache from django.utils.functional import wraps -from imagekit.lib import Image, ImageFile +from .imagecache import get_default_image_cache_backend +from .lib import Image, ImageFile def img_to_fobj(img, format, **kwargs): @@ -165,3 +166,47 @@ def validate_app_cache(apps, force_revalidation=False): if force_revalidation: f.invalidate() f.validate() + + +def autodiscover(): + """ + Auto-discover INSTALLED_APPS imagespecs.py modules and fail silently when + not present. This forces an import on them to register any admin bits they + may want. + + Copied from django.contrib.admin + """ + + import copy + from django.conf import settings + from django.utils.importlib import import_module + from django.utils.module_loading import module_has_submodule + from .templatetags import imagekit_tags + + for app in settings.INSTALLED_APPS: + mod = import_module(app) + # Attempt to import the app's admin module. + try: + import_module('%s.imagespecs' % app) + except: + # Decide whether to bubble up this error. If the app just + # doesn't have an admin module, we can ignore the error + # attempting to import it, otherwise we want it to bubble up. + if module_has_submodule(mod, 'imagespecs'): + raise + + +class SpecWrapper(object): + """ + Wraps a user-defined spec object so we can access properties that don't + exist without errors. + + """ + def __init__(self, spec): + self.processors = getattr(spec, 'processors', None) + self.format = getattr(spec, 'format', None) + self.options = getattr(spec, 'options', None) + self.autoconvert = getattr(spec, 'autoconvert', True) + self.storage = getattr(spec, 'storage', None) + self.image_cache_backend = getattr(spec, 'image_cache_backend', None) \ + or get_default_image_cache_backend()