hackedteam/vector-edk

View on GitHub
AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py

Summary

Maintainability
F
2 mos
Test Coverage

File dist.py has 891 lines of code (exceeds 250 allowed). Consider refactoring.
Open

"""distutils.dist

Provides the Distribution class, which represents the module distribution
being built/installed/distributed.
"""
Severity: Major
Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py - About 2 days to fix

    Function __init__ has a Cognitive Complexity of 40 (exceeds 5 allowed). Consider refactoring.
    Open

        def __init__ (self, attrs=None):
            """Construct a new Distribution instance: initialize all the
            attributes of a Distribution, and then use 'attrs' (a dictionary
            mapping attribute names to values) to assign some of those
            attributes their "real" values.  (Any attributes not mentioned in
    Severity: Minor
    Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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

    Distribution has 30 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class Distribution:
        """The core of the Distutils.  Most of the work hiding behind 'setup'
        is really done within a Distribution instance, which farms the work out
        to the Distutils commands specified on the command line.
    
    Severity: Minor
    Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py - About 3 hrs to fix

      DistributionMetadata has 30 functions (exceeds 20 allowed). Consider refactoring.
      Open

      class DistributionMetadata:
          """Dummy class to hold the distribution meta-data: name, version,
          author, and so forth.
          """
      
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py - About 3 hrs to fix

        Function parse_config_files has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
        Open

            def parse_config_files(self, filenames=None):
                from ConfigParser import ConfigParser
        
                if filenames is None:
                    filenames = self.find_config_files()
        Severity: Minor
        Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 _parse_command_opts has a Cognitive Complexity of 25 (exceeds 5 allowed). Consider refactoring.
        Open

            def _parse_command_opts(self, parser, args):
                """Parse the command-line options for a single command.
                'parser' must be a FancyGetopt instance; 'args' must be the list
                of arguments, starting with the current command (whose options
                we are about to parse).  Returns a new version of 'args' with
        Severity: Minor
        Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 _set_command_options has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
        Open

            def _set_command_options(self, command_obj, option_dict=None):
                """Set the options for 'command_obj' from 'option_dict'.  Basically
                this means copying elements of a dictionary ('option_dict') to
                attributes of an instance ('command').
        
        Severity: Minor
        Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 _show_help has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
        Open

            def _show_help(self, parser, global_options=1, display_options=1,
                           commands=[]):
                """Show help for the setup script command-line in the form of
                several lists of command-line options.  'parser' should be a
                FancyGetopt instance; do not expect it to be returned in the
        Severity: Minor
        Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 __init__ has 29 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            def __init__ (self, attrs=None):
                """Construct a new Distribution instance: initialize all the
                attributes of a Distribution, and then use 'attrs' (a dictionary
                mapping attribute names to values) to assign some of those
                attributes their "real" values.  (Any attributes not mentioned in
        Severity: Minor
        Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py - About 1 hr to fix

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

              def dump_option_dicts(self, header=None, commands=None, indent=""):
                  from pprint import pformat
          
                  if commands is None:             # dump all command option dicts
                      commands = self.command_options.keys()
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 handle_display_options has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
          Open

              def handle_display_options(self, option_order):
                  """If there were any non-global "display-only" options
                  (--help-commands or the metadata display options) on the command
                  line, display the requested info and return true; else return
                  false.
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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_command_list has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
          Open

              def get_command_list(self):
                  """Get a list of (command, description) tuples.
                  The list is divided into "standard commands" (listed in
                  distutils.command.__all__) and "extra commands" (mentioned in
                  self.cmdclass, but not a standard command).  The descriptions come
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py - About 55 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 read_pkg_file has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
          Open

              def read_pkg_file(self, file):
                  """Reads the metadata values from a file object."""
                  msg = message_from_file(file)
          
                  def _read_field(name):
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py - About 55 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 find_config_files has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
          Open

              def find_config_files(self):
                  """Find as many configuration files as should be processed for this
                  platform, and return a list of filenames in the order in which they
                  should be parsed.  The filenames returned are guaranteed to exist
                  (modulo nasty race conditions).
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 print_commands has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
          Open

              def print_commands(self):
                  """Print out a help message listing all available commands with a
                  description of each.  The list is divided into "standard commands"
                  (listed in distutils.command.__all__) and "extra commands"
                  (mentioned in self.cmdclass, but not a standard command).  The
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 get_command_obj has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

              def get_command_obj(self, command, create=1):
                  """Return the command object for 'command'.  Normally this object
                  is cached on a previous call to 'get_command_obj()'; if no command
                  object for 'command' is in the cache, then we either create and
                  return it (if 'create' is true) or return None.
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 reinitialize_command has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

              def reinitialize_command(self, command, reinit_subcommands=0):
                  """Reinitializes a command to the state it was in when first
                  returned by 'get_command_obj()': ie., initialized but not yet
                  finalized.  This provides the opportunity to sneak option
                  values in programmatically, overriding or supplementing
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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 parse_command_line has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

              def parse_command_line(self):
                  """Parse the setup script's command line, taken from the
                  'script_args' instance attribute (which defaults to 'sys.argv[1:]'
                  -- see 'setup()' in core.py).  This list is first processed for
                  "global options" -- options that set attributes of the Distribution
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.py - About 25 mins to fix

          Cognitive Complexity

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

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

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

          Further reading

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

              def get_command_class(self, command):
                  """Return the class that implements the Distutils command named by
                  'command'.  First we check the 'cmdclass' dictionary; if the
                  command is mentioned there, we fetch the class object from the
                  dictionary and return it.  Otherwise we load the command module
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/distutils/dist.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

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

          vector-uefi/fd/efi/StdLib/lib/python.27/distutils/dist.py on lines 0..1248

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

          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