def get_media_backend(fail_silently=True, handles_media_types=None, handles_file_extensions=None): """ Returns the MediaBackend subclass that is configured for use with media_tree. """ backends = app_settings.MEDIA_TREE_MEDIA_BACKENDS if not len(backends): if not fail_silently: raise ImproperlyConfigured( 'There is no media backend configured. Please define ' 'MEDIA_TREE_MEDIA_BACKENDS in your settings.') else: return False # Traverse backends until there is one supporting what's requested: for path in backends: backend = get_module_attr(path) hmt = (not handles_media_types or backend.handles_media_types(handles_media_types)) hfe = (not handles_file_extensions or backend.handles_file_extensions(handles_file_extensions)) if hmt and hfe: return backend if not fail_silently: raise ImproperlyConfigured('There is no media backend configured ' 'to handle the specified file types.') return False
def get_media_backend(fail_silently=True, handles_media_types=None, handles_file_extensions=None, supports_thumbnails=None): """ Returns the MediaBackend subclass that is configured for use with media_tree. """ backends = app_settings.MEDIA_TREE_MEDIA_BACKENDS if not len(backends): if not fail_silently: raise ImproperlyConfigured('There is no media backend configured.' \ + ' Please define `MEDIA_TREE_MEDIA_BACKENDS` in your settings.') else: return False for path in backends: # Traverse backends until there is one supporting what's requested: backend = get_module_attr(path) if (not handles_media_types or backend.handles_media_types(handles_media_types)) \ and (not handles_file_extensions or backend.handles_file_extensions(handles_file_extensions)) \ and (not supports_thumbnails or backend.supports_thumbnails()): return backend if not fail_silently: raise ImproperlyConfigured('There is no media backend configured to handle' \ ' the specified file types.') return False
def get_media_backend(fail_silently=True, handles_media_types=None, handles_file_extensions=None): """ Returns the MediaBackend subclass that is configured for use with media_tree. """ backends = app_settings.MEDIA_TREE_MEDIA_BACKENDS if not len(backends): if not fail_silently: raise ImproperlyConfigured('There is no media backend configured.' \ + ' Please define `MEDIA_TREE_MEDIA_BACKENDS` in your settings.') else: return False for path in backends: # Traverse backends until there is one supporting what's requested: backend = get_module_attr(path) if (not handles_media_types or backend.handles_media_types(handles_media_types)) \ and (not handles_file_extensions or backend.handles_file_extensions(handles_file_extensions)): return backend if not fail_silently: raise ImproperlyConfigured('There is no media backend configured to handle' \ ' the specified file types.') return False
def get_icon_finders(finder_names): global ICON_FINDERS if not ICON_FINDERS: finders = [] for finder_name in finder_names: finder = get_module_attr(finder_name) if not hasattr(finder, 'find'): raise ImproperlyConfigured('Module "%s" does not define a "find" method' % finder_name) finders.append(finder) ICON_FINDERS = finders return ICON_FINDERS
def get_icon_finders(finder_names): global ICON_FINDERS if not ICON_FINDERS: finders = [] for finder_name in finder_names: finder = get_module_attr(finder_name) if not hasattr(finder, 'find'): raise ImproperlyConfigured( 'Module "%s" does not define a "find" method' % finder_name) finders.append(finder) ICON_FINDERS = finders return ICON_FINDERS