<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def parse_single_value(value):
 """ Tries to convert to int, float and then gives up and assumes the value is of type string. Useful when excepting values that may be string representations of numerical values """

    if isinstance(value, basestring):
        try:
            if value.startswith('"') and value.endswith('"'):
                value = str(value[1:-1])
            elif '.' in value:
                value = float(value)
            else:
                value = int(value)
        except ValueError:
            value = str(value)
    elif not isinstance(value, (int, float)):
        raise ArcanaUsageError(
            "Unrecognised type for single value {}".format(value))
    return value