From 7aae92b3c864a22bd6a4c7826aa24a384fb377a5 Mon Sep 17 00:00:00 2001 From: Enrico Wegner Date: Sun, 23 Feb 2025 15:01:01 +0100 Subject: [PATCH] adjusting for new download links --- src/md.jl | 20 +++++++++++++++----- src/qd.jl | 20 +++++++++++++++----- 2 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/md.jl b/src/md.jl index 873fa26..5f20817 100644 --- a/src/md.jl +++ b/src/md.jl @@ -50,15 +50,25 @@ struct FredMD function FredMD(d::Date) vintage = Dates.format(d, dateformat"yyyy-mm") - url = "https://files.stlouisfed.org/files/htdocs/fred-md/monthly/$(vintage).csv" - fred_md = CSV.read(download(url), DataFrame) - original, tcodes, transformed = load_fred_md(fred_md) - new(original, transformed, tcodes) + urls = [ + "https://files.stlouisfed.org/files/htdocs/fred-md/monthly/$(vintage).csv", + "https://www.stlouisfed.org/-/media/project/frbstl/stlouisfed/research/fred-md/monthly/$(vintage).csv" + ] + for url in urls + try + fred_md = CSV.read(download(url), DataFrame) + original, tcodes, transformed = load_fred_md(fred_md) + return new(original, transformed, tcodes) + catch + continue + end + end + error("Could not download Fred MD data for vintage $(vintage).") end function FredMD() @info "Retrieving the most recent FRED MD data. \n For publishable research it is better to specify the vintage using FredMD(d::Date)." - url = "https://files.stlouisfed.org/files/htdocs/fred-md/monthly/current.csv" + url = "https://www.stlouisfed.org/-/media/project/frbstl/stlouisfed/research/fred-md/monthly/current.csv" fred_md = CSV.read(download(url), DataFrame) original, tcodes, transformed = load_fred_md(fred_md) new(original, transformed, tcodes) diff --git a/src/qd.jl b/src/qd.jl index 3c465d6..596fa84 100644 --- a/src/qd.jl +++ b/src/qd.jl @@ -51,15 +51,25 @@ struct FredQD function FredQD(d::Date) vintage = Dates.format(d, dateformat"yyyy-mm") - url = "https://files.stlouisfed.org/files/htdocs/fred-md/quarterly/$(vintage).csv" - fred_qd = CSV.read(download(url), DataFrame) - original, tcodes, transformed = load_fred_qd(fred_qd) - new(original, transformed, tcodes) + urls = [ + "https://files.stlouisfed.org/files/htdocs/fred-md/quarterly/$(vintage).csv", + "https://www.stlouisfed.org/-/media/project/frbstl/stlouisfed/research/fred-md/quarterly/$(vintage).csv" + ] + for url in urls + try + fred_qd = CSV.read(download(url), DataFrame) + original, tcodes, transformed = load_fred_qd(fred_qd) + return new(original, transformed, tcodes) + catch + continue + end + end + error("Could not download Fred QD data for vintage $(vintage).") end function FredQD() @info "Retrieving the most recent FRED QD data. \n For publishable research it is better to specify the vintage using FredQD(d::Date)." - url = "https://files.stlouisfed.org/files/htdocs/fred-md/quarterly/current.csv" + url = "https://www.stlouisfed.org/-/media/project/frbstl/stlouisfed/research/fred-md/quarterly/current.csv" fred_qd = CSV.read(download(url), DataFrame) original, tcodes, transformed = load_fred_qd(fred_qd) new(original, transformed, tcodes)