def METHOD_NAME(filename, format=None, **kwargs):
    """Provide a trajectory reader instance for *filename*.
    This function guesses the file format from the extension of *filename* and
    it will throw a :exc:`TypeError` if the extension is not recognized.
    In most cases, no special keyword arguments are necessary.
    All other keywords are passed on to the underlying Reader classes; see
    their documentation for details.
    Parameters
    ----------
    filename : str or tuple
        filename (or tuple of filenames) of the input coordinate file
    kwargs
        Keyword arguments for the selected Reader class.
    Returns
    -------
    :class:`~base.Reader`
        A trajectory Reader instance
    See Also
    --------
    :ref:`Supported coordinate formats`
    """
    if isinstance(filename, tuple):
        Reader = get_reader_for(filename[0],
                                format=filename[1])
        filename = filename[0]
    else:
        Reader = get_reader_for(filename, format=format)
    try:
        return Reader(filename, **kwargs)
    except ValueError:
        errmsg = f'Unable to read {filename} with {Reader}.'
        raise TypeError(errmsg) from None