Warning: This is a very naive join. Only use it when measures and groups will remain entirely within each subcollection.

    For example: if each collection has states grouped by date and both include the same date, then the new collection 
        would have both of those groups, likely causing problems for group measures and potentially breaking many things.

def join_state_collections( collection_a, collection_b):
    """
    Warning: This is a very naive join. Only use it when measures and groups will remain entirely within each subcollection.

    For example: if each collection has states grouped by date and both include the same date, then the new collection 
        would have both of those groups, likely causing problems for group measures and potentially breaking many things.

    """
    
    return StateCollection(
            (collection_a.states + collection_b.states), 
            { grouping_name:_combined_grouping_values(grouping_name, collection_a,collection_b)
                for grouping_name in set( list(collection_a.groupings.keys()) + list(collection_b.groupings.keys()) ) })