parameters: (database)
docstring: Checks for tuning results with mis-matched entries and removes them according to user preferences
docstring_summary: Checks for tuning results with mis-matched entries and removes them according to user preferences
docstring_tokens: Checks for tuning results with mis - matched entries and removes them according to user preferences
function: def remove_mismatched_arguments(database):
      """Checks for tuning results with mis-matched entries and removes them according to user preferences"""
      kernel_attributes = clblast.DEVICE_TYPE_ATTRIBUTES + clblast.KERNEL_ATTRIBUTES + ["kernel"]
  
      # For Python 2 and 3 compatibility
      try:
          user_input = raw_input
      except NameError:
          user_input = input
          pass
  
      # Check for mis-matched entries
      for kernel_group_name, kernel_group in db.group_by(database["sections"], kernel_attributes):
          group_by_arguments = db.group_by(kernel_group, clblast.ARGUMENT_ATTRIBUTES)
          if len(group_by_arguments) != 1:
              print("[database] WARNING: entries for a single kernel with multiple argument values " +
                    str(kernel_group_name))
              print("[database] Either quit or remove all but one of the argument combinations below:")
              for index, (attribute_group_name, mismatching_entries) in enumerate(group_by_arguments):
                  print("[database]     %d: %s" % (index, attribute_group_name))
              for attribute_group_name, mismatching_entries in group_by_arguments:
                  response = user_input("[database] Remove entries corresponding to %s, [y/n]? " %
                                        str(attribute_group_name))
                  if response == "y":
                      for entry in mismatching_entries:
                          database["sections"].remove(entry)
                      print("[database] Removed %d entry/entries" % len(mismatching_entries))
  
      # Sanity-check: all mis-matched entries should be removed
      for kernel_group_name, kernel_group in db.group_by(database["sections"], kernel_attributes):
          group_by_arguments = db.group_by(kernel_group, clblast.ARGUMENT_ATTRIBUTES)
          if len(group_by_arguments) != 1:
              print("[database] ERROR: entries for a single kernel with multiple argument values " +
                    str(kernel_group_name))
          assert len(group_by_arguments) == 1
function_tokens: def remove_mismatched_arguments ( database ) : kernel_attributes = clblast . DEVICE_TYPE_ATTRIBUTES + clblast . KERNEL_ATTRIBUTES + [ "kernel" ] # For Python 2 and 3 compatibility try : user_input = raw_input except NameError : user_input = input pass # Check for mis-matched entries for kernel_group_name , kernel_group in db . group_by ( database [ "sections" ] , kernel_attributes ) : group_by_arguments = db . group_by ( kernel_group , clblast . ARGUMENT_ATTRIBUTES ) if len ( group_by_arguments ) != 1 : print ( "[database] WARNING: entries for a single kernel with multiple argument values " + str ( kernel_group_name ) ) print ( "[database] Either quit or remove all but one of the argument combinations below:" ) for index , ( attribute_group_name , mismatching_entries ) in enumerate ( group_by_arguments ) : print ( "[database]     %d: %s" % ( index , attribute_group_name ) ) for attribute_group_name , mismatching_entries in group_by_arguments : response = user_input ( "[database] Remove entries corresponding to %s, [y/n]? " % str ( attribute_group_name ) ) if response == "y" : for entry in mismatching_entries : database [ "sections" ] . remove ( entry ) print ( "[database] Removed %d entry/entries" % len ( mismatching_entries ) ) # Sanity-check: all mis-matched entries should be removed for kernel_group_name , kernel_group in db . group_by ( database [ "sections" ] , kernel_attributes ) : group_by_arguments = db . group_by ( kernel_group , clblast . ARGUMENT_ATTRIBUTES ) if len ( group_by_arguments ) != 1 : print ( "[database] ERROR: entries for a single kernel with multiple argument values " + str ( kernel_group_name ) ) assert len ( group_by_arguments ) == 1