def get_yield_curve_bus_adj(date): data = parse_xml(get(construct_url(date.year, date.month, date.day))) curr_date = date day_adjusted = 0 while len(data) == 0: if day_adjusted == go_back_days: raise Exception('went back '+ str(day_adjusted) + ' business days (from '+str(date)+' ), no yield data found.') curr_date = curr_date - timedelta(days=1) data = parse_xml(get(construct_url(curr_date.year, curr_date.month, curr_date.day))) #print(curr_date, data) if is_bday(curr_date): day_adjusted += 1 return data
def get_yield_curve(year=None, month=None, day=None): if day: return get_yield_curve_bus_adj(datetime(year, month, day)) return parse_xml(get(construct_url(year, month, day)))
def get_yield_curve_curr_month(): url = 'https://www.treasury.gov/resource-center/data-chart-center/interest-rates/pages/XmlView.aspx?data=yield' return parse_xml(get(url))
def test_get(): print("get xml from us treasury gov") url = "https://www.treasury.gov/resource-center/data-chart-center/interest-rates/pages/XmlView.aspx?data=yield" assert len(get(url)) > 0