docs: def parse(self, lines):
          '''
          Parse signature file lines.
  
          @lines - A list of lines from a signature file.
  
          Returns None.
          '''
          signature = None
  
          for line in lines:
              # Split at the first comment delimiter (if any) and strip the
              # result
              line = line.split('#')[0].strip()
              # Ignore blank lines and lines that are nothing but comments.
              # We also don't support the '!mime' style line entries.
              if line and line[0] != '!':
                  # Parse this signature line
                  sigline = SignatureLine(line)
                  # Level 0 means the first line of a signature entry
                  if sigline.level == 0:
                      # If there is an existing signature, append it to the signature list,
                      # unless the text in its title field has been filtered by user-defined
                      # filter rules.
                      if signature and not self._filtered(signature.title):
                          self.signatures.append(signature)
  
                      # Create a new signature object; use the size of self.signatures to
                      # assign each signature a unique ID.
                      signature = Signature(len(self.signatures), sigline)
                  # Else, just append this line to the existing signature
                  elif signature:
                      # signature.append(sigline)
                      signature.lines.append(sigline)
                  # If this is not the first line of a signature entry and there is no other
                  # existing signature entry, something is very wrong with the
                  # signature file.
                  else:
                      raise ParserException("Invalid signature line: '%s'" % line)
  
          # Add the final signature to the signature list
          if signature:
              if not self._filtered(signature.lines[0].format):
                  self.signatures.append(signature)
  
          # Sort signatures by confidence (aka, length of their magic bytes),
          # largest first
          self.signatures.sort(key=lambda x: x.confidence, reverse=True)