def lowercase_to_camelcase(python_input, camelcase_input=None):
    
    '''
        a function to recursively convert data with lowercase key names into camelcase keys 
        
    :param camelcase_input: list or dictionary with lowercase keys 
    :param python_input: [optional] list or dictionary with default camelcase keys in output
    :return: dictionary with camelcase key names
    '''
    
    if camelcase_input:
        if python_input.__class__ != camelcase_input.__class__:
            raise ValueError('camelcase_input type %s does not match python_input type %s' % (camelcase_input.__class__, python_input.__class__))
    if isinstance(python_input, dict):
        return _to_camelcase_dict(python_input, camelcase_input)
    elif isinstance(python_input, list):
        return _ingest_list(python_input, _to_camelcase_dict, camelcase_input)
    else:
        return python_input