code: def recache( methodname=None, filename=None ):
      
      if not methodname and not filename:
          hashes = get_unique_hashes()
          deleted = 0
          for hash in hashes:
              delete_io(hash)
              deleted = deleted + 1
      else:
          reqd_strings = []
          if methodname:
              reqd_strings.append( methodname )
          if filename:
              reqd_strings.append( filename )
          hashes = get_unique_hashes()
          deleted = 0
          for hash in hashes:
              cd = call_descriptor.fetch( hash )
              if all( [ s in cd.stack for s in reqd_strings ] ):
                  delete_io( hash )
                  deleted = deleted + 1
          return deleted
docs: Deletes entries corresponding to methodname in filename. If no arguments are passed it recaches the entire table.
  
      :param str methodname: The name of the method to target. This will delete ALL entries this method appears in the stack trace for.
      :param str filename: The filename the method is executed in. (include .py extension)
  
      :rtype int: The number of deleted entries