devmanorg/fiasko_bro

View on GitHub

Showing 45 of 45 total issues

Function extra_docstrings has 5 arguments (exceeds 4 allowed). Consider refactoring.
Open

def extra_docstrings(
Severity: Minor
Found in fiasko_bro/validators/comments.py - About 35 mins to fix

    Function short_variable_name has 5 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    def short_variable_name(project_folder, minimum_name_length, valid_short_variable_names, *args, **kwargs):
    Severity: Minor
    Found in fiasko_bro/validators/naming.py - About 35 mins to fix

      Function bilingual_readme has 5 arguments (exceeds 4 allowed). Consider refactoring.
      Open

      def bilingual_readme(project_folder, readme_filename, min_percent_of_another_language, *args, **kwargs):
      Severity: Minor
      Found in fiasko_bro/validators/readme.py - About 35 mins to fix

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def star_import(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                if ast_helpers.is_tree_has_star_imports(parsed_file.ast_tree):
                    return parsed_file.name
        Severity: Minor
        Found in fiasko_bro/validators/imports.py and 1 other location - About 35 mins to fix
        fiasko_bro/validators/pythonic.py on lines 105..108

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 33.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Similar blocks of code found in 2 locations. Consider refactoring.
        Open

        def slice_starts_from_zero(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                if ast_helpers.is_tree_has_slices_from_zero(parsed_file.ast_tree):
                    return parsed_file.name
        Severity: Minor
        Found in fiasko_bro/validators/pythonic.py and 1 other location - About 35 mins to fix
        fiasko_bro/validators/imports.py on lines 4..7

        Duplicated Code

        Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

        Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

        When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

        Tuning

        This issue has a mass of 33.

        We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

        The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

        If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

        See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

        Refactorings

        Further Reading

        Function range_starting_from_zero has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

        def range_starting_from_zero(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                calls = ast_helpers.get_nodes_of_type(parsed_file.ast_tree, ast.Call)
                for call in calls:
                    if (
        Severity: Minor
        Found in fiasko_bro/validators/pythonic.py - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function string_literal_sum has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

        def string_literal_sum(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                for node in ast.walk(parsed_file.ast_tree):
                    if (
                            isinstance(node, ast.BinOp) and
        Severity: Minor
        Found in fiasko_bro/validators/pythonic.py - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function code_too_nested has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

        def code_too_nested(project_folder, tab_size, max_indentation_level, deep_nesting_paths_to_ignore, *args, **kwargs):
            """
                Looks at the number of spaces in the beginning and decides if the code is
                too nested.
        
        
        Severity: Minor
        Found in fiasko_bro/validators/code_inclusion.py - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function get_source_file_contents has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_source_file_contents(self, extension_list, directories_to_skip=None):
                file_paths = []
                file_contents = []
                directories_to_skip = directories_to_skip or []
                for dirname, directories_list, filenames in os.walk(self.path, topdown=True):
        Severity: Minor
        Found in fiasko_bro/repository_info.py - About 35 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function casts_input_result_to_str has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def casts_input_result_to_str(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                calls = ast_helpers.get_nodes_of_type(parsed_file.ast_tree, ast.Call)
                for call in calls:
                    if ast_helpers.is_str_call_of_input(call):
        Severity: Minor
        Found in fiasko_bro/validators/pythonic.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function has_multiple_imports_on_same_line has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def has_multiple_imports_on_same_line(project_folder, *args, **kwargs):
            """Protects against the case
                import foo, bar
            """
            for parsed_file in project_folder.get_parsed_py_files():
        Severity: Minor
        Found in fiasko_bro/validators/imports.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function indent_not_multiple_of_tab_size has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def indent_not_multiple_of_tab_size(project_folder, tab_size, *args, **kwargs):
            """
                Since there are cases for which col_offset is computed incorrectly,
                this validator must be nothing more than a simple warning.
        
        
        Severity: Minor
        Found in fiasko_bro/validators/syntax.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function nonpythonic_empty_list_validation has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def nonpythonic_empty_list_validation(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                ifs_compare_tests = [n.test for n in ast.walk(parsed_file.ast_tree) if
                                     isinstance(n, ast.If) and isinstance(n.test, ast.Compare)]
                for compare in ifs_compare_tests:
        Severity: Minor
        Found in fiasko_bro/validators/pythonic.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function validates_response_status_by_comparing_to_200 has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def validates_response_status_by_comparing_to_200(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                for compare in ast_helpers.get_nodes_of_type(parsed_file.ast_tree, ast.Compare):
                    if ast_nodes_validators.is_status_code_compared_to_200(compare):
                        return parsed_file.get_name_with_line(compare.lineno)
        Severity: Minor
        Found in fiasko_bro/validators/pythonic.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function get_all_imported_names_from_tree has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def get_all_imported_names_from_tree(tree):
            imported_names = []
            for node in ast.walk(tree):
                if not isinstance(node, ast.ImportFrom):
                    continue
        Severity: Minor
        Found in fiasko_bro/utils/ast_helpers.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function is_nonglobal_item has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def is_nonglobal_item(node, max_indentation_depth):
            current_item = node
            # prevents the user from making this loop excessively long
            for _ in range(max_indentation_depth):
                if (
        Severity: Minor
        Found in fiasko_bro/utils/ast_helpers.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function is_call_has_constants has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def is_call_has_constants(call, caller_whitelist):
            if isinstance(get_closest_definition(call), ast.ClassDef):
                return False  # for case of id = db.String(256)
            attr_to_get_name = 'id' if hasattr(call.func, 'id') else 'attr'
            function_name = getattr(call.func, attr_to_get_name, None)
        Severity: Minor
        Found in fiasko_bro/utils/ast_helpers.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function variable_assignment_with_lambda has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def variable_assignment_with_lambda(project_folder, *args, **kwargs):
            for parsed_file in project_folder.get_parsed_py_files():
                assigns = ast_helpers.get_nodes_of_type(parsed_file.ast_tree, ast.Assign)
                for assign in assigns:
                    if isinstance(assign.value, ast.Lambda):
        Severity: Minor
        Found in fiasko_bro/validators/pythonic.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function get_mccabe_violations_for_file has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

        def get_mccabe_violations_for_file(filepath, max_complexity):
            code = _read(filepath)
            tree = compile(code, filepath, "exec", ast.PyCF_ONLY_AST)
            visitor = PathGraphingAstVisitor()
            visitor.preorder(tree, visitor)
        Severity: Minor
        Found in fiasko_bro/utils/code_helpers.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function get_file has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
        Open

            def get_file(self, filename):
                for dirname, _, files in os.walk(self.path, topdown=True):
                    for file in files:
                        if file == filename:
                            with open(os.path.join(dirname, file), encoding='utf-8') as file_handler:
        Severity: Minor
        Found in fiasko_bro/repository_info.py - About 25 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Severity
        Category
        Status
        Source
        Language