def Expression(*args, **kwargs):
    """
    Return an appropriate Expression given the arguments

    Parameters
    ----------
    args : tuple
        Positional arguments passed to the Expression class
    kwargs : dict
        Keyword arguments passed to the Expression class
    """
    # dispatch
    if not hasattr(args[0], '_Expression'):
        return BaseExpression(*args, *kwargs)
    else:
        return args[0]._Expression(*args, **kwargs)
Return an appropriate Expression given the arguments

    Parameters
    ----------
    args : tuple
        Positional arguments passed to the Expression class
    kwargs : dict
        Keyword arguments passed to the Expression class