params = params.copy()
self.name = params.pop('NAME')
self.dirs = list(params.pop('DIRS'))
self.app_dirs = bool(params.pop('APP_DIRS'))
if params:
    raise ImproperlyConfigured('Unknown parameters: {}'.format(', '.join(
        params)))
Зачем устанавливать мелкую копию dict себе?