def out_recipe(recipes):
    """Output 1 or more recipes"""
    # *EYE: process this to find out - what I passed, if it is a list of #'s
    # then convert them to recipe objects.
    if type(recipes) is types.ListType:
        return CPM('specify_recipe', recipes=recipes)
    else: # return a single recipe
        return CPM('specify_recipe', recipes=[recipes])
def out_smy_qry(query_dict):
    """
    Takes a dict of queries to be summarized according to DB item types.
    
    See Database.get_recipes() for the possible keys and values
    that can be used. e.g.: {'include_ingredients': ['egg']}
    """
    assert type(query_dict) is types.DictType, "out_smy_qry item_list is not a dict type"
    # Might want to check the value is a list.
    return CPM('summarize_query', query=query_dict)
def out_clarify(categ='ingredient', item_list=[]):
    """Clarify which of several choices the user will want.
    Right now, the category may only be ingredients.
    Later we may want to add dish category, type of cooking category 
    and more.   Clarify_list takes a list of ingredients to choose from.
    For instance you want to clarify whether you want to choose between
    chicken, beef and pork.
    e.g. clarify_list=['chicken', 'beef', 'pork']
    """
    assert type(item_list) is types.ListType, "clarify item_list is not a list"
    return CPM('clarify', clarify_cat=categ, clarify_list=item_list)
def out_no():
    """respond in the negative."""
    return CPM('decline')
def out_yes():
    """respond in the affirmative."""
    return CPM('affirm')
def out(msg):
    """Simple echoed message"""
    return CPM('echo', message=msg)
def out_advise():
    """NOT IMPLEMENTED YET: provides some culinary advise as we leave program"""
    return CPM('advise')
def out_related_search(related_items):
    """NOT IMPLEMENTED YET"""
    return CPM('search_fail')
def out_related_search(related_item_list):
    """NOT IMPLEMENTED YET"""
    return CPM('related_search', related_items=related_item_list)
def out_specify(recipe_list=[]):
    return CPM('specify_recipe', query={'include_ingredients': recipe_list})
def out_bye():
    return (CPM('goodbye'))
def out_ack():
    return CPM('acknowledge')