tools/gyp/pylib/gyp/input.py

Summary

Maintainability
F
3 wks
Test Coverage

File input.py has 1777 lines of code (exceeds 250 allowed). Consider refactoring.
Open

# Copyright (c) 2012 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from compiler.ast import Const
Severity: Major
Found in tools/gyp/pylib/gyp/input.py - About 4 days to fix

    Function ExpandVariables has a Cognitive Complexity of 120 (exceeds 5 allowed). Consider refactoring.
    Open

    def ExpandVariables(input, phase, variables, build_file):
      # Look for the pattern that gets expanded into variables
      if phase == PHASE_EARLY:
        variable_re = early_variable_re
        expansion_symbol = '<'
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 2 days 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 ProcessListFiltersInDict has a Cognitive Complexity of 67 (exceeds 5 allowed). Consider refactoring.
    Open

    def ProcessListFiltersInDict(name, the_dict):
      """Process regular expression and exclusion-based filters on lists.
    
      An exclusion list is in a dict key named with a trailing "!", like
      "sources!".  Every item in such a list is removed from the associated
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 day 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 MergeDicts has a Cognitive Complexity of 54 (exceeds 5 allowed). Consider refactoring.
    Open

    def MergeDicts(to, fro, to_file, fro_file):
      # I wanted to name the parameter "from" but it's a Python keyword...
      for k, v in fro.iteritems():
        # It would be nice to do "if not k in to: to[k] = v" but that wouldn't give
        # copy semantics.  Something else may want to merge from the |fro| dict
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 day 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 AdjustStaticLibraryDependencies has a Cognitive Complexity of 40 (exceeds 5 allowed). Consider refactoring.
    Open

    def AdjustStaticLibraryDependencies(flat_list, targets, dependency_nodes,
                                        sort_dependencies):
      # Recompute target "dependencies" properties.  For each static library
      # target, remove "dependencies" entries referring to other static libraries,
      # unless the dependency has the "hard_dependency" attribute set.  For each
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 6 hrs 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 ExpandWildcardDependencies has a Cognitive Complexity of 35 (exceeds 5 allowed). Consider refactoring.
    Open

    def ExpandWildcardDependencies(targets, data):
      """Expands dependencies specified as build_file:*.
    
      For each target in |targets|, examines sections containing links to other
      targets.  If any such section contains a link of the form build_file:*, it
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 5 hrs 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 Load has a Cognitive Complexity of 35 (exceeds 5 allowed). Consider refactoring.
    Open

    def Load(build_files, variables, includes, depth, generator_input_info, check,
             circular_check, parallel, root_targets):
      SetGeneratorGlobals(generator_input_info)
      # A generator can have other lists (in addition to sources) be processed
      # for rules.
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 5 hrs 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 MergeLists has a Cognitive Complexity of 33 (exceeds 5 allowed). Consider refactoring.
    Open

    def MergeLists(to, fro, to_file, fro_file, is_paths=False, append=True):
      # Python documentation recommends objects which do not support hash
      # set this value to None. Python library objects follow this rule.
      is_hashable = lambda val: val.__hash__
    
    
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 4 hrs 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 ProcessToolsetsInDict has a Cognitive Complexity of 32 (exceeds 5 allowed). Consider refactoring.
    Open

    def ProcessToolsetsInDict(data):
      if 'targets' in data:
        target_list = data['targets']
        new_target_list = []
        for target in target_list:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 4 hrs 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 SetUpConfigurations has a Cognitive Complexity of 32 (exceeds 5 allowed). Consider refactoring.
    Open

    def SetUpConfigurations(target, target_dict):
      # key_suffixes is a list of key suffixes that might appear on key names.
      # These suffixes are handled in conditional evaluations (for =, +, and ?)
      # and rules/exclude processing (for ! and /).  Keys with these suffixes
      # should be treated the same as keys without.
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 4 hrs 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 VerifyNoGYPFileCircularDependencies has a Cognitive Complexity of 32 (exceeds 5 allowed). Consider refactoring.
    Open

    def VerifyNoGYPFileCircularDependencies(targets):
      # Create a DependencyGraphNode for each gyp file containing a target.  Put
      # it into a dict for easy access.
      dependency_nodes = {}
      for target in targets.iterkeys():
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 4 hrs 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 LoadTargetBuildFile has a Cognitive Complexity of 29 (exceeds 5 allowed). Consider refactoring.
    Open

    def LoadTargetBuildFile(build_file_path, data, aux_data, variables, includes,
                            depth, check, load_dependencies):
      # If depth is set, predefine the DEPTH variable to be a relative path from
      # this build file's directory to the directory identified by depth.
      if depth:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 4 hrs 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 ValidateRulesInTarget has a Cognitive Complexity of 24 (exceeds 5 allowed). Consider refactoring.
    Open

    def ValidateRulesInTarget(target, target_dict, extra_sources_for_rules):
      """Ensures that the rules sections in target_dict are valid and consistent,
      and determines which sources they apply to.
    
      Arguments:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 3 hrs 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 ProcessConditionsInDict has a Cognitive Complexity of 23 (exceeds 5 allowed). Consider refactoring.
    Open

    def ProcessConditionsInDict(the_dict, phase, variables, build_file):
      # Process a 'conditions' or 'target_conditions' section in the_dict,
      # depending on phase.
      # early -> conditions
      # late -> target_conditions
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 3 hrs 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 RemoveSelfDependencies has a Cognitive Complexity of 21 (exceeds 5 allowed). Consider refactoring.
    Open

    def RemoveSelfDependencies(targets):
      """Remove self dependencies from targets that have the prune_self_dependency
      variable set."""
      for target_name, target_dict in targets.iteritems():
        for dependency_key in dependency_sections:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 2 hrs 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 _LinkDependenciesInternal has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
    Open

      def _LinkDependenciesInternal(self, targets, include_shared_libraries,
                                    dependencies=None, initial=True):
        """Returns a list of dependency targets that are linked into this target.
    
        This function has a split personality, depending on the setting of
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 2 hrs 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 ProcessVariablesAndConditionsInDict has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
    Open

    def ProcessVariablesAndConditionsInDict(the_dict, phase, variables_in,
                                            build_file, the_dict_key=None):
      """Handle all variable and command expansion and conditional evaluation.
    
      This function is the public entry point for all variable expansions and
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 2 hrs 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 FindEnclosingBracketGroup has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
    Open

    def FindEnclosingBracketGroup(input_str):
      stack = []
      start = -1
      for index, char in enumerate(input_str):
        if char in LBRACKETS:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 2 hrs 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 LoadOneBuildFile has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
    Open

    def LoadOneBuildFile(build_file_path, data, aux_data, variables, includes,
                         is_target, check):
      if build_file_path in data:
        return data[build_file_path]
    
    
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 BuildDependencyList has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
    Open

    def BuildDependencyList(targets):
      # Create a DependencyGraphNode for each target.  Put it into a dict for easy
      # access.
      dependency_nodes = {}
      for target, spec in targets.iteritems():
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 QualifyDependencies has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
    Open

    def QualifyDependencies(targets):
      """Make dependency links fully-qualified relative to the current directory.
    
      |targets| is a dict mapping fully-qualified target names to their target
      dicts.  For each target in this dict, keys known to contain dependency
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 PruneUnwantedTargets has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
    Open

    def PruneUnwantedTargets(targets, flat_list, dependency_nodes, root_targets,
                             data):
      """Return only the targets that are deep dependencies of |root_targets|."""
      qualified_root_targets = []
      for target in root_targets:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 CheckNode has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
    Open

    def CheckNode(node, keypath):
      if isinstance(node, Dict):
        c = node.getChildren()
        dict = {}
        for n in range(0, len(c), 2):
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 LoadVariablesFromVariablesDict has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
    Open

    def LoadVariablesFromVariablesDict(variables, the_dict, the_dict_key):
      # Any keys in the_dict's "variables" dict, if it has one, becomes a
      # variable.  The variable name is the key name in the "variables" dict.
      # Variables that end with the % character are set only if they are unset in
      # the variables dict.  the_dict_key is the name of the key that accesses
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 FlattenToList has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
    Open

      def FlattenToList(self):
        # flat_list is the sorted list of dependencies - actually, the list items
        # are the "ref" attributes of DependencyGraphNodes.  Every target will
        # appear in flat_list after all of its dependencies, and before all of its
        # dependents.
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 CallLoadTargetBuildFile has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
    Open

    def CallLoadTargetBuildFile(global_flags,
                                build_file_path, data,
                                aux_data, variables,
                                includes, depth, check,
                                generator_input_info):
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 LoadBuildFileIncludesIntoDict has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
    Open

    def LoadBuildFileIncludesIntoDict(subdict, subdict_path, data, aux_data,
                                      variables, includes, check):
      includes_list = []
      if includes != None:
        includes_list.extend(includes)
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 FindCycles has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
    Open

      def FindCycles(self, path=None):
        """
        Returns a list of cycles in the graph, where each cycle is its own list.
        """
        if path is None:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 ProcessVariablesAndConditionsInList has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
    Open

    def ProcessVariablesAndConditionsInList(the_list, phase, variables,
                                            build_file):
      # Iterate using an index so that new values can be assigned into the_list.
      index = 0
      while index < len(the_list):
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 DoDependentSettings has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
    Open

    def DoDependentSettings(key, flat_list, targets, dependency_nodes):
      # key should be one of all_dependent_settings, direct_dependent_settings,
      # or link_settings.
    
      for target in flat_list:
    Severity: Minor
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 Load has 9 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    def Load(build_files, variables, includes, depth, generator_input_info, check,
    Severity: Major
    Found in tools/gyp/pylib/gyp/input.py - About 1 hr to fix

      Function CallLoadTargetBuildFile has 9 arguments (exceeds 4 allowed). Consider refactoring.
      Open

      def CallLoadTargetBuildFile(global_flags,
      Severity: Major
      Found in tools/gyp/pylib/gyp/input.py - About 1 hr to fix

        Function LoadTargetBuildFilesParallel has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
        Open

        def LoadTargetBuildFilesParallel(build_files, data, aux_data,
                                         variables, includes, depth, check,
                                         generator_input_info):
          parallel_state = ParallelState()
          parallel_state.condition = threading.Condition()
        Severity: Minor
        Found in tools/gyp/pylib/gyp/input.py - About 1 hr 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 LoadTargetBuildFile has 8 arguments (exceeds 4 allowed). Consider refactoring.
        Open

        def LoadTargetBuildFile(build_file_path, data, aux_data, variables, includes,
        Severity: Major
        Found in tools/gyp/pylib/gyp/input.py - About 1 hr to fix

          Function LoadTargetBuildFilesParallel has 8 arguments (exceeds 4 allowed). Consider refactoring.
          Open

          def LoadTargetBuildFilesParallel(build_files, data, aux_data,
          Severity: Major
          Found in tools/gyp/pylib/gyp/input.py - About 1 hr to fix

            Function LoadBuildFileIncludesIntoDict has 7 arguments (exceeds 4 allowed). Consider refactoring.
            Open

            def LoadBuildFileIncludesIntoDict(subdict, subdict_path, data, aux_data,
            Severity: Major
            Found in tools/gyp/pylib/gyp/input.py - About 50 mins to fix

              Function LoadOneBuildFile has 7 arguments (exceeds 4 allowed). Consider refactoring.
              Open

              def LoadOneBuildFile(build_file_path, data, aux_data, variables, includes,
              Severity: Major
              Found in tools/gyp/pylib/gyp/input.py - About 50 mins to fix

                Function LoadBuildFileIncludesIntoList has 6 arguments (exceeds 4 allowed). Consider refactoring.
                Open

                def LoadBuildFileIncludesIntoList(sublist, sublist_path, data, aux_data,
                Severity: Minor
                Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                  Avoid deeply nested control flow statements.
                  Open

                            if (dependency_target != '*' and
                                dependency_target != dependency_target_name):
                              continue
                            dependency_target_toolset = dependency_target_dict['toolset']
                  Severity: Major
                  Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                    Function ValidateSourcesInTarget has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                    Open

                    def ValidateSourcesInTarget(target, target_dict, build_file):
                      # TODO: Check if MSVC allows this for loadable_module targets.
                      if target_dict.get('type', None) not in ('static_library', 'shared_library'):
                        return
                      sources = target_dict.get('sources', [])
                    Severity: Minor
                    Found in tools/gyp/pylib/gyp/input.py - About 45 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

                    Avoid deeply nested control flow statements.
                    Open

                              if t == target_name:
                                if targets[t].get('variables', {}).get('prune_self_dependency', 0):
                                  target_dict[dependency_key] = Filter(dependencies, target_name)
                    
                    
                    Severity: Major
                    Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                      Avoid deeply nested control flow statements.
                      Open

                                if build_file_dir:  # build_file_dir may be None (see above).
                                  os.chdir(build_file_dir)
                                try:
                      Severity: Major
                      Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                        Avoid deeply nested control flow statements.
                        Open

                                  if p.wait() != 0 or p_stderr:
                                    sys.stderr.write(p_stderr)
                                    # Simulate check_call behavior, since check_call only exists
                                    # in python 2.5 and later.
                                    raise GypError("Call to '%s' returned exit status %d." %
                        Severity: Major
                        Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                          Avoid deeply nested control flow statements.
                          Open

                                    if list_actions[index] == action_value:
                                      # Even if the regex matches, nothing will change so continue (regex
                                      # searches are expensive).
                                      continue
                                    if pattern_re.search(list_item):
                          Severity: Major
                          Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                            Avoid deeply nested control flow statements.
                            Open

                                      if exclude_item == the_list[index]:
                                        # This item matches the exclude_item, so set its action to 0
                                        # (exclude).
                                        list_actions[index] = 0
                            
                            
                            Severity: Major
                            Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                              Function MergeLists has 6 arguments (exceeds 4 allowed). Consider refactoring.
                              Open

                              def MergeLists(to, fro, to_file, fro_file, is_paths=False, append=True):
                              Severity: Minor
                              Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                                Avoid deeply nested control flow statements.
                                Open

                                          if int(dependency_target_dict.get('suppress_wildcard', False)):
                                            continue
                                          dependency_target_name = dependency_target_dict['target_name']
                                Severity: Major
                                Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                                  Function TurnIntIntoStrInDict has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
                                  Open

                                  def TurnIntIntoStrInDict(the_dict):
                                    """Given dict the_dict, recursively converts all integers into strings.
                                    """
                                    # Use items instead of iteritems because there's no need to try to look at
                                    # reinserted keys and their associated values.
                                  Severity: Minor
                                  Found in tools/gyp/pylib/gyp/input.py - About 45 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

                                  Avoid deeply nested control flow statements.
                                  Open

                                            if (dependency_toolset != '*' and
                                                dependency_toolset != dependency_target_toolset):
                                              continue
                                            dependency = gyp.common.QualifiedTarget(dependency_build_file,
                                  Severity: Major
                                  Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

                                    Avoid deeply nested control flow statements.
                                    Open

                                              if pattern_re.search(list_item):
                                                # Regular expression match.
                                                list_actions[index] = action_value
                                    
                                          # The "whatever/" list is no longer needed, dump it.
                                    Severity: Major
                                    Found in tools/gyp/pylib/gyp/input.py - About 45 mins to fix

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

                                      def ProcessVariablesAndConditionsInDict(the_dict, phase, variables_in,
                                      Severity: Minor
                                      Found in tools/gyp/pylib/gyp/input.py - About 35 mins to fix

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

                                        def PruneUnwantedTargets(targets, flat_list, dependency_nodes, root_targets,
                                        Severity: Minor
                                        Found in tools/gyp/pylib/gyp/input.py - About 35 mins to fix

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

                                            def _LinkDependenciesInternal(self, targets, include_shared_libraries,
                                          Severity: Minor
                                          Found in tools/gyp/pylib/gyp/input.py - About 35 mins to fix

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

                                            def MergeConfigWithInheritance(new_configuration_dict, build_file,
                                            Severity: Minor
                                            Found in tools/gyp/pylib/gyp/input.py - About 35 mins to fix

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

                                              def ValidateActionsInTarget(target, target_dict, build_file):
                                                '''Validates the inputs to the actions in a target.'''
                                                target_name = target_dict.get('target_name')
                                                actions = target_dict.get('actions', [])
                                                for action in actions:
                                              Severity: Minor
                                              Found in tools/gyp/pylib/gyp/input.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 _AddImportedDependencies has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                              Open

                                                def _AddImportedDependencies(self, targets, dependencies=None):
                                                  """Given a list of direct dependencies, adds indirect dependencies that
                                                  other dependencies have declared to export their settings.
                                              
                                                  This method does not operate on self.  Rather, it operates on the list
                                              Severity: Minor
                                              Found in tools/gyp/pylib/gyp/input.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 ValidateRunAsInTarget has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
                                              Open

                                              def ValidateRunAsInTarget(target, target_dict, build_file):
                                                target_name = target_dict.get('target_name')
                                                run_as = target_dict.get('run_as')
                                                if not run_as:
                                                  return
                                              Severity: Minor
                                              Found in tools/gyp/pylib/gyp/input.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

                                              Avoid too many return statements within this function.
                                              Open

                                                  return dependencies
                                              Severity: Major
                                              Found in tools/gyp/pylib/gyp/input.py - About 30 mins to fix

                                                Avoid too many return statements within this function.
                                                Open

                                                      return dependencies
                                                Severity: Major
                                                Found in tools/gyp/pylib/gyp/input.py - About 30 mins to fix

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

                                                  def BuildTargetsDict(data):
                                                    """Builds a dict mapping fully-qualified target names to their target dicts.
                                                  
                                                    |data| is a dict mapping loaded build files by pathname relative to the
                                                    current directory.  Values in |data| are build file contents.  For each
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.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 TurnIntIntoStrInList has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                                                  Open

                                                  def TurnIntIntoStrInList(the_list):
                                                    """Given list the_list, recursively converts all integers into strings.
                                                    """
                                                    for index in xrange(0, len(the_list)):
                                                      item = the_list[index]
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.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 LoadTargetBuildFileCallback has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                                                  Open

                                                    def LoadTargetBuildFileCallback(self, result):
                                                      """Handle the results of running LoadTargetBuildFile in another process.
                                                      """
                                                      self.condition.acquire()
                                                      if not result:
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.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 RemoveDuplicateDependencies has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
                                                  Open

                                                  def RemoveDuplicateDependencies(targets):
                                                    """Makes sure every dependency appears only once in all targets's dependency
                                                    lists."""
                                                    for target_name, target_dict in targets.iteritems():
                                                      for dependency_key in dependency_sections:
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.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

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

                                                    for k, v in subdict.iteritems():
                                                      if v.__class__ == dict:
                                                        LoadBuildFileIncludesIntoDict(v, subdict_path, data, aux_data, variables,
                                                                                      None, check)
                                                      elif v.__class__ == list:
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 2 hrs to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 293..299

                                                  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 50.

                                                  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

                                                    for item in sublist:
                                                      if item.__class__ == dict:
                                                        LoadBuildFileIncludesIntoDict(item, sublist_path, data, aux_data,
                                                                                      variables, None, check)
                                                      elif item.__class__ == list:
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 2 hrs to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 281..287

                                                  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 50.

                                                  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

                                                    if parallel:
                                                      LoadTargetBuildFilesParallel(build_files, data, aux_data,
                                                                                   variables, includes, depth, check,
                                                                                   generator_input_info)
                                                    else:
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 434..442

                                                  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 48.

                                                  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

                                                    if load_dependencies:
                                                      for dependency in dependencies:
                                                        try:
                                                          LoadTargetBuildFile(dependency, data, aux_data, variables,
                                                                              includes, depth, check, load_dependencies)
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2684..2695

                                                  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 48.

                                                  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

                                                          raise TypeError, \
                                                              'Attempt to merge dict value of type ' + v.__class__.__name__ + \
                                                              ' into incompatible type ' + to[k].__class__.__name__ + \
                                                              ' for key ' + k
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2103..2105

                                                  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 45.

                                                  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

                                                                'Attempt to merge dict value of type ' + v.__class__.__name__ + \
                                                                ' into incompatible type ' + to[list_base].__class__.__name__ + \
                                                                ' for key ' + list_base + '(' + k + ')'
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2040..2043

                                                  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 45.

                                                  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

                                                      elif isinstance(value, list):
                                                        # The list itself can't influence the variables dict, and
                                                        # ProcessVariablesAndConditionsInList will make copies of the variables
                                                        # dict if it needs to pass it to something that can influence it.  No
                                                        # copy is necessary here.
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 1255..1273

                                                  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 40.

                                                  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

                                                    for target in flat_list:
                                                      target_dict = targets[target]
                                                      build_file = gyp.common.BuildFile(target)
                                                      ProcessVariablesAndConditionsInDict(
                                                          target_dict, PHASE_LATE, variables, build_file)
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2781..2785

                                                  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 40.

                                                  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

                                                      elif isinstance(item, str):
                                                        expanded = ExpandVariables(item, phase, variables, build_file)
                                                        if isinstance(expanded, str) or isinstance(expanded, int):
                                                          the_list[index] = expanded
                                                        elif isinstance(expanded, list):
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 1231..1240

                                                  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 40.

                                                  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

                                                    for target in flat_list:
                                                      target_dict = targets[target]
                                                      build_file = gyp.common.BuildFile(target)
                                                      ProcessVariablesAndConditionsInDict(
                                                          target_dict, PHASE_LATELATE, variables, build_file)
                                                  Severity: Major
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 1 hr to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2764..2768

                                                  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 40.

                                                  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

                                                      elif not isinstance(replacement, str) and \
                                                           not isinstance(replacement, int):
                                                            raise GypError('Variable ' + contents +
                                                                           ' must expand to a string or list of strings; ' +
                                                                           'found a ' + replacement.__class__.__name__)
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 45 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 930..935

                                                  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 35.

                                                  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

                                                    for key, value in the_dict.iteritems():
                                                      if isinstance(value, dict):
                                                        ProcessListFiltersInDict(key, value)
                                                      elif isinstance(value, list):
                                                        ProcessListFiltersInList(key, value)
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 45 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2388..2392

                                                  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 35.

                                                  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

                                                          if (not contents[-1] == '/' and
                                                              not isinstance(item, str) and not isinstance(item, int)):
                                                            raise GypError('Variable ' + contents +
                                                                           ' must expand to a string or list of strings; ' +
                                                                           'list contains a ' +
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 45 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 941..945

                                                  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 35.

                                                  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

                                                    for item in the_list:
                                                      if isinstance(item, dict):
                                                        ProcessListFiltersInDict(name, item)
                                                      elif isinstance(item, list):
                                                        ProcessListFiltersInList(name, item)
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 45 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2380..2384

                                                  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 35.

                                                  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

                                                    if environment and not isinstance(environment, dict):
                                                      raise GypError("The 'environment' for 'run_as' in target %s "
                                                                     "in file %s should be a dictionary." %
                                                                     (target_name, build_file))
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 40 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2523..2526

                                                  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 34.

                                                  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

                                                      for new_dependency in dependencies0:
                                                        if new_dependency not in self.scheduled:
                                                          self.scheduled.add(new_dependency)
                                                          self.dependencies.append(new_dependency)
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 40 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 1776..1778

                                                  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 34.

                                                  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

                                                        if dependency_node not in build_file_node.dependencies:
                                                          build_file_node.dependencies.append(dependency_node)
                                                          dependency_node.dependents.append(build_file_node)
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 40 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 552..555

                                                  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 34.

                                                  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

                                                    if working_directory and not isinstance(working_directory, str):
                                                      raise GypError("The 'working_directory' for 'run_as' in target %s "
                                                                     "in file %s should be a string." %
                                                                     (target_name, build_file))
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 40 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2528..2531

                                                  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 34.

                                                  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

                                                      if isinstance(v, int):
                                                        v = str(v)
                                                        the_dict[k] = v
                                                      elif isinstance(v, dict):
                                                        TurnIntIntoStrInDict(v)
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 35 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2576..2581

                                                  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

                                                      if isinstance(item, int):
                                                        the_list[index] = str(item)
                                                      elif isinstance(item, dict):
                                                        TurnIntIntoStrInDict(item)
                                                      elif isinstance(item, list):
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 35 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 2558..2564

                                                  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

                                                        if not isinstance(expanded, str) and not isinstance(expanded, int):
                                                          raise ValueError, \
                                                                'Variable expansion in this context permits str and int ' + \
                                                                'only, found ' + expanded.__class__.__name__ + ' for ' + key
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 35 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 1259..1269

                                                  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

                                                        elif isinstance(expanded, list):
                                                          the_list[index:index+1] = expanded
                                                          index += len(expanded)
                                                  
                                                          # index now identifies the next item to examine.  Continue right now
                                                  Severity: Minor
                                                  Found in tools/gyp/pylib/gyp/input.py and 1 other location - About 35 mins to fix
                                                  tools/gyp/pylib/gyp/input.py on lines 1167..1170

                                                  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

                                                  There are no issues that match your filters.

                                                  Category
                                                  Status