Skip to content

Commit

Permalink
Minor refactoring of the checker methods
Browse files Browse the repository at this point in the history
  • Loading branch information
kernel-panic96 committed May 29, 2019
1 parent ae6d92f commit 958ee0a
Showing 1 changed file with 15 additions and 19 deletions.
34 changes: 15 additions & 19 deletions kiwi_lint/function_based_views.py
Expand Up @@ -52,9 +52,9 @@ def __init__(self, *args, main_urls_package=None, filters=None, **kwargs):
def _get_django_project_apps(self):
installed_apps = deepcopy(settings.INSTALLED_APPS) # do not mutate the original

for _filter in self.installed_apps_function_filters:
for filter_func in self.installed_apps_function_filters:
# allow void filters that just mutate the list
res = list(_filter(installed_apps) or [])
res = list(filter_func(installed_apps) or [])
installed_apps = res if res else installed_apps

return installed_apps
Expand All @@ -74,18 +74,21 @@ def _resolve_app_configs(installed_apps):


@classmethod
def _get_url_view_mapping(cls, urlpatterns, prefix='^', acc=None):
if acc is None:
acc = {}
def _get_url_view_mapping(cls, urlpatterns):
def helper(urlpatterns, prefix='^', acc=None):
if acc is None:
acc = {}

for url in urlpatterns:
if isinstance(url, URLPattern):
key = prefix + url.pattern.regex.pattern.strip('^')
acc[key] = (url.callback.__module__, url.callback.__name__)
for url in urlpatterns:
if isinstance(url, URLPattern):
key = prefix + url.pattern.regex.pattern.strip('^')
acc[key] = (url.callback.__module__, url.callback.__name__)

elif isinstance(url, URLResolver):
cls._get_url_view_mapping(url.url_patterns, prefix + url.pattern.regex.pattern.strip('^$'), acc)
return acc
elif isinstance(url, URLResolver):
helper(url.url_patterns, prefix + url.pattern.regex.pattern.strip('^$'), acc)
return acc

return helper(urlpatterns)

@staticmethod
def _prune_url_mapping(url_mapping, installed_apps):
Expand All @@ -100,16 +103,9 @@ def visit_module(self, module):
if module.name in self.view_files:
self.visit_views_module(module)

def leave_module(self, module):
if module.name in self.view_files:
self.leave_views_module(module)

def visit_views_module(self, module):
"""Called when entering a module with a registered view inside it."""

def leave_views_module(self, module):
"""Called when leaving from a module with a registered view inside it."""


class FunctionBasedViewChecker(DjangoViewsVisiter):
__implements__ = (interfaces.IAstroidChecker, )
Expand Down

0 comments on commit 958ee0a

Please sign in to comment.