mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-05-06 22:12:12 +08:00
Remove Ultima provider (#6012)
This commit is contained in:
9
openbb_platform/PROVIDERS.md
vendored
9
openbb_platform/PROVIDERS.md
vendored
@@ -2,10 +2,9 @@
|
||||
|
||||
| Provider | URL | Package name | Description | Maintainer |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| [FMP](./providers/fmp/README.md) | https://financialmodelingprep.com/ | `openbb-fmp` | Access all stocks discounted cash flow statements, market price, stock markets news, and learn more about Financial Modeling. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
| [Polygon](./providers/polygon/README.md) | https://polygon.io/ | `openbb-polygon` | Free stock data APIs. Real time and historical data, unlimited usage, tick level and aggregate granularity, in standardized JSON and CSV formats. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
| [Benzinga](./providers/benzinga/README.md) | https://www.benzinga.com/ | `openbb-benzinga` | Stock Market Quotes, Business News, Financial News, Trading Ideas, and Stock Research by Professionals. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
| [FRED](./providers/fred/README.md) | https://fred.stlouisfed.org/ | `openbb-fred` | Download, graph, and track 823000 economic time series from 114 sources. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
| [Ultima](./providers/ultima/README.md) | https://ultimainsights.ai | `openbb-ultima` | Ultima Insights harnesses the power of LLMs + GPT to present relevant news to investors, often before it appears on platforms like Bloomberg. Ultima aims to provide timely and significant information for its users. | [@Ultima-Insights](https://github.com/Ultima-Insights)
|
||||
| [FMP](./providers/fmp/README.md) | <https://financialmodelingprep.com/> | `openbb-fmp` | Access all stocks discounted cash flow statements, market price, stock markets news, and learn more about Financial Modeling. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
| [Polygon](./providers/polygon/README.md) | <https://polygon.io/> | `openbb-polygon` | Free stock data APIs. Real time and historical data, unlimited usage, tick level and aggregate granularity, in standardized JSON and CSV formats. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
| [Benzinga](./providers/benzinga/README.md) | <https://www.benzinga.com/> | `openbb-benzinga` | Stock Market Quotes, Business News, Financial News, Trading Ideas, and Stock Research by Professionals. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
| [FRED](./providers/fred/README.md) | <https://fred.stlouisfed.org/> | `openbb-fred` | Download, graph, and track 823000 economic time series from 114 sources. | [@OpenBB-Finance](https://github.com/OpenBB-finance) |
|
||||
|
||||
<!-- Add your Data Provider integration above this line -->
|
||||
|
||||
9
openbb_platform/README.md
vendored
9
openbb_platform/README.md
vendored
@@ -37,8 +37,6 @@ This will install the following data providers:
|
||||
| openbb-sec | [SEC](https://www.sec.gov/edgar/sec-api-documentation) data connector | pip install openbb-sec | Free |
|
||||
| openbb-tiingo | [Tiingo](https://www.tiingo.com/about/pricing) data connector | pip install openbb-tiingo | Free |
|
||||
| openbb-tradingeconomics | [TradingEconomics](https://tradingeconomics.com/api) data connector | pip install openbb-tradingeconomics | Paid |
|
||||
| openbb-ultima | [Ultima Insights](https://ultimainsights.ai/openbb) data connector | pip install openbb-ultima | Paid |
|
||||
|
||||
|
||||
To install extensions that expand the core functionalities specify the extension name or use `all` to install all.
|
||||
|
||||
@@ -48,9 +46,10 @@ pip install openbb[charting]
|
||||
pip install openbb-yfinance
|
||||
```
|
||||
|
||||
Alternatively, you can install all extensions at once.
|
||||
Alternatively, you can install all extensions at once.
|
||||
|
||||
```bash
|
||||
pip install openbb[all]
|
||||
pip install openbb[all]
|
||||
```
|
||||
|
||||
> Note: These instruction are specific to v4. For installation instructions and documentation for v3 go to our [website](https://docs.openbb.co/sdk).
|
||||
@@ -83,7 +82,7 @@ To fully leverage the OpenBB Platform you need to get some API keys to connect w
|
||||
|
||||
### 1. OpenBB Hub
|
||||
|
||||
Set your keys at [OpenBB Hub](https://my.openbb.co/app/sdk/api-keys) and get your personal access token from https://my.openbb.co/app/sdk/pat to connect with your account.
|
||||
Set your keys at [OpenBB Hub](https://my.openbb.co/app/sdk/api-keys) and get your personal access token from <https://my.openbb.co/app/sdk/pat> to connect with your account.
|
||||
|
||||
```python
|
||||
>>> from openbb import obb
|
||||
|
||||
@@ -229,7 +229,6 @@ class HubService:
|
||||
intrinio_api_key=settings.features_keys.API_INTRINIO_KEY,
|
||||
polygon_api_key=settings.features_keys.API_POLYGON_KEY,
|
||||
nasdaq_api_key=settings.features_keys.API_KEY_QUANDL,
|
||||
ultima_api_key=settings.features_keys.API_ULTIMA_KEY,
|
||||
)
|
||||
return credentials
|
||||
|
||||
@@ -249,7 +248,6 @@ class HubService:
|
||||
API_KEY_FINANCIALMODELINGPREP=get_cred("fmp_api_key"),
|
||||
API_POLYGON_KEY=get_cred("polygon_api_key"),
|
||||
API_KEY_QUANDL=get_cred("nasdaq_api_key"),
|
||||
API_ULTIMA_KEY=get_cred("ultima_api_key"),
|
||||
)
|
||||
hub_user_settings = HubUserSettings(features_keys=features_keys)
|
||||
return hub_user_settings
|
||||
|
||||
@@ -147,12 +147,6 @@ def test_news_world(params, headers):
|
||||
"source": "bloomberg.com",
|
||||
}
|
||||
),
|
||||
# (
|
||||
# {
|
||||
# "provider": "ultima",
|
||||
# "sectors": "Real Estate",
|
||||
# }
|
||||
# ),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
@@ -164,26 +158,3 @@ def test_news_company(params, headers):
|
||||
result = requests.get(url, headers=headers, timeout=10)
|
||||
assert isinstance(result, requests.Response)
|
||||
assert result.status_code == 200
|
||||
|
||||
|
||||
@pytest.mark.skip("openbb-ultima is not installed on the CI.")
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"provider": "ultima",
|
||||
"sectors": "Real Estate",
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_news_sector(params, headers):
|
||||
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/news/sector?{query_str}"
|
||||
result = requests.get(url, headers=headers, timeout=10)
|
||||
assert isinstance(result, requests.Response)
|
||||
assert result.status_code == 200
|
||||
|
||||
@@ -141,12 +141,6 @@ def test_news_world(params, obb):
|
||||
"source": "bloomberg.com",
|
||||
}
|
||||
),
|
||||
# (
|
||||
# {
|
||||
# "provider": "ultima",
|
||||
# "symbols": "AAPL,MSFT",
|
||||
# }
|
||||
# ),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
@@ -157,25 +151,3 @@ def test_news_company(params, obb):
|
||||
assert result
|
||||
assert isinstance(result, OBBject)
|
||||
assert len(result.results) > 0
|
||||
|
||||
|
||||
@pytest.mark.skip("openbb-ultima is not installed on the CI.")
|
||||
@parametrize(
|
||||
"params",
|
||||
[
|
||||
(
|
||||
{
|
||||
"provider": "ultima",
|
||||
"sectors": "Real Estate",
|
||||
}
|
||||
),
|
||||
],
|
||||
)
|
||||
@pytest.mark.integration
|
||||
def test_news_sector(params, obb):
|
||||
params = {p: v for p, v in params.items() if v}
|
||||
|
||||
result = obb.news.sector(**params)
|
||||
assert result
|
||||
assert isinstance(result, OBBject)
|
||||
assert len(result.results) > 0
|
||||
|
||||
15
openbb_platform/providers/ultima/README.md
vendored
15
openbb_platform/providers/ultima/README.md
vendored
@@ -1,15 +0,0 @@
|
||||
# OpenBB Ultima Provider
|
||||
|
||||
This extension integrates the [Ultima Insights](https://www.ultimainsights.ai/) data provider into the OpenBB Platform.
|
||||
|
||||
## Installation
|
||||
|
||||
To install the extension:
|
||||
|
||||
```bash
|
||||
pip install openbb-ultima
|
||||
```
|
||||
|
||||
For development please check [Contribution Guidelines](https://github.com/OpenBB-finance/OpenBBTerminal/blob/develop/openbb_platform/CONTRIBUTING.md).
|
||||
|
||||
Documentation available [here](https://docs.openbb.co/platform).
|
||||
@@ -1,27 +0,0 @@
|
||||
"""Ultima provider module."""
|
||||
|
||||
import warnings
|
||||
from typing import Union
|
||||
|
||||
from openbb_core.provider.abstract.provider import Provider
|
||||
|
||||
ultima_provider: Union[Provider, None] = None
|
||||
|
||||
try:
|
||||
from openbb_ultima.models.company_news import UltimaCompanyNewsFetcher
|
||||
from openbb_ultima.models.sector_news import UltimaSectorNewsFetcher
|
||||
|
||||
ultima_provider = Provider(
|
||||
name="ultima",
|
||||
website="https://www.ultimainsights.ai/openbb",
|
||||
description="""Ultima harnesses the power of LLMs to deliver news before it hits the frontpage of Bloomberg.""",
|
||||
credentials=["api_key"],
|
||||
fetcher_dict={
|
||||
"CompanyNews": UltimaCompanyNewsFetcher,
|
||||
"SectorNews": UltimaSectorNewsFetcher,
|
||||
},
|
||||
)
|
||||
except ImportError:
|
||||
warnings.warn(
|
||||
"openbb-ultima is not installed. Please install openbb-ultima to use the Ultima provider."
|
||||
)
|
||||
@@ -1,95 +0,0 @@
|
||||
"""Ultima Company News Model."""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.company_news import (
|
||||
CompanyNewsData,
|
||||
CompanyNewsQueryParams,
|
||||
)
|
||||
from openbb_ultima.utils.helpers import get_data
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class UltimaCompanyNewsQueryParams(CompanyNewsQueryParams):
|
||||
"""Ultima Company News Query.
|
||||
|
||||
Source: https://api.ultimainsights.ai/v1/api-docs#/default/get_v1_getOpenBBProInsights__tickers_
|
||||
"""
|
||||
|
||||
__alias_dict__ = {
|
||||
"symbols": "tickers",
|
||||
}
|
||||
|
||||
|
||||
class UltimaCompanyNewsData(CompanyNewsData):
|
||||
"""Ultima Company News Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"symbols": "ticker",
|
||||
"date": "publishedDate",
|
||||
"text": "summary",
|
||||
"title": "headline",
|
||||
}
|
||||
|
||||
publisher: str = Field(description="Publisher of the news.")
|
||||
risk_category: str = Field(description="Risk category of the news.")
|
||||
|
||||
|
||||
class UltimaCompanyNewsFetcher(
|
||||
Fetcher[
|
||||
UltimaCompanyNewsQueryParams,
|
||||
List[UltimaCompanyNewsData],
|
||||
]
|
||||
):
|
||||
"""Transform the query, extract and transform the data from the Ultima endpoints."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> UltimaCompanyNewsQueryParams:
|
||||
"""Transform query."""
|
||||
return UltimaCompanyNewsQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: UltimaCompanyNewsQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> List[Dict]:
|
||||
"""Extract data from Ultima Insights API."""
|
||||
token = credentials.get("ultima_api_key") if credentials else ""
|
||||
kwargs["auth"] = token
|
||||
|
||||
base_url = "https://api.ultimainsights.ai/v1/getOpenBBProInsights"
|
||||
|
||||
querystring = str(query).split("=")[1].split("'")[1].replace(" ", "")
|
||||
|
||||
data = []
|
||||
url = f"{base_url}/{querystring}"
|
||||
response = get_data(url, **kwargs)
|
||||
data.extend(response)
|
||||
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: UltimaCompanyNewsQueryParams,
|
||||
data: List[Dict],
|
||||
**kwargs: Any,
|
||||
) -> List[UltimaCompanyNewsData]:
|
||||
"""Transform data."""
|
||||
results = []
|
||||
for ele in data:
|
||||
for key in ["8k_filings", "articles", "industry_summary"]:
|
||||
for item in ele[key]:
|
||||
# manual assignment required for Pydantic to work
|
||||
item["symbols"] = ele["ticker"]
|
||||
item["date"] = datetime.strptime(
|
||||
item["publishedDate"], "%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
item["title"] = item["headline"]
|
||||
item["url"] = item["url"]
|
||||
item["publisher"] = item["publisher"]
|
||||
item["risk_category"] = item["riskCategory"]
|
||||
results.append(UltimaCompanyNewsData.model_validate(item))
|
||||
return results
|
||||
@@ -1,103 +0,0 @@
|
||||
"""Ultima Sector News Model."""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
from openbb_core.provider.abstract.fetcher import Fetcher
|
||||
from openbb_core.provider.standard_models.sector_news import (
|
||||
SectorNewsData,
|
||||
SectorNewsQueryParams,
|
||||
)
|
||||
from openbb_ultima.utils.helpers import get_data
|
||||
from pydantic import Field
|
||||
|
||||
|
||||
class UltimaSectorNewsQueryParams(SectorNewsQueryParams):
|
||||
"""Ultima Sector News Query.
|
||||
|
||||
Source: https://api.ultimainsights.ai/v1/api-docs#/default/get_v1_getOpenBBProInsights__tickers_
|
||||
"""
|
||||
|
||||
__alias_dict__ = {
|
||||
"symbols": "sectors",
|
||||
}
|
||||
|
||||
|
||||
class UltimaSectorNewsData(SectorNewsData):
|
||||
"""Ultima Sector News Data."""
|
||||
|
||||
__alias_dict__ = {
|
||||
"symbols": "ticker",
|
||||
"date": "publishedDate",
|
||||
"text": "summary",
|
||||
"title": "headline",
|
||||
}
|
||||
|
||||
publisher: str = Field(description="Publisher of the news.")
|
||||
risk_category: str = Field(description="Risk category of the news.")
|
||||
|
||||
|
||||
class UltimaSectorNewsFetcher(
|
||||
Fetcher[
|
||||
UltimaSectorNewsQueryParams,
|
||||
List[UltimaSectorNewsData],
|
||||
]
|
||||
):
|
||||
"""Transform the query, extract and transform the data from the Ultima endpoints."""
|
||||
|
||||
@staticmethod
|
||||
def transform_query(params: Dict[str, Any]) -> UltimaSectorNewsQueryParams:
|
||||
"""Transform query."""
|
||||
return UltimaSectorNewsQueryParams(**params)
|
||||
|
||||
@staticmethod
|
||||
def extract_data(
|
||||
query: UltimaSectorNewsQueryParams,
|
||||
credentials: Optional[Dict[str, str]],
|
||||
**kwargs: Any,
|
||||
) -> List[Dict]:
|
||||
"""Extract data from Ultima Insights API."""
|
||||
token = credentials.get("ultima_api_key") if credentials else ""
|
||||
kwargs["auth"] = token
|
||||
|
||||
base_url = "https://api.ultimainsights.ai/v1/getCompaniesForSectors"
|
||||
pro_base_url = "https://api.ultimainsights.ai/v1/getOpenBBProInsights"
|
||||
|
||||
querystring = str(query).split("=")[1].split("'")[1]
|
||||
|
||||
tickers = []
|
||||
url = f"{base_url}/{querystring}"
|
||||
response = get_data(url, **kwargs)
|
||||
tickers.extend(response)
|
||||
|
||||
querystring = ",".join(tickers)
|
||||
|
||||
data = []
|
||||
url = f"{pro_base_url}/{querystring}"
|
||||
response = get_data(url, **kwargs)
|
||||
data.extend(response)
|
||||
|
||||
return data
|
||||
|
||||
@staticmethod
|
||||
def transform_data(
|
||||
query: UltimaSectorNewsQueryParams,
|
||||
data: List[Dict],
|
||||
**kwargs: Any,
|
||||
) -> List[UltimaSectorNewsData]:
|
||||
"""Transform data."""
|
||||
results = []
|
||||
for ele in data:
|
||||
for key in ["8k_filings", "articles", "industry_summary"]:
|
||||
for item in ele[key]:
|
||||
# manual assignment required for Pydantic to work
|
||||
item["symbols"] = ele["ticker"]
|
||||
item["date"] = datetime.strptime(
|
||||
item["publishedDate"], "%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
item["title"] = item["headline"]
|
||||
item["url"] = item["url"]
|
||||
item["publisher"] = item["publisher"]
|
||||
item["risk_category"] = item["riskCategory"]
|
||||
results.append(UltimaSectorNewsData.model_validate(item))
|
||||
return results
|
||||
@@ -1,26 +0,0 @@
|
||||
"""Ultima Helpers."""
|
||||
|
||||
from typing import Any, Dict
|
||||
|
||||
from openbb_core.provider import helpers
|
||||
|
||||
|
||||
def get_data(url: str, **kwargs: Any) -> Dict:
|
||||
"""Do an API request to Ultima and return the data."""
|
||||
auth = kwargs.pop("auth", "")
|
||||
if auth is None or len(auth) == 0:
|
||||
raise RuntimeError("Ultima API key is required.")
|
||||
if "Bearer" not in auth:
|
||||
auth = f"Bearer {auth}"
|
||||
result = helpers.make_request(
|
||||
url,
|
||||
timeout=10,
|
||||
headers={"accept": "application/json", "Authorization": auth},
|
||||
**kwargs,
|
||||
)
|
||||
if result.status_code != 200:
|
||||
data = result.json()
|
||||
message = data.get("message")
|
||||
raise RuntimeError(f"Error in Ultima request -> {message}")
|
||||
|
||||
return result.json()
|
||||
1393
openbb_platform/providers/ultima/poetry.lock
generated
vendored
1393
openbb_platform/providers/ultima/poetry.lock
generated
vendored
File diff suppressed because it is too large
Load Diff
18
openbb_platform/providers/ultima/pyproject.toml
vendored
18
openbb_platform/providers/ultima/pyproject.toml
vendored
@@ -1,18 +0,0 @@
|
||||
[tool.poetry]
|
||||
name = "openbb-ultima"
|
||||
version = "1.1.1"
|
||||
description = "Ultima Insights extension for OpenBB"
|
||||
authors = ["Ultima Insights Team <hello@ultimainsights.ai>"]
|
||||
readme = "README.md"
|
||||
packages = [{ include = "openbb_ultima" }]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.8"
|
||||
openbb-core = "^1.1.1"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core"]
|
||||
build-backend = "poetry.core.masonry.api"
|
||||
|
||||
[tool.poetry.plugins."openbb_provider_extension"]
|
||||
ultima = "openbb_ultima:ultima_provider"
|
||||
@@ -1,112 +0,0 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Authorization:
|
||||
- Bearer MOCK_API_KEY
|
||||
Connection:
|
||||
- keep-alive
|
||||
accept:
|
||||
- application/json
|
||||
method: GET
|
||||
uri: https://api.ultimainsights.ai/v1/getOpenBBProInsights/AAPL,MSFT
|
||||
response:
|
||||
body:
|
||||
string: "[\n {\n \"8k_filings\": [],\n \"articles\": [],\n \"critical_factors\":
|
||||
{},\n \"earnings_summary\": {},\n \"industry_summary\": [],\n \"metadata\":
|
||||
{\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"AAPL\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [\n {\n \"headline\": \"With global regulators
|
||||
examining Microsoft Corp. ... The unorthodox structure was concocted because
|
||||
OpenAI is a capped for-profit company housed inside ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 03:57:12\",\n \"publisher\": \"Bloomberg\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"Microsoft's $13 billion investment
|
||||
in OpenAI is under scrutiny by global regulators. Microsoft argues that it
|
||||
doesn't control OpenAI as it doesn't own a traditional stake. Regulators are
|
||||
examining whether the collaboration threatens competition and violates antitrust
|
||||
laws. Microsoft faces intense competition and government regulations, which
|
||||
may reduce its attractiveness and revenue.\",\n \"url\": \"https://www.bloomberg.com/news/articles/2023-12-08/microsoft-s-answer-to-openai-inquiry-it-doesn-t-own-a-stake\"\n
|
||||
\ },\n {\n \"headline\": \"The US Federal Trade Commission's
|
||||
antitrust case against Amazon.com Inc ... The US Federal Trade Commission
|
||||
is examining the nature of Microsoft Corp.\",\n \"publishedDate\":
|
||||
\"2023-12-09 16:02:34\",\n \"publisher\": \"Bloomberg\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"Amazon's antitrust case challenges
|
||||
the agency's assertion that it causes prices to go up on competing websites,
|
||||
which may impact Microsoft's revenue.\",\n \"url\": \"https://www.bloomberg.com/news/articles/2023-12-08/amazon-seeks-dismissal-of-ftc-antitrust-lawsuit\"\n
|
||||
\ },\n {\n \"headline\": \"Former Microsoft Product Leader
|
||||
to Help Launch VERSES AI Developer Platform ... Amazon and the Amazon logo
|
||||
are trademarks of Amazon.com, Inc. or its ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 04:09:29\",\n \"publisher\": \"The Tech Outlook\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"VERSES AI Inc. welcomes Peter
|
||||
Provost, former Microsoft product leader, as VP of Product, Developer Platforms.
|
||||
Provost will lead the strategic development and enhancement of VERSES' Intelligence-as-a-Service
|
||||
platform, leveraging his experience in product engineering and deep understanding
|
||||
of the developer community.\",\n \"url\": \"https://www.thetechoutlook.com/press-release/former-microsoft-product-leader-to-help-launch-verses-ai-developer-platform/\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 3,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"MSFT\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[\n {\n \"headline\": \"Microsoft\\\\'s OpenAI Inquiry\",\n \"publishedDate\":
|
||||
\"2023-12-09 03:57:12\",\n \"publisher\": \"Bloomberg\",\n \"riskCategory\":
|
||||
\"Financial News\",\n \"summary\": \"Microsoft's $13 billion investment
|
||||
in OpenAI is being examined by global regulators for potential antitrust violations.
|
||||
Microsoft argues that it doesn't control OpenAI due to an unusual investment
|
||||
arrangement. Regulators in the UK and the US are gathering information to
|
||||
determine if the collaboration threatens competition. Microsoft faces potential
|
||||
regulatory headaches in Europe as well. The partnership raises competition
|
||||
concerns if Microsoft reduces its own AI research or restricts OpenAI from
|
||||
partnering with rivals.\",\n \"url\": \"https://www.bloomberg.com/news/articles/2023-12-08/microsoft-s-answer-to-openai-inquiry-it-doesn-t-own-a-stake\"\n
|
||||
\ },\n {\n \"headline\": \"Amazon FTC Antitrust Lawsuit\",\n
|
||||
\ \"publishedDate\": \"2023-12-09 16:02:34\",\n \"publisher\":
|
||||
\"Bloomberg\",\n \"riskCategory\": \"Legal News\",\n \"summary\":
|
||||
\"Amazon seeks dismissal of FTC antitrust lawsuit, arguing that the agency's
|
||||
case lacks evidence of harm to consumers and fails to prove that Amazon's
|
||||
practices raise prices on competing websites.\",\n \"url\": \"https://www.bloomberg.com/news/articles/2023-12-08/amazon-seeks-dismissal-of-ftc-antitrust-lawsuit\"\n
|
||||
\ },\n {\n \"headline\": \"Former Microsoft Product Leader\",\n
|
||||
\ \"publishedDate\": \"2023-12-09 04:09:29\",\n \"publisher\":
|
||||
\"The Tech Outlook\",\n \"riskCategory\": \"Competition News\",\n \"summary\":
|
||||
\"VERSES AI Inc. welcomes Peter Provost as VP of Product, Developer Platforms.
|
||||
Provost brings 18 years of experience from Microsoft and will lead the strategic
|
||||
development of VERSES' Intelligence-as-a-Service platform.\",\n \"url\":
|
||||
\"https://www.thetechoutlook.com/press-release/former-microsoft-product-leader-to-help-launch-verses-ai-developer-platform/\"\n
|
||||
\ },\n {\n \"headline\": \"Microsoft\\\\'s Partnership Controversy\",\n
|
||||
\ \"publishedDate\": \"2023-12-09 12:23:13\",\n \"publisher\":
|
||||
\"Digital Information World\",\n \"riskCategory\": \"Competition News\",\n
|
||||
\ \"summary\": \"Microsoft's partnership with a major tech company is
|
||||
causing controversy in the Software\\u2014Infrastructure industry.\",\n \"url\":
|
||||
\"https://www.digitalinformationworld.com/2023/12/microsofts-much-debated-partnership.html\"\n
|
||||
\ },\n {\n \"headline\": \"EU AI Act\",\n \"publishedDate\":
|
||||
\"2023-12-09 18:06:52\",\n \"publisher\": \"WIRED\",\n \"riskCategory\":
|
||||
\"Regulatory News\",\n \"summary\": \"The European Union has agreed
|
||||
on the AI Act, a comprehensive set of rules for artificial intelligence. The
|
||||
act includes bans on biometric systems, transparency requirements for AI models,
|
||||
and fines for non-compliance.\",\n \"url\": \"https://www.wired.com/story/eu-ai-act/\"\n
|
||||
\ }\n ],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n
|
||||
\ \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 5,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Industry\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"Software\\u2014Infrastructure\"\n }\n]\n"
|
||||
headers:
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '6540'
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Mon, 11 Dec 2023 12:13:48 GMT
|
||||
Server:
|
||||
- nginx/1.18.0 (Ubuntu)
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -1,395 +0,0 @@
|
||||
interactions:
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Authorization:
|
||||
- Bearer MOCK_API_KEY
|
||||
Connection:
|
||||
- keep-alive
|
||||
accept:
|
||||
- application/json
|
||||
method: GET
|
||||
uri: https://api.ultimainsights.ai/v1/getCompaniesForSectors/Real%20Estate,%20Financial%20Services
|
||||
response:
|
||||
body:
|
||||
string: !!binary |
|
||||
H4sIAAAAAAAEAyXOWxLCIAwF0K04fLuJAGkbpTYFpHUc978N597+cMgTvkHWHu630HwmXWguFaHu
|
||||
JCVjMUqCKVaFS+Po6GySEZGsygVPWxHF04HudtLWgL3GAt+Zk1bZ6yUjmbyTNjscdj1+aCmIVxHg
|
||||
Kk+oJ1dsuB8fnFPlvDf2yfVVyQm1Vmcg8XrXnFadjOkpsfzYNPz+W2p4hxoBAAA=
|
||||
headers:
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Encoding:
|
||||
- gzip
|
||||
Content-Type:
|
||||
- text/html; charset=utf-8
|
||||
Date:
|
||||
- Mon, 11 Dec 2023 12:13:48 GMT
|
||||
Server:
|
||||
- nginx/1.18.0 (Ubuntu)
|
||||
Transfer-Encoding:
|
||||
- chunked
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
- request:
|
||||
body: null
|
||||
headers:
|
||||
Accept-Encoding:
|
||||
- gzip, deflate
|
||||
Authorization:
|
||||
- Bearer MOCK_API_KEY
|
||||
Connection:
|
||||
- keep-alive
|
||||
accept:
|
||||
- application/json
|
||||
method: GET
|
||||
uri: https://api.ultimainsights.ai/v1/getOpenBBProInsights/AMT,SPG,STAG,DLR,EQR,CCI,SBAC,CBRE,HST,VTR,AVB,REG,KIM,BXP,EQIX,ESS,INVH,UDR,IRM,PLD,CPT,CSGP,VICI,WELL,MAA,PEAK,EXR,O,WY,FRT,PSA,ARE,ADC,SRG,ABR,IIPR,REFI,AFCG,JOE
|
||||
response:
|
||||
body:
|
||||
string: "[\n {\n \"8k_filings\": [],\n \"articles\": [],\n \"critical_factors\":
|
||||
{},\n \"earnings_summary\": {},\n \"industry_summary\": [],\n \"metadata\":
|
||||
{\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"AMT\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"SPG\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"STAG\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"DLR\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[\n {\n \"headline\": \"... purchase, Redfall and Starfield are
|
||||
new intellectual properties \\u2013 a distinction that might decide how Redmond
|
||||
handles future exclusives. However ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 15:57:06\",\n \"publisher\": \"TechSpot\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"FTC continues fighting Microsoft-Activision
|
||||
deal post-closure, raising concerns about Microsoft's potential exclusivity
|
||||
with Call of Duty and other Activision Blizzard properties. This could impact
|
||||
EQR's competition risk as it faces other real estate companies.\",\n \"url\":
|
||||
\"https://www.techspot.com/news/101136-ftc-continues-fighting-microsoft-activision-deal-post-closure.html\"\n
|
||||
\ },\n {\n \"headline\": \"... home rental property acquired
|
||||
as an investment towards retirement. So, the home is sold to a large management
|
||||
company that raises the rent and has ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 08:23:03\",\n \"publisher\": \"The Jolt News\",\n \"riskCategory\":
|
||||
\"Interest Rate News, Competition News, Regulatory News, Economic News, Political
|
||||
News, Financial News, Legal News\",\n \"summary\": \"Residents of Western
|
||||
Plaza Mobile Home Park in Tumwater, WA, are organizing against rent hikes
|
||||
imposed by Legacy Communities LLC. The company acquired the park and announced
|
||||
monthly rental increases of 18%, causing concern among tenants on fixed incomes.
|
||||
This article highlights the impact of rising rents on vulnerable seniors and
|
||||
the efforts of Resident Action to advocate for rent caps and regulations.
|
||||
EQR, as a real estate investment trust, faces similar risks related to rental
|
||||
income, regulatory changes, and competition.\",\n \"url\": \"https://www.thejoltnews.com/stories/tumwater-mobile-home-tenants-lobby-against-rent-hikes,13259\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 2,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"EQR\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[\n {\n \"headline\": \"Everest Infrastructure Partners and TowerCo
|
||||
acquire 546 towers from Charter Communications ... Tower companies Everest
|
||||
Infrastructure Partners and ...\",\n \"publishedDate\": \"2023-12-09
|
||||
02:12:09\",\n \"publisher\": \"Data Center Dynamics\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"Everest Infrastructure Partners
|
||||
and TowerCo acquire 546 towers from Charter Communications, with Charter receiving
|
||||
tower-use rights and becoming preferred fiber provider. The deal expands network
|
||||
coverage and leasing activities for Everest and TowerCo.\",\n \"url\":
|
||||
\"https://www.datacenterdynamics.com/en/news/everest-infrastructure-partners-and-towerco-acquire-546-towers-from-charter-communications/\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"CCI\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[\n {\n \"headline\": \"Everest Infrastructure Partners and TowerCo
|
||||
acquire 546 towers from Charter Communications ... Tower companies Everest
|
||||
Infrastructure Partners and ...\",\n \"publishedDate\": \"2023-12-09
|
||||
02:12:09\",\n \"publisher\": \"Data Center Dynamics\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"SBAC's tower assets are not
|
||||
involved in the acquisition of 546 wireless towers by Everest Infrastructure
|
||||
Partners and TowerCo from Charter Communications.\",\n \"url\": \"https://www.datacenterdynamics.com/en/news/everest-infrastructure-partners-and-towerco-acquire-546-towers-from-charter-communications/\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"SBAC\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"CBRE\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"HST\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"VTR\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [\n {\n \"headline\": \"... home rental
|
||||
property acquired as an investment towards retirement. So, the home is sold
|
||||
to a large management company that raises the rent and has ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 08:23:03\",\n \"publisher\": \"The Jolt News\",\n \"riskCategory\":
|
||||
\"Real Estate\",\n \"summary\": \"Residents of Western Plaza Mobile
|
||||
Home Park in Tumwater, WA, are organizing against rent hikes imposed by Legacy
|
||||
Communities LLC. The company acquired the park and announced monthly rental
|
||||
increases of 18%, causing concern among tenants on fixed incomes. This article
|
||||
highlights the efforts of the tenant group and their push for legislative
|
||||
action to address the issue. AVB, as a real estate company, may face similar
|
||||
challenges related to rent increases and tenant rights.\",\n \"url\":
|
||||
\"https://www.thejoltnews.com/stories/tumwater-mobile-home-tenants-lobby-against-rent-hikes,13259\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"AVB\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"REG\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"KIM\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[\n {\n \"headline\": \"Dream Office REIT (. D-UN-T -3.12%decrease.
|
||||
) also has gained 26 per cent from its low. Among U.S. REITs, Boston Properties
|
||||
Inc. (. BXP-N -1.25% ...\",\n \"publishedDate\": \"2023-12-09
|
||||
08:00:29\",\n \"publisher\": \"The Globe and Mail\",\n \"riskCategory\":
|
||||
\"Economic News and Financial News\",\n \"summary\": \"Office REITs
|
||||
are rallying despite high vacancies, posing a threat to BXP.\",\n \"url\":
|
||||
\"https://www.theglobeandmail.com/investing/markets/inside-the-market/article-office-reits-are-rallying-but-high-vacancies-are-still-a-threat/\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"BXP\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"EQIX\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"ESS\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"INVH\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [\n {\n \"headline\": \"... home rental
|
||||
property acquired as an investment towards retirement. So, the home is sold
|
||||
to a large management company that raises the rent and has ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 08:23:03\",\n \"publisher\": \"The Jolt News\",\n \"riskCategory\":
|
||||
\"Competition, Economic Conditions, Interest Rate News, Regulatory News, Technology
|
||||
News, Reputational News, Cybersecurity News, Financial News, Legal News\",\n
|
||||
\ \"summary\": \"UDR, Inc. may face regulatory risk as tenants in mobile
|
||||
home communities organize against rent hikes, impacting the demand for services
|
||||
and potentially affecting UDR's business. The article highlights the challenges
|
||||
faced by residents of Western Plaza Mobile Home Park and their efforts to
|
||||
oppose rent increases imposed by a national management company. This situation
|
||||
underscores the regulatory risks UDR faces in relation to tenant rights and
|
||||
ownership restrictions.\",\n \"url\": \"https://www.thejoltnews.com/stories/tumwater-mobile-home-tenants-lobby-against-rent-hikes,13259\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"UDR\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"IRM\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"PLD\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[\n {\n \"headline\": \"... home rental property acquired as an
|
||||
investment towards retirement. So, the home is sold to a large management
|
||||
company that raises the rent and has ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 08:23:03\",\n \"publisher\": \"The Jolt News\",\n \"riskCategory\":
|
||||
\"Interest Rate News, Economic News, Political News, Regulatory News, Competition
|
||||
News, Financial News, Legal News\",\n \"summary\": \"Camden Property
|
||||
Trust faces challenges as large management companies raise rents on rental
|
||||
properties, potentially decreasing the pool of affordable housing. The article
|
||||
highlights the impact of rent increases on seniors and the efforts of tenant
|
||||
associations to advocate for rent caps and regulations. This demonstrates
|
||||
the economic and regulatory risks faced by CPT.\",\n \"url\": \"https://www.thejoltnews.com/stories/tumwater-mobile-home-tenants-lobby-against-rent-hikes,13259\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"CPT\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"CSGP\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"VICI\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"WELL\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [\n {\n \"headline\": \"... home rental
|
||||
property acquired as an investment towards retirement. So, the home is sold
|
||||
to a large management company that raises the rent and has ...\",\n \"publishedDate\":
|
||||
\"2023-12-09 08:23:03\",\n \"publisher\": \"The Jolt News\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"Residents of Western Plaza Mobile
|
||||
Home Park in Tumwater, WA, are organizing against rent hikes imposed by Legacy
|
||||
Communities LLC. The rent increases have alarmed tenants on fixed incomes
|
||||
and sparked a collective urgency to organize opposition. Mid-America Apartment
|
||||
Communities (MAA) faces Competition Risk from other apartment communities,
|
||||
which can lead to higher prices, lower occupancy rates, and reduced revenue.\",\n
|
||||
\ \"url\": \"https://www.thejoltnews.com/stories/tumwater-mobile-home-tenants-lobby-against-rent-hikes,13259\"\n
|
||||
\ }\n ],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"MAA\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"PEAK\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"EXR\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"O\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"WY\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"FRT\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"PSA\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"ARE\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"ADC\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"SRG\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"ABR\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"IIPR\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"REFI\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n \"is_day_before_or_of_earnings\":
|
||||
false,\n \"n_8k_articles_with_summaries\": 0,\n \"n_articles_with_summaries\":
|
||||
0,\n \"n_pr_articles_with_summaries\": 0,\n \"symbol_type\": \"Company\"\n
|
||||
\ },\n \"pr_articles\": [],\n \"ticker\": \"AFCG\"\n },\n {\n \"8k_filings\":
|
||||
[],\n \"articles\": [],\n \"critical_factors\": {},\n \"earnings_summary\":
|
||||
{},\n \"industry_summary\": [],\n \"metadata\": {\n \"is_day_after_earnings\":
|
||||
false,\n \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 0,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Company\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"JOE\"\n },\n {\n \"8k_filings\": [],\n \"articles\":
|
||||
[],\n \"critical_factors\": {},\n \"earnings_summary\": {},\n \"industry_summary\":
|
||||
[\n {\n \"headline\": \"FTC Microsoft-Activision Deal\",\n \"publishedDate\":
|
||||
\"2023-12-09 15:57:06\",\n \"publisher\": \"TechSpot\",\n \"riskCategory\":
|
||||
\"Competition News\",\n \"summary\": \"The US Federal Trade Commission
|
||||
(FTC) continues to challenge Microsoft's acquisition of Activision Blizzard,
|
||||
arguing that Microsoft could withhold Activision Blizzard content from rival
|
||||
platforms. The FTC claims that Microsoft's decision to make Zenimax titles
|
||||
Xbox exclusive after purchasing that company supports this concern. However,
|
||||
Microsoft has made concessions to regulators and signed a deal with Sony to
|
||||
keep future Call of Duty entries on PlayStation.\",\n \"url\": \"https://www.techspot.com/news/101136-ftc-continues-fighting-microsoft-activision-deal-post-closure.html\"\n
|
||||
\ }\n ],\n \"metadata\": {\n \"is_day_after_earnings\": false,\n
|
||||
\ \"is_day_before_or_of_earnings\": false,\n \"n_8k_articles_with_summaries\":
|
||||
0,\n \"n_articles_with_summaries\": 1,\n \"n_pr_articles_with_summaries\":
|
||||
0,\n \"symbol_type\": \"Industry\"\n },\n \"pr_articles\": [],\n
|
||||
\ \"ticker\": \"REIT\\u2014Residential\"\n }\n]\n"
|
||||
headers:
|
||||
Access-Control-Allow-Origin:
|
||||
- '*'
|
||||
Connection:
|
||||
- keep-alive
|
||||
Content-Length:
|
||||
- '26011'
|
||||
Content-Type:
|
||||
- application/json
|
||||
Date:
|
||||
- Mon, 11 Dec 2023 12:13:49 GMT
|
||||
Server:
|
||||
- nginx/1.18.0 (Ubuntu)
|
||||
status:
|
||||
code: 200
|
||||
message: OK
|
||||
version: 1
|
||||
@@ -1,45 +0,0 @@
|
||||
import pytest
|
||||
from openbb_core.app.service.user_service import UserService
|
||||
|
||||
try:
|
||||
from openbb_ultima.models.company_news import UltimaCompanyNewsFetcher
|
||||
from openbb_ultima.models.sector_news import UltimaSectorNewsFetcher
|
||||
except ImportError:
|
||||
pytest.skip("openbb-ultima is not installed on the CI.", allow_module_level=True)
|
||||
|
||||
test_credentials = UserService().default_user_settings.credentials.model_dump(
|
||||
mode="json"
|
||||
)
|
||||
|
||||
|
||||
test_credentials["ultima_api_key"] = "MOCK_API_KEY" # pragma: allowlist secret
|
||||
|
||||
|
||||
@pytest.fixture(scope="module")
|
||||
def vcr_config():
|
||||
return {
|
||||
"filter_headers": [
|
||||
("User-Agent", None),
|
||||
("Authorization", "Bearer MOCK_API_KEY"),
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
@pytest.mark.skip(reason="openbb-ultima is not installed on the CI.")
|
||||
def test_ultima_company_news_fetcher(credentials=test_credentials):
|
||||
params = {"symbols": "AAPL, MSFT"}
|
||||
|
||||
fetcher = UltimaCompanyNewsFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
|
||||
|
||||
@pytest.mark.record_http
|
||||
@pytest.mark.skip(reason="openbb-ultima is not installed on the CI.")
|
||||
def test_ultima_sector_news_fetcher(credentials=test_credentials):
|
||||
params = {"sectors": "Real Estate, Financial Services"}
|
||||
|
||||
fetcher = UltimaSectorNewsFetcher()
|
||||
result = fetcher.test(params, credentials)
|
||||
assert result is None
|
||||
Reference in New Issue
Block a user