'Try to guess the best \'device_type\' based on patterns defined in SSH_MAPPER_BASE
Returns
best_match : str or None
The device type that is currently the best to use to interact with the device'

def autodetect(self):

    for (device_type, autodetect_dict) in SSH_MAPPER_BASE.items():
        tmp_dict = autodetect_dict.copy()
        call_method = tmp_dict.pop(u'dispatch')
        autodetect_method = getattr(self, call_method)
        accuracy = autodetect_method(**tmp_dict)
        if accuracy:
            self.potential_matches[device_type] = accuracy
            if (accuracy >= 99):
                best_match = sorted(self.potential_matches.items(), key=(lambda t: t[1]), reverse=True)
                self.connection.disconnect()
                return best_match[0][0]
    if (not self.potential_matches):
        self.connection.disconnect()
        return None
    best_match = sorted(self.potential_matches.items(), key=(lambda t: t[1]), reverse=True)
    self.connection.disconnect()
    return best_match[0][0]
