def search_lunarcal(year):
    ''' search JieQi and Newmoon, step 1

    Arg:
        year: integer like 2014
    Return:
        a dictionary {ISODATE: Lunar Calendar Date in Chinese}
        start at last LC November
    '''

    global CALCACHE
    if year in CALCACHE:
        return CALCACHE[year]

    clc = find_astro(year)
    clcmonth = mark_lunarcal_month(clc)
    clcdays = mark_lunarcal_day(clcmonth)
    clcdays = mark_holiday(clcdays)

    output = {}
    for d in clcdays:
        output[d['date']] = d

    CALCACHE[year] = output  # cache it for future use
    CALCACHE['cached'].append(year)
    if len(CALCACHE['cached']) > MAXCACHE:
        del CALCACHE[CALCACHE['cached'][0]]
        CALCACHE['cached'].pop(0)

    return output
 search JieQi and Newmoon, step 1

    Arg:
        year: integer like 2014
    Return:
        a dictionary {ISODATE: Lunar Calendar Date in Chinese}
        start at last LC November
    
lunarcalbase.py