cloudmatrix/esky

View on GitHub
esky/bootstrap.py

Summary

Maintainability
F
6 days
Test Coverage

File bootstrap.py has 533 lines of code (exceeds 250 allowed). Consider refactoring.
Open

#  Copyright (c) 2009-2010, Cloud Matrix Pty. Ltd.
#  All rights reserved; available under the terms of the BSD License.
"""

  esky.bootstrap:  minimal bootstrapping code for esky
Severity: Major
Found in esky/bootstrap.py - About 1 day to fix

    Function sorted has a Cognitive Complexity of 29 (exceeds 5 allowed). Consider refactoring.
    Open

        def sorted(lst,reverse=False):
            slst = []
            if reverse:
                for item in lst:
                    for j in xrange(len(slst)):
    Severity: Minor
    Found in esky/bootstrap.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 execv has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
    Open

        def execv(filename,args):
            #  Create an O_TEMPORARY file and pass its name to the slave process.
            #  When this master process dies, the file will be deleted and the
            #  slave process will know to terminate.
            try:
    Severity: Minor
    Found in esky/bootstrap.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 _chainload has a Cognitive Complexity of 22 (exceeds 5 allowed). Consider refactoring.
    Open

    def _chainload(target_dir):
        """Default implementation of the chainload() function.
    
        Specific freezer modules may provide a more efficient, reliable or
        otherwise better version of this function.
    Severity: Minor
    Found in esky/bootstrap.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 get_exe_locations has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
    Open

    def get_exe_locations(target_dir):
        """Generate possible locations from which to chainload in the target dir."""
        # TODO: let this be a generator when not compiling with PyPy, so we can
        # avoid a few stat() calls in the common case.
        locs = []
    Severity: Minor
    Found in esky/bootstrap.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 _split_version_components has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
    Open

    def _split_version_components(s):
        """Split version string into individual tokens.
    
        pkg_resources does this using a regexp: (\d+ | [a-z]+ | \.| -)
        Unfortunately the 're' module isn't in the bootstrap, so we have to do
    Severity: Minor
    Found in esky/bootstrap.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 bootstrap has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
    Open

    def bootstrap():
        """Bootstrap an esky frozen app into the newest available version.
    
        This function searches the application directory to find the highest-
        numbered version of the application that is fully installed, then
    Severity: Minor
    Found in esky/bootstrap.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 get_best_version has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
    Open

    def get_best_version(appdir,include_partial_installs=False,appname=None):
        """Get the best usable version directory from inside the given appdir.
    
        In the common case there is only a single version directory, but failed
        or partial updates can result in several being present.  This function
    Severity: Minor
    Found in esky/bootstrap.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 parse_version has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
    Open

    def parse_version(s):
        """Parse a version string into a chronologically-sortable key
    
        This function returns a sequence of strings that compares with the results
        for other versions in a chronologically sensible way.  You'd use it to
    Severity: Minor
    Found in esky/bootstrap.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 get_all_versions has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
    Open

    def get_all_versions(appdir,include_partial_installs=False):
        """Get a list of all usable version directories inside the given appdir.
    
        The list will be in order from most-recent to least-recent.  The head
        of the list will be the same directory as returned by get_best_version.
    Severity: Minor
    Found in esky/bootstrap.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 abspath has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
    Open

        def abspath(path):
            path = pathjoin(getcwd(),path)
            components_in = path.split(SEP)
            components = [components_in[0]]
            for comp in components_in[1:]:
    Severity: Minor
    Found in esky/bootstrap.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 _list_gt has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
    Open

        def _list_gt(l1,l2):
            i = 0
            while i < len(l1) and i < len(l2):
                if l1[i] > l2[i]:
                   return True
    Severity: Minor
    Found in esky/bootstrap.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

    Avoid deeply nested control flow statements.
    Open

                        if not _list_gt(slst[j][0],item[0]):
                            slst.insert(j,item)
                            break 
                    else:
    Severity: Major
    Found in esky/bootstrap.py - About 45 mins to fix

      Avoid deeply nested control flow statements.
      Open

                          if nm.endswith(".app"):
                              locs.append(pathjoin(target_dir,
                                                   nm,
                                                   sys.executable[len(appdir)+1:]))
          #  This is the default scheme: the same path as the exe in the appdir.
      Severity: Major
      Found in esky/bootstrap.py - About 45 mins to fix

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

            def abspath(path):
                path = pathjoin(getcwd(),path)
                components_in = path.split(SEP)
                components = [components_in[0]]
                for comp in components_in[1:]:
        Severity: Minor
        Found in esky/bootstrap.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

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

            def isabs(path):
                if path.startswith(SEP):
                    return True
                if len(path) >= 2:
                    if path[0].isalpha() and path[1] == ":":
        Severity: Minor
        Found in esky/bootstrap.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 _list_gt(slst[j][0],item[0]):
                                slst.insert(j,item)
                                break 
                        else:
        Severity: Major
        Found in esky/bootstrap.py - About 45 mins to fix

          Consider simplifying this complex logical expression.
          Open

                  if s[start].isdigit():
                      while end < len(s) and s[end].isdigit():
                          end += 1
                  elif s[start].isalpha():
                      while end < len(s) and s[end].isalpha():
          Severity: Major
          Found in esky/bootstrap.py - About 40 mins to fix

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

            def chainload(target_dir):
                """Load and execute the selected version of an application.
            
                This function replaces the currently-running executable with the equivalent
                executable from the given target directory.
            Severity: Minor
            Found in esky/bootstrap.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 pathjoin has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
            Open

            def pathjoin(*args):
                """Local re-implementation of os.path.join."""
                path = args[0]
                for arg in list(args[1:]):
                    if isabs(arg):
            Severity: Minor
            Found in esky/bootstrap.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 split_app_version has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
            Open

            def split_app_version(s):
                """Split an app version string to name, version and platform components.
            
                For example, app-name-0.1.2.win32 => ("app-name","0.1.2","win32")
                """
            Severity: Minor
            Found in esky/bootstrap.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 exists has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
            Open

            def exists(path):
                """Local re-implementation of os.path.exists."""
                try:
                    stat(path)
                except EnvironmentError, e:
            Severity: Minor
            Found in esky/bootstrap.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 _parse_version_parts has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
            Open

            def _parse_version_parts(s):
                parts = []
                for part in _split_version_components(s):
                    part = _replace_p(part,part)
                    if not part or part=='.':
            Severity: Minor
            Found in esky/bootstrap.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 None
            Severity: Major
            Found in esky/bootstrap.py - About 30 mins to fix

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

                      for comp in components_in[1:]:
                          if not comp or comp == ".":
                              pass
                          elif comp == "..":
                              components.pop()
              Severity: Major
              Found in esky/bootstrap.py and 1 other location - About 2 hrs to fix
              esky/bootstrap.py on lines 78..84

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

              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

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

                      for comp in components_in[1:]:
                          if not comp or comp == ".":
                              pass
                          elif comp == "..":
                              components.pop()
              Severity: Major
              Found in esky/bootstrap.py and 1 other location - About 2 hrs to fix
              esky/bootstrap.py on lines 105..111

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

              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 s[start].isalpha():
                          while end < len(s) and s[end].isalpha():
                              end += 1
              Severity: Minor
              Found in esky/bootstrap.py and 1 other location - About 50 mins to fix
              esky/bootstrap.py on lines 605..607

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

              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 s[start].isdigit():
                          while end < len(s) and s[end].isdigit():
                              end += 1
              Severity: Minor
              Found in esky/bootstrap.py and 1 other location - About 50 mins to fix
              esky/bootstrap.py on lines 608..610

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

              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

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

                          if is_version_dir(pathjoin(appdir,nm)):
                              ver = parse_version(ver)
                              candidates.append((ver,nm))
              Severity: Minor
              Found in esky/bootstrap.py and 1 other location - About 40 mins to fix
              esky/bootstrap.py on lines 477..480

              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

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

                      if ver and platform:
                          if is_version_dir(pathjoin(appdir,nm)):
                              ver = parse_version(ver)
                              candidates.append((ver,nm))
              Severity: Minor
              Found in esky/bootstrap.py and 1 other location - About 40 mins to fix
              esky/bootstrap.py on lines 446..448

              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

              There are no issues that match your filters.

              Category
              Status