gnm_deliverables/transcodepreset.py (18 lines of code) (raw):

from django.conf import settings import re class TranscodePresetFinder(object): def __init__(self, presets=None): """ initialise the finder, by compiling the regexes present :param presets: optional parameter to override the presets list. If not present, TRANSCODE_PRESETS from settings.py is used. This should be a dictionary, where the key is the regex source string and the value is the setting to use """ if presets is None: presets = settings.TRANSCODE_PRESETS self._matchers = [TranscodePresetFinder.__compile_setting(x) for x in presets.items()] @staticmethod def __compile_setting(kvtuple): return ( re.compile(kvtuple[0]), kvtuple[1] ) def match(self, mimeType): """ tries to find a matching transcode preset for the given MIME type from the settings. :param mimeType: MIME type to check :return: either the preset name as a string or None if nothing could be found """ for entry in self._matchers: if entry[0].search(mimeType) is not None: return entry[1] return None