old_contents: """This module provides plugins for basic duplicate code detection."""
  
  from hairball.plugins import HairballPlugin
  
  class DuplicateScripts(HairballPlugin):
  
      """Plugin that keeps track of which scripts have been 
      used more than once whithin a project."""
  
      def __init__(self):
          super(DuplicateScripts, self).__init__()
          self.total_duplicate = 0
          self.list_duplicate = []
  
      def finalize(self):
          """Output the duplicate scripts detected."""
          if self.total_duplicate > 0:
              print("%d duplicate scripts found" % self.total_duplicate)
              for duplicate in self.list_duplicate:
                  print duplicate
  
      def analyze(self, scratch):
          """Run and return the results from the DuplicateChecks plugin."""
          scripts_set = set()
          for script in self.iter_scripts(scratch):
              blocks_list = []
              for name, _, _ in self.iter_blocks(script.blocks):
                  blocks_list.append(name)
              blocks_tuple = tuple(blocks_list)
              if blocks_tuple in scripts_set:
                  if len(blocks_list)>3:
                      self.total_duplicate += 1
                      self.list_duplicate.append(blocks_list)
              else:
                  scripts_set.add(blocks_tuple)
  
new_contents: """This module provides plugins for basic duplicate code detection."""
  
  from hairball.plugins import HairballPlugin
  
  class DuplicateScripts(HairballPlugin):
  
      """Plugin that keeps track of which scripts have been 
      used more than once whithin a project."""
  
      def __init__(self):
          super(DuplicateScripts, self).__init__()
          self.total_duplicate = 0
          self.list_duplicate = []
  
      def finalize(self):
          """Output the duplicate scripts detected."""
          if self.total_duplicate > 0:
              print("%d duplicate scripts found" % self.total_duplicate)
              for duplicate in self.list_duplicate:
                  print duplicate
  
      def analyze(self, scratch):
          """Run and return the results from the DuplicateChecks plugin.
          Only takes into account scripts with more than 3 blocks"""
          scripts_set = set()
          for script in self.iter_scripts(scratch):
              blocks_list = []
              for name, _, _ in self.iter_blocks(script.blocks):
                  blocks_list.append(name)
              blocks_tuple = tuple(blocks_list)
              if blocks_tuple in scripts_set:
                  if len(blocks_list)>3:
                      self.total_duplicate += 1
                      self.list_duplicate.append(blocks_list)
              else:
                  scripts_set.add(blocks_tuple)
  
subject: Add comment to explain the length of the scripts taken into account in DuplicateScripts