summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkihiro Motoki <amotoki@gmail.com>2017-03-17 18:52:05 +0000
committerAkihiro Motoki <amotoki@gmail.com>2017-03-17 19:38:47 +0000
commit61091388e91ccd76939b12a08b57ea79d6317572 (patch)
tree9e72480172f8e7cb18a9616d82b6f25151c108d3
parent676d5a2bad4416fff1e27af5cd2d96ff9c337511 (diff)
downloadhorizon-61091388e91ccd76939b12a08b57ea79d6317572.tar.gz
hacking: noqa cleanup in horizon
attribute-level imports are not checked by hacking module now. most noqa is used to disable warnings on attribute-level imports. This commit drops noqa for this purpose. After this, there are 8 noqa under horizon/ :) In addition to this, the following changes are made. horizon/exceptions.py: The following imports are dropped. They are not used anywhere. from django.http import HttpRequest from django.views.debug import CLEANSED_SUBSTITUTE horizon/forms/__init__.py: Some entries were missing in __all__. They are added. Change-Id: I33b504ef6c396f0675e8a340867e2ca59c77c684
-rw-r--r--horizon/__init__.py8
-rw-r--r--horizon/base.py12
-rw-r--r--horizon/browsers/__init__.py10
-rw-r--r--horizon/browsers/base.py4
-rw-r--r--horizon/browsers/views.py2
-rw-r--r--horizon/conf/__init__.py8
-rw-r--r--horizon/decorators.py6
-rw-r--r--horizon/exceptions.py10
-rw-r--r--horizon/forms/__init__.py45
-rw-r--r--horizon/forms/base.py2
-rw-r--r--horizon/forms/fields.py10
-rw-r--r--horizon/loaders.py4
-rw-r--r--horizon/management/commands/startdash.py4
-rw-r--r--horizon/management/commands/startpanel.py4
-rw-r--r--horizon/messages.py2
-rw-r--r--horizon/middleware/base.py6
-rw-r--r--horizon/site_urls.py2
-rw-r--r--horizon/tables/__init__.py55
-rw-r--r--horizon/tables/actions.py6
-rw-r--r--horizon/tables/base.py10
-rw-r--r--horizon/tables/views.py2
-rw-r--r--horizon/tabs/__init__.py22
-rw-r--r--horizon/tabs/base.py2
-rw-r--r--horizon/tabs/views.py2
-rw-r--r--horizon/templatetags/horizon.py2
-rw-r--r--horizon/templatetags/parse_date.py2
-rw-r--r--horizon/test/helpers.py16
-rw-r--r--horizon/test/test_dashboards/cats/kittens/urls.py2
-rw-r--r--horizon/test/test_dashboards/cats/tigers/urls.py2
-rw-r--r--horizon/test/test_dashboards/dogs/puppies/urls.py4
-rw-r--r--horizon/test/tests/base.py14
-rw-r--r--horizon/test/tests/middleware.py2
-rw-r--r--horizon/test/tests/tables.py2
-rw-r--r--horizon/test/tests/tabs.py4
-rw-r--r--horizon/test/tests/templatetags.py7
-rw-r--r--horizon/test/tests/utils.py2
-rw-r--r--horizon/test/urls.py4
-rw-r--r--horizon/themes.py4
-rw-r--r--horizon/utils/csvbase.py8
-rw-r--r--horizon/utils/filters.py4
-rw-r--r--horizon/utils/functions.py4
-rw-r--r--horizon/utils/html.py2
-rw-r--r--horizon/utils/validators.py4
-rw-r--r--horizon/workflows/__init__.py22
-rw-r--r--horizon/workflows/base.py12
-rw-r--r--horizon/workflows/views.py2
-rwxr-xr-xmanage.py2
-rw-r--r--tools/install_venv.py2
48 files changed, 208 insertions, 159 deletions
diff --git a/horizon/__init__.py b/horizon/__init__.py
index b45e3da8a..cbd7a41b1 100644
--- a/horizon/__init__.py
+++ b/horizon/__init__.py
@@ -24,10 +24,10 @@ methods like :func:`~horizon.register` and :func:`~horizon.unregister`.
# should that fail.
Horizon = None
try:
- from horizon.base import Dashboard # noqa
- from horizon.base import Horizon # noqa
- from horizon.base import Panel # noqa
- from horizon.base import PanelGroup # noqa
+ from horizon.base import Dashboard
+ from horizon.base import Horizon
+ from horizon.base import Panel
+ from horizon.base import PanelGroup
except ImportError:
import warnings
diff --git a/horizon/base.py b/horizon/base.py
index c235ce7d7..f9f9d8523 100644
--- a/horizon/base.py
+++ b/horizon/base.py
@@ -30,20 +30,20 @@ import django
from django.conf import settings
from django.conf.urls import include
from django.conf.urls import url
-from django.core.exceptions import ImproperlyConfigured # noqa
+from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse
from django.utils.encoding import python_2_unicode_compatible
from django.utils.functional import empty
-from django.utils.functional import SimpleLazyObject # noqa
-from django.utils.module_loading import module_has_submodule # noqa
+from django.utils.functional import SimpleLazyObject
+from django.utils.module_loading import module_has_submodule
from django.utils.translation import ugettext_lazy as _
from importlib import import_module
import six
from horizon import conf
-from horizon.decorators import _current_component # noqa
-from horizon.decorators import require_auth # noqa
-from horizon.decorators import require_perms # noqa
+from horizon.decorators import _current_component
+from horizon.decorators import require_auth
+from horizon.decorators import require_perms
from horizon import loaders
from horizon.utils import settings as utils_settings
diff --git a/horizon/browsers/__init__.py b/horizon/browsers/__init__.py
index a36f62850..b01912c81 100644
--- a/horizon/browsers/__init__.py
+++ b/horizon/browsers/__init__.py
@@ -13,5 +13,11 @@
# under the License.
# Importing non-modules that are not used explicitly
-from horizon.browsers.base import ResourceBrowser # noqa
-from horizon.browsers.views import ResourceBrowserView # noqa
+from horizon.browsers.base import ResourceBrowser
+from horizon.browsers.views import ResourceBrowserView
+
+
+__all__ = [
+ 'ResourceBrowser',
+ 'ResourceBrowserView',
+]
diff --git a/horizon/browsers/base.py b/horizon/browsers/base.py
index 4b9193b57..2aea8fb8b 100644
--- a/horizon/browsers/base.py
+++ b/horizon/browsers/base.py
@@ -15,8 +15,8 @@
from django import template
from django.utils.translation import ugettext_lazy as _
-from horizon.browsers.breadcrumb import Breadcrumb # noqa
-from horizon.tables import DataTable # noqa
+from horizon.browsers.breadcrumb import Breadcrumb
+from horizon.tables import DataTable
from horizon.utils import html
diff --git a/horizon/browsers/views.py b/horizon/browsers/views.py
index 3f6cf33d0..f4b0f9235 100644
--- a/horizon/browsers/views.py
+++ b/horizon/browsers/views.py
@@ -15,7 +15,7 @@
from django.utils.translation import ugettext_lazy as _
from django.views import generic
-from horizon.tables import MultiTableView # noqa
+from horizon.tables import MultiTableView
from horizon.utils import memoized
diff --git a/horizon/conf/__init__.py b/horizon/conf/__init__.py
index da5e9cc38..83cd1c5fa 100644
--- a/horizon/conf/__init__.py
+++ b/horizon/conf/__init__.py
@@ -12,15 +12,15 @@
import copy
-from django.utils.functional import empty # noqa
-from django.utils.functional import LazyObject # noqa
-from django.utils.functional import SimpleLazyObject # noqa
+from django.utils.functional import empty
+from django.utils.functional import LazyObject
+from django.utils.functional import SimpleLazyObject
class LazySettings(LazyObject):
def _setup(self, name=None):
from django.conf import settings
- from horizon.conf.default import HORIZON_CONFIG as DEFAULT_CONFIG # noqa
+ from horizon.conf.default import HORIZON_CONFIG as DEFAULT_CONFIG
HORIZON_CONFIG = copy.copy(DEFAULT_CONFIG)
HORIZON_CONFIG.update(settings.HORIZON_CONFIG)
diff --git a/horizon/decorators.py b/horizon/decorators.py
index c95aed61f..7be22ef44 100644
--- a/horizon/decorators.py
+++ b/horizon/decorators.py
@@ -21,7 +21,7 @@ General-purpose decorators for use with Horizon.
"""
import functools
-from django.utils.decorators import available_attrs # noqa
+from django.utils.decorators import available_attrs
from django.utils.translation import ugettext_lazy as _
@@ -44,7 +44,7 @@ def require_auth(view_func):
:exc:`~horizon.exceptions.NotAuthenticated` exception if the user is not
signed-in.
"""
- from horizon.exceptions import NotAuthenticated # noqa
+ from horizon.exceptions import NotAuthenticated
@functools.wraps(view_func, assigned=available_attrs(view_func))
def dec(request, *args, **kwargs):
@@ -72,7 +72,7 @@ def require_perms(view_func, required):
Raises a :exc:`~horizon.exceptions.NotAuthorized` exception if the
requirements are not met.
"""
- from horizon.exceptions import NotAuthorized # noqa
+ from horizon.exceptions import NotAuthorized
# We only need to check each permission once for a view, so we'll use a set
current_perms = getattr(view_func, '_required_perms', set([]))
view_func._required_perms = current_perms | set(required)
diff --git a/horizon/exceptions.py b/horizon/exceptions.py
index c1c5157ff..3d2ad7869 100644
--- a/horizon/exceptions.py
+++ b/horizon/exceptions.py
@@ -22,14 +22,12 @@ import sys
import six
-from django.core.management import color_style # noqa
-from django.http import HttpRequest # noqa
+from django.core.management import color_style
from django.utils import encoding
from django.utils.translation import ugettext_lazy as _
-from django.views.debug import CLEANSED_SUBSTITUTE # noqa
-from django.views.debug import SafeExceptionReporterFilter # noqa
+from django.views.debug import SafeExceptionReporterFilter
-from horizon.conf import HORIZON_CONFIG # noqa
+from horizon.conf import HORIZON_CONFIG
from horizon import messages
LOG = logging.getLogger(__name__)
@@ -226,7 +224,7 @@ def handle_unauthorized(request, message, redirect, ignore, escalate, handled,
# access settings.CACHES in django.core.caches) while
# openstack_dashboard.settings requires django.contrib.auth to be
# loaded while importing openstack_auth.utils
- from django.contrib.auth import logout # noqa
+ from django.contrib.auth import logout
logout(request)
raise NotAuthorized
# Otherwise continue and present our "unauthorized" error message.
diff --git a/horizon/forms/__init__.py b/horizon/forms/__init__.py
index 8a0df8af8..594a2adb7 100644
--- a/horizon/forms/__init__.py
+++ b/horizon/forms/__init__.py
@@ -15,7 +15,7 @@
# Importing non-modules that are not used explicitly
# FIXME(gabriel): Legacy imports for API compatibility.
-from django.core.exceptions import ValidationError # noqa
+from django.core.exceptions import ValidationError
from django.forms.fields import * # noqa
from django.forms.forms import * # noqa
from django.forms import widgets
@@ -23,26 +23,26 @@ from django.forms.widgets import * # noqa
# Convenience imports for public API components.
-from horizon.forms.base import DateForm # noqa
-from horizon.forms.base import SelfHandlingForm # noqa
-from horizon.forms.base import SelfHandlingMixin # noqa
-from horizon.forms.fields import DynamicChoiceField # noqa
-from horizon.forms.fields import DynamicTypedChoiceField # noqa
-from horizon.forms.fields import ExternalFileField # noqa
-from horizon.forms.fields import ExternalUploadMeta # noqa
-from horizon.forms.fields import IPField # noqa
-from horizon.forms.fields import IPv4 # noqa
-from horizon.forms.fields import IPv6 # noqa
-from horizon.forms.fields import MultiIPField # noqa
-from horizon.forms.fields import SelectWidget # noqa
-from horizon.forms.fields import ThemableCheckboxInput # noqa
-from horizon.forms.fields import ThemableCheckboxSelectMultiple # noqa
-from horizon.forms.fields import ThemableChoiceField # noqa
-from horizon.forms.fields import ThemableDynamicChoiceField # noqa
-from horizon.forms.fields import ThemableDynamicTypedChoiceField # noqa
-from horizon.forms.fields import ThemableSelectWidget # noqa
-from horizon.forms.views import ModalFormMixin # noqa
-from horizon.forms.views import ModalFormView # noqa
+from horizon.forms.base import DateForm
+from horizon.forms.base import SelfHandlingForm
+from horizon.forms.base import SelfHandlingMixin
+from horizon.forms.fields import DynamicChoiceField
+from horizon.forms.fields import DynamicTypedChoiceField
+from horizon.forms.fields import ExternalFileField
+from horizon.forms.fields import ExternalUploadMeta
+from horizon.forms.fields import IPField
+from horizon.forms.fields import IPv4
+from horizon.forms.fields import IPv6
+from horizon.forms.fields import MultiIPField
+from horizon.forms.fields import SelectWidget
+from horizon.forms.fields import ThemableCheckboxInput
+from horizon.forms.fields import ThemableCheckboxSelectMultiple
+from horizon.forms.fields import ThemableChoiceField
+from horizon.forms.fields import ThemableDynamicChoiceField
+from horizon.forms.fields import ThemableDynamicTypedChoiceField
+from horizon.forms.fields import ThemableSelectWidget
+from horizon.forms.views import ModalFormMixin
+from horizon.forms.views import ModalFormView
__all__ = [
@@ -53,10 +53,13 @@ __all__ = [
"ModalFormMixin",
"DynamicTypedChoiceField",
"DynamicChoiceField",
+ "ExternalFileField",
+ "ExternalUploadMeta",
"ThemableCheckboxInput",
"ThemableCheckboxSelectMultiple",
"ThemableChoiceField",
"ThemableDynamicChoiceField",
+ "ThemableDynamicTypedChoiceField",
"ThemableSelectWidget",
"IPField",
"IPv4",
diff --git a/horizon/forms/base.py b/horizon/forms/base.py
index b54aa6364..8704142db 100644
--- a/horizon/forms/base.py
+++ b/horizon/forms/base.py
@@ -17,7 +17,7 @@
# under the License.
from django import forms
-from django.forms.forms import NON_FIELD_ERRORS # noqa
+from django.forms.forms import NON_FIELD_ERRORS
class SelfHandlingMixin(object):
diff --git a/horizon/forms/fields.py b/horizon/forms/fields.py
index eb4059a40..d9a5d693f 100644
--- a/horizon/forms/fields.py
+++ b/horizon/forms/fields.py
@@ -20,16 +20,16 @@ import six
from oslo_utils import uuidutils
-from django.core.exceptions import ValidationError # noqa
+from django.core.exceptions import ValidationError
from django.core import urlresolvers
from django.forms import fields
from django.forms import forms
-from django.forms.utils import flatatt # noqa
+from django.forms.utils import flatatt
from django.forms import widgets
-from django.template import Context # noqa
-from django.template.loader import get_template # noqa
+from django.template import Context
+from django.template.loader import get_template
from django.utils.encoding import force_text
-from django.utils.functional import Promise # noqa
+from django.utils.functional import Promise
from django.utils import html
from django.utils.translation import ugettext_lazy as _
diff --git a/horizon/loaders.py b/horizon/loaders.py
index 820b82a84..7354b7f01 100644
--- a/horizon/loaders.py
+++ b/horizon/loaders.py
@@ -21,12 +21,12 @@ import django
from django.conf import settings
from django.template.engine import Engine
from django.template.loaders.base import Loader as tLoaderCls
-from django.utils._os import safe_join # noqa
+from django.utils._os import safe_join
if django.VERSION >= (1, 9):
from django.template.exceptions import TemplateDoesNotExist
else:
- from django.template.base import TemplateDoesNotExist # noqa
+ from django.template.base import TemplateDoesNotExist
# Set up a cache of the panel directories to search.
panel_template_dirs = {}
diff --git a/horizon/management/commands/startdash.py b/horizon/management/commands/startdash.py
index 646f258dc..10a28cdd4 100644
--- a/horizon/management/commands/startdash.py
+++ b/horizon/management/commands/startdash.py
@@ -13,8 +13,8 @@
import glob
import os
-from django.core.management.base import CommandError # noqa
-from django.core.management.templates import TemplateCommand # noqa
+from django.core.management.base import CommandError
+from django.core.management.templates import TemplateCommand
from importlib import import_module
import horizon
diff --git a/horizon/management/commands/startpanel.py b/horizon/management/commands/startpanel.py
index 6c378096a..6e36581cb 100644
--- a/horizon/management/commands/startpanel.py
+++ b/horizon/management/commands/startpanel.py
@@ -13,8 +13,8 @@
import glob
import os
-from django.core.management.base import CommandError # noqa
-from django.core.management.templates import TemplateCommand # noqa
+from django.core.management.base import CommandError
+from django.core.management.templates import TemplateCommand
from importlib import import_module
import horizon
diff --git a/horizon/messages.py b/horizon/messages.py
index b0fde0c90..f40adfa69 100644
--- a/horizon/messages.py
+++ b/horizon/messages.py
@@ -20,7 +20,7 @@ messaging needs (e.g. AJAX communication, etc.).
from django.contrib import messages as _messages
from django.contrib.messages import constants
from django.utils.encoding import force_text
-from django.utils.safestring import SafeData # noqa
+from django.utils.safestring import SafeData
def horizon_message_already_queued(request, message):
diff --git a/horizon/middleware/base.py b/horizon/middleware/base.py
index efcab23de..f8a8eee3a 100644
--- a/horizon/middleware/base.py
+++ b/horizon/middleware/base.py
@@ -23,12 +23,12 @@ import json
import logging
from django.conf import settings
-from django.contrib.auth import REDIRECT_FIELD_NAME # noqa
-from django.contrib.auth.views import redirect_to_login # noqa
+from django.contrib.auth import REDIRECT_FIELD_NAME
+from django.contrib.auth.views import redirect_to_login
from django.contrib import messages as django_messages
from django import http
from django import shortcuts
-from django.utils.encoding import iri_to_uri # noqa
+from django.utils.encoding import iri_to_uri
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
diff --git a/horizon/site_urls.py b/horizon/site_urls.py
index a6b509c7d..ab16880c8 100644
--- a/horizon/site_urls.py
+++ b/horizon/site_urls.py
@@ -19,7 +19,7 @@
from django.conf import settings
from django.conf.urls import include
from django.conf.urls import url
-from django.views.generic import TemplateView # noqa
+from django.views.generic import TemplateView
from django.views import i18n
from horizon.test.jasmine import jasmine
diff --git a/horizon/tables/__init__.py b/horizon/tables/__init__.py
index 3cc3344d7..ed20462eb 100644
--- a/horizon/tables/__init__.py
+++ b/horizon/tables/__init__.py
@@ -15,20 +15,41 @@
# Convenience imports for public API components.
# Importing non-modules that are not used explicitly
-from horizon.tables.actions import Action # noqa
-from horizon.tables.actions import BatchAction # noqa
-from horizon.tables.actions import DeleteAction # noqa
-from horizon.tables.actions import FilterAction # noqa
-from horizon.tables.actions import FixedFilterAction # noqa
-from horizon.tables.actions import LinkAction # noqa
-from horizon.tables.actions import NameFilterAction # noqa
-from horizon.tables.actions import UpdateAction # noqa
-from horizon.tables.base import Column # noqa
-from horizon.tables.base import DataTable # noqa
-from horizon.tables.base import Row # noqa
-from horizon.tables.base import WrappingColumn # noqa
-from horizon.tables.views import DataTableView # noqa
-from horizon.tables.views import MixedDataTableView # noqa
-from horizon.tables.views import MultiTableMixin # noqa
-from horizon.tables.views import MultiTableView # noqa
-from horizon.tables.views import PagedTableMixin # noqa
+from horizon.tables.actions import Action
+from horizon.tables.actions import BatchAction
+from horizon.tables.actions import DeleteAction
+from horizon.tables.actions import FilterAction
+from horizon.tables.actions import FixedFilterAction
+from horizon.tables.actions import LinkAction
+from horizon.tables.actions import NameFilterAction
+from horizon.tables.actions import UpdateAction
+from horizon.tables.base import Column
+from horizon.tables.base import DataTable
+from horizon.tables.base import Row
+from horizon.tables.base import WrappingColumn
+from horizon.tables.views import DataTableView
+from horizon.tables.views import MixedDataTableView
+from horizon.tables.views import MultiTableMixin
+from horizon.tables.views import MultiTableView
+from horizon.tables.views import PagedTableMixin
+
+
+__all__ = [
+ 'Action',
+ 'BatchAction',
+ 'DeleteAction',
+ 'FilterAction',
+ 'FixedFilterAction',
+ 'LinkAction',
+ 'NameFilterAction',
+ 'UpdateAction',
+ 'Column',
+ 'DataTable',
+ 'Row',
+ 'WrappingColumn',
+ 'DataTableView',
+ 'MixedDataTableView',
+ 'MultiTableMixin',
+ 'MultiTableView',
+ 'PagedTableMixin',
+]
diff --git a/horizon/tables/actions.py b/horizon/tables/actions.py
index 3d7af34d0..201532f44 100644
--- a/horizon/tables/actions.py
+++ b/horizon/tables/actions.py
@@ -22,9 +22,9 @@ import warnings
from django.conf import settings
from django.core import urlresolvers
from django import shortcuts
-from django.template.loader import render_to_string # noqa
-from django.utils.functional import Promise # noqa
-from django.utils.http import urlencode # noqa
+from django.template.loader import render_to_string
+from django.utils.functional import Promise
+from django.utils.http import urlencode
from django.utils.translation import pgettext_lazy
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ungettext_lazy
diff --git a/horizon/tables/base.py b/horizon/tables/base.py
index 467195b19..8f0c9cd4b 100644
--- a/horizon/tables/base.py
+++ b/horizon/tables/base.py
@@ -23,10 +23,10 @@ from django.conf import settings
from django.core import exceptions as core_exceptions
from django.core import urlresolvers
from django import forms
-from django.http import HttpResponse # noqa
+from django.http import HttpResponse
from django import template
-from django.template.defaultfilters import slugify # noqa
-from django.template.defaultfilters import truncatechars # noqa
+from django.template.defaultfilters import slugify
+from django.template.defaultfilters import truncatechars
from django.template.loader import render_to_string
from django.utils.html import escape
from django.utils import http
@@ -40,8 +40,8 @@ from horizon import conf
from horizon import exceptions
from horizon.forms import ThemableCheckboxInput
from horizon import messages
-from horizon.tables.actions import FilterAction # noqa
-from horizon.tables.actions import LinkAction # noqa
+from horizon.tables.actions import FilterAction
+from horizon.tables.actions import LinkAction
from horizon.utils import html
diff --git a/horizon/tables/views.py b/horizon/tables/views.py
index 670e7f4d8..3077ddca7 100644
--- a/horizon/tables/views.py
+++ b/horizon/tables/views.py
@@ -18,7 +18,7 @@ from django import shortcuts
from horizon import views
-from horizon.templatetags.horizon import has_permissions # noqa
+from horizon.templatetags.horizon import has_permissions
class MultiTableMixin(object):
diff --git a/horizon/tabs/__init__.py b/horizon/tabs/__init__.py
index ffc03c284..a9285df40 100644
--- a/horizon/tabs/__init__.py
+++ b/horizon/tabs/__init__.py
@@ -14,9 +14,19 @@
# Importing non-modules that are not used explicitly
-from horizon.tabs.base import DetailTabsGroup # noqa
-from horizon.tabs.base import Tab # noqa
-from horizon.tabs.base import TabGroup # noqa
-from horizon.tabs.base import TableTab # noqa
-from horizon.tabs.views import TabbedTableView # noqa
-from horizon.tabs.views import TabView # noqa
+from horizon.tabs.base import DetailTabsGroup
+from horizon.tabs.base import Tab
+from horizon.tabs.base import TabGroup
+from horizon.tabs.base import TableTab
+from horizon.tabs.views import TabbedTableView
+from horizon.tabs.views import TabView
+
+
+__all__ = [
+ 'DetailTabsGroup',
+ 'Tab',
+ 'TabGroup',
+ 'TableTab',
+ 'TabbedTableView',
+ 'TabView',
+]
diff --git a/horizon/tabs/base.py b/horizon/tabs/base.py
index e06915716..921ec9129 100644
--- a/horizon/tabs/base.py
+++ b/horizon/tabs/base.py
@@ -18,7 +18,7 @@ import sys
import six
from django.template.loader import render_to_string
-from django.template import TemplateSyntaxError # noqa
+from django.template import TemplateSyntaxError
from horizon import exceptions
from horizon.utils import html
diff --git a/horizon/tabs/views.py b/horizon/tabs/views.py
index a6ccb3baf..e2456494f 100644
--- a/horizon/tabs/views.py
+++ b/horizon/tabs/views.py
@@ -14,7 +14,7 @@ from django import http
from horizon import exceptions
from horizon import tables
-from horizon.tabs.base import TableTab # noqa
+from horizon.tabs.base import TableTab
from horizon import views
diff --git a/horizon/templatetags/horizon.py b/horizon/templatetags/horizon.py
index 9768bdaa8..2225665f1 100644
--- a/horizon/templatetags/horizon.py
+++ b/horizon/templatetags/horizon.py
@@ -24,7 +24,7 @@ from django.utils.encoding import force_text
from django.utils import translation
from django.utils.translation import ugettext_lazy as _
-from horizon.base import Horizon # noqa
+from horizon.base import Horizon
from horizon import conf
diff --git a/horizon/templatetags/parse_date.py b/horizon/templatetags/parse_date.py
index 88977efcd..f2a6d7fae 100644
--- a/horizon/templatetags/parse_date.py
+++ b/horizon/templatetags/parse_date.py
@@ -20,7 +20,7 @@
Template tags for parsing date strings.
"""
-from datetime import datetime # noqa
+from datetime import datetime
from django import template
from django.utils import timezone
diff --git a/horizon/test/helpers.py b/horizon/test/helpers.py
index 9af20d77f..82f4c8591 100644
--- a/horizon/test/helpers.py
+++ b/horizon/test/helpers.py
@@ -22,16 +22,16 @@ import socket
import time
import unittest
-from django.contrib.auth.middleware import AuthenticationMiddleware # noqa
-from django.contrib.auth.models import Permission # noqa
-from django.contrib.auth.models import User # noqa
-from django.contrib.contenttypes.models import ContentType # noqa
-from django.contrib.messages.storage import default_storage # noqa
-from django.contrib.sessions.backends.base import SessionBase # noqa
+from django.contrib.auth.middleware import AuthenticationMiddleware
+from django.contrib.auth.models import Permission
+from django.contrib.auth.models import User
+from django.contrib.contenttypes.models import ContentType
+from django.contrib.messages.storage import default_storage
+from django.contrib.sessions.backends.base import SessionBase
from django.core.handlers import wsgi
from django import http
from django import test as django_test
-from django.test.client import RequestFactory # noqa
+from django.test.client import RequestFactory
from django.utils.encoding import force_text
import six
@@ -50,7 +50,7 @@ try:
from selenium.webdriver.support import ui as selenium_ui
import xvfbwrapper # Only needed when running the Selenium tests headless
- from horizon.test.webdriver import WebDriver # noqa
+ from horizon.test.webdriver import WebDriver
except ImportError as e:
LOG.warning("{0}, force WITH_SELENIUM=False".format(str(e)))
os.environ['WITH_SELENIUM'] = ''
diff --git a/horizon/test/test_dashboards/cats/kittens/urls.py b/horizon/test/test_dashboards/cats/kittens/urls.py
index 1d3c7be70..1a8944c4c 100644
--- a/horizon/test/test_dashboards/cats/kittens/urls.py
+++ b/horizon/test/test_dashboards/cats/kittens/urls.py
@@ -12,7 +12,7 @@
from django.conf.urls import url
-from horizon.test.test_dashboards.cats.kittens.views import IndexView # noqa
+from horizon.test.test_dashboards.cats.kittens.views import IndexView
urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'),
diff --git a/horizon/test/test_dashboards/cats/tigers/urls.py b/horizon/test/test_dashboards/cats/tigers/urls.py
index 49f943a19..3bf05a75d 100644
--- a/horizon/test/test_dashboards/cats/tigers/urls.py
+++ b/horizon/test/test_dashboards/cats/tigers/urls.py
@@ -12,7 +12,7 @@
from django.conf.urls import url
-from horizon.test.test_dashboards.cats.tigers.views import IndexView # noqa
+from horizon.test.test_dashboards.cats.tigers.views import IndexView
urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'),
diff --git a/horizon/test/test_dashboards/dogs/puppies/urls.py b/horizon/test/test_dashboards/dogs/puppies/urls.py
index 2b728c57a..5a4853092 100644
--- a/horizon/test/test_dashboards/dogs/puppies/urls.py
+++ b/horizon/test/test_dashboards/dogs/puppies/urls.py
@@ -12,8 +12,8 @@
from django.conf.urls import url
-from horizon.test.test_dashboards.dogs.puppies.views import IndexView # noqa
-from horizon.test.test_dashboards.dogs.puppies.views import TwoTabsView # noqa
+from horizon.test.test_dashboards.dogs.puppies.views import IndexView
+from horizon.test.test_dashboards.dogs.puppies.views import TwoTabsView
urlpatterns = [
url(r'^$', IndexView.as_view(), name='index'),
diff --git a/horizon/test/tests/base.py b/horizon/test/tests/base.py
index 53869c165..997806d24 100644
--- a/horizon/test/tests/base.py
+++ b/horizon/test/tests/base.py
@@ -19,8 +19,8 @@
import django
from django.conf import settings
-from django.contrib.auth.models import User # noqa
-from django.core.exceptions import ImproperlyConfigured # noqa
+from django.contrib.auth.models import User
+from django.core.exceptions import ImproperlyConfigured
from django.core import urlresolvers
from importlib import import_module
from six import moves
@@ -31,11 +31,11 @@ import horizon
from horizon import base
from horizon import conf
from horizon.test import helpers as test
-from horizon.test.test_dashboards.cats.dashboard import Cats # noqa
-from horizon.test.test_dashboards.cats.kittens.panel import Kittens # noqa
-from horizon.test.test_dashboards.cats.tigers.panel import Tigers # noqa
-from horizon.test.test_dashboards.dogs.dashboard import Dogs # noqa
-from horizon.test.test_dashboards.dogs.puppies.panel import Puppies # noqa
+from horizon.test.test_dashboards.cats.dashboard import Cats
+from horizon.test.test_dashboards.cats.kittens.panel import Kittens
+from horizon.test.test_dashboards.cats.tigers.panel import Tigers
+from horizon.test.test_dashboards.dogs.dashboard import Dogs
+from horizon.test.test_dashboards.dogs.puppies.panel import Puppies
class MyDash(horizon.Dashboard):
diff --git a/horizon/test/tests/middleware.py b/horizon/test/tests/middleware.py
index 8bc29e7ff..e2e1a2e5c 100644
--- a/horizon/test/tests/middleware.py
+++ b/horizon/test/tests/middleware.py
@@ -17,7 +17,7 @@ from mock import patch
import django
from django.conf import settings
from django.core.exceptions import MiddlewareNotUsed
-from django.http import HttpResponseRedirect # noqa
+from django.http import HttpResponseRedirect
from django.test.utils import override_settings
from django.utils import timezone
diff --git a/horizon/test/tests/tables.py b/horizon/test/tests/tables.py
index d80fc033f..eaac02069 100644
--- a/horizon/test/tests/tables.py
+++ b/horizon/test/tests/tables.py
@@ -23,7 +23,7 @@ from django.template import defaultfilters
from django.test.utils import override_settings
from django.utils.translation import ungettext_lazy
-from mox3.mox import IsA # noqa
+from mox3.mox import IsA
import six
from horizon import tables
diff --git a/horizon/test/tests/tabs.py b/horizon/test/tests/tabs.py
index 59650ef4d..d69fa2764 100644
--- a/horizon/test/tests/tabs.py
+++ b/horizon/test/tests/tabs.py
@@ -26,8 +26,8 @@ from horizon import middleware
from horizon import tabs as horizon_tabs
from horizon.test import helpers as test
-from horizon.test.tests.tables import MyTable # noqa
-from horizon.test.tests.tables import TEST_DATA # noqa
+from horizon.test.tests.tables import MyTable
+from horizon.test.tests.tables import TEST_DATA
class BaseTestTab(horizon_tabs.Tab):
diff --git a/horizon/test/tests/templatetags.py b/horizon/test/tests/templatetags.py
index 96533218c..68edd3e3e 100644
--- a/horizon/test/tests/templatetags.py
+++ b/horizon/test/tests/templatetags.py
@@ -19,11 +19,12 @@
import re
from django.conf import settings
-from django.template import Context # noqa
-from django.template import Template # noqa
-from django.utils.text import normalize_newlines # noqa
+from django.template import Context
+from django.template import Template
+from django.utils.text import normalize_newlines
from horizon.test import helpers as test
+# The following imports are required to register the dashboards.
from horizon.test.test_dashboards.cats.dashboard import Cats # noqa
from horizon.test.test_dashboards.cats.kittens.panel import Kittens # noqa
from horizon.test.test_dashboards.dogs.dashboard import Dogs # noqa
diff --git a/horizon/test/tests/utils.py b/horizon/test/tests/utils.py
index 7b255669e..45e92919b 100644
--- a/horizon/test/tests/utils.py
+++ b/horizon/test/tests/utils.py
@@ -15,7 +15,7 @@
import datetime
import os
-from django.core.exceptions import ValidationError # noqa
+from django.core.exceptions import ValidationError
import django.template
from django.template import defaultfilters
diff --git a/horizon/test/urls.py b/horizon/test/urls.py
index aaaaa02da..27965425d 100644
--- a/horizon/test/urls.py
+++ b/horizon/test/urls.py
@@ -23,8 +23,8 @@ URL patterns for testing Horizon views.
from django.conf.urls import include
from django.conf.urls import url
from django.contrib.auth import views
-from django.contrib.staticfiles.urls import staticfiles_urlpatterns # noqa
-from django.views.generic import TemplateView # noqa
+from django.contrib.staticfiles.urls import staticfiles_urlpatterns
+from django.views.generic import TemplateView
import horizon
from horizon.test.jasmine import jasmine
diff --git a/horizon/themes.py b/horizon/themes.py
index f80ee74d7..9f2471f2e 100644
--- a/horizon/themes.py
+++ b/horizon/themes.py
@@ -26,12 +26,12 @@ from django.conf import settings
from django.core.exceptions import SuspiciousFileOperation
from django.template.engine import Engine
from django.template.loaders.base import Loader as tLoaderCls
-from django.utils._os import safe_join # noqa
+from django.utils._os import safe_join
if django.VERSION >= (1, 9):
from django.template.exceptions import TemplateDoesNotExist
else:
- from django.template.base import TemplateDoesNotExist # noqa
+ from django.template.base import TemplateDoesNotExist
# Local thread storage to retrieve the currently set theme
diff --git a/horizon/utils/csvbase.py b/horizon/utils/csvbase.py
index cbf84306f..ab74a0803 100644
--- a/horizon/utils/csvbase.py
+++ b/horizon/utils/csvbase.py
@@ -12,12 +12,12 @@
from __future__ import division
-from csv import DictWriter # noqa
-from csv import writer # noqa
+from csv import DictWriter
+from csv import writer
-from django.http import HttpResponse # noqa
-from django.http import StreamingHttpResponse # noqa
+from django.http import HttpResponse
+from django.http import StreamingHttpResponse
from django import template as django_template
import six
diff --git a/horizon/utils/filters.py b/horizon/utils/filters.py
index 200adb36b..61a390fcd 100644
--- a/horizon/utils/filters.py
+++ b/horizon/utils/filters.py
@@ -16,8 +16,8 @@ import datetime
import iso8601
-from django.template.defaultfilters import register # noqa
-from django.template.defaultfilters import timesince # noqa
+from django.template.defaultfilters import register
+from django.template.defaultfilters import timesince
from django.utils.safestring import mark_safe
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
diff --git a/horizon/utils/functions.py b/horizon/utils/functions.py
index 88472c830..d4d116853 100644
--- a/horizon/utils/functions.py
+++ b/horizon/utils/functions.py
@@ -19,10 +19,10 @@ from oslo_utils import units
import six
from django.conf import settings
-from django.contrib.auth import logout # noqa
+from django.contrib.auth import logout
from django import http
from django.utils.encoding import force_text
-from django.utils.functional import lazy # noqa
+from django.utils.functional import lazy
from django.utils import translation
diff --git a/horizon/utils/html.py b/horizon/utils/html.py
index e936bb89c..3311c16db 100644
--- a/horizon/utils/html.py
+++ b/horizon/utils/html.py
@@ -12,7 +12,7 @@
import copy
-from django.forms.utils import flatatt # noqa
+from django.forms.utils import flatatt
class HTMLElement(object):
diff --git a/horizon/utils/validators.py b/horizon/utils/validators.py
index c9cd662e6..ef526ffac 100644
--- a/horizon/utils/validators.py
+++ b/horizon/utils/validators.py
@@ -16,8 +16,8 @@ import re
from oslo_utils import netutils
-from django.core.exceptions import ValidationError # noqa
-from django.core import validators # noqa
+from django.core.exceptions import ValidationError
+from django.core import validators
from django.utils.translation import ugettext_lazy as _
from horizon import conf
diff --git a/horizon/workflows/__init__.py b/horizon/workflows/__init__.py
index 322e3a6a3..353ad162f 100644
--- a/horizon/workflows/__init__.py
+++ b/horizon/workflows/__init__.py
@@ -12,9 +12,19 @@
# Importing non-modules that are not used explicitly
-from horizon.workflows.base import Action # noqa
-from horizon.workflows.base import MembershipAction # noqa
-from horizon.workflows.base import Step # noqa
-from horizon.workflows.base import UpdateMembersStep # noqa
-from horizon.workflows.base import Workflow # noqa
-from horizon.workflows.views import WorkflowView # noqa
+from horizon.workflows.base import Action
+from horizon.workflows.base import MembershipAction
+from horizon.workflows.base import Step
+from horizon.workflows.base import UpdateMembersStep
+from horizon.workflows.base import Workflow
+from horizon.workflows.views import WorkflowView
+
+
+__all__ = [
+ 'Action',
+ 'MembershipAction',
+ 'Step',
+ 'UpdateMembersStep',
+ 'Workflow',
+ 'WorkflowView',
+]
diff --git a/horizon/workflows/base.py b/horizon/workflows/base.py
index 10117365c..508bf7bd6 100644
--- a/horizon/workflows/base.py
+++ b/horizon/workflows/base.py
@@ -13,17 +13,17 @@
# under the License.
import copy
-from importlib import import_module # noqa
+from importlib import import_module
import inspect
import logging
from django.core import urlresolvers
from django import forms
-from django.forms.forms import NON_FIELD_ERRORS # noqa
+from django.forms.forms import NON_FIELD_ERRORS
from django import template
-from django.template.defaultfilters import linebreaks # noqa
-from django.template.defaultfilters import safe # noqa
-from django.template.defaultfilters import slugify # noqa
+from django.template.defaultfilters import linebreaks
+from django.template.defaultfilters import safe
+from django.template.defaultfilters import slugify
from django.utils.encoding import force_text
from django.utils.translation import ugettext_lazy as _
from openstack_auth import policy
@@ -31,7 +31,7 @@ import six
from horizon import base
from horizon import exceptions
-from horizon.templatetags.horizon import has_permissions # noqa
+from horizon.templatetags.horizon import has_permissions
from horizon.utils import html
diff --git a/horizon/workflows/views.py b/horizon/workflows/views.py
index ea04ff4d5..6053b9f5e 100644
--- a/horizon/workflows/views.py
+++ b/horizon/workflows/views.py
@@ -24,7 +24,7 @@ import six
from horizon import exceptions
from horizon.forms import views as hz_views
-from horizon.forms.views import ADD_TO_FIELD_HEADER # noqa
+from horizon.forms.views import ADD_TO_FIELD_HEADER
from horizon import messages
diff --git a/manage.py b/manage.py
index 5818a6de3..df691be77 100755
--- a/manage.py
+++ b/manage.py
@@ -15,7 +15,7 @@
import os
import sys
-from django.core.management import execute_from_command_line # noqa
+from django.core.management import execute_from_command_line
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE",
diff --git a/tools/install_venv.py b/tools/install_venv.py
index d857b1eaf..bdfad2953 100644
--- a/tools/install_venv.py
+++ b/tools/install_venv.py
@@ -20,7 +20,7 @@
import os
import sys
-import install_venv_common as install_venv # noqa
+import install_venv_common as install_venv
def print_help(venv, root):