from ast import literal_eval


def string_dlt_to_dlt(dlt_str_rep):
    """
    Return dictionary/list/tuple from given string representation of dictionary/list/tuple

    Parameters
    ----------
    dlt_str_rep : str
        '[]'

    Examples
    --------
    >>> string_dlt_to_dlt("")
    Traceback (most recent call last):
      ...
    SyntaxError: unexpected EOF while parsing
    >>> string_dlt_to_dlt("[1, 2, 3]")
    [1, 2, 3]
    >>> string_dlt_to_dlt("[]")
    []
    >>> string_dlt_to_dlt("['1', '2', '3']")
    ['1', '2', '3']
    >>> string_dlt_to_dlt("{'a': 1, 'b': 2}")
    {'a': 1, 'b': 2}
    >>> string_dlt_to_dlt("{'a': '1', 'b': '2'}")
    {'a': '1', 'b': '2'}
    >>> string_dlt_to_dlt("('1', '2', '3')")
    ('1', '2', '3')

    Returns
    -------
    dlt : dict or list or tuple
    """

    if not isinstance(dlt_str_rep, str):
        raise TypeError("Argument must be str ...")
    dlt = literal_eval(dlt_str_rep)
    return dlt