import ast


def type_restore(value):
    """restore str go back to original type

    Args:
        value (str): input str 

    Returns:
        value (str): original type

    Examples:
        >>> s = String()
        >>> s.type_restore("1")
        1
        >>> s.type_restore("1.0")
        1.0
        >>> s.type_restore("True")
        True
        >>> s.type_restore("False")
        False
        >>> s.type_restore("None")
        None
        >>> s.type_restore("[1, 2, 3]")
        [1, 2, 3]
        >>> s.type_restore("{'a': 1, 'b': 2}")
        {'a': 1, 'b': 2}
    """
    try:
        value = ast.literal_eval(value)
    except Exception:
        value = value
    return value