def make_connection(transport, **kwargs):
    """ Creates a connection instance based on the transport

    This function creates the EapiConnection object based on the desired
    transport.  It looks up the transport class in the TRANSPORTS global
    dictionary.

    Args:
        transport (string): The transport to use to create the instance.
        **kwargs: Arbitrary keyword arguments.

    Returns:
        An instance of a connection object based on the transport

    Raises:
        TypeError: A TypeError is raised if the transport keyword is not
            found in the list (keys) of available transports.
    """
    if transport not in TRANSPORTS:
        raise TypeError('invalid transport specified')
    klass = TRANSPORTS[transport]
    return klass(**kwargs)