def auto_configure_backend_factory(self):
     "Assign :attr:`backend_factory` from ``settings.DOWNLOADVIEW_BACKEND``"
     try:
         self.backend_factory = import_member(settings.DOWNLOADVIEW_BACKEND)
     except AttributeError:
         raise ImproperlyConfigured('SmartDownloadMiddleware requires '
                                    'settings.DOWNLOADVIEW_BACKEND')
 def auto_configure_backend_factory(self):
     "Assign :attr:`backend_factory` from ``settings.DOWNLOADVIEW_BACKEND``"
     try:
         self.backend_factory = import_member(settings.DOWNLOADVIEW_BACKEND)
     except AttributeError:
         raise ImproperlyConfigured("SmartDownloadMiddleware requires "
                                    "settings.DOWNLOADVIEW_BACKEND")
 def auto_configure_middlewares(self):
     """Populate :attr:`middlewares` from
     ``settings.DOWNLOADVIEW_MIDDLEWARES``."""
     for (key, import_string,
          kwargs) in getattr(settings, "DOWNLOADVIEW_MIDDLEWARES", []):
         factory = import_member(import_string)
         middleware = factory(**kwargs)
         self.middlewares.append((key, middleware))
 def auto_configure_middlewares(self):
     """Populate :attr:`middlewares` from
     ``settings.DOWNLOADVIEW_MIDDLEWARES``."""
     for (key, import_string, kwargs) in getattr(settings,
                                                 'DOWNLOADVIEW_MIDDLEWARES',
                                                 []):
         factory = import_member(import_string)
         middleware = factory(**kwargs)
         self.middlewares.append((key, middleware))
 def auto_configure_backend_options(self):
     """Populate :attr:`dispatcher` using :attr:`factory` and
     ``settings.DOWNLOADVIEW_RULES``."""
     try:
         options_list = copy.deepcopy(settings.DOWNLOADVIEW_RULES)
     except AttributeError:
         raise ImproperlyConfigured('SmartDownloadMiddleware requires '
                                    'settings.DOWNLOADVIEW_RULES')
     for key, options in enumerate(options_list):
         args = []
         kwargs = {}
         if isinstance(options, collections.Mapping):  # Using kwargs.
             kwargs = options
         else:
             args = options
         if 'backend' in kwargs:  # Specific backend for this rule.
             factory = import_member(kwargs['backend'])
             del kwargs['backend']
         else:  # Fallback to global backend.
             factory = self.backend_factory
         middleware_instance = factory(*args, **kwargs)
         self.dispatcher.middlewares.append((key, middleware_instance))
 def auto_configure_backend_options(self):
     """Populate :attr:`dispatcher` using :attr:`factory` and
     ``settings.DOWNLOADVIEW_RULES``."""
     try:
         options_list = copy.deepcopy(settings.DOWNLOADVIEW_RULES)
     except AttributeError:
         raise ImproperlyConfigured("SmartDownloadMiddleware requires "
                                    "settings.DOWNLOADVIEW_RULES")
     for key, options in enumerate(options_list):
         args = []
         kwargs = {}
         if isinstance(options, collections.Mapping):  # Using kwargs.
             kwargs = options
         else:
             args = options
         if "backend" in kwargs:  # Specific backend for this rule.
             factory = import_member(kwargs["backend"])
             del kwargs["backend"]
         else:  # Fallback to global backend.
             factory = self.backend_factory
         middleware_instance = factory(*args, **kwargs)
         self.dispatcher.middlewares.append((key, middleware_instance))