Skip to content

Commit

Permalink
Move imports analysis to its own file
Browse files Browse the repository at this point in the history
  • Loading branch information
gforcada committed Oct 7, 2013
1 parent 408f89b commit fe51291
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 43 deletions.
44 changes: 1 addition & 43 deletions plone/recipe/codeanalysis/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
code_analysis_debug_statements
from plone.recipe.codeanalysis.flake8 import code_analysis_flake8
from plone.recipe.codeanalysis.i18n import code_analysis_find_untranslated
from plone.recipe.codeanalysis.imports import code_analysis_imports
from plone.recipe.codeanalysis.jshint import code_analysis_jshint
from plone.recipe.codeanalysis.pep3101 import code_analysis_pep3101
from plone.recipe.codeanalysis.utils import _find_files
Expand Down Expand Up @@ -509,46 +510,3 @@ def _code_analysis_prefer_single_quotes_lines_parser(lines, file_path):
double_quotes_count, ))

return errors


def code_analysis_imports(options):
sys.stdout.write('Check imports ')
sys.stdout.flush()
files = _find_files(options, '.*\.py')
if not files:
print(' [\033[00;32m OK \033[0m]')
return True

total_errors = []
file_paths = files.strip().split('\n')
for file_path in file_paths:
with open(file_path, 'r') as file_handler:
errors = _code_analysis_imports_parser(
file_handler.readlines(), file_path)

if len(errors) > 0:
total_errors += errors

if len(total_errors) > 0:
print(' [\033[00;31m FAILURE \033[0m]')
for err in total_errors:
print(err)
return False
else:
print(' [\033[00;32m OK \033[0m]')
return True


def _code_analysis_imports_parser(lines, relative_path):
errors = []
linenumber = 0
for line in lines:
linenumber += 1

if line.find('from ') == 0:
if line.find(', ') != -1 or line.find(' (') != -1:
errors.append('{0}:{1}: found grouped imports'.format(
relative_path,
linenumber,
))
return errors
47 changes: 47 additions & 0 deletions plone/recipe/codeanalysis/imports.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
from plone.recipe.codeanalysis.utils import _find_files

import sys


def code_analysis_imports(options):
sys.stdout.write('Check imports ')
sys.stdout.flush()
files = _find_files(options, '.*\.py')
if not files:
print(' [\033[00;32m OK \033[0m]')
return True

total_errors = []
file_paths = files.strip().split('\n')
for file_path in file_paths:
with open(file_path, 'r') as file_handler:
errors = _code_analysis_imports_parser(
file_handler.readlines(), file_path)

if len(errors) > 0:
total_errors += errors

if len(total_errors) > 0:
print(' [\033[00;31m FAILURE \033[0m]')
for err in total_errors:
print(err)
return False
else:
print(' [\033[00;32m OK \033[0m]')
return True


def _code_analysis_imports_parser(lines, relative_path):
errors = []
linenumber = 0
for line in lines:
linenumber += 1

if line.find('from ') == 0:
if line.find(', ') != -1 or line.find(' (') != -1:
errors.append('{0}:{1}: found grouped imports'.format(
relative_path,
linenumber,
))
return errors

0 comments on commit fe51291

Please sign in to comment.