def timedict_to_entry(timedict, other_entry, data_type, description):
    """
    Returns a entry (ie. Document) that follows the same template as other_entry but contains a new
    timedict, data_type, and description.

    :param timedict: timedict with desired data
    :param other_entry: database document in the desired format to use as a template. (most values will be copied)
    :param data_type: database key (string) describing data_type of new timedict
    :param description: a descriptive written string to inform a reader what data type is in this document'
    :return: new entry combining all inputs.
    """
    source_entry = other_entry.copy()
    if 'data' in source_entry:
        del source_entry['data']
    if 'part' in source_entry:
        del source_entry['part']

    new_entry = {}
    new_entry.update(source_entry)
    new_entry['description'] = description
    new_entry['data_type'] = data_type
    new_entry['data'] = timedict
    new_entry['part'] = '1of1'
    return new_entry