hackedteam/vector-edk

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

Summary

Maintainability
F
2 mos
Test Coverage

File rfc822.py has 811 lines of code (exceeds 250 allowed). Consider refactoring.
Open

"""RFC 2822 message manipulation.

Note: This is only a very rough sketch of a full RFC-822 parser; in particular
the tokenizing of addresses does not adhere to all the quoting rules.
Severity: Major
Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.py - About 1 day to fix

    Function parsedate_tz has a Cognitive Complexity of 35 (exceeds 5 allowed). Consider refactoring.
    Open

    def parsedate_tz(data):
        """Convert a date string to a time tuple.
    
        Accounts for military timezones.
        """
    Severity: Minor
    Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 readheaders has a Cognitive Complexity of 29 (exceeds 5 allowed). Consider refactoring.
    Open

        def readheaders(self):
            """Read header lines.
    
            Read header lines up to the entirely blank line that terminates them.
            The (normally blank) line that ends the headers is skipped, but not
    Severity: Minor
    Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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

    Message has 27 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class Message:
        """Represents a single RFC 2822-compliant message."""
    
        def __init__(self, fp, seekable = 1):
            """Initialize the class instance and read the headers."""
    Severity: Minor
    Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.py - About 3 hrs to fix

      Function getaddress has a Cognitive Complexity of 19 (exceeds 5 allowed). Consider refactoring.
      Open

          def getaddress(self):
              """Parse the next address."""
              self.commentlist = []
              self.gotonext()
      
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getheaders has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring.
      Open

          def getheaders(self, name):
              """Get all values for a header.
      
              This returns a list of values for headers given more than once; each
              value in the result list is stripped in the same way as the result of
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getaddrlist has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
      Open

          def getaddrlist(self, name):
              """Get a list of addresses from a header.
      
              Retrieves a list of addresses from a header, where each address is a
              tuple as returned by getaddr().  Scans all named headers, so it works
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getdelimited has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

          def getdelimited(self, beginchar, endchars, allowcomments = 1):
              """Parse a header fragment delimited by special characters.
      
              `beginchar' is the start character for the fragment.  If self is not
              looking at an instance of `beginchar' then getdelimited returns the
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 __init__ has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

          def __init__(self, fp, seekable = 1):
              """Initialize the class instance and read the headers."""
              if seekable == 1:
                  # Exercise tell() to make sure it works
                  # (and then assume seek() works, too)
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getfirstmatchingheader has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

          def getfirstmatchingheader(self, name):
              """Get the first header line matching name.
      
              This is similar to getallmatchingheaders, but it returns only the
              first matching header (and its continuation lines).
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getrouteaddr has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

          def getrouteaddr(self):
              """Parse a route address (Return-path value).
      
              This method just skips all the route stuff and returns the addrspec.
              """
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getdomain has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

          def getdomain(self):
              """Get the complete domain name from an address."""
              sdlist = []
              while self.pos < len(self.field):
                  if self.field[self.pos] in self.LWS:
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getaddrspec has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

          def getaddrspec(self):
              """Parse an RFC 2822 addr-spec."""
              aslist = []
      
              self.gotonext()
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 __delitem__ has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

          def __delitem__(self, name):
              """Delete all occurrences of a specific header, if it is present."""
              name = name.lower()
              if not name in self.dict:
                  return
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getphraselist has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
      Open

          def getphraselist(self):
              """Parse a sequence of RFC 2822 phrases.
      
              A phrase is a sequence of words, which are in turn either RFC 2822
              atoms or quoted-strings.  Phrases are canonicalized by squeezing all
      Severity: Minor
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 (yy, mm, dd, thh, tmm, tss, 0, 1, 0, tzoffset)
      Severity: Major
      Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.py - About 30 mins to fix

        Avoid too many return statements within this function.
        Open

                return None
        Severity: Major
        Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.py - About 30 mins to fix

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

          def unquote(s):
              """Remove quotes from a string."""
              if len(s) > 1:
                  if s.startswith('"') and s.endswith('"'):
                      return s[1:-1].replace('\\\\', '\\').replace('\\"', '"')
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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 getallmatchingheaders has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
          Open

              def getallmatchingheaders(self, name):
                  """Find all header lines matching a given header name.
          
                  Look through the list of headers and find all lines matching a given
                  header name (and their continuation lines).  A list of the lines is
          Severity: Minor
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.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

          Severity: Major
          Found in AppPkg/Applications/Python/Python-2.7.2/Lib/rfc822.py and 1 other location - About 2 mos to fix
          vector-uefi/fd/efi/StdLib/lib/python.27/rfc822.py on lines 0..1011

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

          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