Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --exclude=.git,__pycache__,docs/source/conf.py,old,build,dist,venv,test/resources,.eggs,review.egg-info,.pytest_cache,node_modules
# TODO: change max-complexity into 10 after refactoring
flake8 . --count --max-complexity=11 --max-line-length=120 --max-doc-length=120 --ignore=I201,I202,I101,I100,R504,A003,E800,SC200,SC100,E402,W503,WPS,H601 --statistics --exclude=.git,__pycache__,docs/source/conf.py,old,build,dist,venv,test/resources,.eggs,review.egg-info,.pytest_cache,node_modules
flake8 . --count --max-complexity=11 --max-line-length=120 --max-doc-length=120 --ignore=R504,A003,E800,SC200,SC100,E402,W503,WPS,H601 --statistics --exclude=.git,__pycache__,docs/source/conf.py,old,build,dist,venv,test/resources,.eggs,review.egg-info,.pytest_cache,node_modules
- name: Set up Eslint
run: |
npm install eslint --save-dev
Expand Down
2 changes: 1 addition & 1 deletion src/python/review/application_config.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from dataclasses import dataclass
from enum import Enum, unique
from typing import Optional, Set, List
from typing import List, Optional, Set

from src.python.review.inspectors.inspector_type import InspectorType

Expand Down
2 changes: 1 addition & 1 deletion src/python/review/common/file_system.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from contextlib import contextmanager
from enum import Enum, unique
from pathlib import Path
from typing import List, Union, Callable
from typing import Callable, List, Union


@unique
Expand Down
6 changes: 3 additions & 3 deletions src/python/review/inspectors/flake8/flake8.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,18 @@

from src.python.review.common.subprocess_runner import run_in_subprocess
from src.python.review.inspectors.base_inspector import BaseInspector
from src.python.review.inspectors.common import convert_percentage_of_value_to_lack_of_value
from src.python.review.inspectors.flake8.issue_types import CODE_PREFIX_TO_ISSUE_TYPE, CODE_TO_ISSUE_TYPE
from src.python.review.inspectors.inspector_type import InspectorType
from src.python.review.inspectors.issue import (
BaseIssue,
CodeIssue,
CohesionIssue,
CyclomaticComplexityIssue,
IssueType,
IssueData,
CohesionIssue,
IssueType,
)
from src.python.review.inspectors.tips import get_cyclomatic_complexity_tip
from src.python.review.inspectors.common import convert_percentage_of_value_to_lack_of_value

logger = logging.getLogger(__name__)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
from typing import Dict

from src.python.review.inspectors.issue import IssueType

from src.python.review.inspectors.intellij.issue_types.java import (
ISSUE_CLASS_TO_ISSUE_TYPE as JAVA_ISSUE_CLASS_TO_ISSUE_TYPE,
)

from src.python.review.inspectors.intellij.issue_types.kotlin import (
ISSUE_CLASS_TO_ISSUE_TYPE as KOTLIN_ISSUE_CLASS_TO_ISSUE_TYPE,
)

from src.python.review.inspectors.intellij.issue_types.python import (
ISSUE_CLASS_TO_ISSUE_TYPE as PYTHON_ISSUE_CLASS_TO_ISSUE_TYPE,
)
from src.python.review.inspectors.issue import IssueType

ISSUE_CLASS_TO_ISSUE_TYPE: Dict[str, IssueType] = {
**JAVA_ISSUE_CLASS_TO_ISSUE_TYPE,
Expand Down
6 changes: 2 additions & 4 deletions src/python/review/inspectors/parsers/checkstyle_parser.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,21 @@
import logging
import re
from pathlib import Path
from typing import Callable, Dict, List, Any, Optional
from typing import Any, Callable, Dict, List, Optional
from xml.etree import ElementTree

from src.python.review.common.file_system import get_content_from_file
from src.python.review.inspectors.inspector_type import InspectorType

from src.python.review.inspectors.issue import (
BaseIssue,
BoolExprLenIssue,
CodeIssue,
CyclomaticComplexityIssue,
FuncLenIssue,
IssueData,
IssueType,
LineLenIssue,
IssueData,
)

from src.python.review.inspectors.tips import (
get_bool_expr_len_tip,
get_cyclomatic_complexity_tip,
Expand Down
2 changes: 1 addition & 1 deletion src/python/review/inspectors/radon/radon.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

from src.python.review.common.subprocess_runner import run_in_subprocess
from src.python.review.inspectors.base_inspector import BaseInspector
from src.python.review.inspectors.common import convert_percentage_of_value_to_lack_of_value
from src.python.review.inspectors.inspector_type import InspectorType
from src.python.review.inspectors.issue import BaseIssue, IssueData, IssueType, MaintainabilityLackIssue
from src.python.review.inspectors.common import convert_percentage_of_value_to_lack_of_value
from src.python.review.inspectors.tips import get_maintainability_index_tip


Expand Down
6 changes: 2 additions & 4 deletions src/python/review/inspectors/springlint/springlint.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@
import re
from pathlib import Path
from shutil import copy
from typing import AnyStr, List, Optional, Dict, Any
from typing import Any, AnyStr, Dict, List, Optional

from src.python.review.common.file_system import new_temp_dir
from src.python.review.common.subprocess_runner import run_in_subprocess
from src.python.review.inspectors.base_inspector import BaseInspector
from src.python.review.inspectors.inspector_type import InspectorType

from src.python.review.inspectors.issue import (
BaseIssue,
ChildrenNumberIssue,
Expand All @@ -18,12 +17,11 @@
CohesionIssue,
CouplingIssue,
InheritanceIssue,
IssueData,
IssueType,
MethodNumberIssue,
WeightedMethodIssue,
IssueData,
)

from src.python.review.inspectors.tips import (
get_child_number_tip,
get_class_coupling_tip,
Expand Down
16 changes: 8 additions & 8 deletions src/python/review/quality/evaluate_quality.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@
)
from src.python.review.quality.rules.class_response_scoring import LANGUAGE_TO_RESPONSE_RULE_CONFIG, ResponseRule
from src.python.review.quality.rules.code_style_scoring import CodeStyleRule, LANGUAGE_TO_CODE_STYLE_RULE_CONFIG
from src.python.review.quality.rules.cohesion_scoring import (
CohesionRule,
LANGUAGE_TO_COHESION_RULE_CONFIG,
)
from src.python.review.quality.rules.coupling_scoring import CouplingRule, LANGUAGE_TO_COUPLING_RULE_CONFIG
from src.python.review.quality.rules.cyclomatic_complexity_scoring import (
CyclomaticComplexityRule,
Expand All @@ -28,6 +32,10 @@
LANGUAGE_TO_INHERITANCE_DEPTH_RULE_CONFIG,
)
from src.python.review.quality.rules.line_len_scoring import LANGUAGE_TO_LINE_LENGTH_RULE_CONFIG, LineLengthRule
from src.python.review.quality.rules.maintainability_scoring import (
LANGUAGE_TO_MAINTAINABILITY_RULE_CONFIG,
MaintainabilityRule,
)
from src.python.review.quality.rules.method_number_scoring import (
LANGUAGE_TO_METHOD_NUMBER_RULE_CONFIG,
MethodNumberRule,
Expand All @@ -37,14 +45,6 @@
WeightedMethodsRule,
)
from src.python.review.reviewers.utils.code_statistics import CodeStatistics
from src.python.review.quality.rules.cohesion_scoring import (
LANGUAGE_TO_COHESION_RULE_CONFIG,
CohesionRule,
)
from src.python.review.quality.rules.maintainability_scoring import (
LANGUAGE_TO_MAINTAINABILITY_RULE_CONFIG,
MaintainabilityRule,
)


def __get_available_rules(language: Language) -> List[Rule]:
Expand Down
2 changes: 1 addition & 1 deletion src/python/review/quality/rules/cohesion_scoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from src.python.review.common.language import Language
from src.python.review.inspectors.issue import IssueType
from src.python.review.quality.model import Rule, QualityType
from src.python.review.quality.model import QualityType, Rule


@dataclass
Expand Down
2 changes: 1 addition & 1 deletion src/python/review/quality/rules/maintainability_scoring.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from src.python.review.common.language import Language
from src.python.review.inspectors.issue import IssueType
from src.python.review.quality.model import Rule, QualityType
from src.python.review.quality.model import QualityType, Rule


@dataclass
Expand Down
2 changes: 1 addition & 1 deletion src/python/review/reviewers/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
from src.python.review.inspectors.detekt.detekt import DetektInspector
from src.python.review.inspectors.eslint.eslint import ESLintInspector
from src.python.review.inspectors.flake8.flake8 import Flake8Inspector
from src.python.review.inspectors.radon.radon import RadonInspector
from src.python.review.inspectors.issue import BaseIssue
from src.python.review.inspectors.pmd.pmd import PMDInspector
from src.python.review.inspectors.pyast.python_ast import PythonAstInspector
from src.python.review.inspectors.pylint.pylint import PylintInspector
from src.python.review.inspectors.radon.radon import RadonInspector
from src.python.review.quality.evaluate_quality import evaluate_quality
from src.python.review.quality.model import Quality
from src.python.review.reviewers.review_result import FileReviewResult, ReviewResult
Expand Down
2 changes: 1 addition & 1 deletion src/python/review/reviewers/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from typing import List

from src.python.review.application_config import ApplicationConfig
from src.python.review.common.file_system import get_all_file_system_items, FileSystemItem
from src.python.review.common.file_system import FileSystemItem, get_all_file_system_items
from src.python.review.common.language import Language
from src.python.review.reviewers.common import perform_language_review
from src.python.review.reviewers.review_result import ReviewResult
Expand Down
2 changes: 1 addition & 1 deletion src/python/review/reviewers/utils/code_statistics.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from collections import Counter
from dataclasses import dataclass
from pathlib import Path
from typing import List, Dict
from typing import Dict, List

from src.python.review.common.file_system import get_content_from_file
from src.python.review.inspectors.issue import BaseIssue, IssueType
Expand Down
4 changes: 2 additions & 2 deletions src/python/review/reviewers/utils/issues_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
from src.python.review.inspectors.issue import BaseIssue, IssueType, Measurable
from src.python.review.quality.rules.boolean_length_scoring import LANGUAGE_TO_BOOLEAN_EXPRESSION_RULE_CONFIG
from src.python.review.quality.rules.class_response_scoring import LANGUAGE_TO_RESPONSE_RULE_CONFIG
from src.python.review.quality.rules.cohesion_scoring import LANGUAGE_TO_COHESION_RULE_CONFIG
from src.python.review.quality.rules.coupling_scoring import LANGUAGE_TO_COUPLING_RULE_CONFIG
from src.python.review.quality.rules.cyclomatic_complexity_scoring import LANGUAGE_TO_CYCLOMATIC_COMPLEXITY_RULE_CONFIG
from src.python.review.quality.rules.function_length_scoring import LANGUAGE_TO_FUNCTION_LENGTH_RULE_CONFIG
from src.python.review.quality.rules.inheritance_depth_scoring import LANGUAGE_TO_INHERITANCE_DEPTH_RULE_CONFIG
from src.python.review.quality.rules.maintainability_scoring import LANGUAGE_TO_MAINTAINABILITY_RULE_CONFIG
from src.python.review.quality.rules.method_number_scoring import LANGUAGE_TO_METHOD_NUMBER_RULE_CONFIG
from src.python.review.quality.rules.weighted_methods_scoring import LANGUAGE_TO_WEIGHTED_METHODS_RULE_CONFIG
from src.python.review.quality.rules.cohesion_scoring import LANGUAGE_TO_COHESION_RULE_CONFIG
from src.python.review.quality.rules.maintainability_scoring import LANGUAGE_TO_MAINTAINABILITY_RULE_CONFIG


def __get_issue_type_to_low_measure_dict(language: Language) -> Dict[IssueType, int]:
Expand Down
3 changes: 1 addition & 2 deletions src/python/review/run_tool.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@
import traceback
from enum import Enum, unique
from pathlib import Path
from typing import Set, List
from typing import List, Set

sys.path.append('')
sys.path.append('../../..')

from src.python.review.application_config import ApplicationConfig, LanguageVersion
from src.python.review.inspectors.inspector_type import InspectorType
from src.python.review.logging_config import logging_config

from src.python.review.reviewers.perform_review import (
OutputFormat,
PathNotExists,
Expand Down
3 changes: 1 addition & 2 deletions test/python/functional_tests/conftest.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
from dataclasses import dataclass, field
from pathlib import Path
from test.python import TEST_DATA_FOLDER
from typing import List, Optional

import pytest

from src.python import MAIN_FOLDER
from test.python import TEST_DATA_FOLDER

DATA_PATH = TEST_DATA_FOLDER / 'functional_tests'

Expand Down
1 change: 0 additions & 1 deletion test/python/functional_tests/test_different_languages.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import subprocess

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder


Expand Down
1 change: 0 additions & 1 deletion test/python/functional_tests/test_disable.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import subprocess

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder


Expand Down
1 change: 0 additions & 1 deletion test/python/functional_tests/test_duplicates.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import re
import subprocess

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder


Expand Down
1 change: 0 additions & 1 deletion test/python/functional_tests/test_exit_code.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import subprocess
from pathlib import Path

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder


Expand Down
1 change: 0 additions & 1 deletion test/python/functional_tests/test_file_or_project.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import subprocess

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder


Expand Down
1 change: 0 additions & 1 deletion test/python/functional_tests/test_multi_file_project.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import json
import subprocess

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder

EXPECTED_JSON = {
Expand Down
3 changes: 1 addition & 2 deletions test/python/functional_tests/test_range_of_lines.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import json
from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder

import pytest

from src.python.review.common.subprocess_runner import run_in_subprocess
from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder

PATH_TO_FILE = DATA_PATH / 'lines_range' / 'code_with_multiple_issues.py'

Expand Down
3 changes: 1 addition & 2 deletions test/python/functional_tests/test_single_file_json_format.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import json
import subprocess
from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder

from jsonschema import validate

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder

schema = {
'type': 'object',
'properties': {
Expand Down
1 change: 0 additions & 1 deletion test/python/functional_tests/test_verbosity.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import json
import subprocess

from test.python.functional_tests.conftest import DATA_PATH, LocalCommandBuilder


Expand Down
1 change: 0 additions & 1 deletion test/python/inspectors/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
from typing import Any, Dict, List

import pytest

from src.python.review.common.file_system import new_temp_dir
from src.python.review.inspectors.issue import BaseIssue, IssueType
from src.python.review.reviewers.utils.metadata_exploration import explore_file, FileMetadata
Expand Down
6 changes: 3 additions & 3 deletions test/python/inspectors/test_checkstyle_inspector.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import pytest
from test.python.inspectors import JAVA_DATA_FOLDER
from test.python.inspectors.conftest import gather_issues_test_info, IssuesTestInfo, use_file_metadata

import pytest
from src.python.review.common.language import Language
from src.python.review.inspectors.checkstyle.checkstyle import CheckstyleInspector
from src.python.review.reviewers.utils.issues_filter import filter_low_measure_issues
from test.python.inspectors import JAVA_DATA_FOLDER
from test.python.inspectors.conftest import gather_issues_test_info, IssuesTestInfo, use_file_metadata

FILE_NAMES_AND_N_ISSUES = [
('test_simple_valid_program.java', 0),
Expand Down
6 changes: 3 additions & 3 deletions test/python/inspectors/test_detekt_inspector.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import pytest
from test.python.inspectors import KOTLIN_DATA_FOLDER
from test.python.inspectors.conftest import use_file_metadata

import pytest
from src.python.review.common.language import Language
from src.python.review.inspectors.detekt.detekt import DetektInspector
from src.python.review.reviewers.utils.issues_filter import filter_low_measure_issues
from test.python.inspectors import KOTLIN_DATA_FOLDER
from test.python.inspectors.conftest import use_file_metadata

FILE_NAMES_AND_N_ISSUES = [
('case0_good_program.kt', 0),
Expand Down
6 changes: 3 additions & 3 deletions test/python/inspectors/test_eslint_inspector.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import pytest
from test.python.inspectors import JS_DATA_FOLDER
from test.python.inspectors.conftest import use_file_metadata

import pytest
from src.python.review.common.language import Language
from src.python.review.inspectors.eslint.eslint import ESLintInspector
from src.python.review.reviewers.utils.issues_filter import filter_low_measure_issues
from test.python.inspectors import JS_DATA_FOLDER
from test.python.inspectors.conftest import use_file_metadata

FILE_NAMES_AND_N_ISSUES = [
('case0_no_issues.js', 0),
Expand Down
Loading