mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-04-27 08:14:42 +00:00
Move spec registry
This commit is contained in:
parent
116b0bc0c5
commit
99ba61d605
2 changed files with 27 additions and 29 deletions
|
|
@ -2,7 +2,7 @@ from django.conf import settings
|
|||
from hashlib import md5
|
||||
import os
|
||||
import pickle
|
||||
from .exceptions import UnknownExtensionError
|
||||
from .exceptions import UnknownExtensionError, AlreadyRegistered, NotRegistered
|
||||
from .imagecache.backends import get_default_image_cache_backend
|
||||
from .imagecache.strategies import StrategyWrapper
|
||||
from .lib import StringIO
|
||||
|
|
@ -11,6 +11,31 @@ from .utils import (open_image, extension_to_format, IKContentFile, img_to_fobj,
|
|||
suggest_extension)
|
||||
|
||||
|
||||
class SpecRegistry(object):
|
||||
def __init__(self):
|
||||
self._specs = {}
|
||||
|
||||
def register(self, id, spec):
|
||||
if id in self._specs:
|
||||
raise AlreadyRegistered('The spec with id %s is already registered' % id)
|
||||
self._specs[id] = spec
|
||||
|
||||
def unregister(self, id, spec):
|
||||
try:
|
||||
del self._specs[id]
|
||||
except KeyError:
|
||||
raise NotRegistered('The spec with id %s is not registered' % id)
|
||||
|
||||
def get_spec(self, id):
|
||||
try:
|
||||
return self._specs[id]
|
||||
except KeyError:
|
||||
raise NotRegistered('The spec with id %s is not registered' % id)
|
||||
|
||||
|
||||
spec_registry = SpecRegistry()
|
||||
|
||||
|
||||
class BaseImageSpec(object):
|
||||
processors = None
|
||||
format = None
|
||||
|
|
|
|||
|
|
@ -1,39 +1,12 @@
|
|||
import os
|
||||
from django import template
|
||||
from django.utils.safestring import mark_safe
|
||||
|
||||
from ..exceptions import AlreadyRegistered, NotRegistered
|
||||
from ..files import ImageSpecFile
|
||||
from ..specs import spec_registry
|
||||
|
||||
|
||||
register = template.Library()
|
||||
|
||||
|
||||
class SpecRegistry(object):
|
||||
def __init__(self):
|
||||
self._specs = {}
|
||||
|
||||
def register(self, id, spec):
|
||||
if id in self._specs:
|
||||
raise AlreadyRegistered('The spec with id %s is already registered' % id)
|
||||
self._specs[id] = spec
|
||||
|
||||
def unregister(self, id, spec):
|
||||
try:
|
||||
del self._specs[id]
|
||||
except KeyError:
|
||||
raise NotRegistered('The spec with id %s is not registered' % id)
|
||||
|
||||
def get_spec(self, id):
|
||||
try:
|
||||
return self._specs[id]
|
||||
except KeyError:
|
||||
raise NotRegistered('The spec with id %s is not registered' % id)
|
||||
|
||||
|
||||
spec_registry = SpecRegistry()
|
||||
|
||||
|
||||
class ImageSpecFileHtmlWrapper(object):
|
||||
def __init__(self, image_spec_file):
|
||||
self._image_spec_file = image_spec_file
|
||||
|
|
|
|||
Loading…
Reference in a new issue