[Enhancement]: Add TMX data provider extension. (#5913)

* dev install

* add TMX provider extension

* normalize ytm and coupopn_rate values

* black

* codespell

* ruff

* black again

* pylint

* ftw

* undo what Pylint thinks is best

* more black

* renovate insider_trading standard model

* fix tests

* typo

* tests

* empty string

* pylint unused argument

* nans for some reason

* black

* static files

* static files with openbb-tmx installed this time

* yfinance TypeError..?

* NA -> N/A

* update for version bump

* list exchange-calendars as tmx dependency

* eod chains date -> eod_date

* new line

* not that file

* more black

* one more black

* fix weird merge thing

* ruff

* index constituents params

* insider trading

* fixing things

* black

* black AGAIN

* news integration params

* the other missing param

* ruff

* historical dividends field update

* add json_schema_extra

* gainers

* symbols -> symbol

* company news symbol

* unit test param

* review items

* wrangle a rogue field

* index router example

* company news thing - symbols -> symbol

* field name map

---------

Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Co-authored-by: Henrique Joaquim <h.joaquim@campus.fct.unl.pt>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
This commit is contained in:
Danglewood
2024-02-20 06:41:26 -08:00
committed by GitHub
parent 7d84690316
commit fe3fa6af8e
90 changed files with 256717 additions and 483 deletions

View File

@@ -127,6 +127,7 @@ def test_equity_calendar_splits(params, obb):
[
({"start_date": "2023-11-09", "end_date": "2023-11-10", "provider": "fmp"}),
({"start_date": "2023-11-09", "end_date": "2023-11-10", "provider": "nasdaq"}),
({"start_date": "2023-11-09", "end_date": "2023-11-10", "provider": "tmx"}),
],
)
@pytest.mark.integration
@@ -269,6 +270,7 @@ def test_equity_fundamental_historical_splits(params, obb):
"provider": "intrinio",
}
),
({"symbol": "RY", "provider": "tmx"}),
(
{
"symbol": "AAPL",
@@ -419,8 +421,9 @@ def test_equity_fundamental_income_growth(params, obb):
[
(
{
"symbol": "AAPL",
"limit": 10,
"symbol": "RY",
"provider": "tmx",
"limit": None,
}
),
(
@@ -646,6 +649,7 @@ def test_equity_estimates_analyst_search(params, obb):
[
({"symbol": "AAPL", "provider": "fmp"}),
({"symbol": "AAPL,AMZN,RELIANCE.NS", "provider": "yfinance"}),
({"symbol": "TD:US", "provider": "tmx"}),
],
)
@pytest.mark.integration
@@ -756,6 +760,16 @@ def test_equity_fundamental_revenue_per_segment(params, obb):
"use_cache": False,
}
),
(
{
"provider": "tmx",
"symbol": "IBM:US",
"start_date": "2023-09-30",
"end_date": "2023-12-31",
"limit": None,
"form_type": None,
}
),
],
)
@pytest.mark.integration
@@ -993,6 +1007,16 @@ def test_equity_compare_groups(params, obb):
"interval": "1M",
}
),
(
{
"provider": "tmx",
"symbol": "AAPL:US",
"start_date": "2023-01-01",
"end_date": "2023-12-31",
"interval": "1d",
"adjustment": "splits_only",
}
),
],
)
@pytest.mark.integration
@@ -1176,6 +1200,7 @@ def test_equity_fundamental_latest_attributes(params, obb):
({"query": "AAPL", "is_symbol": True, "provider": "cboe", "use_cache": False}),
({"query": "Apple", "provider": "sec", "use_cache": False, "is_fund": False}),
({"query": "", "provider": "nasdaq", "use_cache": False, "is_etf": True}),
({"query": "gold", "provider": "tmx", "use_cache": False}),
(
{
"query": "gold",
@@ -1238,6 +1263,7 @@ def test_equity_screener(params, obb):
({"symbol": "AAPL", "provider": "fmp"}),
({"symbol": "AAPL", "provider": "cboe", "use_cache": False}),
({"symbol": "AAPL", "provider": "yfinance"}),
({"symbol": "AAPL:US", "provider": "tmx"}),
],
)
@pytest.mark.integration
@@ -1256,6 +1282,7 @@ def test_equity_price_quote(params, obb):
({"symbol": "AAPL,MSFT", "provider": "finviz"}),
({"symbol": "AAPL,MSFT", "provider": "yfinance"}),
({"symbol": "AAPL,MSFT", "provider": "fmp"}),
({"provider": "tmx", "symbol": "AAPL:US"}),
],
)
@pytest.mark.integration
@@ -1271,7 +1298,10 @@ def test_equity_profile(params, obb):
@parametrize(
"params",
[({"sort": "desc"})],
[
({"sort": "desc", "provider": "yfinance"}),
({"provider": "tmx", "category": "52w_high"}),
],
)
@pytest.mark.integration
def test_equity_discovery_gainers(params, obb):