code: def find_state(self, state, best_match=True, min_similarity=70):
          
          result_state_short_list = list()
  
          # check if it is a abbreviate name
          if state.upper() in STATE_ABBR_SHORT_TO_LONG:
              result_state_short_list.append(state.upper())
  
          # if not, find out what is the state that user looking for
          else:
              if best_match:
                  state_long, confidence = extractOne(state, self.state_list)
                  if confidence >= min_similarity:
                      result_state_short_list.append(
                          STATE_ABBR_LONG_TO_SHORT[state_long])
              else:
                  for state_long, confidence in extract(state, self.state_list):
                      if confidence >= min_similarity:
                          result_state_short_list.append(
                              STATE_ABBR_LONG_TO_SHORT[state_long])
  
          if len(result_state_short_list) == 0:
              message = ("'%s' is not a valid state name, use 2 letter "
                         "short name or correct full name please.")
              raise ValueError(message % state)
  
          return result_state_short_list
docs: Fuzzy search correct state.
  
          :param best_match: bool, when True, only the best matched state
              will be return. otherwise, will return all matching states.