[BugFix] Fix Currency Search (#6380)

* fix currency search

* test artifact

* static files
This commit is contained in:
Danglewood
2024-05-09 02:38:59 -07:00
committed by GitHub
parent 1a49dfdd9e
commit 4d6074de2d
11 changed files with 563 additions and 632 deletions

View File

@@ -1,16 +1,24 @@
"""Currency Available Pairs Standard Model."""
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
class CurrencyPairsQueryParams(QueryParams):
"""Currency Available Pairs Query."""
query: Optional[str] = Field(
default=None, description="Query to search for currency pairs."
)
class CurrencyPairsData(Data):
"""Currency Available Pairs Data."""
name: str = Field(description="Name of the currency pair.")
symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))
name: Optional[str] = Field(default=None, description="Name of the currency pair.")

View File

@@ -27,23 +27,19 @@ def headers():
(
{
"provider": "polygon",
"symbol": "USDJPY",
"date": "2023-10-12",
"search": "",
"active": True,
"order": "asc",
"sort": "currency_name",
"limit": 100,
"query": "eur",
}
),
(
{
"provider": "fmp",
"query": "eur",
}
),
(
{
"provider": "intrinio",
"query": "eur",
}
),
],

View File

@@ -24,23 +24,19 @@ def obb(pytestconfig):
(
{
"provider": "polygon",
"symbol": "USDJPY",
"date": "2023-10-12",
"search": "",
"active": True,
"order": "asc",
"sort": "currency_name",
"limit": 100,
"query": "eur",
}
),
(
{
"provider": "fmp",
"query": "eur",
}
),
(
{
"provider": "intrinio",
"query": "eur",
}
),
],

View File

@@ -21,18 +21,14 @@ router.include_router(price_router)
@router.command(
model="CurrencyPairs",
examples=[
APIEx(parameters={"provider": "intrinio"}),
APIEx(parameters={"provider": "fmp"}),
APIEx(
description="Search for 'EURUSD' currency pair using 'intrinio' as provider.",
parameters={"provider": "intrinio", "symbol": "EURUSD"},
),
APIEx(
description="Search for actively traded currency pairs on the queried date using 'polygon' as provider.",
parameters={"provider": "polygon", "date": "2024-01-02", "active": True},
description="Search for 'EUR' currency pair using 'intrinio' as provider.",
parameters={"provider": "intrinio", "query": "EUR"},
),
APIEx(
description="Search for terms using 'polygon' as provider.",
parameters={"provider": "polygon", "search": "Euro zone"},
parameters={"provider": "polygon", "query": "Euro zone"},
),
],
)

View File

@@ -576,9 +576,16 @@
"message": null
},
"description": "Currency Search.\n\nSearch available currency pairs.\nCurrency pairs are the national currencies from two countries coupled for trading on\nthe foreign exchange (FX) marketplace.\nBoth currencies will have exchange rates on which the trade will have its position basis.\nAll trading within the forex market, whether selling, buying, or trading, will take place through currency pairs.\n(ref: Investopedia)\nMajor currency pairs include pairs such as EUR/USD, USD/JPY, GBP/USD, etc.",
"examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.currency.search(provider='intrinio')\n# Search for 'EURUSD' currency pair using 'intrinio' as provider.\nobb.currency.search(provider='intrinio', symbol=EURUSD)\n# Search for actively traded currency pairs on the queried date using 'polygon' as provider.\nobb.currency.search(provider='polygon', date=2024-01-02, active=True)\n# Search for terms using 'polygon' as provider.\nobb.currency.search(provider='polygon', search=Euro zone)\n```\n\n",
"examples": "\nExamples\n--------\n\n```python\nfrom openbb import obb\nobb.currency.search(provider='fmp')\n# Search for 'EUR' currency pair using 'intrinio' as provider.\nobb.currency.search(provider='intrinio', query='EUR')\n# Search for terms using 'polygon' as provider.\nobb.currency.search(provider='polygon', query='Euro zone')\n```\n\n",
"parameters": {
"standard": [
{
"name": "query",
"type": "str",
"description": "Query to search for currency pairs.",
"default": null,
"optional": true
},
{
"name": "provider",
"type": "Literal['fmp', 'intrinio', 'polygon']",
@@ -589,57 +596,7 @@
],
"fmp": [],
"intrinio": [],
"polygon": [
{
"name": "symbol",
"type": "str",
"description": "Symbol of the pair to search.",
"default": null,
"optional": true
},
{
"name": "date",
"type": "Union[date, str]",
"description": "A specific date to get data for.",
"default": null,
"optional": true
},
{
"name": "search",
"type": "str",
"description": "Search for terms within the ticker and/or company name.",
"default": "",
"optional": true
},
{
"name": "active",
"type": "bool",
"description": "Specify if the tickers returned should be actively traded on the queried date.",
"default": true,
"optional": true
},
{
"name": "order",
"type": "Literal['asc', 'desc']",
"description": "Order data by ascending or descending.",
"default": "asc",
"optional": true
},
{
"name": "sort",
"type": "Literal['ticker', 'name', 'market', 'locale', 'currency_symbol', 'currency_name', 'base_currency_symbol', 'base_currency_name', 'last_updated_utc', 'delisted_utc']",
"description": "Sort field used for ordering.",
"default": null,
"optional": true
},
{
"name": "limit",
"type": "Annotated[int, Gt(gt=0)]",
"description": "The number of data entries to return.",
"default": 1000,
"optional": true
}
]
"polygon": []
},
"returns": {
"OBBject": [
@@ -672,22 +629,22 @@
},
"data": {
"standard": [
{
"name": "name",
"type": "str",
"description": "Name of the currency pair.",
"default": "",
"optional": false
}
],
"fmp": [
{
"name": "symbol",
"type": "str",
"description": "Symbol of the currency pair.",
"description": "Symbol representing the entity requested in the data.",
"default": "",
"optional": false
},
{
"name": "name",
"type": "str",
"description": "Name of the currency pair.",
"default": null,
"optional": true
}
],
"fmp": [
{
"name": "currency",
"type": "str",
@@ -711,13 +668,6 @@
}
],
"intrinio": [
{
"name": "code",
"type": "str",
"description": "Code of the currency pair.",
"default": "",
"optional": false
},
{
"name": "base_currency",
"type": "str",
@@ -734,20 +684,6 @@
}
],
"polygon": [
{
"name": "market",
"type": "str",
"description": "Name of the trading market. Always 'fx'.",
"default": "",
"optional": false
},
{
"name": "locale",
"type": "str",
"description": "Locale of the currency pair.",
"default": "",
"optional": false
},
{
"name": "currency_symbol",
"type": "str",
@@ -755,13 +691,6 @@
"default": null,
"optional": true
},
{
"name": "currency_name",
"type": "str",
"description": "Name of the quote currency.",
"default": null,
"optional": true
},
{
"name": "base_currency_symbol",
"type": "str",
@@ -777,16 +706,30 @@
"optional": true
},
{
"name": "last_updated_utc",
"type": "datetime",
"description": "The last updated timestamp in UTC.",
"name": "market",
"type": "str",
"description": "Name of the trading market. Always 'fx'.",
"default": "",
"optional": false
},
{
"name": "delisted_utc",
"type": "datetime",
"description": "The delisted timestamp in UTC.",
"name": "locale",
"type": "str",
"description": "Locale of the currency pair.",
"default": "",
"optional": false
},
{
"name": "last_updated",
"type": "date",
"description": "The date the reference data was last updated.",
"default": null,
"optional": true
},
{
"name": "delisted",
"type": "date",
"description": "The date the item was delisted.",
"default": null,
"optional": true
}

View File

@@ -31,6 +31,10 @@ class ROUTER_currency(Container):
@validate
def search(
self,
query: Annotated[
Optional[str],
OpenBBField(description="Query to search for currency pairs."),
] = None,
provider: Annotated[
Optional[Literal["fmp", "intrinio", "polygon"]],
OpenBBField(
@@ -52,24 +56,12 @@ class ROUTER_currency(Container):
Parameters
----------
query : Optional[str]
Query to search for currency pairs.
provider : Optional[Literal['fmp', 'intrinio', 'polygon']]
The provider to use for the query, by default None.
If None, the provider specified in defaults is selected or 'fmp' if there is
no default.
symbol : Optional[str]
Symbol of the pair to search. (provider: polygon)
date : Optional[datetime.date]
A specific date to get data for. (provider: polygon)
search : Optional[str]
Search for terms within the ticker and/or company name. (provider: polygon)
active : Optional[bool]
Specify if the tickers returned should be actively traded on the queried date. (provider: polygon)
order : Optional[Literal['asc', 'desc']]
Order data by ascending or descending. (provider: polygon)
sort : Optional[Literal['ticker', 'name', 'market', 'locale', 'currency_symbol', 'currency_name', 'base_currency_symbol', 'base_currency_name', 'last_updated_utc', 'delisted_utc']]
Sort field used for ordering. (provider: polygon)
limit : Optional[Annotated[int, Gt(gt=0)]]
The number of data entries to return. (provider: polygon)
Returns
-------
@@ -87,49 +79,43 @@ class ROUTER_currency(Container):
CurrencyPairs
-------------
name : str
symbol : str
Symbol representing the entity requested in the data.
name : Optional[str]
Name of the currency pair.
symbol : Optional[str]
Symbol of the currency pair. (provider: fmp)
currency : Optional[str]
Base currency of the currency pair. (provider: fmp)
stock_exchange : Optional[str]
Stock exchange of the currency pair. (provider: fmp)
exchange_short_name : Optional[str]
Short name of the stock exchange of the currency pair. (provider: fmp)
code : Optional[str]
Code of the currency pair. (provider: intrinio)
base_currency : Optional[str]
ISO 4217 currency code of the base currency. (provider: intrinio)
quote_currency : Optional[str]
ISO 4217 currency code of the quote currency. (provider: intrinio)
market : Optional[str]
Name of the trading market. Always 'fx'. (provider: polygon)
locale : Optional[str]
Locale of the currency pair. (provider: polygon)
currency_symbol : Optional[str]
The symbol of the quote currency. (provider: polygon)
currency_name : Optional[str]
Name of the quote currency. (provider: polygon)
base_currency_symbol : Optional[str]
The symbol of the base currency. (provider: polygon)
base_currency_name : Optional[str]
Name of the base currency. (provider: polygon)
last_updated_utc : Optional[datetime]
The last updated timestamp in UTC. (provider: polygon)
delisted_utc : Optional[datetime]
The delisted timestamp in UTC. (provider: polygon)
market : Optional[str]
Name of the trading market. Always 'fx'. (provider: polygon)
locale : Optional[str]
Locale of the currency pair. (provider: polygon)
last_updated : Optional[date]
The date the reference data was last updated. (provider: polygon)
delisted : Optional[date]
The date the item was delisted. (provider: polygon)
Examples
--------
>>> from openbb import obb
>>> obb.currency.search(provider='intrinio')
>>> # Search for 'EURUSD' currency pair using 'intrinio' as provider.
>>> obb.currency.search(provider='intrinio', symbol='EURUSD')
>>> # Search for actively traded currency pairs on the queried date using 'polygon' as provider.
>>> obb.currency.search(provider='polygon', date='2024-01-02', active=True)
>>> obb.currency.search(provider='fmp')
>>> # Search for 'EUR' currency pair using 'intrinio' as provider.
>>> obb.currency.search(provider='intrinio', query='EUR')
>>> # Search for terms using 'polygon' as provider.
>>> obb.currency.search(provider='polygon', search='Euro zone')
>>> obb.currency.search(provider='polygon', query='Euro zone')
""" # noqa: E501
return self._run(
@@ -142,7 +128,9 @@ class ROUTER_currency(Container):
("fmp", "intrinio", "polygon"),
)
},
standard_params={},
standard_params={
"query": query,
},
extra_params=kwargs,
)
)

View File

@@ -1,5 +1,7 @@
"""FMP Currency Available Pairs Model."""
# pylint: disable=unused-argument
from typing import Any, Dict, List, Optional
from openbb_core.provider.abstract.fetcher import Fetcher
@@ -7,7 +9,9 @@ from openbb_core.provider.standard_models.currency_pairs import (
CurrencyPairsData,
CurrencyPairsQueryParams,
)
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_fmp.utils.helpers import get_data_many
from pandas import DataFrame
from pydantic import Field
@@ -53,7 +57,6 @@ class FMPCurrencyPairsFetcher(
) -> List[Dict]:
"""Return the raw data from the FMP endpoint."""
api_key = credentials.get("fmp_api_key") if credentials else ""
base_url = "https://financialmodelingprep.com/api/v3"
url = f"{base_url}/symbol/available-forex-currency-pairs?apikey={api_key}"
@@ -64,4 +67,20 @@ class FMPCurrencyPairsFetcher(
query: FMPCurrencyPairsQueryParams, data: List[Dict], **kwargs: Any
) -> List[FMPCurrencyPairsData]:
"""Return the transformed data."""
return [FMPCurrencyPairsData.model_validate(d) for d in data]
if not data:
raise EmptyDataError("The request was returned empty.")
df = DataFrame(data)
if query.query:
df = df[
df["name"].str.contains(query.query, case=False)
| df["symbol"].str.contains(query.query, case=False)
| df["currency"].str.contains(query.query, case=False)
| df["stockExchange"].str.contains(query.query, case=False)
| df["exchangeShortName"].str.contains(query.query, case=False)
]
if len(df) == 0:
raise EmptyDataError(
f"No results were found with the query supplied. -> {query.query}"
+ " Hint: Names and descriptions are not searchable from FMP, try 3-letter symbols."
)
return [FMPCurrencyPairsData.model_validate(d) for d in df.to_dict("records")]

View File

@@ -7,7 +7,9 @@ from openbb_core.provider.standard_models.currency_pairs import (
CurrencyPairsData,
CurrencyPairsQueryParams,
)
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_intrinio.utils.helpers import get_data_many
from pandas import DataFrame
from pydantic import Field
@@ -21,9 +23,8 @@ class IntrinioCurrencyPairsQueryParams(CurrencyPairsQueryParams):
class IntrinioCurrencyPairsData(CurrencyPairsData):
"""Intrinio Currency Available Pairs Data."""
__alias_dict__ = {"name": "code"}
__alias_dict__ = {"symbol": "code"}
code: str = Field(description="Code of the currency pair.", alias="name")
base_currency: str = Field(
description="ISO 4217 currency code of the base currency."
)
@@ -56,7 +57,6 @@ class IntrinioCurrencyPairsFetcher(
base_url = "https://api-v2.intrinio.com"
url = f"{base_url}/forex/pairs?api_key={api_key}"
return await get_data_many(url, "pairs", **kwargs)
@staticmethod
@@ -64,4 +64,21 @@ class IntrinioCurrencyPairsFetcher(
query: IntrinioCurrencyPairsQueryParams, data: List[Dict], **kwargs: Any
) -> List[IntrinioCurrencyPairsData]:
"""Return the transformed data."""
return [IntrinioCurrencyPairsData.model_validate(d) for d in data]
if not data:
raise EmptyDataError("The request was returned empty.")
df = DataFrame(data)
if query.query:
df = df[
df["code"].str.contains(query.query, case=False)
| df["base_currency"].str.contains(query.query, case=False)
| df["quote_currency"].str.contains(query.query, case=False)
]
if len(df) == 0:
raise EmptyDataError(
f"No results were found with the query supplied. -> {query.query}"
+ " Hint: Names and descriptions are not searchable from Intrinio, try 3-letter symbols."
)
return [
IntrinioCurrencyPairsData.model_validate(d)
for d in df.to_dict(orient="records")
]

View File

@@ -1,19 +1,22 @@
"""Polygon Currency Available Pairs Model."""
# pylint: disable=unused-argument
from datetime import (
date as dateType,
datetime,
)
from typing import Any, Dict, List, Literal, Optional
from typing import Any, Dict, List, Optional
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.currency_pairs import (
CurrencyPairsData,
CurrencyPairsQueryParams,
)
from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_polygon.utils.helpers import get_data
from pydantic import Field, PositiveInt, field_validator
from pandas import DataFrame
from pydantic import Field, field_validator
class PolygonCurrencyPairsQueryParams(CurrencyPairsQueryParams):
@@ -22,75 +25,39 @@ class PolygonCurrencyPairsQueryParams(CurrencyPairsQueryParams):
Source: https://polygon.io/docs/forex/get_v3_reference_tickers
"""
symbol: Optional[str] = Field(
default=None, description="Symbol of the pair to search."
)
date: Optional[dateType] = Field(
default=None, description=QUERY_DESCRIPTIONS.get("date", "")
)
search: Optional[str] = Field(
default="",
description="Search for terms within the ticker and/or company name.",
)
active: Optional[bool] = Field(
default=True,
description="Specify if the tickers returned should be actively traded on the queried date.",
)
order: Optional[Literal["asc", "desc"]] = Field(
default="asc", description="Order data by ascending or descending."
)
sort: Optional[
Literal[
"ticker",
"name",
"market",
"locale",
"currency_symbol",
"currency_name",
"base_currency_symbol",
"base_currency_name",
"last_updated_utc",
"delisted_utc",
]
] = Field(default=None, description="Sort field used for ordering.")
limit: Optional[PositiveInt] = Field(
default=1000, description=QUERY_DESCRIPTIONS.get("limit", "")
)
class PolygonCurrencyPairsData(CurrencyPairsData):
"""Polygon Currency Available Pairs Data."""
market: str = Field(description="Name of the trading market. Always 'fx'.")
locale: str = Field(description="Locale of the currency pair.")
__alias_dict__ = {
"last_updated": "last_updated_utc",
"delisted": "delisted_utc",
"name": "currency_name",
"symbol": "ticker",
}
currency_symbol: Optional[str] = Field(
default=None, description="The symbol of the quote currency."
)
currency_name: Optional[str] = Field(
default=None, description="Name of the quote currency."
)
base_currency_symbol: Optional[str] = Field(
default=None, description="The symbol of the base currency."
)
base_currency_name: Optional[str] = Field(
default=None, description="Name of the base currency."
)
last_updated_utc: datetime = Field(description="The last updated timestamp in UTC.")
delisted_utc: Optional[datetime] = Field(
default=None, description="The delisted timestamp in UTC."
market: str = Field(description="Name of the trading market. Always 'fx'.")
locale: str = Field(description="Locale of the currency pair.")
last_updated: Optional[dateType] = Field(
default=None, description="The date the reference data was last updated."
)
delisted: Optional[dateType] = Field(
default=None, description="The date the item was delisted."
)
@field_validator("last_updated_utc", mode="before", check_fields=False)
@field_validator("last_updated", "delisted", mode="before", check_fields=False)
@classmethod
def last_updated_utc_validate(cls, v): # pylint: disable=E0213
"""Return the parsed last updated timestamp in UTC."""
return datetime.strptime(v, "%Y-%m-%dT%H:%M:%SZ")
@field_validator("delisted_utc", mode="before", check_fields=False)
@classmethod
def delisted_utc_validate(cls, v): # pylint: disable=E0213
"""Return the parsed delisted timestamp in UTC."""
return datetime.strptime(v, "%Y-%m-%dT%H:%M:%SZ")
return datetime.strptime(v, "%Y-%m-%dT%H:%M:%SZ").date() if v else None
class PolygonCurrencyPairsFetcher(
@@ -99,51 +66,36 @@ class PolygonCurrencyPairsFetcher(
List[PolygonCurrencyPairsData],
]
):
"""Transform the query, extract and transform the data from the Polygon endpoints."""
"""Polygon Currency Pairs Fetcher."""
@staticmethod
def transform_query(params: Dict[str, Any]) -> PolygonCurrencyPairsQueryParams:
"""Transform the query parameters. Ticker is set if symbol is provided."""
transform_params = params
now = datetime.now().date().isoformat()
symbol = params.get("symbol")
transform_params["symbol"] = f"ticker=C:{symbol.upper()}" if symbol else ""
if params.get("date") is None:
transform_params["date"] = now
return PolygonCurrencyPairsQueryParams(**transform_params)
"""Transform the query parameters."""
return PolygonCurrencyPairsQueryParams(**params)
@staticmethod
async def aextract_data(
query: PolygonCurrencyPairsQueryParams,
credentials: Optional[Dict[str, str]],
**kwargs: Any,
) -> List[dict]:
) -> List[Dict]:
"""Extract the data from the Polygon API."""
api_key = credentials.get("polygon_api_key") if credentials else ""
request_url = (
f"https://api.polygon.io/v3/reference/"
f"tickers?{query.symbol}&market=fx&date={query.date}&"
f"search={query.search}&active={query.active}&order={query.order}&"
f"limit={query.limit}"
f"tickers?&market=fx&limit=1000"
f"&apiKey={api_key}"
)
if query.sort:
request_url += f"&sort={query.sort}"
request_url = f"{request_url}&apiKey={api_key}"
data = {"next_url": request_url}
all_data: List[Dict] = []
while "next_url" in data:
data = await get_data(request_url, **kwargs)
if isinstance(data, list):
raise ValueError("Expected a dict, got a list")
if len(data["results"]) == 0:
raise RuntimeError(
"No results found. Please change your query parameters."
)
if data["status"] == "OK":
results = data.get("results")
if not isinstance(results, list):
@@ -153,18 +105,34 @@ class PolygonCurrencyPairsFetcher(
all_data.extend(results)
elif data["status"] == "ERROR":
raise UserWarning(data["error"])
if "next_url" in data:
request_url = f"{data['next_url']}&apiKey={api_key}"
return all_data
# pylint: disable=unused-argument
@staticmethod
def transform_data(
query: PolygonCurrencyPairsQueryParams,
data: List[dict],
data: List[Dict],
**kwargs: Any,
) -> List[PolygonCurrencyPairsData]:
"""Transform the data into a list of PolygonCurrencyPairsData."""
return [PolygonCurrencyPairsData.model_validate(d) for d in data]
"""Filter data by search query and validate the model."""
if not data:
raise EmptyDataError("The request was returned empty.")
df = DataFrame(data)
df["ticker"] = df["ticker"].str.replace("C:", "")
if query.query:
df = df[
df["name"].str.contains(query.query, case=False)
| df["base_currency_name"].str.contains(query.query, case=False)
| df["currency_name"].str.contains(query.query, case=False)
| df["base_currency_symbol"].str.contains(query.query, case=False)
| df["currency_symbol"].str.contains(query.query, case=False)
| df["ticker"].str.contains(query.query, case=False)
]
if len(df) == 0:
raise EmptyDataError(
f"No results were found with the query supplied. -> {query.query}"
)
return [
PolygonCurrencyPairsData.model_validate(d) for d in df.to_dict("records")
]

View File

@@ -9,283 +9,283 @@ interactions:
Connection:
- keep-alive
method: GET
uri: https://api.polygon.io/v3/reference/tickers?active=True&apiKey=MOCK_API_KEY&date=2023-01-01&limit=1000&market=fx&order=asc
uri: https://api.polygon.io/v3/reference/tickers?apiKey=MOCK_API_KEY&limit=1000&market=fx
response:
body:
string: !!binary |
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
AP//68nYAu8yBAA=
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
686P79TtMFt8vD77j/8XAAD//zVlYESiMwQA
headers:
Connection:
- keep-alive
@@ -294,9 +294,9 @@ interactions:
Content-Type:
- application/json
Date:
- Tue, 07 May 2024 16:14:03 GMT
- Thu, 09 May 2024 05:16:50 GMT
Link:
- <https://api.polygon.io/v3/reference/tickers?cursor=YWN0aXZlPXRydWUmYXA9QyUzQVNFS1pBUiU3QzMzMTc2YTg2ZjlhZGY2YThhMjE1MWY2M2Y5MjJkMjBkZTU0YzMwYTVjN2RhMGM5ZjgxYWJiNjQ3ZmU5ZWU3M2UmYXM9JmRhdGU9MjAyMy0wMS0wMSZsaW1pdD0xMDAwJm1hcmtldD1meCZvcmRlcj1hc2Mmc29ydD10aWNrZXI>;
- <https://api.polygon.io/v3/reference/tickers?cursor=YWN0aXZlPXRydWUmYXA9QyUzQVNFS1pBUiU3QzMzMTc2YTg2ZjlhZGY2YThhMjE1MWY2M2Y5MjJkMjBkZTU0YzMwYTVjN2RhMGM5ZjgxYWJiNjQ3ZmU5ZWU3M2UmYXM9JmRhdGU9MjAyNC0wNS0wOSZsaW1pdD0xMDAwJm1hcmtldD1meCZvcmRlcj1hc2Mmc29ydD10aWNrZXI>;
rel="next"
Server:
- nginx/1.19.2
@@ -309,7 +309,7 @@ interactions:
X-Item-Count:
- '1000'
X-Request-Id:
- b6491d6a58833e8f17bf0ea48c2fb8d3
- 2557e9c6a8d55bf0bf57cfb244abe400
status:
code: 200
message: OK
@@ -323,123 +323,123 @@ interactions:
Connection:
- keep-alive
method: GET
uri: https://api.polygon.io/v3/reference/tickers?apiKey=MOCK_API_KEY&cursor=YWN0aXZlPXRydWUmYXA9QyUzQVNFS1pBUiU3QzMzMTc2YTg2ZjlhZGY2YThhMjE1MWY2M2Y5MjJkMjBkZTU0YzMwYTVjN2RhMGM5ZjgxYWJiNjQ3ZmU5ZWU3M2UmYXM9JmRhdGU9MjAyMy0wMS0wMSZsaW1pdD0xMDAwJm1hcmtldD1meCZvcmRlcj1hc2Mmc29ydD10aWNrZXI
uri: https://api.polygon.io/v3/reference/tickers?apiKey=MOCK_API_KEY&cursor=YWN0aXZlPXRydWUmYXA9QyUzQVNFS1pBUiU3QzMzMTc2YTg2ZjlhZGY2YThhMjE1MWY2M2Y5MjJkMjBkZTU0YzMwYTVjN2RhMGM5ZjgxYWJiNjQ3ZmU5ZWU3M2UmYXM9JmRhdGU9MjAyNC0wNS0wOSZsaW1pdD0xMDAwJm1hcmtldD1meCZvcmRlcj1hc2Mmc29ydD10aWNrZXI
response:
body:
string: !!binary |
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
h8Alz1nWuPrxz+/+8f8BAAD//07s25ishQEA
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
headers:
Connection:
- keep-alive
@@ -448,7 +448,7 @@ interactions:
Content-Type:
- application/json
Date:
- Tue, 07 May 2024 16:14:03 GMT
- Thu, 09 May 2024 05:16:50 GMT
Server:
- nginx/1.19.2
Strict-Transport-Security:
@@ -460,7 +460,7 @@ interactions:
X-Item-Count:
- '351'
X-Request-Id:
- 3e66ea32a52f1eab3957b9ea2177678c
- 304d360bcfd5e560d5b2a0fe2bbbb357
status:
code: 200
message: OK

View File

@@ -152,7 +152,7 @@ def test_polygon_currency_historical_fetcher(credentials=test_credentials):
@pytest.mark.record_http
def test_polygon_currency_pairs_fetcher(credentials=test_credentials):
"""Test the Polygon Currency Pairs fetcher."""
params = {"date": date(2023, 1, 1)}
params = {}
fetcher = PolygonCurrencyPairsFetcher()
result = fetcher.test(params, credentials)