mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-27 04:31:13 +00:00
[Feature] Add TIPS Yields (to maturity) (#6597)
* add tips yields * default start/end date * gonna need that one * grammar police * mypy * mypy * tests..? * mypy.. * trick pytest..? * try without CommandRunner * black * test cassettes
This commit is contained in:
@@ -148,7 +148,7 @@ class ParametersBuilder:
|
||||
try:
|
||||
if isinstance(obj, dict):
|
||||
return obj
|
||||
return asdict(obj) if is_dataclass(obj) else dict(obj)
|
||||
return asdict(obj) if is_dataclass(obj) else dict(obj) # type: ignore
|
||||
except Exception:
|
||||
return {}
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
"""TIPS (Treasury Inflation-Protected Securities) Yields Standard Model."""
|
||||
|
||||
from datetime import date as dateType
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import Field
|
||||
|
||||
from openbb_core.provider.abstract.data import Data
|
||||
from openbb_core.provider.abstract.query_params import QueryParams
|
||||
from openbb_core.provider.utils.descriptions import (
|
||||
DATA_DESCRIPTIONS,
|
||||
QUERY_DESCRIPTIONS,
|
||||
)
|
||||
|
||||
|
||||
class TipsYieldsQueryParams(QueryParams):
|
||||
"""TIPS Yields Query."""
|
||||
|
||||
start_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("start_date", ""),
|
||||
)
|
||||
end_date: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description=QUERY_DESCRIPTIONS.get("end_date", ""),
|
||||
)
|
||||
|
||||
|
||||
class TipsYieldsData(Data):
|
||||
"""TIPS Yields Data."""
|
||||
|
||||
date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
|
||||
symbol: Optional[str] = Field(
|
||||
default=None,
|
||||
description=DATA_DESCRIPTIONS.get("symbol", ""),
|
||||
)
|
||||
due: Optional[dateType] = Field(
|
||||
default=None,
|
||||
description="The due date (maturation date) of the security.",
|
||||
)
|
||||
name: Optional[str] = Field(
|
||||
default=None,
|
||||
description="The name of the security.",
|
||||
)
|
||||
value: float = Field(
|
||||
default=None,
|
||||
description="The yield value.",
|
||||
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
|
||||
)
|
||||
@@ -804,3 +804,31 @@ def test_fixedincome_rate_overnight_bank_funding(params, headers):
|
||||
result = requests.get(url, headers=headers, timeout=10)
|
||||
assert isinstance(result, requests.Response)
|
||||
assert result.status_code == 200
|
||||
|
||||
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"maturity": None,
|
||||
"start_date": None,
|
||||
"end_date": None,
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
"provider": "fred",
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_government_tips_yields(params, headers):
|
||||
"""Test the TIPS Yields endpoint."""
|
||||
params = {p: v for p, v in params.items() if v}
|
||||
|
||||
query_str = get_querystring(params, [])
|
||||
url = f"http://0.0.0.0:8000/api/v1/fixedincome/government/tips_yields?{query_str}"
|
||||
result = requests.get(url, headers=headers, timeout=10)
|
||||
assert isinstance(result, requests.Response)
|
||||
assert result.status_code == 200
|
||||
|
||||
@@ -750,3 +750,28 @@ def test_fixedincome_rate_overnight_bank_funding(params, obb):
|
||||
assert result
|
||||
assert isinstance(result, OBBject)
|
||||
assert len(result.results) > 0
|
||||
|
||||
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"maturity": None,
|
||||
"start_date": None,
|
||||
"end_date": None,
|
||||
"transform": None,
|
||||
"aggregation_method": None,
|
||||
"frequency": None,
|
||||
"provider": "fred",
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_fixedincome_government_tips_yields(params, obb):
|
||||
"""Test the TIPS Yields endpoint."""
|
||||
result = obb.fixedincome.government.tips_yields(**params)
|
||||
assert result
|
||||
assert isinstance(result, OBBject)
|
||||
assert len(result.results) > 0
|
||||
|
||||
@@ -167,3 +167,20 @@ async def treasury_prices(
|
||||
) -> OBBject:
|
||||
"""Government Treasury Prices by date."""
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
|
||||
@router.command(
|
||||
model="TipsYields",
|
||||
examples=[
|
||||
APIEx(parameters={"provider": "fred"}),
|
||||
APIEx(parameters={"maturity": 10, "provider": "fred"}),
|
||||
],
|
||||
)
|
||||
async def tips_yields(
|
||||
cc: CommandContext,
|
||||
provider_choices: ProviderChoices,
|
||||
standard_params: StandardParams,
|
||||
extra_params: ExtraParams,
|
||||
) -> OBBject:
|
||||
"""Get current Treasury inflation-protected securities yields."""
|
||||
return await OBBject.from_query(Query(**locals()))
|
||||
|
||||
176
openbb_platform/openbb/assets/reference.json
vendored
176
openbb_platform/openbb/assets/reference.json
vendored
@@ -33969,6 +33969,182 @@
|
||||
},
|
||||
"model": "TreasuryRates"
|
||||
},
|
||||
"/fixedincome/government/tips_yields": {
|
||||
"deprecated": {
|
||||
"flag": null,
|
||||
"message": null
|
||||
},
|
||||
"description": "Get current Treasury inflation-protected securities yields.",
|
||||
"examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.fixedincome.government.tips_yields(provider='fred')\nobb.fixedincome.government.tips_yields(maturity=10, provider='fred')\n```\n\n",
|
||||
"parameters": {
|
||||
"standard": [
|
||||
{
|
||||
"name": "start_date",
|
||||
"type": "Union[date, str]",
|
||||
"description": "Start date of the data, in YYYY-MM-DD format.",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": null
|
||||
},
|
||||
{
|
||||
"name": "end_date",
|
||||
"type": "Union[date, str]",
|
||||
"description": "End date of the data, in YYYY-MM-DD format.",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": null
|
||||
},
|
||||
{
|
||||
"name": "provider",
|
||||
"type": "Literal['fred']",
|
||||
"description": "The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.",
|
||||
"default": null,
|
||||
"optional": true
|
||||
}
|
||||
],
|
||||
"fred": [
|
||||
{
|
||||
"name": "maturity",
|
||||
"type": "Literal[5, 10, 20, 30]",
|
||||
"description": "The maturity of the security in years - 5, 10, 20, 30 - defaults to all. Note that the maturity is the tenor of the security, not the time to maturity.",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": [
|
||||
5,
|
||||
10,
|
||||
20,
|
||||
30
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "frequency",
|
||||
"type": "Literal['a', 'q', 'm', 'w', 'd', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']",
|
||||
"description": "Frequency aggregation to convert high frequency data to lower frequency. None = No change a = Annual q = Quarterly m = Monthly w = Weekly d = Daily wef = Weekly, Ending Friday weth = Weekly, Ending Thursday wew = Weekly, Ending Wednesday wetu = Weekly, Ending Tuesday wem = Weekly, Ending Monday wesu = Weekly, Ending Sunday wesa = Weekly, Ending Saturday bwew = Biweekly, Ending Wednesday bwem = Biweekly, Ending Monday",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"d",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "aggregation_method",
|
||||
"type": "Literal['avg', 'sum', 'eop']",
|
||||
"description": "A key that indicates the aggregation method used for frequency aggregation. avg = Average sum = Sum eop = End of Period",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": [
|
||||
"avg",
|
||||
"sum",
|
||||
"eop"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "transform",
|
||||
"type": "Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca']",
|
||||
"description": "Transformation type None = No transformation chg = Change ch1 = Change from Year Ago pch = Percent Change pc1 = Percent Change from Year Ago pca = Compounded Annual Rate of Change cch = Continuously Compounded Rate of Change cca = Continuously Compounded Annual Rate of Change",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": [
|
||||
"chg",
|
||||
"ch1",
|
||||
"pch",
|
||||
"pc1",
|
||||
"pca",
|
||||
"cch",
|
||||
"cca"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"returns": {
|
||||
"OBBject": [
|
||||
{
|
||||
"name": "results",
|
||||
"type": "List[TipsYields]",
|
||||
"description": "Serializable results."
|
||||
},
|
||||
{
|
||||
"name": "provider",
|
||||
"type": "Optional[Literal['fred']]",
|
||||
"description": "Provider name."
|
||||
},
|
||||
{
|
||||
"name": "warnings",
|
||||
"type": "Optional[List[Warning_]]",
|
||||
"description": "List of warnings."
|
||||
},
|
||||
{
|
||||
"name": "chart",
|
||||
"type": "Optional[Chart]",
|
||||
"description": "Chart object."
|
||||
},
|
||||
{
|
||||
"name": "extra",
|
||||
"type": "Dict[str, Any]",
|
||||
"description": "Extra info."
|
||||
}
|
||||
]
|
||||
},
|
||||
"data": {
|
||||
"standard": [
|
||||
{
|
||||
"name": "date",
|
||||
"type": "date",
|
||||
"description": "The date of the data.",
|
||||
"default": "",
|
||||
"optional": false,
|
||||
"choices": null
|
||||
},
|
||||
{
|
||||
"name": "symbol",
|
||||
"type": "str",
|
||||
"description": "Symbol representing the entity requested in the data.",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": null
|
||||
},
|
||||
{
|
||||
"name": "due",
|
||||
"type": "date",
|
||||
"description": "The due date (maturation date) of the security.",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": null
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"type": "str",
|
||||
"description": "The name of the security.",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": null
|
||||
},
|
||||
{
|
||||
"name": "value",
|
||||
"type": "float",
|
||||
"description": "The yield value.",
|
||||
"default": null,
|
||||
"optional": true,
|
||||
"choices": null
|
||||
}
|
||||
],
|
||||
"fred": []
|
||||
},
|
||||
"model": "TipsYields"
|
||||
},
|
||||
"/fixedincome/corporate/ice_bofa": {
|
||||
"deprecated": {
|
||||
"flag": true,
|
||||
|
||||
@@ -15,6 +15,7 @@ from typing_extensions import Annotated, deprecated
|
||||
|
||||
class ROUTER_fixedincome_government(Container):
|
||||
"""/fixedincome/government
|
||||
tips_yields
|
||||
treasury_rates
|
||||
us_yield_curve
|
||||
yield_curve
|
||||
@@ -23,6 +24,126 @@ class ROUTER_fixedincome_government(Container):
|
||||
def __repr__(self) -> str:
|
||||
return self.__doc__ or ""
|
||||
|
||||
@exception_handler
|
||||
@validate
|
||||
def tips_yields(
|
||||
self,
|
||||
start_date: Annotated[
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="Start date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
end_date: Annotated[
|
||||
Union[datetime.date, None, str],
|
||||
OpenBBField(description="End date of the data, in YYYY-MM-DD format."),
|
||||
] = None,
|
||||
provider: Annotated[
|
||||
Optional[Literal["fred"]],
|
||||
OpenBBField(
|
||||
description="The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred."
|
||||
),
|
||||
] = None,
|
||||
**kwargs
|
||||
) -> OBBject:
|
||||
"""Get current Treasury inflation-protected securities yields.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
start_date : Union[datetime.date, None, str]
|
||||
Start date of the data, in YYYY-MM-DD format.
|
||||
end_date : Union[datetime.date, None, str]
|
||||
End date of the data, in YYYY-MM-DD format.
|
||||
provider : Optional[Literal['fred']]
|
||||
The provider to use, by default None. If None, the priority list configured in the settings is used. Default priority: fred.
|
||||
maturity : Optional[Literal[5, 10, 20, 30]]
|
||||
The maturity of the security in years - 5, 10, 20, 30 - defaults to all. Note that the maturity is the tenor of the security, not the time to maturity. (provider: fred)
|
||||
frequency : Optional[Literal['a', 'q', 'm', 'w', 'd', 'wef', 'weth', 'wew', 'wetu', 'wem', 'wesu', 'wesa', 'bwew', 'bwem']]
|
||||
Frequency aggregation to convert high frequency data to lower frequency.
|
||||
None = No change
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
d = Daily
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
(provider: fred)
|
||||
aggregation_method : Optional[Literal['avg', 'sum', 'eop']]
|
||||
A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
(provider: fred)
|
||||
transform : Optional[Literal['chg', 'ch1', 'pch', 'pc1', 'pca', 'cch', 'cca']]
|
||||
Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
(provider: fred)
|
||||
|
||||
Returns
|
||||
-------
|
||||
OBBject
|
||||
results : List[TipsYields]
|
||||
Serializable results.
|
||||
provider : Optional[Literal['fred']]
|
||||
Provider name.
|
||||
warnings : Optional[List[Warning_]]
|
||||
List of warnings.
|
||||
chart : Optional[Chart]
|
||||
Chart object.
|
||||
extra : Dict[str, Any]
|
||||
Extra info.
|
||||
|
||||
TipsYields
|
||||
----------
|
||||
date : date
|
||||
The date of the data.
|
||||
symbol : Optional[str]
|
||||
Symbol representing the entity requested in the data.
|
||||
due : Optional[date]
|
||||
The due date (maturation date) of the security.
|
||||
name : Optional[str]
|
||||
The name of the security.
|
||||
value : Optional[float]
|
||||
The yield value.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from openbb import obb
|
||||
>>> obb.fixedincome.government.tips_yields(provider='fred')
|
||||
>>> obb.fixedincome.government.tips_yields(maturity=10, provider='fred')
|
||||
""" # noqa: E501
|
||||
|
||||
return self._run(
|
||||
"/fixedincome/government/tips_yields",
|
||||
**filter_inputs(
|
||||
provider_choices={
|
||||
"provider": self._get_provider(
|
||||
provider,
|
||||
"fixedincome.government.tips_yields",
|
||||
("fred",),
|
||||
)
|
||||
},
|
||||
standard_params={
|
||||
"start_date": start_date,
|
||||
"end_date": end_date,
|
||||
},
|
||||
extra_params=kwargs,
|
||||
)
|
||||
)
|
||||
|
||||
@exception_handler
|
||||
@validate
|
||||
def treasury_rates(
|
||||
|
||||
@@ -48,6 +48,7 @@ from openbb_fred.models.survey_of_economic_conditions_chicago import (
|
||||
FredSurveyOfEconomicConditionsChicagoFetcher,
|
||||
)
|
||||
from openbb_fred.models.tbffr import FREDSelectedTreasuryBillFetcher
|
||||
from openbb_fred.models.tips_yields import FredTipsYieldsFetcher
|
||||
from openbb_fred.models.tmc import FREDTreasuryConstantMaturityFetcher
|
||||
from openbb_fred.models.university_of_michigan import FredUofMichiganFetcher
|
||||
from openbb_fred.models.us_yield_curve import (
|
||||
@@ -96,6 +97,7 @@ Research division of the Federal Reserve Bank of St. Louis that has more than
|
||||
"SelectedTreasuryConstantMaturity": FREDSelectedTreasuryConstantMaturityFetcher,
|
||||
"SelectedTreasuryBill": FREDSelectedTreasuryBillFetcher,
|
||||
"SurveyOfEconomicConditionsChicago": FredSurveyOfEconomicConditionsChicagoFetcher,
|
||||
"TipsYields": FredTipsYieldsFetcher,
|
||||
"UniversityOfMichigan": FredUofMichiganFetcher,
|
||||
"YieldCurve": FREDYieldCurveFetcher,
|
||||
},
|
||||
|
||||
244
openbb_platform/providers/fred/openbb_fred/models/tips_yields.py
Normal file
244
openbb_platform/providers/fred/openbb_fred/models/tips_yields.py
Normal file
@@ -0,0 +1,244 @@
|
||||
"""FRED TIPS Yields Model."""
|
||||
|
||||
# pylint: disable=unused-argument,too-many-locals
|
||||
|
||||
from typing import Any, Dict, List, Literal, Optional
|
||||
|
||||
from openbb_core.app.model.abstract.error import OpenBBError
|
||||
from openbb_core.provider.abstract.annotated_result import AnnotatedResult
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.tips_yields import (
|
||||
TipsYieldsData,
|
||||
TipsYieldsQueryParams,
|
||||
)
|
||||
from openbb_core.provider.utils.errors import EmptyDataError
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class FredTipsYieldsQueryParams(TipsYieldsQueryParams):
|
||||
"""FRED TIPS Yields Query."""
|
||||
|
||||
maturity: Optional[Literal[5, 10, 20, 30]] = Field(
|
||||
default=None,
|
||||
description="The maturity of the security in years - 5, 10, 20, 30 - defaults to all."
|
||||
+ " Note that the maturity is the tenor of the security, not the time to maturity.",
|
||||
json_schema_extra={"choices": [5, 10, 20, 30]},
|
||||
)
|
||||
frequency: Optional[
|
||||
Literal[
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"d",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
] = Field(
|
||||
default=None,
|
||||
description="""Frequency aggregation to convert high frequency data to lower frequency.
|
||||
None = No change
|
||||
a = Annual
|
||||
q = Quarterly
|
||||
m = Monthly
|
||||
w = Weekly
|
||||
d = Daily
|
||||
wef = Weekly, Ending Friday
|
||||
weth = Weekly, Ending Thursday
|
||||
wew = Weekly, Ending Wednesday
|
||||
wetu = Weekly, Ending Tuesday
|
||||
wem = Weekly, Ending Monday
|
||||
wesu = Weekly, Ending Sunday
|
||||
wesa = Weekly, Ending Saturday
|
||||
bwew = Biweekly, Ending Wednesday
|
||||
bwem = Biweekly, Ending Monday
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": [
|
||||
"a",
|
||||
"q",
|
||||
"m",
|
||||
"w",
|
||||
"d",
|
||||
"wef",
|
||||
"weth",
|
||||
"wew",
|
||||
"wetu",
|
||||
"wem",
|
||||
"wesu",
|
||||
"wesa",
|
||||
"bwew",
|
||||
"bwem",
|
||||
]
|
||||
},
|
||||
)
|
||||
aggregation_method: Optional[Literal["avg", "sum", "eop"]] = Field(
|
||||
default=None,
|
||||
description="""A key that indicates the aggregation method used for frequency aggregation.
|
||||
avg = Average
|
||||
sum = Sum
|
||||
eop = End of Period
|
||||
""",
|
||||
json_schema_extra={"choices": ["avg", "sum", "eop"]},
|
||||
)
|
||||
transform: Optional[Literal["chg", "ch1", "pch", "pc1", "pca", "cch", "cca"]] = (
|
||||
Field(
|
||||
default=None,
|
||||
description="""Transformation type
|
||||
None = No transformation
|
||||
chg = Change
|
||||
ch1 = Change from Year Ago
|
||||
pch = Percent Change
|
||||
pc1 = Percent Change from Year Ago
|
||||
pca = Compounded Annual Rate of Change
|
||||
cch = Continuously Compounded Rate of Change
|
||||
cca = Continuously Compounded Annual Rate of Change
|
||||
""",
|
||||
json_schema_extra={
|
||||
"choices": ["chg", "ch1", "pch", "pc1", "pca", "cch", "cca"]
|
||||
},
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class FredTipsYieldsData(TipsYieldsData):
|
||||
"""FRED TIPS Yields Data."""
|
||||
|
||||
|
||||
class FredTipsYieldsFetcher(
|
||||
Fetcher[
|
||||
FredTipsYieldsQueryParams,
|
||||
List[FredTipsYieldsData],
|
||||
]
|
||||
):
|
||||
"""FRED TIPS Yields Fetcher."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> FredTipsYieldsQueryParams:
|
||||
"""Transform the query."""
|
||||
return FredTipsYieldsQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
async def aextract_data(
|
||||
query: FredTipsYieldsQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> Dict:
|
||||
"""Extract the data."""
|
||||
# pylint: disable=import-outside-toplevel
|
||||
from openbb_fred.models.search import FredSearchFetcher
|
||||
from openbb_fred.models.series import FredSeriesFetcher
|
||||
from pandas import DataFrame, to_datetime
|
||||
|
||||
# We get the series IDs because they will change over time.
|
||||
async def get_tips_series():
|
||||
"""Get series IDs for the TIPS."""
|
||||
fetcher = FredSearchFetcher()
|
||||
res = await fetcher.fetch_data(
|
||||
params={"release_id": 72}, credentials=credentials
|
||||
)
|
||||
df = DataFrame([d.model_dump() for d in res]) # type: ignore
|
||||
df = df.query("not title.str.contains('DISCONTINUED')").set_index(
|
||||
"series_id"
|
||||
)
|
||||
df.loc[:, "due"] = df.title.apply(
|
||||
lambda x: x.split("Due ")[-1].strip()
|
||||
).apply(to_datetime)
|
||||
df = df[["due", "observation_start", "observation_end", "title"]]
|
||||
return df.sort_values(by="due").reset_index() # type: ignore
|
||||
|
||||
try:
|
||||
ids_df = await get_tips_series()
|
||||
ids = ids_df.series_id.to_list()
|
||||
except Exception as e:
|
||||
raise OpenBBError(e) from e
|
||||
|
||||
# If we are looking for a specific tenor, the request will be smaller.
|
||||
if query.maturity:
|
||||
ids = [i for i in ids if str(i[3]) == (f"{str(query.maturity)[0]}")]
|
||||
|
||||
# We split the due date from the title so that we can format it as a datetime.date object.
|
||||
due_map = ids_df.set_index("series_id")["due"].dt.date.to_dict()
|
||||
# We make a seriesID-title map for later.
|
||||
title_map = (
|
||||
ids_df.set_index("series_id")["title"]
|
||||
.str.replace("Treasury Inflation-Indexed", "TIPS")
|
||||
.str.replace(" ", " ")
|
||||
.str.strip()
|
||||
.to_dict()
|
||||
)
|
||||
|
||||
params = {
|
||||
k: v
|
||||
for k, v in {
|
||||
"symbol": ",".join(ids),
|
||||
"start_date": query.start_date,
|
||||
"end_date": query.end_date,
|
||||
"frequency": query.frequency,
|
||||
"aggregation_method": query.aggregation_method,
|
||||
"transform": query.transform,
|
||||
}.items()
|
||||
if v is not None
|
||||
}
|
||||
|
||||
try:
|
||||
fetcher = FredSeriesFetcher()
|
||||
res = await fetcher.fetch_data(params=params, credentials=credentials)
|
||||
df = DataFrame([d.model_dump() for d in res.result]) # type: ignore
|
||||
meta = res.metadata # type: ignore
|
||||
except Exception as e:
|
||||
raise OpenBBError(e) from e
|
||||
|
||||
for k, v in title_map.items():
|
||||
if k in meta:
|
||||
meta[k]["title"] = v # type: ignore
|
||||
|
||||
# We flatten the data and format the output with the metadata.
|
||||
df = (
|
||||
df.melt(
|
||||
id_vars="date",
|
||||
value_vars=[d for d in df.columns if d != "date"],
|
||||
var_name="symbol",
|
||||
)
|
||||
.dropna()
|
||||
.sort_values(by="date")
|
||||
)
|
||||
df = df.reset_index(drop=True)
|
||||
df["due"] = df.symbol.map(due_map)
|
||||
df["name"] = df.symbol.map(title_map)
|
||||
df["value"] = df["value"] / 100
|
||||
df = df[["date", "due", "symbol", "name", "value"]]
|
||||
df = df.sort_values(by=["date", "due"]) # type: ignore
|
||||
records = df.to_dict(orient="records")
|
||||
output = {
|
||||
"records": records,
|
||||
"meta": meta,
|
||||
}
|
||||
|
||||
return output
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: FredTipsYieldsQueryParams,
|
||||
data: Dict,
|
||||
**kwargs: Any,
|
||||
) -> AnnotatedResult[List[FredTipsYieldsData]]:
|
||||
"""Transform the data."""
|
||||
results = data.get("records", [])
|
||||
meta = data.get("meta", {})
|
||||
if not results:
|
||||
raise EmptyDataError(
|
||||
"There was an error with the request and was returned empty."
|
||||
)
|
||||
|
||||
return AnnotatedResult(
|
||||
result=[FredTipsYieldsData.model_validate(r) for r in results],
|
||||
metadata=meta,
|
||||
)
|
||||
@@ -0,0 +1,350 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/release/series?api_key=MOCK_API_KEY&file_type=json&offset=0&release_id=72
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
ugZm6CfdYztEB+lGWsrGPAGLrQUA3O8b0uT/AAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '4817'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Last-Modified:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=312FB752BA5A8C31E3F1375DB9646F7D~000000000000000000000000000000~YAAQZWIsF0oGLcyQAQAAUjJB1hjNFtIO37+/PP5iEFGZnNeJxomEV90QFJbH03fO8+fyN32yZb7tNTBVxEHDgaF6Ops2rj1yEmxNDsLoD5zoVEkzoNpxzpV6HWTQ67kBSp2UfBS29666EKCo1t+dNeQeBGcBSEv18W1tPDuYBWKj80lnlD0xoQ2EutY8GxEKJ9CbTp3iQ7+5ZKOdzXE6fSPiCto9b2UclrztaP+uMaLda/+BuC8FPj9SkAZrPWnmPxjl8SXno5XANZmYzM7o+e/ToYK8UDgjd1f2Nb+v6kcfeVx0AmRoF7hxAMZQWb7j6oO/5VHrRn1FMsz2KifZREokb/40iSW152U2zmPsAvJuZY+uQWcWePs5AOC3wB+D;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:05:15 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?aggregation_method=eop&api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-07-17&observation_start=2024-07-17&series_id=DTP5C24
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyVNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDY0V9JRQlaAqh8sXZqXWVKsZKWUk5kHUlxaUlBaEl9SWZCqZGWoo5SWmZMK5SllFeeDlRSl
|
||||
pBbFJ1UqWaEYnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmlcCNi0/La04tUTJykBHKSczNxMk
|
||||
aAACKI4sVrKKpiRAwA5BBCDYk4CVJeaUpipZKZnomRpYKNXG1gIAoaXmmHIBAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '218'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=2FC66DC3E0F4AC1DAF922A59F6FAF4B5~000000000000000000000000000000~YAAQZWIsF1YGLcyQAQAASjNB1hiBl5ShZYFs7oArUcP7FhtQnUSwMXOckz0hxv4mS/jhokoTr/PCy2c+W7FibpQjRsJ6+IxrEqT4JjUZBs0M6jFLUBNjhK4XU7mBkA0tujNPy9Ea1uwD3VWFoI0+xGO8G/NUMRHWNfR+TDd0mR/ez1rOXq5RxhBavvSiL1SHNcluWA05cp234kRu/YuhaaB6G/HsSYcZHqywzgH3rUmC7MHVR9jWm2iIVBjjx96R4JcEBOtT6L8WVVFI3xospSNb0nfokm1tUAFCvYoWzK0yGbIfWS10pvMmZNUEDp5IdDXJRDKqrXRaElB0Lat1fnWKpzJGvsuu3h5kbWZ0vtZUyF9MSk55T+nUli4+our3;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:05:15 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?aggregation_method=eop&api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-07-17&observation_start=2024-07-17&series_id=DTP5A25
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyVNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDY0V9JRQlaAqh8sXZqXWVKsZKWUk5kHUlxaUlBaEl9SWZCqZGWoo5SWmZMK5SllFeeDlRSl
|
||||
pBbFJ1UqWaEYnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmlcCNi0/La04tUTJykBHKSczNxMk
|
||||
aAACKI4sVrKKpiRAwA5BBCDYk4CVJeaUpipZKZnoGZibKdXG1gIA3wTraHIBAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '218'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=6A161008EA152C25E65CC17AF6AA7634~000000000000000000000000000000~YAAQZWIsF1wGLcyQAQAAwzNB1hiGAkjiDVbBzRO5Z1CouCcR37dwoQ4pJq72XWrXFGKEGl39Cx9rm/m84PN7BRxmPiNGJax+9Bc1Q2hGcR5A4az+ea6hFMg4ca/XTjTJh/OzNlckUjgjPnJe+rxrYmiAihJ0LFRrqmF8tVCe9cwAwZDeTGCm33w4LhGoF8cey1lSNijA0EjY4x1ogRXrcc7bkgoSc44KVywvtgkjFyNKGnd3IoRJU3UsnMC+mJKKyqJzPFaRmtACn3C2tg1yi5Y3vts2vuUXQBQvNbWSSlaDmz/T3NcXL1EOVpAUGGR1SB5AmFm78GYVSx5VphW/TR1Qna+JJnQjYYQGEJcuKcsUMLGOIKcXcgP73fDkjV70;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:05:15 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=2FC66DC3E0F4AC1DAF922A59F6FAF4B5~000000000000000000000000000000~YAAQZWIsF1YGLcyQAQAASjNB1hiBl5ShZYFs7oArUcP7FhtQnUSwMXOckz0hxv4mS/jhokoTr/PCy2c+W7FibpQjRsJ6+IxrEqT4JjUZBs0M6jFLUBNjhK4XU7mBkA0tujNPy9Ea1uwD3VWFoI0+xGO8G/NUMRHWNfR+TDd0mR/ez1rOXq5RxhBavvSiL1SHNcluWA05cp234kRu/YuhaaB6G/HsSYcZHqywzgH3rUmC7MHVR9jWm2iIVBjjx96R4JcEBOtT6L8WVVFI3xospSNb0nfokm1tUAFCvYoWzK0yGbIfWS10pvMmZNUEDp5IdDXJRDKqrXRaElB0Lat1fnWKpzJGvsuu3h5kbWZ0vtZUyF9MSk55T+nUli4+our3
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=DTP5C24
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyUNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXUICTJ2NTJC1kWxoSWZJTqqSlZKpbmRqYpGCgZ6hkamqQkhRamJxaVGlgmdeWk5iSWZ+
|
||||
nq5nXkpqRWqKglN+XoqOgktpqoKhQYy+oWmMPsgDSjpK+UnFqUVlYMXIfjPQNTCC+A1ZAar3DM2V
|
||||
dJTSilILS1PzkiuVrJRcEjNzKpHF4osz8sGh5aKko1Sal1lSrGSlFJBalJyaVwITgatRVdJRKk5N
|
||||
LM7PS8yJT0zJKi0uyQWps1Lyyy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCnyQ
|
||||
r0HRZmihYGBmZWBsZWCqa2CqpKNUkF9QmpNYlFlSqWRlaKCjlJdfkgpybWRmak6KQkm+Qm5iSSlI
|
||||
WiE/TyExObmoNDVFoaAoMy85syAxRy+mKCYPS/AHFOWXpCaXpKYoBKcmg7RnphbrKOQXKYR4BgTr
|
||||
KCQWpSoUwyUUyjPyi1MRhipkFiuUZKaCbS/JSFVwzs8rLs1NLVIIKMpMTlUAR62ChnOAp6aeQkgG
|
||||
isa8ZFBSSC1WKM8syVDIhCUHhcS8FIWUVBTJlFRoWtFTCM9IzVMA2QR1UyXE0yAng0RD9YL1FOCe
|
||||
LEisLAYrzi/KTM/MS8wBeQsSbcgho6NQnpGZnJFallqkkFmskF6UmliSWgQOL+f8gsqizPSMEh0F
|
||||
IwNDMx0Fj0SQKse8xJzKkszkYj2FoFRQCIOCD+wPwApSi3Izi4sz8/P0lGpjawFhzJyalgMAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '625'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=2FC66DC3E0F4AC1DAF922A59F6FAF4B5~000000000000000000000000000000~YAAQZWIsF10GLcyQAQAA1TNB1hgfhK7htgZyBJAWUMQcrZgE8jQ33h9JfHoKSM2HsJ06ECFUSsdQWF9IZ7uIKap+0eTwEMiNbr6JRiVUOI7HCmYasjMAYhKaV+wbvs3QBJqOkEjjkYgvrpOVnj93Ci7RUQzeNt+n4Ak/Jrk9EFvvDdYW4Nbajtbt4njNNPMS5qMl9VjtPN3BiFWuFF3CRqh6yr+9FnFg4LMjOOYdTnN51wAaPiwZyCMeS2BGCZonho76Lw7Ith7dsUP24VQSjjsns/S/uljzAX3V1YYMsZ/+WFrgAviRYVTKjUgd7CYvyz9Pshe8no43Dese+iKmDIABVyzgK/oVCRyCG5kEGsFOotrYWN9qDMzb1ePh8EJFqpMyxC3srAMy0ped91gCNA==;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:05:15 GMT; Max-Age=7200
|
||||
- bm_sv=49DA7BF1634281D04D7E9BBFD5A113B0~YAAQZWIsF14GLcyQAQAA1TNB1hjRu5YoL9cjne3TRspIUHB5WiVF4n8xxF9k4N56bcZpSUxhAVXvRw3RATRRQb42kpCGEfZUOP6zHHA8YMg6uREfV/WUpnCM5E4jI86VaRkd/FBXfp5Zj6ohRI0ctDHfTZcrpJFEX/e4qu/PBakZAi1wrS7XLHloBn/j7X6/60VjO9E496YvLkpgmupkoubRdfQxPkE9fa6HnnO8pi7kvGTq4QNqYGjvB+Mo0j++mrsqxw==~1;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:05:15 GMT; Max-Age=7200;
|
||||
Secure
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=6A161008EA152C25E65CC17AF6AA7634~000000000000000000000000000000~YAAQZWIsF1wGLcyQAQAAwzNB1hiGAkjiDVbBzRO5Z1CouCcR37dwoQ4pJq72XWrXFGKEGl39Cx9rm/m84PN7BRxmPiNGJax+9Bc1Q2hGcR5A4az+ea6hFMg4ca/XTjTJh/OzNlckUjgjPnJe+rxrYmiAihJ0LFRrqmF8tVCe9cwAwZDeTGCm33w4LhGoF8cey1lSNijA0EjY4x1ogRXrcc7bkgoSc44KVywvtgkjFyNKGnd3IoRJU3UsnMC+mJKKyqJzPFaRmtACn3C2tg1yi5Y3vts2vuUXQBQvNbWSSlaDmz/T3NcXL1EOVpAUGGR1SB5AmFm78GYVSx5VphW/TR1Qna+JJnQjYYQGEJcuKcsUMLGOIKcXcgP73fDkjV70
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=DTP5A25
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyUNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXUICTB2NTJG1kWxoSWZJTqqSlZKpbmRqYpGCgZ6hkamqQkhRamJxaVGlgmdeWk5iSWZ+
|
||||
nq5nXkpqRWqKglN+XoqOgktpqoJJjL6haYy+kQHYCflJxalFZWC1yF4z0DUw0zUGeQ1ZAarvDM2V
|
||||
dJTSilILS1PzkiuVrJRcEjNzKpHF4osz8sGB5aKko1Sal1lSrGSlFJBalJyaVwITgatRVdJRKk5N
|
||||
LM7PS8yJT0zJKi0uyQWps1Lyyy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCntY
|
||||
rBlaKBiYWRkYWxmY6hqAoqIgv6A0J7Eos6RSycrYUEcpL78kFeTayMzUnBSFknyF3MSSUpC0Qn6e
|
||||
QmJyclFpaopCQVFmXnJmQWKOXkxRTB6W0A8oyi9JTS5JTVEITk0Gac9MLdZRyC9SCPEMCNZRSCxK
|
||||
VSiGSyiUZ+QXpyIMVcgsVijJTAXbXpKRquCcn1dcmptapBBQlJmcqgCOWQUN5wBPTT2FkAwUjXnJ
|
||||
oJSQWqxQnlmSoZAJSw0KiXkpCimpKJIpqdCkoqcQnpGapwCyCeqmSoinQU4GiYbqBespwD1ZkFhZ
|
||||
DFacX5SZnpmXmAPyFiTakENGR6E8IzM5I7UstUghs1ghvSg1sSS1CBxezvkFlUWZ6RklOgpGBoZm
|
||||
OgoeiSBVjnmJOZUlmcnFegpBqaAQBgUf2B+AFaQW5WYWF2fm5+kp1cbWAgCpEhgylQMAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '622'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:05:15 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- bm_sv=B6BC30C1D123EC270CB80E34BC8A6EAE~YAAQZWIsF2oGLcyQAQAAfDRB1hhYL9XCOgdzivQ6AJLUQt2hSdZltKVnvZreOdJpwJK/0F6d+Xr0mPYiHLE8V75pUMSae05Fur5CYqQ/5b0I/pSkon9kb0u+qO2l0uwCWy5CE7FJPJQ+qUqZbMUq7d1oyns9W3iiN3IMaHw4SdERBXISnuk7DqTirxxZ5y3Qpkyx2V8wJlnx0WNJG2fNBkoaAes7O85cZU/UvnWHz8V9mep6LXsq6tnLUc+j8FMDTrTtfQ==~1;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:05:15 GMT; Max-Age=7200;
|
||||
Secure
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -0,0 +1,341 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/release/series?api_key=MOCK_API_KEY&file_type=json&offset=0&release_id=72
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
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
|
||||
ugZm6CfdYztEB+lGWsrGPAGLrQUA3O8b0uT/AAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '4817'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Last-Modified:
|
||||
- Sun, 21 Jul 2024 17:02:55 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?aggregation_method=eop&api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-07-17&observation_start=2024-07-17&series_id=DTP5C24
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyVNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDY0V9JRQlaAqh8sXZqXWVKsZKWUk5kHUlxaUlBaEl9SWZCqZGWoo5SWmZMK5SllFeeDlRSl
|
||||
pBbFJ1UqWaEYnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmlcCNi0/La04tUTJykBHKSczNxMk
|
||||
aAACKI4sVrKKpiRAwA5BBCDYk4CVJeaUpipZKZnomRpYKNXG1gIAoaXmmHIBAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '218'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=63739BEFDA7932BFAB14DAD81E5BDB17~000000000000000000000000000000~YAAQZWIsFx/8LMyQAQAAq51A1hi7OXLuhqzOrSl+e03UEFz0RM35E6A3pT5LpAcSgnifHTAU7GVnkchLXYtlpl5XBpS78n7nMdO8H88dmYhewu2BX/qYJwcXozQhRUnbfHwVmjThZzxdF7ZXuCXG3XdJlT1PhOzqNie2M33Vn00I3lrXW9Cz9fo01U0jeRRxas9fJoB5MbFRlXUKOJ8BkWlrjVK/r5RO7ILkjbysRxaPlCvTDKgn+VReklE0FNpO8rhpAwIWWoIT0v8AMil0jx7ZwS6/Y+drraLxRw4MC0vbfVThvp0DDAKrlUsBiiGPyuenx0JHYaX+8jQ024lQf6ynRCKGsjnSUo64o+WA2Hvux0KoVms7dZTbF5NUdv5O;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:04:37 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series/observations?aggregation_method=eop&api_key=MOCK_API_KEY&file_type=json&limit=100000&observation_end=2024-07-17&observation_start=2024-07-17&series_id=DTP5A25
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyVNJByKbmpaDL5ScVpxaVJZZk
|
||||
5udhaDY0V9JRQlaAqh8sXZqXWVKsZKWUk5kHUlxaUlBaEl9SWZCqZGWoo5SWmZMK5SllFeeDlRSl
|
||||
pBbFJ1UqWaEYnZJYkqqko1ScX1QSnw9SomSllFicrKSjlJxfmlcCNi0/La04tUTJykBHKSczNxMk
|
||||
aAACKI4sVrKKpiRAwA5BBCDYk4CVJeaUpipZKZnoGZibKdXG1gIA3wTraHIBAAA=
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '218'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=63739BEFDA7932BFAB14DAD81E5BDB17~000000000000000000000000000000~YAAQZWIsFx/8LMyQAQAAq51A1hi7OXLuhqzOrSl+e03UEFz0RM35E6A3pT5LpAcSgnifHTAU7GVnkchLXYtlpl5XBpS78n7nMdO8H88dmYhewu2BX/qYJwcXozQhRUnbfHwVmjThZzxdF7ZXuCXG3XdJlT1PhOzqNie2M33Vn00I3lrXW9Cz9fo01U0jeRRxas9fJoB5MbFRlXUKOJ8BkWlrjVK/r5RO7ILkjbysRxaPlCvTDKgn+VReklE0FNpO8rhpAwIWWoIT0v8AMil0jx7ZwS6/Y+drraLxRw4MC0vbfVThvp0DDAKrlUsBiiGPyuenx0JHYaX+8jQ024lQf6ynRCKGsjnSUo64o+WA2Hvux0KoVms7dZTbF5NUdv5O
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=DTP5C24
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyUNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXUICTJ2NTJC1kWxoSWZJTqqSlZKpbmRqYpGCgZ6hkamqQkhRamJxaVGlgmdeWk5iSWZ+
|
||||
nq5nXkpqRWqKglN+XoqOgktpqoKhQYy+oWmMPsgDSjpK+UnFqUVlYMXIfjPQNTCC+A1ZAar3DM2V
|
||||
dJTSilILS1PzkiuVrJRcEjNzKpHF4osz8sGh5aKko1Sal1lSrGSlFJBalJyaVwITgatRVdJRKk5N
|
||||
LM7PS8yJT0zJKi0uyQWps1Lyyy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCnyQ
|
||||
r0HRZmihYGBmZWBsZWCqa2CqpKNUkF9QmpNYlFlSqWRlaKCjlJdfkgpybWRmak6KQkm+Qm5iSSlI
|
||||
WiE/TyExObmoNDVFoaAoMy85syAxRy+mKCYPS/AHFOWXpCaXpKYoBKcmg7RnphbrKOQXKYR4BgTr
|
||||
KCQWpSoUwyUUyjPyi1MRhipkFiuUZKaCbS/JSFVwzs8rLs1NLVIIKMpMTlUAR62ChnOAp6aeQkgG
|
||||
isa8ZFBSSC1WKM8syVDIhCUHhcS8FIWUVBTJlFRoWtFTCM9IzVMA2QR1UyXE0yAng0RD9YL1FOCe
|
||||
LEisLAYrzi/KTM/MS8wBeQsSbcgho6NQnpGZnJFallqkkFmskF6UmliSWgQOL+f8gsqizPSMEh0F
|
||||
IwNDMx0Fj0SQKse8xJzKkszkYj2FoFRQCIOCD+wPwApSi3Izi4sz8/P0lGpjawFhzJyalgMAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '625'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- bm_sv=F66A7B5EFE81C4DAF0BDC1938F7830AC~YAAQZWIsFyr8LMyQAQAAQp5A1hjGd+251KLs5UL8y171E0refkKN5HSNsZ4KfEEDPHboCm8dLZq0nyHktfIUbkY2//rGA59QtGAM4ox2wx754l7BIlcVAvTzUBGljqcJAQ7UF5fI+l4KaSp65uLOKAEk1N/CC57hX7XTq7HvIcv8++BR0DOzNk5KUZRYMx/n1E+jYw4WhkG5jPdexYLn8mEQm3blkZ+OdYFcuYWcRltKvffPEzJM6ZK8g+c90j2E7h+Uug==~1;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:04:37 GMT; Max-Age=7200;
|
||||
Secure
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept:
|
||||
- application/json
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Connection:
|
||||
- keep-alive
|
||||
Cookie:
|
||||
- ak_bmsc=63739BEFDA7932BFAB14DAD81E5BDB17~000000000000000000000000000000~YAAQZWIsFx/8LMyQAQAAq51A1hi7OXLuhqzOrSl+e03UEFz0RM35E6A3pT5LpAcSgnifHTAU7GVnkchLXYtlpl5XBpS78n7nMdO8H88dmYhewu2BX/qYJwcXozQhRUnbfHwVmjThZzxdF7ZXuCXG3XdJlT1PhOzqNie2M33Vn00I3lrXW9Cz9fo01U0jeRRxas9fJoB5MbFRlXUKOJ8BkWlrjVK/r5RO7ILkjbysRxaPlCvTDKgn+VReklE0FNpO8rhpAwIWWoIT0v8AMil0jx7ZwS6/Y+drraLxRw4MC0vbfVThvp0DDAKrlUsBiiGPyuenx0JHYaX+8jQ024lQf6ynRCKGsjnSUo64o+WA2Hvux0KoVms7dZTbF5NUdv5O
|
||||
method: GET
|
||||
uri: https://api.stlouisfed.org/fred/series?api_key=MOCK_API_KEY&file_type=json&series_id=DTP5A25
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEA6pWKkpNzCnJzE2NLy5JLCpRslIyMjAy0TUw1zUyUNJByKbmpaDLFacWZaYWFytZ
|
||||
RVcrZYJkXUICTB2NTJG1kWxoSWZJTqqSlZKpbmRqYpGCgZ6hkamqQkhRamJxaVGlgmdeWk5iSWZ+
|
||||
nq5nXkpqRWqKglN+XoqOgktpqoJJjL6haYy+kQHYCflJxalFZWC1yF4z0DUw0zUGeQ1ZAarvDM2V
|
||||
dJTSilILS1PzkiuVrJRcEjNzKpHF4osz8sGB5aKko1Sal1lSrGSlFJBalJyaVwITgatRVdJRKk5N
|
||||
LM7PS8yJT0zJKi0uyQWps1Lyyy9RCIbK5FQqOILlUlOwq4eb5xfsqKSjlJNYXBJfWpCSWJIKCntY
|
||||
rBlaKBiYWRkYWxmY6hqAoqIgv6A0J7Eos6RSycrYUEcpL78kFeTayMzUnBSFknyF3MSSUpC0Qn6e
|
||||
QmJyclFpaopCQVFmXnJmQWKOXkxRTB6W0A8oyi9JTS5JTVEITk0Gac9MLdZRyC9SCPEMCNZRSCxK
|
||||
VSiGSyiUZ+QXpyIMVcgsVijJTAXbXpKRquCcn1dcmptapBBQlJmcqgCOWQUN5wBPTT2FkAwUjXnJ
|
||||
oJSQWqxQnlmSoZAJSw0KiXkpCimpKJIpqdCkoqcQnpGapwCyCeqmSoinQU4GiYbqBespwD1ZkFhZ
|
||||
DFacX5SZnpmXmAPyFiTakENGR6E8IzM5I7UstUghs1ghvSg1sSS1CBxezvkFlUWZ6RklOgpGBoZm
|
||||
OgoeiSBVjnmJOZUlmcnFegpBqaAQBgUf2B+AFaQW5WYWF2fm5+kp1cbWAgCpEhgylQMAAA==
|
||||
headers:
|
||||
Cache-Control:
|
||||
- max-age=0, no-cache
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Length:
|
||||
- '622'
|
||||
Content-Type:
|
||||
- application/json; charset=UTF-8
|
||||
Date:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Expires:
|
||||
- Sun, 21 Jul 2024 17:04:37 GMT
|
||||
Last-Modified:
|
||||
- Thu, 18 Jul 2024 11:03:05 GMT
|
||||
Pragma:
|
||||
- no-cache
|
||||
Server:
|
||||
- Apache
|
||||
Set-Cookie:
|
||||
- ak_bmsc=63739BEFDA7932BFAB14DAD81E5BDB17~000000000000000000000000000000~YAAQZWIsFy/8LMyQAQAAgZ5A1hhDl0pMvWWW/9QOvwOTOp/3E0LbgXIoiikxviQwLEBRXytQZhweMcC884zoLGN8GRdyumJuKG3bVL91Ii5VXsdV1WVWSfZXP2ziYDrhxCl39O28NEfVys/BjtwvizNCOAEY9mGQ/yXNGOb512tSVzHD+RkYQyWIZazz75JuyEoLBUtKeexXv27AyYBzYwX6KN+6eNxnOzFhpd6YsdegH2wopcRUXAfb65CBY/wxhakEJI1OC/e47QXTXsl10OSqVGNp9M2DDXZcy+XU05MeGFqSKk0lcfAqs0hpHAka2hIl0TRbhsstf/s1poBUUJ12uxpVefkuFo8sbjfzSY0ngAWdge7BuUI2/s2q8tT2keqJqMgzNeHhWA==;
|
||||
Domain=.stlouisfed.org; Path=/; Expires=Sun, 21 Jul 2024 19:04:37 GMT; Max-Age=7200
|
||||
Strict-Transport-Security:
|
||||
- max-age=86400
|
||||
Vary:
|
||||
- Accept-Encoding
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -51,6 +51,7 @@ from openbb_fred.models.survey_of_economic_conditions_chicago import (
|
||||
FredSurveyOfEconomicConditionsChicagoFetcher,
|
||||
)
|
||||
from openbb_fred.models.tbffr import FREDSelectedTreasuryBillFetcher
|
||||
from openbb_fred.models.tips_yields import FredTipsYieldsFetcher
|
||||
from openbb_fred.models.tmc import FREDTreasuryConstantMaturityFetcher
|
||||
from openbb_fred.models.university_of_michigan import FredUofMichiganFetcher
|
||||
from openbb_fred.models.us_yield_curve import (
|
||||
@@ -518,3 +519,17 @@ def test_fred_release_table_fetcher(credentials=test_credentials):
|
||||
fetcher = FredReleaseTableFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
def test_fred_tips_yields_fetcher(credentials=test_credentials):
|
||||
"""Test FRED TIPS Yields."""
|
||||
params = {
|
||||
"start_date": datetime.date(2024, 7, 17),
|
||||
"end_date": datetime.date(2024, 7, 17),
|
||||
"maturity": 5,
|
||||
}
|
||||
|
||||
fetcher = FredTipsYieldsFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
Reference in New Issue
Block a user