Ejemplo n.º 1
0
    def _get_finders(self, finder):
        if not hasattr(self, '_finders'):
            self._finders = {}
            for key, finders_modstr in core_settings.RELATED_FINDERS.items():
                # accept non-iterables too (single member named finders)
                if not hasattr(finders_modstr, '__iter__'):
                    finders_modstr = (finders_modstr, )

                # gather all functions before actual use to prevent import errors
                # during the real process
                finder_funcs = []
                for finder_modstr in finders_modstr:
                    finder_funcs.append(
                        import_module_member(finder_modstr, 'related finder'))

                self._finders[key] = finder_funcs

        if finder is None:
            finder = 'default'

        if not finder in self._finders:
            raise ImproperlyConfigured(
                'Named finder %r specified but cannot be '
                'found in RELATED_FINDERS settings.' % finder)
        return self._finders[finder]
Ejemplo n.º 2
0
    def get_listing_handler(self, source, fallback=True):
        if not hasattr(self, '_listing_handlers'):
            self._listing_handlers = {}
            for k, v in core_settings.LISTING_HANDLERS.items():
                self._listing_handlers[k] = import_module_member(v, 'Listing Handler')

            if 'default' not in self._listing_handlers:
                raise ImproperlyConfigured('You didn\'t specify any default Listing Handler.')

        if source in self._listing_handlers:
            return self._listing_handlers[source]
        elif not fallback:
            return None

        if settings.DEBUG:
            raise ImproperlyConfigured('ListingHandler %s is not defined in settings.' % source)

        return self._listing_handlers['default']
Ejemplo n.º 3
0
    def get_listing_handler(self, source, fallback=True):
        if not hasattr(self, '_listing_handlers'):
            self._listing_handlers = {}
            for k, v in core_settings.LISTING_HANDLERS.items():
                self._listing_handlers[k] = import_module_member(
                    v, 'Listing Handler')

            if 'default' not in self._listing_handlers:
                raise ImproperlyConfigured(
                    'You didn\'t specify any default Listing Handler.')

        if source in self._listing_handlers:
            return self._listing_handlers[source]
        elif not fallback:
            return None

        if settings.DEBUG:
            raise ImproperlyConfigured(
                'ListingHandler %s is not defined in settings.' % source)

        return self._listing_handlers['default']
Ejemplo n.º 4
0
    def _get_finders(self, finder):
        if not hasattr(self, '_finders'):
            self._finders = {}
            for key, finders_modstr in core_settings.RELATED_FINDERS.items():
                # accept non-iterables too (single member named finders)
                if not hasattr(finders_modstr, '__iter__'):
                    finders_modstr = (finders_modstr,)

                # gather all functions before actual use to prevent import errors
                # during the real process
                finder_funcs = []
                for finder_modstr in finders_modstr:
                    finder_funcs.append(import_module_member(finder_modstr, 'related finder'))

                self._finders[key] = finder_funcs

        if finder is None:
            finder = 'default'

        if not finder in self._finders:
            raise ImproperlyConfigured('Named finder %r specified but cannot be '
                'found in RELATED_FINDERS settings.' % finder)
        return self._finders[finder]
Ejemplo n.º 5
0
def get_storage_class():
    class_storage = import_module_member(contests_settings.FORM_STEPS_STORAGE, 'form steps storage')
    if not issubclass(class_storage, BaseStorage):
        ImproperlyConfigured('Error importing storage class "%s" becouse it is not subclass of "%s"' % (class_storage, BaseStorage))
    return class_storage