Merge branch 'develop' into feature/websockets

This commit is contained in:
Danglewood
2025-01-15 20:30:04 -08:00
committed by GitHub
39 changed files with 7064 additions and 1863 deletions

View File

@@ -1,3 +1,3 @@
"""Placeholder for the OpenBB Platform Installer package."""
__version__ = "1.0.0"
__version__ = "1.0.2"

View File

@@ -1,7 +1,7 @@
# If you will be using this as a template for your own package, please change the values accordingly.
[tool.poetry]
name = "openbb_platform_installer" # Change this to your package name
version = "1.0.0" # Change this to your package version
version = "1.0.2" # Change this to your package version
description = "A meta package for installing the OpenBB Platform: Investment research for everyone, anywhere." # Change this to your description
authors = ["OpenBB <hello@openbb.co>"] # Change this to your name and email
license = "AGPL-3.0-only" # This license must be compatible with the OpenBB license

View File

@@ -32,7 +32,6 @@ channels:
condarc:
{channels: [conda-forge],
default_channels: [conda-forge],
allow_softlinks: false,
auto_activate_base: false,
always_copy: true,

View File

@@ -14,7 +14,7 @@ python -m pip install -U pip >> "%LOG_FILE%" 2>&1
pip install -U setuptools >> "%LOG_FILE%" 2>&1
pip install poetry >> "%LOG_FILE%" 2>&1
pip install poetry==1.8.5 >> "%LOG_FILE%" 2>&1
poetry config virtualenvs.path "%PREFIX%\envs" --local >> "%LOG_FILE%" 2>&1

View File

@@ -19,6 +19,8 @@ python -m pip install -U pip >>"$LOG_FILE" 2>&1
pip install -U setuptools poetry >>"$LOG_FILE" 2>&1
pip install poetry==1.8.5 >>"$LOG_FILE" 2>&1
poetry config virtualenvs.path "$PREFIX/envs" --local >>"$LOG_FILE" 2>&1
poetry config virtualenvs.create false --local >>"$LOG_FILE" 2>&1

View File

@@ -1,26 +1,12 @@
"""Compare Groups Model."""
from typing import Optional
from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.query_params import QueryParams
from pydantic import Field
class CompareGroupsQueryParams(QueryParams):
"""Compare Groups Query."""
group: Optional[str] = Field(
default=None,
description="The group to compare - i.e., 'sector', 'industry', 'country'. Choices vary by provider.",
)
metric: Optional[str] = Field(
default=None,
description="The type of metrics to compare - i.e, 'valuation', 'performance'. Choices vary by provider.",
)
class CompareGroupsData(Data):
"""Compare Groups Data."""
name: str = Field(description="Name or label of the group.")

View File

@@ -0,0 +1,18 @@
"""Futures Info Standard Model."""
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
from pydantic import Field
class FuturesInfoQueryParams(QueryParams):
"""Futures Info Query."""
# leaving this empty to let the provider create custom symbol docstrings.
class FuturesInfoData(Data):
"""Futures Instruments Data."""
symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))

View File

@@ -0,0 +1,12 @@
"""Futures Instruments Standard Model."""
from openbb_core.provider.abstract.data import Data
from openbb_core.provider.abstract.query_params import QueryParams
class FuturesInstrumentsQueryParams(QueryParams):
"""Futures Instruments Query."""
class FuturesInstrumentsData(Data):
"""Futures Instruments Data."""

View File

@@ -148,7 +148,7 @@ def install_platform_local(_extras: bool = False):
extras_args = ["-E", "all"] if _extras else []
subprocess.run(
CMD + ["lock", "--no-update"],
CMD + ["lock"],
cwd=PLATFORM_PATH,
check=True,
)
@@ -193,7 +193,7 @@ def install_platform_cli():
CMD = [sys.executable, "-m", "poetry"]
subprocess.run(
CMD + ["lock", "--no-update"],
CMD + ["lock"],
cwd=CLI_PATH,
check=True, # noqa: S603
)

View File

@@ -113,6 +113,15 @@ def test_derivatives_options_unusual(params, headers):
"expiration": "2025-12",
}
),
(
{
"provider": "deribit",
"interval": "1d",
"symbol": "BTC,ETH",
"start_date": "2023-01-01",
"end_date": "2023-06-06",
}
),
],
)
@pytest.mark.integration
@@ -144,6 +153,7 @@ def test_derivatives_futures_historical(params, headers):
"date": "2024-06-25",
}
),
({"provider": "deribit", "date": None, "symbol": "BTC", "hours_ago": 12}),
],
)
@pytest.mark.integration
@@ -164,7 +174,9 @@ def test_derivatives_futures_curve(params, headers):
({"provider": "intrinio", "date": None, "only_traded": True}),
],
)
@pytest.mark.integration
@pytest.mark.skip(
reason="This test is skipped because the download is excessively large."
)
def test_derivatives_options_snapshots(params, headers):
"""Test the options snapshots endpoint."""
params = {p: v for p, v in params.items() if v}
@@ -174,3 +186,39 @@ def test_derivatives_options_snapshots(params, headers):
result = requests.get(url, headers=headers, timeout=60)
assert isinstance(result, requests.Response)
assert result.status_code == 200
@parametrize(
"params",
[
({"provider": "deribit"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_instruments(params, headers):
"""Test the futures instruments 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/derivatives/futures/instruments?{query_str}"
result = requests.get(url, headers=headers, timeout=10)
assert isinstance(result, requests.Response)
assert result.status_code == 200
@parametrize(
"params",
[
({"provider": "deribit", "symbol": "ETH-PERPETUAL"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_info(params, headers):
"""Test the futures info 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/derivatives/futures/info?{query_str}"
result = requests.get(url, headers=headers, timeout=10)
assert isinstance(result, requests.Response)
assert result.status_code == 200

View File

@@ -114,6 +114,15 @@ def test_derivatives_options_unusual(params, obb):
"expiration": "2025-12",
}
),
(
{
"provider": "deribit",
"interval": "1d",
"symbol": "BTC,ETH",
"start_date": "2023-01-01",
"end_date": "2023-06-06",
}
),
],
)
@pytest.mark.integration
@@ -130,6 +139,7 @@ def test_derivatives_futures_historical(params, obb):
[
({"provider": "yfinance", "symbol": "ES", "date": None}),
({"provider": "cboe", "symbol": "VX", "date": "2024-06-25"}),
({"provider": "deribit", "date": None, "symbol": "BTC", "hours_ago": 12}),
],
)
@pytest.mark.integration
@@ -147,10 +157,42 @@ def test_derivatives_futures_curve(params, obb):
({"provider": "intrinio", "date": None, "only_traded": True}),
],
)
@pytest.mark.integration
@pytest.mark.skip(
reason="This test is skipped because the download is excessively large."
)
def test_derivatives_options_snapshots(params, obb):
"""Test the options snapshots endpoint."""
result = obb.derivatives.options.snapshots(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0
@parametrize(
"params",
[
({"provider": "deribit"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_instruments(params, obb):
"""Test the futures instruments endpoint."""
result = obb.derivatives.futures.instruments(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0
@parametrize(
"params",
[
({"provider": "deribit", "symbol": "ETH-PERPETUAL"}),
],
)
@pytest.mark.integration
def test_derivatives_futures_info(params, obb):
"""Test the futures info endpoint."""
result = obb.derivatives.futures.info(**params)
assert result
assert isinstance(result, OBBject)
assert len(result.results) > 0

View File

@@ -17,6 +17,8 @@ class DerivativesViews:
# pylint: disable=import-outside-toplevel
from openbb_charting.charts.price_historical import price_historical
kwargs.update({"candles": False, "same_axis": False})
return price_historical(**kwargs)
@staticmethod
@@ -107,7 +109,8 @@ class DerivativesViews:
provider = kwargs.get("provider", "")
df["expiration"] = df["expiration"].apply(to_datetime).dt.strftime("%b-%Y")
if provider != "deribit":
df["expiration"] = df["expiration"].apply(to_datetime).dt.strftime("%b-%Y")
if (
provider == "cboe"
@@ -163,6 +166,15 @@ class DerivativesViews:
if "date" in df.columns
else ["Current"]
)
if provider == "deribit" and "hours_ago" in df.columns:
dates = [
str(d) + " Hours Ago" if d > 0 else "Current"
for d in df["hours_ago"].unique().tolist()
]
df.loc[:, "date"] = df["hours_ago"].apply(
lambda x: str(x) + " Hours Ago" if x > 0 else "Current"
)
figure, color_count = create_fig(figure, df, dates, color_count)
# Set the title for the chart
@@ -176,7 +188,7 @@ class DerivativesViews:
)
if len(dates) == 1 and dates[0] != "Current":
title = f"{title} for {dates[0]}"
elif provider == "yfinance":
else:
title = f"{symbol.upper()} Futures Curve"
# Use the supplied title, if any.

View File

@@ -60,3 +60,38 @@ async def curve(
) -> OBBject:
"""Futures Term Structure, current or historical."""
return await OBBject.from_query(Query(**locals()))
@router.command(
model="FuturesInstruments",
examples=[
APIEx(parameters={"provider": "deribit"}),
],
)
async def instruments(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject:
"""Get reference data for available futures instruments by provider."""
return await OBBject.from_query(Query(**locals()))
@router.command(
model="FuturesInfo",
examples=[
APIEx(parameters={"provider": "deribit", "symbol": "BTC"}),
APIEx(parameters={"provider": "deribit", "symbol": "SOLUSDC"}),
APIEx(parameters={"provider": "deribit", "symbol": "SOL_USDC-PERPETUAL"}),
APIEx(parameters={"provider": "deribit", "symbol": "BTC,ETH"}),
],
)
async def info(
cc: CommandContext,
provider_choices: ProviderChoices,
standard_params: StandardParams,
extra_params: ExtraParams,
) -> OBBject:
"""Get current trading statistics by futures contract symbol."""
return await OBBject.from_query(Query(**locals()))

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-devtools"
version = "1.3.3"
version = "1.3.4"
description = "Tools for OpenBB Platform Developers"
authors = ["OpenBB Team <hello@openbb.co>"]
license = "AGPL-3.0-only"
@@ -8,7 +8,7 @@ readme = "README.md"
packages = [{ include = "openbb_devtools" }]
[tool.poetry.dependencies]
python = ">=3.10,<3.13" # scipy forces <4.0 explicitly
python = ">=3.9,<3.13" # scipy forces <4.0 explicitly
ruff = "^0.7"
pylint = "^3.3"
mypy = "^1.12.1"
@@ -20,7 +20,7 @@ pre-commit = "^3.5.0"
tox = "^4.11.3"
pytest = "^7.4.3"
pytest-subtests = "^0.11.0"
pytest-recorder = "^0.3.0"
pytest-recorder = "^0.4.2"
pytest-asyncio = "^0.23.2"
pytest-cov = "^4.1.0"
ipykernel = "^6.29.5"

View File

@@ -10,3 +10,36 @@
- SOL
- BNB
- PAXG
- obb.derivatives.futures.curve
- Support for symbols:
- BTC
- ETH
- PAXG
- obb.derivatives.futures.historical
- Support for symbols (Perpetual Futures):
- ADAUSDC
- ALGOUSDC
- AVAXUSDC
- BCHUSDC
- BNBUSDC
- BTC
- BTCUSDC
- BTCUSDT
- DOGEUSDC
- DOTUSDC
- ETH
- ETHUSDC
- ETHUSDT
- LINKUSDC
- LTCUSDC
- NEARUSDC
- PAXGUSDC
- SOLUSDC
- TRXUSDC
- UNIUSDC
- XRPUSDC
- Additional symbols include all Deribit instrument names of current open contracts for BTC, ETH, and PAXG futures.
- obb.derivatives.futures.instruments
- Reference data for all current futures instruments.
- obb.derivatives.futures.info
- Key stats by symbol (multiple items allowed).

View File

@@ -1,7 +1,10 @@
"""OpenBB Deribit Provider Module."""
from openbb_core.provider.abstract.provider import Provider
from openbb_deribit.models.futures_curve import DeribitFuturesCurveFetcher
from openbb_deribit.models.futures_historical import DeribitFuturesHistoricalFetcher
from openbb_deribit.models.futures_info import DeribitFuturesInfoFetcher
from openbb_deribit.models.futures_instruments import DeribitFuturesInstrumentsFetcher
from openbb_deribit.models.options_chains import DeribitOptionsChainsFetcher
deribit_provider = Provider(
@@ -9,7 +12,13 @@ deribit_provider = Provider(
website="https://deribit.com/",
description="""Unofficial Python client for public data published by Deribit.""",
credentials=None,
fetcher_dict={"OptionsChains": DeribitOptionsChainsFetcher},
fetcher_dict={
"FuturesCurve": DeribitFuturesCurveFetcher,
"FuturesHistorical": DeribitFuturesHistoricalFetcher,
"FuturesInfo": DeribitFuturesInfoFetcher,
"FuturesInstruments": DeribitFuturesInstrumentsFetcher,
"OptionsChains": DeribitOptionsChainsFetcher,
},
repr_name="Deribit Public Data",
instructions="This provider does not require any credentials and is not meant for trading.",
)

View File

@@ -0,0 +1,186 @@
"""Deribit Futures Curve Model."""
# pylint: disable=unused-argument
from typing import Any, Optional, Union
from openbb_core.app.model.abstract.error import OpenBBError
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_curve import (
FuturesCurveData,
FuturesCurveQueryParams,
)
from openbb_core.provider.utils.descriptions import (
QUERY_DESCRIPTIONS,
)
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_deribit.utils.helpers import (
DERIBIT_FUTURES_CURVE_SYMBOLS,
FuturesCurveSymbols,
)
from pydantic import Field, field_validator, model_validator
class DeribitFuturesCurveQueryParams(FuturesCurveQueryParams):
"""
Deribit Futures Curve Query.
Source: https://docs.deribit.com/?shell#public-ticker
"""
__json_schema_extra__ = {
"symbol": {
"multiple_items_allowed": False,
"choices": DERIBIT_FUTURES_CURVE_SYMBOLS,
},
"hours_ago": {
"multiple_items_allowed": True,
},
}
symbol: FuturesCurveSymbols = Field(
default="BTC",
description=QUERY_DESCRIPTIONS.get("symbol", "")
+ " Default is 'btc' Supported symbols are: ['btc', 'eth', 'paxg']",
)
hours_ago: Optional[Union[int, list[int], str]] = Field(
default=None,
description="Compare the current curve with the specified number of hours ago. Default is None.",
)
@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def validate_symbol(cls, v):
"""Validate the symbol."""
symbol = v.upper()
if symbol not in DERIBIT_FUTURES_CURVE_SYMBOLS:
raise ValueError(
f"Invalid Deribit symbol, {symbol}. Supported symbols are: {', '.join(DERIBIT_FUTURES_CURVE_SYMBOLS)}"
)
return symbol
@field_validator("hours_ago", mode="before", check_fields=False)
@classmethod
def _validate_hours_ago(cls, v):
"""Validate hours ago."""
if isinstance(v, str):
return v
if isinstance(v, int):
return v
if isinstance(v, list):
return ",".join([str(i) for i in v])
return None
@model_validator(mode="before")
@classmethod
def _validate_model(cls, values):
"""Validate the model."""
if values.get("date"):
raise ValueError(
"Date field is not supported for Deribit provider. Use 'hours_ago' instead."
)
return values
class DeribitFuturesCurveData(FuturesCurveData):
"""Deribit Futures Curve Data."""
hours_ago: Optional[int] = Field(
default=None,
description="The number of hours ago represented by the price."
+ " Only available when hours_ago is set in the query.",
)
class DeribitFuturesCurveFetcher(
Fetcher[DeribitFuturesCurveQueryParams, list[DeribitFuturesCurveData]]
):
"""Deribit Futures Curve Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesCurveQueryParams:
"""Transform query params."""
return DeribitFuturesCurveQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesCurveQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract the raw data."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from openbb_deribit.utils.helpers import (
get_futures_curve_symbols,
get_ticker_data,
get_futures_curve_by_hours_ago,
)
try:
symbols = await get_futures_curve_symbols(query.symbol)
tasks = [get_ticker_data(s) for s in symbols]
data = await asyncio.gather(*tasks, return_exceptions=True)
if query.hours_ago is not None:
num_hours = query.hours_ago
hours_ago = (
[int(d) for d in num_hours.split(",")]
if isinstance(num_hours, str)
else [int(num_hours)] if isinstance(num_hours, int) else num_hours
)
for hours in hours_ago:
hours_data = await get_futures_curve_by_hours_ago(
query.symbol, hours
)
if hours_data:
data.extend(hours_data)
return data
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(
f"Failed to get futures curve -> {e.__class__.__name__ if hasattr(e, '__class__') else e}: {e.args}"
) from e
@staticmethod
def transform_data(
query: DeribitFuturesCurveQueryParams, data: list, **kwargs: Any
) -> list[DeribitFuturesCurveData]:
"""Transform the data."""
# pylint: disable=import-outside-toplevel
from datetime import datetime # noqa
from pandas import to_datetime
if not data:
raise EmptyDataError("No data found")
futures_curve: list[DeribitFuturesCurveData] = []
for d in data:
if not d:
continue
ins_name = d.get("instrument_name", "")
exp = ins_name.split("-")[1]
hours_ago = d.get("hours_ago", 0)
exp = (
datetime.today().strftime("%Y-%m-%d")
if exp == "PERPETUAL"
else to_datetime(exp).strftime("%Y-%m-%d")
)
price = d.get("last_price", d.get("mark_price"))
result = {"expiration": exp, "price": price}
if query.hours_ago:
result["hours_ago"] = hours_ago
if price:
futures_curve.append(DeribitFuturesCurveData.model_validate(result))
if not futures_curve:
raise EmptyDataError("No data found.")
return sorted(futures_curve, key=lambda x: x.expiration)

View File

@@ -0,0 +1,155 @@
"""Deribit Futures Historical Model."""
# pylint: disable=unused-argument
from datetime import datetime, timedelta
from typing import Any, Optional
from openbb_core.app.model.abstract.error import OpenBBError
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_historical import (
FuturesHistoricalData,
FuturesHistoricalQueryParams,
)
from openbb_core.provider.utils.descriptions import QUERY_DESCRIPTIONS
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_deribit.utils.helpers import DERIBIT_INTERVALS, DeribitIntervals
from pydantic import Field, field_validator, model_validator
class DeribitFuturesHistoricalQueryParams(FuturesHistoricalQueryParams):
"""
Deribit Futures historical Price Query.
Source: https://docs.deribit.com/?shell#public-get_tradingview_chart_data
"""
__json_schema_extra__ = {
"symbol": {"multiple_items_allowed": True},
"interval": {
"multiple_items_allowed": False,
"choices": DERIBIT_INTERVALS,
},
}
interval: DeribitIntervals = Field(
default="1d", description=QUERY_DESCRIPTIONS.get("interval", "")
)
@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def _validate_symbol(cls, v):
"""Validate the symbol."""
# pylint: disable=import-outside-toplevel
from openbb_core.provider.utils.helpers import run_async
from openbb_deribit.utils.helpers import (
get_futures_symbols,
get_perpetual_symbols,
)
if not v:
raise ValueError("Symbol is required.")
futures_symbols = run_async(get_futures_symbols)
perpetual_symbols = run_async(get_perpetual_symbols)
all_symbols = list(perpetual_symbols) + futures_symbols
symbols = v.upper().split(",")
new_symbols: list = []
for symbol in symbols:
if symbol not in all_symbols:
raise ValueError(
f"Invalid Deribit symbol: {symbol}. Supported symbols are: {', '.join(all_symbols)}"
)
if symbol in perpetual_symbols:
new_symbols.append(perpetual_symbols[symbol])
else:
new_symbols.append(symbol)
return ",".join(new_symbols)
@model_validator(mode="before")
@classmethod
def _validate_model(cls, values):
"""Validate the model."""
interval = values.get("interval")
now = datetime.today()
if not values.get("start_date"):
if interval == "1m":
start = now - timedelta(days=30)
elif interval in ["3m", "5m"]:
start = now - timedelta(days=60)
elif interval in ["15m", "30m"]:
start = now - timedelta(days=90)
else:
start = now - timedelta(days=364)
values["start_date"] = start.strftime("%Y-%m-%d")
if not values.get("end_date"):
values["end_date"] = (now + timedelta(days=1)).strftime("%Y-%m-%d")
return values
class DeribitFuturesHistoricalData(FuturesHistoricalData):
"""Deribit Futures Historical Data."""
volume_notional: float = Field(description="Trading volume in quote currency.")
class DeribitFuturesHistoricalFetcher(
Fetcher[DeribitFuturesHistoricalQueryParams, list[DeribitFuturesHistoricalData]]
):
"""Deribit Futures Historical Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesHistoricalQueryParams:
"""Transform the query."""
return DeribitFuturesHistoricalQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesHistoricalQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract the raw data."""
# pylint: disable=import-outside-toplevel
from openbb_deribit.utils.helpers import get_ohlc_data
symbols = query.symbol.split(",")
results: list = []
for symbol in symbols:
try:
data = await get_ohlc_data(
symbol=symbol,
interval=query.interval,
start_date=query.start_date,
end_date=query.end_date,
)
if data:
results.extend(data)
except OpenBBError as e:
raise e from e
if not results:
raise EmptyDataError("No data found.")
return sorted(results, key=lambda x: x["date"])
@staticmethod
def transform_data(
query: DeribitFuturesHistoricalQueryParams, data: list, **kwargs: Any
) -> list[DeribitFuturesHistoricalData]:
"""Transform the data."""
symbols = query.symbol.split(",")
if len(symbols) == 1:
results: list[DeribitFuturesHistoricalData] = []
for d in data:
_ = d.pop("symbol", None)
results.append(DeribitFuturesHistoricalData.model_validate(d))
return [DeribitFuturesHistoricalData.model_validate(d) for d in data]
return [DeribitFuturesHistoricalData.model_validate(d) for d in data]

View File

@@ -0,0 +1,224 @@
"""Deribit Futures Info Models."""
# pylint: disable=unused-argument
from datetime import datetime
from typing import Any, Literal, Optional
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_info import (
FuturesInfoData,
FuturesInfoQueryParams,
)
from openbb_core.provider.utils.descriptions import (
DATA_DESCRIPTIONS,
QUERY_DESCRIPTIONS,
)
from pydantic import ConfigDict, Field, field_validator
class DeribitFuturesInfoQueryParams(FuturesInfoQueryParams):
"""Deribit Futures Instruments Query."""
__json_schema_extra__ = {
"symbol": {"multiple_items_allowed": True},
}
symbol: str = Field(
description=QUERY_DESCRIPTIONS.get("symbol", "")
+ " Perpetual contracts can be referenced by their currency pair - i.e, SOLUSDC"
+ " - or by their official Deribit symbol - i.e, SOL_USDC-PERPETUAL"
+ " For a list of currently available instruments, use `derivatives.futures.instruments()`"
)
@field_validator("symbol", mode="before", check_fields=False)
@classmethod
def _validate_symbol(cls, v):
"""Validate the symbol."""
# pylint: disable=import-outside-toplevel
from openbb_core.provider.utils.helpers import run_async
from openbb_deribit.utils.helpers import (
get_futures_symbols,
get_perpetual_symbols,
)
symbols = v.split(",")
new_symbols: list = []
perpetual_symbols = run_async(get_perpetual_symbols)
futures_symbols = run_async(get_futures_symbols)
all_symbols = futures_symbols + list(perpetual_symbols)
for s in symbols:
if s not in all_symbols:
raise ValueError(
f"Invalid symbol: {s}. Valid symbols are: {all_symbols}"
)
if s in perpetual_symbols:
new_symbols.append(perpetual_symbols[s])
else:
new_symbols.append(s)
return ",".join(new_symbols)
class DeribitFuturesInfoData(FuturesInfoData):
"""Deribit Futures Info Data."""
__alias_dict__ = {
"symbol": "instrument_name",
"change_percent": "price_change",
}
model_config = ConfigDict(extra="ignore")
symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))
state: Literal["open", "closed"] = Field(
description="The state of the order book. Possible values are open and closed."
)
open_interest: float = Field(
description="The total amount of outstanding contracts in the corresponding amount units."
)
index_price: float = Field(
description="Current index (reference) price",
json_schema_extra={"x-unit_measurement": "currency"},
)
best_ask_amount: Optional[float] = Field(
default=None,
description="It represents the requested order size of all best asks",
)
best_ask_price: Optional[float] = Field(
default=None,
description="The current best ask price, null if there aren't any asks",
json_schema_extra={"x-unit_measurement": "currency"},
)
best_bid_price: Optional[float] = Field(
default=None,
description="The current best bid price, null if there aren't any bids",
json_schema_extra={"x-unit_measurement": "currency"},
)
best_bid_amount: Optional[float] = Field(
default=None,
description="It represents the requested order size of all best bids",
)
last_price: Optional[float] = Field(
default=None,
description="The price for the last trade",
json_schema_extra={"x-unit_measurement": "currency"},
)
high: Optional[float] = Field(
default=None,
description="Highest price during 24h",
json_schema_extra={"x-unit_measurement": "currency"},
)
low: Optional[float] = Field(
default=None,
description="Lowest price during 24h",
json_schema_extra={"x-unit_measurement": "currency"},
)
change_percent: Optional[float] = Field(
default=None,
description="24-hour price change expressed as a percentage, null if there weren't any trades",
json_schema_extra={"x-unit_measurement": "percent", "x-frontend_multiply": 100},
)
volume: Optional[float] = Field(
default=None,
description="Volume during last 24h in base currency",
json_schema_extra={"x-unit_measurement": "currency"},
)
volume_usd: Optional[float] = Field(
default=None,
description="Volume in USD",
json_schema_extra={"x-unit_measurement": "currency"},
)
mark_price: float = Field(
description="The mark price for the instrument",
json_schema_extra={"x-unit_measurement": "currency"},
)
settlement_price: Optional[float] = Field(
default=None,
description="The settlement price for the instrument. Only when state = open",
json_schema_extra={"x-unit_measurement": "currency"},
)
delivery_price: Optional[float] = Field(
default=None,
description="The settlement price for the instrument. Only when state = closed.",
json_schema_extra={"x-unit_measurement": "currency"},
)
estimated_delivery_price: float = Field(
description="Estimated delivery price for the market.",
json_schema_extra={"x-unit_measurement": "currency"},
)
current_funding: Optional[float] = Field(
default=None,
description="Current funding (perpetual only)",
)
funding_8h: Optional[float] = Field(
default=None,
description="Funding 8h (perpetual only)",
)
interest_value: Optional[float] = Field(
default=None,
description="Value used to calculate realized_funding in positions (perpetual only)",
)
max_price: float = Field(
description="The maximum price for the future."
+ " Any buy orders submitted higher than this price, will be clamped to this maximum.",
json_schema_extra={"x-unit_measurement": "currency"},
)
min_price: float = Field(
description="The minimum price for the future."
+ " Any sell orders submitted lower than this price will be clamped to this minimum.",
json_schema_extra={"x-unit_measurement": "currency"},
)
timestamp: datetime = Field(description="The timestamp of the data.")
@field_validator("change_percent", mode="before", check_fields=False)
@classmethod
def _validate_change_percent(cls, v):
"""Validate the change percent."""
return v / 100 if v else v
class DeribitFuturesInfoFetcher(
Fetcher[DeribitFuturesInfoQueryParams, list[DeribitFuturesInfoData]]
):
"""Deribit Futures Info Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesInfoQueryParams:
"""Transform the query."""
return DeribitFuturesInfoQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesInfoQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract data from the response."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from openbb_core.provider.utils.errors import EmptyDataError, OpenBBError
from openbb_deribit.utils.helpers import get_ticker_data
result: list = []
symbols = query.symbol.split(",")
try:
tasks = [get_ticker_data(symbol) for symbol in symbols]
for task in asyncio.as_completed(tasks, timeout=10):
result.append(await task)
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(f"Error fetching data: {e}") from e
if not result:
raise EmptyDataError("No data found for the given symbol(s).")
return sorted(result, key=lambda x: symbols.index(x["instrument_name"]))
@staticmethod
def transform_data(
query: DeribitFuturesInfoQueryParams,
data: list,
**kwargs: Any,
) -> list[DeribitFuturesInfoData]:
"""Transform the data."""
return [DeribitFuturesInfoData(**d) for d in data]

View File

@@ -0,0 +1,133 @@
"""Deribit Futures Instruments Model."""
# pylint: disable=unused-argument
from datetime import datetime
from typing import Any, Optional
from openbb_core.app.model.abstract.error import OpenBBError
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.futures_instruments import (
FuturesInstrumentsData,
FuturesInstrumentsQueryParams,
)
from openbb_core.provider.utils.descriptions import DATA_DESCRIPTIONS
from pydantic import ConfigDict, Field, field_validator
class DeribitFuturesInstrumentsQueryParams(FuturesInstrumentsQueryParams):
"""Deribit Futures Instruments Query."""
class DeribitFuturesInstrumentData(FuturesInstrumentsData):
"""Deribit Futures Instrument Data."""
__alias_dict__ = {
"symbol": "instrument_name",
}
model_config = ConfigDict(extra="ignore")
instrument_id: int = Field(description="Deribit Instrument ID")
symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))
base_currency: str = Field(description="The underlying currency being traded.")
counter_currency: str = Field(description="Counter currency for the instrument.")
quote_currency: str = Field(
description="The currency in which the instrument prices are quoted."
)
settlement_currency: Optional[str] = Field(
default=None, description="Settlement currency for the instrument."
)
future_type: str = Field(description="Type of the instrument. linear or reversed")
settlement_period: Optional[str] = Field(
default=None, description="The settlement period."
)
price_index: str = Field(
description="Name of price index that is used for this instrument"
)
contract_size: float = Field(description="Contract size for instrument.")
is_active: bool = Field(
description="Indicates if the instrument can currently be traded."
)
creation_timestamp: datetime = Field(
description="The time when the instrument was first created (milliseconds since the UNIX epoch)."
)
expiration_timestamp: Optional[datetime] = Field(
default=None,
description="The time when the instrument will expire (milliseconds since the UNIX epoch).",
)
tick_size: float = Field(
description="Specifies minimal price change and, as follows, the number of decimal places for instrument prices."
)
min_trade_amount: float = Field(
description="Minimum amount for trading, in USD units."
)
max_leverage: int = Field(description="Maximal leverage for instrument.")
max_liquidation_commission: float = Field(
description="Maximal liquidation trade commission for instrument."
)
block_trade_commission: float = Field(
description="Block Trade commission for instrument."
)
block_trade_min_trade_amount: float = Field(
description="Minimum amount for block trading."
)
block_trade_tick_size: float = Field(
description="Specifies minimal price change for block trading."
)
maker_commission: Optional[float] = Field(
default=None, description="Maker commission for instrument."
)
taker_commission: Optional[float] = Field(
default=None, description="Taker commission for instrument."
)
@field_validator("expiration_timestamp", mode="before", check_fields=False)
@classmethod
def _validate_expiration(cls, v):
"""Validate the expiration timestamp."""
if int(v) == 32503708800000:
return None
return v
class DeribitFuturesInstrumentsFetcher(
Fetcher[DeribitFuturesInstrumentsQueryParams, list[DeribitFuturesInstrumentData]]
):
"""Deribit Futures Instruments Fetcher."""
@staticmethod
def transform_query(params: dict[str, Any]) -> DeribitFuturesInstrumentsQueryParams:
"""Transform the query."""
return DeribitFuturesInstrumentsQueryParams(**params)
@staticmethod
async def aextract_data(
query: DeribitFuturesInstrumentsQueryParams,
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> list:
"""Extract data from Deribit API."""
# pylint: disable=import-outside-toplevel
from openbb_deribit.utils.helpers import get_instruments
try:
data = await get_instruments("all", "future")
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(f"Error fetching data: {e}") from e
if not data:
raise OpenBBError(
"There was an error with the request and it was returned empty."
)
return data
@staticmethod
def transform_data(
query: DeribitFuturesInstrumentsQueryParams,
data: list,
**kwargs: Any,
) -> list[DeribitFuturesInstrumentData]:
"""Transform the data."""
return [DeribitFuturesInstrumentData.model_validate(d) for d in data]

View File

@@ -1,6 +1,6 @@
"""Deribit Helpers Module."""
from typing import Literal, Optional
from typing import Literal, Optional, Union
from async_lru import alru_cache
from openbb_core.app.model.abstract.error import OpenBBError
@@ -11,13 +11,48 @@ CURRENCIES = ["BTC", "ETH", "USDC", "USDT", "EURR", "all"]
Currencies = Literal["BTC", "ETH", "USDC", "USDT", "EURR", "all"]
DERIVATIVE_TYPES = ["future", "option", "spot", "future_combo", "option_combo"]
DerivativeTypes = Literal["future", "option", "spot", "future_combo", "option_combo"]
DERIBIT_FUTURES_CURVE_SYMBOLS = ["BTC", "ETH", "PAXG"]
FuturesCurveSymbols = Literal["BTC", "ETH", "PAXG"]
BASE_URL = "https://www.deribit.com"
DERIBIT_INTERVALS = [
"1m",
"3m",
"5m",
"10m",
"15m",
"30m",
"1h",
"2h",
"3h",
"6h",
"12h",
"1d",
]
DeribitIntervals = Literal[
"1m", "3m", "5m", "10m", "15m", "30m", "1h", "2h", "3h", "6h", "12h", "1d"
]
INTERVAL_MAP = {
"1m": "1",
"3m": "3",
"5m": "5",
"10m": "10",
"15m": "15",
"30m": "30",
"1h": "60",
"2h": "120",
"3h": "180",
"6h": "360",
"12h": "720",
"1d": "1D",
}
@alru_cache(maxsize=64)
async def get_instruments(
currency: Currencies = "BTC",
derivative_type: Optional[DerivativeTypes] = None,
expired: bool = False,
) -> list[dict]:
"""
Get Deribit instruments.
@@ -51,6 +86,9 @@ async def get_instruments(
if derivative_type is not None:
url += f"&kind={derivative_type}"
if expired:
url += f"&expired={str(expired).lower()}"
try:
response = await amake_request(url)
return response.get("result", []) # type: ignore
@@ -67,7 +105,7 @@ async def get_options_symbols(symbol: OptionsSymbols = "BTC") -> dict:
Parameters
----------
symbol : OptionsSymbols
The underlying symbol to get options for. Default is "BTC".
The underlying symbol to get options for. Default is "btc".
Returns
-------
@@ -109,3 +147,256 @@ async def get_options_symbols(symbol: OptionsSymbols = "BTC") -> dict:
expirations[item[0]] = item[1]
return {k: [d for d in all_options if v in d] for k, v in expirations.items()}
async def get_futures_curve_symbols(symbol: FuturesCurveSymbols = "BTC") -> list[str]:
"""
Get a list of futures symbols for a given symbol.
Parameters
----------
symbol : FuturesCurveSymbols
The symbol to get futures symbols for.
Returns
-------
list[str]
A list of futures symbols.
"""
symbol = symbol.upper() # type: ignore
if symbol not in DERIBIT_FUTURES_CURVE_SYMBOLS:
raise ValueError(
f"Invalid Deribit symbol. Supported symbols are: {', '.join(DERIBIT_FUTURES_CURVE_SYMBOLS)}",
)
currency = "USDC" if symbol == "PAXG" else symbol
instruments = await get_instruments(currency, "future")
symbols: list = []
for d in instruments:
ins_name = d.get("instrument_name", "")
if ins_name.startswith(symbol):
symbols.append(ins_name)
return symbols
async def get_ticker_data(symbol: str) -> dict:
"""
Get ticker data.
Parameters
----------
symbol : str
The symbol to get ticker data for.
Returns
-------
dict
The ticker data.
"""
# pylint: disable=import-outside-toplevel
from openbb_core.provider.utils.helpers import amake_request
url = f"{BASE_URL}/api/v2/public/ticker?instrument_name={symbol}"
try:
response = await amake_request(url)
if response.get("error"):
raise OpenBBError(response.get("error"))
data = response.get("result", {})
stats = data.pop("stats", {})
return {**data, **stats}
except Exception as e: # pylint: disable=broad-except
raise OpenBBError(f"Failed to get ticker data -> {e}: {e.args[0]}") from e
async def get_perpetual_symbols() -> dict:
"""
Get perpetual symbols.
Returns
-------
dict
A dictionary of short symbols to full perpetual symbols.
"""
instruments = await get_instruments("all", "future")
return {
d["instrument_name"].split("-")[0].replace("_", ""): d["instrument_name"]
for d in instruments
if d.get("settlement_period") == "perpetual"
}
async def get_ohlc_data(
symbol: str, start_date: str, end_date: str, interval: DeribitIntervals = "1d"
) -> list[dict]:
"""Get OHLC data for a given symbol. Enter dates in the format 'YYYY-MM-DD'."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from openbb_core.provider.utils.errors import EmptyDataError
from openbb_core.provider.utils.helpers import amake_request
from pandas import DataFrame, date_range, to_datetime
new_interval = INTERVAL_MAP.get(interval, interval)
all_instruments = await get_instruments("all", None)
all_symbols = {
d.get("instrument_name"): d.get("creation_timestamp") for d in all_instruments
}
creation_date = all_symbols.get(symbol, 0)
use_start = to_datetime(start_date).timestamp() * 1000 > creation_date
if creation_date == 0:
raise ValueError(f"Symbol {symbol} not found")
def generate_urls(symbol, start_date, end_date, interval, window_size=5000):
"""Generate urls for historical data breaking it down into requests of length window_size."""
interval_period = f"{interval}min" if interval.lower() != "1d" else "1d"
interval = "1D" if interval.lower() == "1d" else interval
dates = date_range(
start=start_date if use_start else creation_date,
end=end_date,
freq=interval_period,
)
windows = [
(dates[i], dates[min(i + window_size, len(dates) - 1)])
for i in range(0, len(dates), window_size)
]
urls: list = []
for start, end in windows:
start_timestamp = int(start.timestamp() * 1000)
end_timestamp = int(end.timestamp() * 1000)
url = (
"https://www.deribit.com/api/v2/public/get_tradingview_chart_data?"
f"instrument_name={symbol}&start_timestamp={start_timestamp}&"
f"end_timestamp={end_timestamp}&resolution={interval}"
)
urls.append(url)
return urls
results: list = []
async def get_one(url):
"""Get data from one url."""
json_response = await amake_request(url)
if json_response.get("error"):
raise ValueError(json_response["error"])
if json_response.get("result"):
result = json_response["result"]
df = DataFrame(result)
df = (
df.drop(columns=["status"])
.rename(columns={"ticks": "date", "cost": "volume_notional"})
.convert_dtypes()
)
df.date = to_datetime(df.date, unit="ms", origin="unix", utc=True)
if interval == "1D":
df.date = df.date.dt.date
df.loc[:, "symbol"] = symbol
results.extend(
df[
[
"date",
"symbol",
"open",
"high",
"low",
"close",
"volume",
"volume_notional",
]
].to_dict(orient="records")
)
urls = generate_urls(symbol, start_date, end_date, new_interval)
if len(urls) > 15:
raise OpenBBError(
"The request is too large. Break up the request into smaller chunks."
)
tasks = [get_one(url) for url in urls]
await asyncio.gather(*tasks, return_exceptions=True)
if results:
return sorted(results, key=lambda x: x["date"])
raise EmptyDataError("No data found for the given symbol and dates.")
async def check_ohlc_symbol(symbol: str) -> Union[bool, str]:
"""
Check if the symbol has OHLC data.
Parameters
----------
symbol : str
The symbol to check.
Returns
-------
bool
True if the symbol has OHLC data, False otherwise.
"""
all_instruments = await get_instruments("all", None)
all_symbols = {
d.get("instrument_name", ""): d.get("creation_timestamp")
for d in all_instruments
}
all_perpetuals = await get_perpetual_symbols()
if symbol in all_perpetuals:
return all_perpetuals.get(symbol, False)
if symbol in all_symbols:
return symbol
return False
async def get_futures_symbols() -> list:
"""
Get futures symbols.
Returns
-------
list
A list of futures symbols.
"""
instruments = await get_instruments("all", "future")
return [d["instrument_name"] for d in instruments]
async def get_futures_curve_by_hours_ago(symbol, hours):
"""Get futures curve N hours ago."""
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from datetime import datetime, timedelta
symbols = await get_futures_curve_symbols(symbol)
now = datetime.now().replace(microsecond=0, second=0)
if hours < 24:
start = (now - timedelta(days=1)).strftime("%Y-%m-%d")
else:
start = (now - timedelta(hours=hours)).strftime("%Y-%m-%d")
end = (now + timedelta(days=2)).strftime("%Y-%m-%d")
results: list = []
async def get_one(s):
"""Get data for one symbol."""
data = await get_ohlc_data(s, start, end, "1h")
result = {
"instrument_name": data[-1 - hours]["symbol"],
"hours_ago": hours,
"last_price": data[-1 - hours]["close"],
}
results.append(result)
tasks = [get_one(s) for s in symbols]
await asyncio.gather(*tasks, return_exceptions=True)
return results

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,528 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=BTC&expired=false&kind=future
response:
body:
string: !!binary |
H4sIAAAAAAAAA+2Y30/bMBDH/xc/B2Q7Tuz0rdBOGtoPBPRpQlGaXjevzQ9sh8EQ//subdkoJRoP
yGVT8pTc1z7fXT7yObkj321VmjonA8IPKQmIAdssHRl8uSO10TmkupzBDcpTl6eNnbVD5ldkMM+W
FgKyQBnFeeMaA6gVukydyWaQZkXVlOiI0UMaEG3TLHf6GsjAmQYn6tLiTQGlS8usQDM5ujg+YPRk
+IlHraNsASbNq6LQ1uqqJIMDdEQpC4jbkVZKtOXU3datUwPXYCy0YcNNrU3mcELqdAHWZUWN4ckw
FklMV1dA8qrE8HOXWv0THoJ3Ol9sDPwQl5kuKzSs03yk4ViMbppZSPPGGCjz23VaZCsyjQUTTMg4
xuUMPBdRxFUsWLKKyIJzS1jNrMHoqi33D4AFOl1X/ZlUi+wmXbaP2dc25mhj0VeNnq3Xe1o9+SSt
xzrmDAdiW999z3xTwUfx7lQhb4e27+6PMDkfoXDVVA52zb+Lm1oHtUUqL++D/YAp9wCmZJQq32DG
STu4C0yVMM54D+abATNk3WCuGXllKFXIqPALZZjgpTqhxM1ScqY6oSwwym89lT6p5Ord+MgjlYJK
vmnifnt4N5V/6+E9lXug8uPwzCeVIRPKcwMPaSJp0kUlw/aecN7dwHsq/VMpTyY+O3jEKGPcM5UC
1406qUyimMVM9FS+ISrj8/GpTyqVwi9xz1Ti2VF0dnAuBRe0P1e+LSpH42OPVMbxA5Sez5WyP1f+
O1Sejs9OxxeT4QdPXIY8oqGkLz5a0tcBkzOqwq7tMgpxt+RcyU4w8aYG12TLl8MZ0f8JzsuANPZ9
uf7nzLhIKMeSUspb++fGPRGYilthpOdzVBSm4bDaJbgNxve/AJzKofa9FwAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '672'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-10JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDMAz8F51DRrbzcm48LnCAC/eM27itwXEysVNgOv135BTSFnzTrnZXkg/w
5ns3DmuogacICYzaTzZAfYBgOu2D6gaoWSkKxjOJvBRZAoQGTYp+0A5OpY+KndnuoJYSizzFBGz/
QVWZszLNExhGs9bNeqfclrSYIkeRwL63U0d1VaS8krks+QI2k2+JyKpSSIx+P7Drg+mdshfcMQHj
Wv3ZzCEUWvFCpCKiPowkcqFxKubA3ev9DcOn22ee0+hW+XAW5WLO8ToEq2fRmUKeVmTYGbeAJQoe
N+vUOZje7BFP0xgXNN2Trsk5ZlJmGJvH9wtbhmlVJLCirkb5K2b2nomVaa8l5EO46egb2qbV1uz1
+PVv+cVUdf3k4hRVns3ixfWXYViw0x0n/+iuPjxjKLOIv0zhDyFQRuLBbDZkzmjcQMZOU99GWa+P
395bfrBfAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '351'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSy07DMBD8lz2HyHZsx+mNRw9ISFSonCPTuK3BcarYLiDEv7NOS6Fw3Jkd7+ys
P+A5DH7crWAGrCRQwGhCchFmHxBtb0LU/Q5mtK4kZbwhrK6aAhCNBhXDzng4lCErtnazhVmjlCAl
KcANr1jVTE3VbrQr06622m9Qi1AlZAH7waUea8YkLylpuFDNCW5T6DLFCBOiml45En6IdvDanbGf
BVjfmbd2GpWNMFmVVUZDHFHmY+t1ngZXy+uLxfxhMV8+Xt7hCk6H+Eum6lLgXiZGZybZDyUwJuR6
60+gVLTK3nr9M7qpJctYjqi1PhrMFVOlFPdDkk/t48v5TC6y10Nvu9cuHYOiRBHFlcRcJasVK+Ap
d+hwpld53kQ82e7fMojbHs/WtZ1xdm/G938xnR7V/ZA8umWU88MpT89+U7KUBiWrNI45n3XynfWb
yW4Bx6pV+BtUSZk0FwKPk8KtP/tLnFLaZPw+xT9ExWgmbux6jT4IrhzRgjfYt9YumM8vHVcPAroC
AAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '401'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-31JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy3KDIBT9l7s2DA8VcdfHpl20m+4dEklCi+gIpu1k8u+9mMZJ2o0j59zz4HKE
99D7cdhADZxQyGA0YXIR6iNE25kQdTdAzaQoGc8V5fiTAaLRoKIfjIfzMSTF3u72UCsluSRFBq7/
xFPFVEFoBsNoN6bZ7LXfoXZFCRWFyODQu6lDIJekopLmvMovYDOFNhGC5jlNFr+w76PtvXZX3CkD
61vz1cwpKZWXgoiEhjiiyMfG65QD928PK8Ge7154gd2dDnERKc7mqsHE6MwsWiimBJE8g876BZSS
z706vQQzQqk0ePm0m8b6aHChuE6Wy5IXgs7T48dVJFVEoe8axxodbpi5zEysbbsQOG5wRwjbDt+h
bVrj7MGM3/8uv3jqrp88tpC8pDeeF4LlpTivcQpP/ubBCy5plfDXKf4h8JuIR7vdIqOwVERjb3Bu
q10wpx+MwXpJXwIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28MAR25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRyU7DMBD9F59Ty2sS51bgwgEhIe6R27itwXGi2ClFVf+dcWhDSyVf5i0z4zdH
9BE6P/RrVCGGCcrQYMLoIqqOKNrWhKjbHlW04DllQhFWCJkhQKMBR9cbj37LkBw7u92BmFDJCww6
132lkhA5lf1g16Ze77TfgntBMBWkzNC+c2MLAKMKSyEUL0l+QesxNMAwWhBKCSYz7rtoO6/dNXnK
kPWNOdTTIFSpkuUc84SGOIDLx9rrNAo9vD8uWPmyfGMSPuB0iBcTbE/EtG4wMTozua64gmIFLVvr
5zFYSSMA0oc/IZNcpnVTRLX10UCukKpgeV5KUpIkHz6vG1MYCo1XoKt1uKPOzMo2N8w0BAjbwkma
ujHO7s3wfRfB3Fa33ehjShu2SOa57YUR/BzmGJ79ze0lPJHw1zH+I1T60hie7GaTTgIHjNDXG9Bt
tAvm9AN3pHxTagIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-17JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRuXKDMBD9l60JowMkoMvRJEXSpNfIRjZKhGCQcJLx+N+zwmMHTwoV+449no7w
EQY/jVtogOUEMphMmF2E5gjR9iZE3Y/QUMkFZUVN8IkMEI0GHcNoPJzLkByd3XfQ1DUrSU4ycMMX
VlIWZarGyW6N2nba79G7CA6Dm3ssOM9JXXEiygum5tAizkQhi5VU+SHawWu34k4ZWN+ab7UMwIEV
EzznCQ1xQpOPyus0Bh7eH++ofLl/ZSWu7XSIfybJZI7jg4nRmcW0ojAamkFv/RWUrFj0vb4OpoQw
yhKYclHWR4NhYpSCVZTXJImnz3XbOpe45wZFSoc1w5ebF2Jj29tNsD/itscvaFVrnD2Y6eff8dem
uh9mj0swWt42vRClOIc4h2e//mlZsoqLhL/N8ZbghMpEPNndDpkKs4nY1hvU7bQL5vQLMMZctVgC
AAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '344'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26SEP25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy07DMBD8lz2nke34kfTI48AJJLhHbuO2BseJYqcUVf131mlLAxw9szM7nj3C
e+j80K9hCSwnkMFgwugiLI8QbWtC1G0PS6oKSRmvCCuIzADRaFDR9cbD+RmSYme3OxwmipYsFxm4
7jM9hRQkJxn0g12ber3TfovqBWKC4tS+c2OLABN5RZUUtJJXsB5Dg4SShJ8tLrDvou28djPulIH1
jTnU0xZYViWTRV4kNMQBRT7WXqc9cPd2v2Dy9fGFCUzvdIhXESVSUZEWBROjM5Pqxkl0pGUGrfU3
VJBSpc+2+nADS1ZNeVNDtfXRYK1YKi245FxxksaHj7k1mpSYdoVztQ5/KXFhVrb5lWeqGQnb4kWa
ujHO7s3w9a+EH1vddqPHJCynppiZXnF6rnIMT35+diWYrIqEP4/xD1FylogHu9kgw6sMIrp6g3Mb
7YI5fQOBB4bEZQIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26DEC25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRwXKDIBT8l3c2joKKeGzSQ0+99O6QSBJaQEcwbSeTf++DxNS0M17Y3bf73nqG
d9fbcdhBAyTNIIFRukl7aM7glZHOCzNAkzNa5aTgGaFZlQCiXuJEP0gL16cLE0d1OKI44zXP0iwB
3X+GZ00zkpYJDKPayXZ3FPaA0yuUkOB26vVkEKB5WlFeMF6UM9hOrkOiKAtSRMcbbHuveiv0grsk
oGwnv9qYAg2vSUVTGlDnRxyyvrUi5MDT23pFqs3zmpS4vRbOz0O4OuFlCHLSey3j1IKreEoSMMr+
gqy63mrEPTpHKYsXh4JaZb3EVn2okbGCk6gePxbGFG9ndQJblLXCPVAk7hOZreoeNo3BSCiD/6Nr
O6nVSY7f/yq42wrTTxYXubV5N51xjJIUm5zci13+dVbixwL+Ovk/BKYEYqP2ezQmeLVHWytRtxfa
ycsPJLJ86WQCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '353'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28FEB25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRyW6DMBD9lzlTywvGgWO6SD310jtygpO4NQZhk6aK8u8dEyUB9ei3zLx5PsNX
6PzQb6ECTihkMJgwugjVGaJtTYi67aFiShSM5yXlgosMEI0GHV1vPFyfITkOdn9AMaWFVERm4Lof
qMqSienVD3Zr6u1B+z2anyihqlxlcOzc2CLAOJEyl1LRO1iPoUmEVEyh/A77LtrOazfjLhlY35hT
PW3BrSteCCISGuKAJh9rr9MeWH8+P/HV2+uaSwzvdIg3EyZnfMoaTIzOTK45J0mRZ9Ba/1hTXI9r
9emhZEUuU9zUT219NFgqVsql4EoomtTD93xwzgjFrBuU1TosKDkdPjEb2yxM02IkbIvf0dSNcfZo
ht9/FdzH6rYbfQpCVbEce2MwtsmxyzG8+/m3K8lLzhP+McYlIVipEvFidzscrTBTxLHeoG6nXTCX
P4lKSENlAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '351'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-27JUN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDMAz8F52Dx484TnIELnCAC5wzbuO2BsfJxE4p0+m/I6fTNh2O2tWupNUR
vkLvx2ENNXBCIYPRhMlFqI8QbWdC1N0ANVOiYDyvKJeKZYBoNKjoB+PhXIak2NntDptpXghOZAau
/0ml4Hwuh9GuTbPeab9F9QMljHGVwb53U4dAKQkVgpVCiAvYTKFFopSsUpTQK+z7aHuv3YI7ZWB9
aw7NPAXqquSFICKhIY4o8rHxOs2Bx4+nB65eP9+4xO2dDvEiwtVZIdOgYGJ0ZlYtOClJhZad9TcU
I5lX6/ThBsqiUunklFBjfTQYK4bKMUjOSz63j99LayFImWewwr5Ghzsqn/1nZmXbO9E8BAnb4Ufa
pjXO7s34+y+Eq63u+smnTWSh7m0vDP7uHOcUXvzy9UrySsmEv0/xnhCS0UQ8280GaiwziOjrDfZt
tAvm9Ac5r1NEaQIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:02 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,528 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=BTC&expired=false&kind=future
response:
body:
string: !!binary |
H4sIAAAAAAAAA+2Y30/bMBDH/xc/B2Q7ju30DWgnDe0H4sfThKI0vW5emx/YDoMh/vdd2rIBJRoP
yLApeUrva5/P5498l96Q766ubFOQEeG7lETEgmuXnoy+3JDGmgIyU83gCuWpL7LWzboh8wsymudL
BxFZoIzivPWtBdRKU2Xe5jPI8rJuK3TE6C6NiHFZXnhzCWTkbYsTTeXwpYTKZ1Veopnsnx7sMHq4
94knnaN8ATYr6rI0zpm6IqMddEQpi4jfklZK8sCpv246pxYuwTrowoarxtjc44TMmxKcz8sGw1Ox
FKmkqyciRV1h+IXPnPkJd8F7Uyw2Br6Ly0yXNRrW27yn4ViMbpo7yIrWWqiK6/W2yIPIDCZMMKGk
xOUsPBVRwrUULF1F5MD7JaxmNmBN3aX7B8ACna6z/sRWy/wqW3Y/869dzMnGYi5aM1uv9zh76tG2
7uu4Z9gRD/Xtc+abDN6LdysLRTe0O7s/wtnJGIWLtvawbf6d3Mx5aBxSeX4bvQ6Y6hXAVIxSHRpM
mXaD+8DUKeOMD2C+GTBj1g/mmpEXhlLHjIqwUMYpProXSrwsFWe6F8oSo/w2UBmSSq7fTfYDUimo
4psiHraG91P5txo+UPkKVH7cOw5JZcyEDlzAY5oqmvZRybC8p5z3F/CByvBUqsOzkBU8YZQxHphK
gesmvVSmiWSSiYHKN0SlPJkchaRSa/wSD0wl9o6it4JzJbigQ1/5tqgcTw4CUinlHZSB+0o19JX/
DpVHk+OjyenZ3odAXMY8obGiz24t6cuAyRnVcd91mcR4W3KuVS+Y+NKAb/Pl8+FM6P8E53lEWve+
Wv/nzLhQiRSJ1Jx19s+tfySkYiWMzXyOCu+OFLNdgd9gfPsLcvm6kb0XAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '671'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:36 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-17JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRu3LDIBD8l6sVBhASlro8mqRImvQabJ1tEoQ0AjnJePzvOZSxbE/K273dPZYj
fITej8MGapCMQwYjhslFqI8QbYchmm6AWui8FFLpQgsuMyA0Iin6AT38jSEp9na3h7qqZMEZz8D1
XzRprYo0DaPdYLPZG78j7R1tKF5kcOjd1BGQ54xXuuIiF2ewmUJLBJOl0lguqO+j7b1xF+qUgfUt
fjdzBmWupCiYUgkOcSSRj403KQYe3h/vhH65f5UFne5MiBdVudKMTgoYo8NZtFBaUj10WWf9AjIt
kTI6swQLzkUpk0eqprE+IvVJbZZyJVTO0/L4eR3IWUGua1pqTLhiNJ9Lm4m1ba8k1dwt4bajX2ib
Fp094Pjz//GLq+n6ydMVuSz5jeuZEExhTi1O4dnf/LZeVZwn/G2Kt0Ql0u9N4clut1DLNESy9Uh7
W+MCnn4Boe+AJVwCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '356'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28FEB25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSyW7DIBD9lzm7FmBjjI/pIvXUS+8WiUlCi7FlcJoqyr93IEriqNx424wenODL
D24aN9AAywlkMGk/2wDNCYLptQ+qH6GhoqgoKwUXtKIZIBo0OoZRO7hcfXTszW6PYkIqLnKegR1+
oJGSFuk2Tmaj281euR2an0hOZFlncBjs3CNAWc7jKevqCraz7yLBBRMov8FuCGZwyi64cwbGdfrY
pik4tWaU52UZYR8mdLnQOhUHwerz+YnVb68rxnF7q3y4unB1ytKyXodgdXItOZ5XGNkbd5/DBY+r
9ep4V1IuUkosqDUuaGwVO2W8YKIQST19L4KJqHLGMlijrFX+gZIsJiVmbbolUycGCdPje3Rtp605
6On3fwe3XNUPs8NNCiZTobfYKyFremlz9u/u4eFFLUkR8Y85PBKS8DISL2a7RYbjDwmY6zTqtsp6
ff4DhydV1GcCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '353'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-10JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDMAz8F51Tj+3YsZ0bjwsc4MI94zZua0icTOwUmE7/HSVAmoGjdrVarXSG
19iFod9BCZxQyGBwcWwSlGdIvnUx2baHkqm8YFwoqZg2GSCaHCq63gX4LuOkOPrDEUpjaCEJzaDp
3rFSkikiM+gHv3PV7mjDAbUbSiineQanrhlbBHRBuMmZMGYBqzHWSAitlKDTwB84dMl3wTYr7pKB
D7X7qGYXdNWcSSLEBMc0oCqkKtjJCG5f7jaMPt48cYnLNzamq0qY2Si6lBo3ixZKUk407tb6sICF
0XO21l6djRFz+uk4lQ/J4UXxnpxTzCbo1Dy8rRyLgjCdwRa7KhvXjJ53mYmtr1eEmg0Q9y0+oq5q
1/iTGz7/p1+m2rYbA65REOny1dBfnBEmnMAzjvEhrB/OmeKUTfjzmP4QQuQTce/3ewwoeAYJ5waH
fXvbRHf5AqMF+TpfAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '357'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26SEP25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRS3PCIBD+L3uODBAgicc+Dj21M+09gwaVlpBMINaO43/vEqvG6XG/F8u3R/gM
nR/6NSyBEwoZDCaMLsLyCNG2JkTd9rBkRa4YF4UsWFllgGg06Oh64+E8huTY2e0OxRRVnMgMXPed
RqkkJTSDfrBrU6932m/RvUBMMlTtOze2CHBJKlYoySp1AesxNEgUiopzxB/su2g7r92MO2VgfWMO
9fQKLKuSM0mESHCIA7p8rL1OD8HDx+OCq/fnNy5xfadDvLgYVQXa8KVgYnRmct04pXLCygxa62+o
pGL6basPN7DkYopJFdXWR4O9YqssF0qIQtAkH77m0SInWO0KZbUOd4wsUvzErGwzZ86rImFbvEhT
N8bZvRl+/pdwzdVtN3rcJOfV1Og19kIwQo3ANsfw4ueX55xXkib8dYz3RM5klYgnu9ngSSgOEWO9
Qd1Gu2BOv3IS2hpoAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '357'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-27JUN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRTVPDIBD9L5xTBjYhIT2qFz3oRc8Z2tAWJSQTSK3T6X93obapetz3sW/n7ZG8
+96Nw5osCVBGMjJqP9lAlkcSTKd9UN1AlrzKSw5FJSou64wgGjQ6+kE7ch59dOzMdodiVpQ5UJER
23/GMQdI4zCatW7WO+W26F4wyiVARva9nToEZEFrKYXkBb+AzeRbJGRR5Tmj7Aq7PpjeKXvDnTJi
XKsPTUohy1oCF7QoIuzDiC4XGqdiELl7vV9A9fT2DALPt8qHiwtvZ1LEJK9DsDq5Zo4LQes8I51x
MwoCkqNThxkUpUgHx4oa44LGXrFVwCY5MJHk48ev2JJKXL1CXaP8TFGM1eKHWJn21lOnDCRMhx9p
m1Zbs9fj1/8SrmtV108uXoIfTe7r3gtTQnXuc/KP7vb3ADljZcRfpvCH4DVE4sFsNshIVAXc6zTq
Nsp6ffoGy3fWDmoCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '356'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-26DEC25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRu3KDMBD8l6uxRuiBgDJ2ilRp0jOykW05QjBIOMl4/O854dhhklK7t7u6vQuc
Qu/HYQc1MEIhg9GEyUWoLxBtZ0LU3QB1rniRM6FkoSqZAaLRoKIfjIfbMyTF0R6OOEyrsqKEZuD6
j/QsOWUEZcNod6bZHbU/oHpFSc6kyuDcu6lDgOekEDmOy+oONlNokRBSCDY7/sC+j7b32i24awbW
t+azmVOgrkqWSyJEgkMcUeVj43UKgqe39YoVm+c1k/h9p0O8q/DvTMqUFEyMzsyqBVdUhGXQWf8L
qkLM23X6kZ3PNsklNdRYHw3WGlOPSomK0TQ9vi+NS05KXHuLY40OSwo3TE4zs7XtUsRVCkbCdniQ
tmmNs2czfv3v4OGru37yMZV9O9HD9k5gmOFY5hRe/OLwijFOuUj46xT/EIwWidjY/T4x2FBEW29w
bq9dMNdvYSt3zWcCAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '356'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSy27bMBD8F55lgcuHSPmWNDkUKJCgSM8CY9E2G4oyRNJpEeTfu2RSx06OO7Oz
OzvkC/kd57AcNmRNWEtJQxYbs09k/UKSm2xMZjqQNSjeARNKKsZ4QxBNFhXzwQbyVsai2Lvdnqx7
rSVtaUP8/IyVYrpWh8Vt7LDZm7BD7QoxzqEhx9nnCQHGOmip6noBoP7DQ45joUAxJaGOeSfCnNwc
jL9gXxviwmj/DHVXccJAtkIUOKYFdSENwZR15Prh2+r+9uf97cOvqx94hDcxnemEbCVeZlPytso+
KIlBITe5cAI7JXUxN5mP3b2idUYJaXAhWUwWcwWQPUNfrLYvT2eDObSdKl7feoej8RmZkhRQpXoF
nILWVHS6IY+lw8RzveiKh0o8uvHLMYi7CR9uHEbr3dEuf7/mdJpqpjmHYpcLEPRi7omCvhKbvCwl
oW0Oowu7argh79Wg8UfoFjjYlcT3yfF7uPxPWoi+4Hc5fSI6rgpx47ZbZDQendBDsNi3NT7a138K
i9jIvgIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '406'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-28MAR25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VSyW7DIBD9lzm7CDDYxrculx6qSlXvFolJQouxZXCaKsq/d3CVxe1x3jJvZuAI
H6H347CGGjihkMFowuQi1EeItjMh6m6AmpV5wbgoZclZkQGi0aCjH4yH3zIkx85udyimTOYlkRm4
/iuVlMq5HEa7Ns16p/0W3XeUsIqKDPa9mzoEOFMkl5ghq/KMNlNokeFMMqYooRfc99H2Xrtb8pSB
9a05NHMQ1KpCigiR4BBHtPnYeJ2y4OH98Y5XL/dvXOIGTod4duH4OHCKCiZGZ2bXDVcyovIMOusv
OUqIebZOH65KPBdPW6cjNdZHg5fFuwpeFJVS5SwfP696qqQkafMV6hodFlQxDzQzK9sumDkZCdvh
o7RNa5zdm/H7/xEufXXXTx5HqSq66HrG8SMYgcecwrNfvH2uyqJK+OsU/xCKq0Q82c0GmYJlELGt
N6jbaBfM6QeRjc7xagIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '358'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-31JAN25
response:
body:
string: !!binary |
H4sIAAAAAAAAA2VRy1LDIBT9l7tOmUBICNn52OhCN+4ztKEtSkgmkKrT6b97QRszOqw4554HlzO8
+sFN4w4aYCSHDCbtZxugOUMwvfZB9SM0VBQVZVyUglKeAaJBo2IYtYPvq4+KozkcoZFSMEHKDOzw
jreaypLkGYyT2el2d1TugNpNTnIuZAanwc49AlwQwfEUvL6C7ey7SDBeFnm0+IHdEMzglF1xlwyM
6/RHm1JiKqMl4TzCPkyocqF1KgbB7cvdpqCPN0+sxPJW+bCoJK1Tc69DsDqJfilZEMEy6I1bQFGJ
9LZeLck0z6uSRZO4nda4oHGluFDKRcWwbBqf3lbGFSMVzWCLY63ya0akNonYmm5NpATETY9f0bWd
tuakp8//719cVT/MDnvUIu1yMb3ilHDNcY+zf3DrH2eFrGoW8ec5/CFqwSNxb/Z7ZCROBbR1Guf2
ynp9+QJ/d3xeYAIAAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '355'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:52:37 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,916 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false&kind=future
response:
body:
string: !!binary |
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
faUNqbrakUyXKP/4D7B0jAQFbgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1788'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:21 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false
response:
body:
string: !!binary |
H4sIAAAAAAAAA+zdbZPc1pmt6f+iz00GXjawgf4m0bR1Oty2QqInHDExUcGXtMVpipSLlEbnOPzf
B5lJ0iQrsasShYXnZnH1mTkzRbLFrMLFBWCvZwP//Or/ff3q5eXPT7/6z6+a+9VX//HV5e71Ly/e
fPWf//c/v/r58vnT3cXzl892v02//eTlk4tfXj97uv8zf/vHV//5t8cvXu/+46v/mX5/+t1XP795
/url9Hs/PX958eby8bPdxeOfXv3ycvov1f/x1fPXF4+fvnn+6+6r/3xz+cv0v/X85evp/+en3cs3
Fy8f/zT98lff/Ombi7/88LsH9/r/+vpPTXevb6p7D/b/vcf/s7u8ePrqp5+ev369/yv+s7pfVdX0
H31z+ne6j/7rb/73z/v/+ovnL3ePL6f/3O63n59fPt5/1os3z3/avX7z+Kefp4+Y277uqlTt/+c/
vnr66uX0LTx9c/H6+f+Z/rfr+9OvTf/F5/8zfTF9rv2Xb54//Z+3v13dnz7Mkxevpl84fuNXfu/x
693F018uL3cvn/7v47f61Ucf8vn0E0x17uo8/d2Xu1Mfrxtz7vvjx3u9e/Pmxe7wv/nz7vL5q/3P
/9nj/z39N49H4d03/fTxixdfffzRrvy02o9//+rRa7pP/soPvpH98fpq/+Oa/uT+UFz5nX/88urN
7sSvv/8JXbx+s/v59aTt//nXfwDAffelgRtWBffzL2/s7cbeWmjAtUJvowMuFBwy4ITgmsoBF+Yt
QQMuCb3VDrhQcMiAU4JrHHBh3jpowHVCb60DLhQcMuCU4JIDLsxbDw24Xuitc8CFgkMGnBJc74AL
85ahAZeF3lwyxIJDBpwSnEuGOG8DNOAGoTeXDLHgkAEnBNe6ZAj01kEDrtN5c8kQC44ZcEJwLhni
vI3QK7hReEJ1yRALDhlwSnAuGQK9Qa/gRuEJ1SVDLDhmwAnBuWQI85Yr5hXc9Ll03lwyxIIjBpwU
nEuGQG/MK7jpc+m8uWSIBccMOB245JIhzlsNvYKrdSfU5JIhFhwy4JTgXDIEeoNewdXCE6pLhlhw
zIATgnPJEOcN+jSRLHy4Q3LJEAsOGXBKcC4ZAr1Br+Aa4QnVJUMsOGbACcG5ZIjzBn1cUhY+vSa5
ZIgFhww4IbjOJUOgN+gVXKs7oXYuGWLBMQNOCM4lQ5w36PPgsvDxXJ1LhlhwyIBTgnPJEOgNegWX
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
uP6By6RGplym6x8uTO4OoCTfZ9G4/oHLpEamXKbrnzNh/vz4t7/vZT4V0fzu67/+4WL6dh68B9p0
TTE661mg3SmgL56/3D2+XIPn/oNdGYLrCji7qzL33+4pmikVbs2nv7dqo0JzFuf+oM3qfHCK59tf
v+qT464QjHfV3fyN9yJ3K0XiF8QuUeMu6di1hbeS79lVfe2407tjxp3U3Xybvcid4+5cdj017nol
u/mu2nG3mTtm3EndzTfRjrtN2A3UuBuU7Mo3s467Tdwx407qrnwz67iTsxupcTfK2HV5KNxUdENX
Rb3G+8tyx4w7qbvCXcUSd467M9ldMxgTx+7E8MF6J9n5iRhf3G3GDpl2Unbz4y6+tttEXQ0Nu+mD
CW8p5odZnHabuUOmndbd/KiK424TdtQxlF45DlB4g6vjbjN3zLiTunMvG8yupcZdq2TnXhbgjhl3
UnfuZYPZUafueuH0Uyq8N9Vxt5k7ZtxJ3bmXDWZXfup1ILsTDxZej52bCoA7ZtxJ3bmqCGZHHTLu
hcOeqfC2UsfdZu6YcSd156oimF2mxl0Wsiu8aNRxt5k7ZtxJ3bmqCGZH3VPRC2fbU+EdoY67zdwx
407qzlVFLLuMHTLOsmnPVHi7p9NuM3bItJOyc1ERrI46dZeV00+Fd8w57TZzh0w7rTsXFcHsqGMo
WTkOUHg/nONuM3fMuJO6c1ERzI7ay2ZlP1Z4t5vjbjN3zLiTunNREcyOWlRk5YJx4b1sjrvN3DHj
TurORUUsu2veeRG4Ynz1vQKrqSs+YbEd+lQ57fTskGknZVfqxxaw+7zD7vWrFwvRVTdS98Of//gx
uhoUdR+Qmz7WlfNr6fUpJ96dMn2rp8RNpK5btPuygi6EHCXmtiJ33XqdQ04qDtTFfijuRCO2lrh8
3VKdQ05OjhhySnLXrdI55KTiQA3sh+JO9GCribtugc4hJydHDDkluevW5hxyUnGg7f8fijuxCXs1
cdcNEDvk5OSIIackd93wsENOKg40XPKhuBMV/2rirpsbdsjJyRFDTknuupFhh5xW3MAMuUEkLqW+
FHL7t6A45OTkkCEnJFcKuQXkHHLniQM9z+RDcSeeKrHaadXtajg5YsgpybldjRXXMEOukYkb3K6G
k0OGnJCc29VYcT0z5HqdOLer4eSQISck53Y1VBxom9eH4k5stllNnNvVcHLEkFOSc7saKy4xQy7p
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
qpuxrr3GCcBJDU41zqG0AL8Ep4NzTZvgnUOjenNG15c2ZwzD6HEkAE5qcMpxloaMl+B0cK5pE7xz
aNRuzhjffoKZk3rbVbXXOAE4qcEpx1lo1RfhdHCuaRO8c2gUb85ox352GWn/5K4++4oTgJManHKc
pSfQLMHp4FzTJnjn0Ch/rUvth3zwcVKDU42z8UM+yDbBO4dG8eaMVKX5uyE/Vo6Ckxqccpyze9X9
WDmATfAA/CieMU5NLmwHbtrGe9UJOKnBKcdZWEdahNPBuaLN4xIzNDmnL3ad9nbIj0f6DHQyo3MD
nX4+EhoneCJp+qKR6sylgqiu6jR4lpPAE5udcp6FUeNFPB2eq+oEl+vTF0mqc2wKDzTe727rfctO
4IkNTznP8s7g83k6PFfVCS7Ypy869X2RHzH3GfDEhqecpx8yh9YJLtmnL3rtqT21pSvPvhv9Kg0C
T2x4ynmWrjyX8HR4rqoTXLRPXwxinUN5//rhdQ4Oz2ie2PBU8yw+QnYJT4fnmjoPdSY2PGv1bZEf
0/kZ6KRmp1ynn9OJxonu2mtpmTlOB6DwMMS261p37QSe2OyU8yyMgizi6fBcVSe6a6+lZebY5cK7
C6aL0rHziieBJzY85TzndxYt4+nwXFUnumuv5WWmH3X8GfDEhqecpx92jNaJ7tprZZmZqjTMLyq1
7V6v6yICT2x4ynnOryot4+nwXFUnumuvlWVmqrq+nx2jm3SO023T6PCM54kNTznP+Tm6ZTwdnmvq
PCw5Y8NTu/mtHYfSwzv73o+LR+ikZqdcZ+npnUt0OjpXxYnu2hulzsOJvXTT7utOCE9sdsp5lm7a
fd0ZrhNdFzXa9fjUFHRWTTN0HlQi8MSGp5xn6WF0S3g6PNfU2aJv2lspzmEovvG6Th7yROikZqdc
Z2HGc5FOR+eqONHXna32xD604+wjQabPmPcvjHF2xvPEZqec53yXuYynw3NNnQl93Sl+2NdY3L2R
ar8iE6GTmp1ynYVHLizS6ehcFSf6ujNJT+xjVbfzmzema55x9IQngSc2O+U8C7dFi3g6PNfU2aGv
O+U3RYUn0fmenaKTmp1ynYUH0fmWPRxnj45O6VMSx2rsCpedXd0M3tJO0EmNTrnOwlXnIp2OzjVx
DujolD4jcaJZuCVq6rEbBl91AnRSo1Ouc74oWqbT0bkizsOMAzU6G+37CPc452/YHZ0Ynczo3EDn
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
lNmAQ7NRn849p0mnSQ1NOU3PaYJltuDQbNUyPadJp0kNTTlNz2mCZXLnNFvpMNxBpkeO6DSpoSmn
6ZEjsEzunGYrH4Yb3J7TaVJDU01zdHsOlsmd02ylw3AHmW7P6TSpoSmn6fYcLDODQzOrZboIotOk
hqacposgsEzucHsrnyAeXQTRaVJDU07TRRBY5ggOzVEt00UQnSY1NOU0XQRxZe73sEJDM8m3XRSe
cuTQZNBkhqacZukpRw7NcJncHUFJuu1ikjkUX2c1dskP7AinSQ1NOc1SEbSEpkNzRZncHUFJve2i
qdye02lSQ1NO0+05WCZ3R1CSbrtIVcrNvMzpf4aucmhG06SGppzm/GDHMpoOzRVlcncEJfW2i6by
yBGdJjU05TQ9cgSWyd0RlKTbLlLVN33hfZRdXbcOzXCa1NCU0yy8jHIRTYfmijK5O4KSettFU3lO
k06TGppymp7TBMvkDrcn9QRxU3lOk06TGppymp7T5MrcryhDQ7PTD8N5TpNOkxmaepq15zTBMrkj
R510riNVXW7nZe6fSzY6NMNpUkNTTnN+Gm4ZTYfmijK5RVCnfv5WU3tOk06TGppymp7T5Mrsubfn
vf4eyCNHdJrM0NyApkeOwDK5V5q9eK6jy0359nzwNspwmtTQlNMs356fT9OhuZ7MgXulOUhP56lK
feEdQW3bVOP+4WQOzVCazNDcgOb8yNEymg7N9WTWFTc1py92SUuzMN3u1GTYZMbmBjYL4+2OzWia
4KmjeroNEtOcnzpybEJsUmNTbbPwniDH5mmaPz/+7e97m09FOL/7+q9/uJi+nQfviTZtV0zPelZo
d0roi+cvd48v1/C5/2D7rz/6WXYFnd1Vmvtv94TNuhqGeZupS+N+xjomN2d17o/aLM8Hp3y+/fWr
QDnwCtF4V+HNr1sug7dSKH457q558EacuxPPNliHXTX0TWFRchyrFFZ/f1nukHkndVdYcVzkznF3
Ljvq9V2SnWb37grLic67zeAh804Lr7BW6MDbwt01AzuB59mrMxHrsSusAzrvNnOHzDulu9IGLsfd
JuwaaNxNH0y2jDIWHtOXur7d71xz3unhIfNOC29+IWUZPAfeue4SNfCS7L5ibPr5hZSJ5fTbDrwt
4DEDTwpvfiVlGTwH3rnuqCt4nXIhpbT/3ne0m8FjBp4UXuGNHr6l3cRdTw28XuduLDwPNFVNTr6l
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
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '43294'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:22 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_tradingview_chart_data?end_timestamp=1733184000000&instrument_name=BTC-PERPETUAL&resolution=720&start_timestamp=1733011200000
response:
body:
string: '{"usOut":1736124923261326,"usIn":1736124923259456,"usDiff":1870,"testnet":false,"result":{"volume":[1765.50937228,1795.26276348,3824.28604442,7511.65710613,3391.8982902],"ticks":[1732996800000,1733040000000,1733083200000,1733126400000,1733169600000],"status":"ok","open":[97116.5,96529.5,97288.0,96077.0,95872.5],"low":[95555.0,96487.5,95843.5,94377.5,95153.5],"high":[97116.5,97627.0,98275.0,97469.0,96375.0],"cost":[170140340.0,174409490.0,371629810.0,720033750.0,324979260.0],"close":[96530.0,97288.0,96077.5,95872.5,95602.0]},"jsonrpc":"2.0"}'
headers:
Connection:
- keep-alive
Content-Length:
- '546'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:55:23 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,916 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false&kind=future
response:
body:
string: !!binary |
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
fKqWO5LpkuUf/wEjI6skBm4AAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1786'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:34:14 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&expired=false
response:
body:
string: !!binary |
H4sIAAAAAAAAA+zdbZPc1pmt6f+iz00GXjawgf4m0bR1Oty2QqInHDExUcGXtMVpipSLlEbnOPzf
B5lJ0iQrsasShYXnZnH1mTkzRbLFrMLFBWCvZwP//Or/ff3q5eXPT7/6z6+a+9VX//HV5e71Ly/e
fPWf//c/v/r58vnT3cXzl892v02//eTlk4tfXj97uv8zf/vHV//5t8cvXu/+46v/mX5/+t1XP795
/url9Hs/PX958eby8bPdxeOfXv3ycvov1f/x1fPXF4+fvnn+6+6r/3xz+cv0v/X85evp/+en3cs3
Fy8f/zT98lff/Ombi7/88LsH9/r/+vpPTXevb6p7D/b/vcf/s7u8ePrqp5+ev369/yv+s7pfVdX0
H31z+ne6j/7rb/73z/v/+ovnL3ePL6f/3O63n59fPt5/1os3z3/avX7z+Kefp4+Y277uqlTt/+c/
vnr66uX0LTx9c/H6+f+Z/rfr+9OvTf/F5/8zfTF9rv2Xb54//Z+3v13dnz7Mkxevpl84fuNXfu/x
693F018uL3cvn/7v47f61Ucf8vn0E0x17uo8/d2Xu1Mfrxtz7vvjx3u9e/Pmxe7wv/nz7vL5q/3P
/9nj/z39N49H4d03/fTxixdfffzRrvy02o9//+rRa7pP/soPvpH98fpq/+Oa/uT+UFz5nX/88urN
7sSvv/8JXbx+s/v59aTt//nXfwDAffelgRtWBffzL2/s7cbeWmjAtUJvowMuFBwy4ITgmsoBF+Yt
QQMuCb3VDrhQcMiAU4JrHHBh3jpowHVCb60DLhQcMuCU4JIDLsxbDw24Xuitc8CFgkMGnBJc74AL
85ahAZeF3lwyxIJDBpwSnEuGOG8DNOAGoTeXDLHgkAEnBNe6ZAj01kEDrtN5c8kQC44ZcEJwLhni
vI3QK7hReEJ1yRALDhlwSnAuGQK9Qa/gRuEJ1SVDLDhmwAnBuWQI85Yr5hXc9Ll03lwyxIIjBpwU
nEuGQG/MK7jpc+m8uWSIBccMOB245JIhzlsNvYKrdSfU5JIhFhwy4JTgXDIEeoNewdXCE6pLhlhw
zIATgnPJEOcN+jSRLHy4Q3LJEAsOGXBKcC4ZAr1Br+Aa4QnVJUMsOGbACcG5ZIjzBn1cUhY+vSa5
ZIgFhww4IbjOJUOgN+gVXKs7oXYuGWLBMQNOCM4lQ5w36PPgsvDxXJ1LhlhwyIBTgnPJEOgNegWX
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
uP6By6RGplym6x8uTO4OoCTfZ9G4/oHLpEamXKbrnzNh/vz4t7/vZT4V0fzu67/+4WL6dh68B9p0
TTE661mg3SmgL56/3D2+XIPn/oNdGYLrCji7qzL33+4pmikVbs2nv7dqo0JzFuf+oM3qfHCK59tf
v+qT464QjHfV3fyN9yJ3K0XiF8QuUeMu6di1hbeS79lVfe2407tjxp3U3Xybvcid4+5cdj017nol
u/mu2nG3mTtm3EndzTfRjrtN2A3UuBuU7Mo3s467Tdwx407qrnwz67iTsxupcTfK2HV5KNxUdENX
Rb3G+8tyx4w7qbvCXcUSd467M9ldMxgTx+7E8MF6J9n5iRhf3G3GDpl2Unbz4y6+tttEXQ0Nu+mD
CW8p5odZnHabuUOmndbd/KiK424TdtQxlF45DlB4g6vjbjN3zLiTunMvG8yupcZdq2TnXhbgjhl3
UnfuZYPZUafueuH0Uyq8N9Vxt5k7ZtxJ3bmXDWZXfup1ILsTDxZej52bCoA7ZtxJ3bmqCGZHHTLu
hcOeqfC2UsfdZu6YcSd156oimF2mxl0Wsiu8aNRxt5k7ZtxJ3bmqCGZH3VPRC2fbU+EdoY67zdwx
407qzlVFLLuMHTLOsmnPVHi7p9NuM3bItJOyc1ERrI46dZeV00+Fd8w57TZzh0w7rTsXFcHsqGMo
WTkOUHg/nONuM3fMuJO6c1ERzI7ay2ZlP1Z4t5vjbjN3zLiTunNREcyOWlRk5YJx4b1sjrvN3DHj
TurORUUsu2veeRG4Ynz1vQKrqSs+YbEd+lQ57fTskGknZVfqxxaw+7zD7vWrFwvRVTdS98Of//gx
uhoUdR+Qmz7WlfNr6fUpJ96dMn2rp8RNpK5btPuygi6EHCXmtiJ33XqdQ04qDtTFfijuRCO2lrh8
3VKdQ05OjhhySnLXrdI55KTiQA3sh+JO9GCribtugc4hJydHDDkluevW5hxyUnGg7f8fijuxCXs1
cdcNEDvk5OSIIackd93wsENOKg40XPKhuBMV/2rirpsbdsjJyRFDTknuupFhh5xW3MAMuUEkLqW+
FHL7t6A45OTkkCEnJFcKuQXkHHLniQM9z+RDcSeeKrHaadXtajg5YsgpybldjRXXMEOukYkb3K6G
k0OGnJCc29VYcT0z5HqdOLer4eSQISck53Y1VBxom9eH4k5stllNnNvVcHLEkFOSc7saKy4xQy7p
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
qpuxrr3GCcBJDU41zqG0AL8Ep4NzTZvgnUOjenNG15c2ZwzD6HEkAE5qcMpxloaMl+B0cK5pE7xz
aNRuzhjffoKZk3rbVbXXOAE4qcEpx1lo1RfhdHCuaRO8c2gUb85ox352GWn/5K4++4oTgJManHKc
pSfQLMHp4FzTJnjn0Ch/rUvth3zwcVKDU42z8UM+yDbBO4dG8eaMVKX5uyE/Vo6Ckxqccpyze9X9
WDmATfAA/CieMU5NLmwHbtrGe9UJOKnBKcdZWEdahNPBuaLN4xIzNDmnL3ad9nbIj0f6DHQyo3MD
nX4+EhoneCJp+qKR6sylgqiu6jR4lpPAE5udcp6FUeNFPB2eq+oEl+vTF0mqc2wKDzTe727rfctO
4IkNTznP8s7g83k6PFfVCS7Ypy869X2RHzH3GfDEhqecpx8yh9YJLtmnL3rtqT21pSvPvhv9Kg0C
T2x4ynmWrjyX8HR4rqoTXLRPXwxinUN5//rhdQ4Oz2ie2PBU8yw+QnYJT4fnmjoPdSY2PGv1bZEf
0/kZ6KRmp1ynn9OJxonu2mtpmTlOB6DwMMS261p37QSe2OyU8yyMgizi6fBcVSe6a6+lZebY5cK7
C6aL0rHziieBJzY85TzndxYt4+nwXFUnumuv5WWmH3X8GfDEhqecpx92jNaJ7tprZZmZqjTMLyq1
7V6v6yICT2x4ynnOryot4+nwXFUnumuvlWVmqrq+nx2jm3SO023T6PCM54kNTznP+Tm6ZTwdnmvq
PCw5Y8NTu/mtHYfSwzv73o+LR+ikZqdcZ+npnUt0OjpXxYnu2hulzsOJvXTT7utOCE9sdsp5lm7a
fd0ZrhNdFzXa9fjUFHRWTTN0HlQi8MSGp5xn6WF0S3g6PNfU2aJv2lspzmEovvG6Th7yROikZqdc
Z2HGc5FOR+eqONHXna32xD604+wjQabPmPcvjHF2xvPEZqec53yXuYynw3NNnQl93Sl+2NdY3L2R
ar8iE6GTmp1ynYVHLizS6ehcFSf6ujNJT+xjVbfzmzema55x9IQngSc2O+U8C7dFi3g6PNfU2aGv
O+U3RYUn0fmenaKTmp1ynYUH0fmWPRxnj45O6VMSx2rsCpedXd0M3tJO0EmNTrnOwlXnIp2OzjVx
DujolD4jcaJZuCVq6rEbBl91AnRSo1Ouc74oWqbT0bkizsOMAzU6G+37CPc452/YHZ0Ynczo3EDn
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
lNmAQ7NRn849p0mnSQ1NOU3PaYJltuDQbNUyPadJp0kNTTlNz2mCZXLnNFvpMNxBpkeO6DSpoSmn
6ZEjsEzunGYrH4Yb3J7TaVJDU01zdHsOlsmd02ylw3AHmW7P6TSpoSmn6fYcLDODQzOrZboIotOk
hqacposgsEzucHsrnyAeXQTRaVJDU07TRRBY5ggOzVEt00UQnSY1NOU0XQRxZe73sEJDM8m3XRSe
cuTQZNBkhqacZukpRw7NcJncHUFJuu1ikjkUX2c1dskP7AinSQ1NOc1SEbSEpkNzRZncHUFJve2i
qdye02lSQ1NO0+05WCZ3R1CSbrtIVcrNvMzpf4aucmhG06SGppzm/GDHMpoOzRVlcncEJfW2i6by
yBGdJjU05TQ9cgSWyd0RlKTbLlLVN33hfZRdXbcOzXCa1NCU0yy8jHIRTYfmijK5O4KSettFU3lO
k06TGppymp7TBMvkDrcn9QRxU3lOk06TGppymp7T5MrcryhDQ7PTD8N5TpNOkxmaepq15zTBMrkj
R510riNVXW7nZe6fSzY6NMNpUkNTTnN+Gm4ZTYfmijK5RVCnfv5WU3tOk06TGppymp7T5Mrsubfn
vf4eyCNHdJrM0NyApkeOwDK5V5q9eK6jy0359nzwNspwmtTQlNMs356fT9OhuZ7MgXulOUhP56lK
feEdQW3bVOP+4WQOzVCazNDcgOb8yNEymg7N9WTWFTc1py92SUuzMN3u1GTYZMbmBjYL4+2OzWia
4KmjeroNEtOcnzpybEJsUmNTbbPwniDH5mmaPz/+7e97m09FOL/7+q9/uJi+nQfviTZtV0zPelZo
d0roi+cvd48v1/C5/2D7rz/6WXYFnd1Vmvtv94TNuhqGeZupS+N+xjomN2d17o/aLM8Hp3y+/fWr
QDnwCtF4V+HNr1sug7dSKH457q558EacuxPPNliHXTX0TWFRchyrFFZ/f1nukHkndVdYcVzkznF3
Ljvq9V2SnWb37grLic67zeAh804Lr7BW6MDbwt01AzuB59mrMxHrsSusAzrvNnOHzDulu9IGLsfd
JuwaaNxNH0y2jDIWHtOXur7d71xz3unhIfNOC29+IWUZPAfeue4SNfCS7L5ibPr5hZSJ5fTbDrwt
4DEDTwpvfiVlGTwH3rnuqCt4nXIhpbT/3ne0m8FjBp4UXuGNHr6l3cRdTw28XuduLDwPNFVNTr6l
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
r9/8/PO4JXB8Y8PT/ba+uSXl3/8fS0hArCy1HQA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '43292'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:34:15 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_tradingview_chart_data?end_timestamp=1733184000000&instrument_name=BTC-PERPETUAL&resolution=720&start_timestamp=1733011200000
response:
body:
string: '{"usOut":1736123656142468,"usIn":1736123656140693,"usDiff":1775,"testnet":false,"result":{"volume":[1765.50937228,1795.26276348,3824.28604442,7511.65710613,3391.8982902],"ticks":[1732996800000,1733040000000,1733083200000,1733126400000,1733169600000],"status":"ok","open":[97116.5,96529.5,97288.0,96077.0,95872.5],"low":[95555.0,96487.5,95843.5,94377.5,95153.5],"high":[97116.5,97627.0,98275.0,97469.0,96375.0],"cost":[170140340.0,174409490.0,371629810.0,720033750.0,324979260.0],"close":[96530.0,97288.0,96077.5,95872.5,95602.0]},"jsonrpc":"2.0"}'
headers:
Connection:
- keep-alive
Content-Length:
- '546'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 00:34:16 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,132 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
ZLpk+cd/1CYNgAZuAAA=
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1781'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:30 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA21Sy27bMBD8lz0rAl/iQ7e0zaFAgQRFehYYi7bZUJQhkk6LIP/epeKkzuPInZ2d
2Vk+wu80x+WwgR5YS6CBxaUSMvSPkP3kUrbTAXqquKSGUU6UNg1gNTtkzAcX4fmZKmPvd3tsJkxS
3XYNhPkBeqOMUC1p4LD4jRs2ext3SOatoZQ3cJxDmdzKoqyVWgulmXqpDyWNKya04JqTOueExDn7
OdrwFn5qwMfR/RlWtYpRzXirRa2nvCAz5iHaKglfbr9e3Fz9vLm6/XX5AxcJNuVzYrdukVzOwa28
E2YMxtEKdDn5+J9AODWVMNkzec5VV4s1q8HH7DBgjJcyFGCqE6T2L/fnshiXYNXvc/NwtKEghNup
rhNKSU6JQXZd6q422HT/0faK3PnxHYJ6CPgJLzgOowv+6Ja/n6T1OthOc4noWFAqu/UAr5NfINST
Djmbsiw1pm2Jo4+71XIDp9eg699opeDcXQi8U0nf45uvZaiUptavS34HGKIr8M1vt9Azjl0ZTUSH
fVsbknv6B2sLSIvJAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '414'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:30 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,132 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
lKqrHcl0ifKP/wA0kD8VBW4AAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1786'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:48 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/ticker?instrument_name=BTC-PERPETUAL
response:
body:
string: !!binary |
H4sIAAAAAAAAA2WST2/cIBDFv8ucHQswf/fWJjlEitSoSs8WWbO7JDZeGdi2ivLdO5BNu26OzG/e
zOPBKzzHOSzHLWyAtQQaWFzMY4LNKyQ/uZjsdIQNVZ2khlFuKJMNYDU5VMxHF+D9GIvi4PcHbCZM
Ut2KBsb5J2yMMly1pIHj4reu3x5s2KO4aw0RtIHTPObJVRXlrZBMU2b0R73PcahMkI4rTsqcMwlz
8nOw4xq/NeDD4H71dVthVHPdmlKOaUFhSH2wZSN8fby+erj9/nD7+OPLPd5jtDFd6gQrl4gupdFV
3ZkZg2m0XDUw+fBPgBZk8TfZi+0dJ3VKiar3ITnMF9OlDPs55lT7l5fLtYq3VBa/7839yY4ZEV5O
CcGVkh0lhlCmeQNPpcHGlV7XtCt58sOKyGIFgZ/wAYd+cKM/ueX357D+zrXTnAMa1oIospr7QfBT
dKyibV6WEtMuh8GHfbXcwPnU6/I1Wsm7zl1xfKYc78L6ZykpulL/ltN/QJeccrzxux0SgckntBEc
9u3sGN3bH+ZnaX7IAgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '414'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 19:35:49 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,79 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
VF3uSKZLln/8BwWVErMGbgAA
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1785'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 16:43:09 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -0,0 +1,79 @@
interactions:
- request:
body: null
headers:
Accept:
- application/json
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
method: GET
uri: https://www.deribit.com/api/v2/public/get_instruments?currency=any&kind=future
response:
body:
string: !!binary |
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
rTzqckcyXbL84z9ZbTVhBm4AAA==
headers:
Access-Control-Allow-Headers:
- Authorization,User-Agent,Range,X-Requested-With,Content-Type,Partner
Access-Control-Allow-Methods:
- GET, POST, OPTIONS
Access-Control-Allow-Origin:
- '*'
Cache-Control:
- no-store
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Length:
- '1786'
Content-Type:
- application/json
Date:
- Mon, 06 Jan 2025 16:43:31 GMT
Server:
- nginx
Strict-Transport-Security:
- max-age=15768000
Vary:
- Origin,Authorization,Partner
- accept-encoding
X-Frame-Options:
- SAMEORIGIN
status:
code: 200
message: OK
version: 1

View File

@@ -1,10 +1,15 @@
"""Deribit Fetcher Tests."""
from datetime import date
from unittest.mock import MagicMock, patch
import pytest
from openbb_core.app.service.user_service import UserService
from openbb_core.provider.utils.helpers import run_async
from openbb_deribit.models.futures_curve import DeribitFuturesCurveFetcher
from openbb_deribit.models.futures_historical import DeribitFuturesHistoricalFetcher
from openbb_deribit.models.futures_info import DeribitFuturesInfoFetcher
from openbb_deribit.models.futures_instruments import DeribitFuturesInstrumentsFetcher
from openbb_deribit.models.options_chains import (
DeribitOptionsChainsData,
DeribitOptionsChainsFetcher,
@@ -63,7 +68,7 @@ def vcr_config():
return {
"filter_headers": [("User-Agent", None)],
"filter_query_parameters": [
None,
("expired", None),
],
}
@@ -97,3 +102,48 @@ async def test_deribit_options_chains_fetcher(credentials=test_credentials):
):
result = await fetcher.fetch_data(params, {})
assert isinstance(result, DeribitOptionsChainsData)
@pytest.mark.record_http
def test_deribit_futures_curve_fetcher(credentials=test_credentials):
"""Test Deribit Futures Curve Fetcher."""
params = {"symbol": "BTC"}
fetcher = DeribitFuturesCurveFetcher()
result = fetcher.test(params, credentials)
assert result is None
@pytest.mark.record_http
def test_deribit_futures_historical_fetcher(credentials=test_credentials):
"""Test Deribit Futures Historical Fetcher."""
params = {
"symbol": "BTC-PERPETUAL",
"start_date": date(2024, 12, 1),
"end_date": date(2024, 12, 3),
"interval": "12h",
}
fetcher = DeribitFuturesHistoricalFetcher()
result = fetcher.test(params, credentials)
assert result is None
@pytest.mark.record_http
def test_deribit_futures_instruments_fetcher(credentials=test_credentials):
"""Test Deribit Futures Instruments Fetcher."""
params = {}
fetcher = DeribitFuturesInstrumentsFetcher()
result = fetcher.test(params, credentials)
assert result is None
@pytest.mark.record_http
def test_deribit_futures_info_fetcher(credentials=test_credentials):
"""Test Deribit Futures Info Fetcher."""
params = {"symbol": "BTC-PERPETUAL"}
fetcher = DeribitFuturesInfoFetcher()
result = fetcher.test(params, credentials)
assert result is None

View File

@@ -2,7 +2,7 @@
# pylint: disable=unused-argument
from typing import Any, Dict, List, Optional, Union
from typing import Any, Dict, List, Optional
from openbb_core.provider.abstract.data import ForceInt
from openbb_core.provider.abstract.fetcher import Fetcher
@@ -20,18 +20,27 @@ GROUPS_CHOICES = sorted(list(GROUPS_DICT))
class FinvizCompareGroupsQueryParams(CompareGroupsQueryParams):
"""Finviz Compare Groups Query Params."""
group: Union[GROUPS, None] = Field(
__json_schema_extra__ = {
"group": {
"multiple_items_allowed": False,
"choices": GROUPS_CHOICES,
},
"metric": {
"multiple_items_allowed": False,
"choices": ["performance", "valuation", "overview"],
},
}
group: GROUPS = Field(
default="sector",
description="US-listed stocks only."
+ " When a sector is selected, it is broken down by industry."
+ " The default is sector.",
json_schema_extra={"choices": GROUPS_CHOICES}, # type: ignore
+ " When an individual sector is selected, it is broken down by industry."
+ " The default is 'sector'.",
)
metric: Union[METRICS, None] = Field(
metric: METRICS = Field(
default="performance",
description="Select from: performance, valuation, overview."
+ " The default is performance.",
json_schema_extra={"choices": ["performance", "valuation", "overview"]},
description="Statistical metric to return. Select from: ['performance', 'valuation', 'overview']"
+ " The default is 'performance'.",
)
@@ -67,6 +76,8 @@ class FinvizCompareGroupsData(CompareGroupsData):
"analyst_recommendation": "Recom",
}
name: str = Field(description="Name or label of the group.")
stocks: Optional[int] = Field(
default=None,
description="The number of stocks in the group.",

View File

@@ -2,9 +2,7 @@
# pylint: disable=unused-argument
import asyncio
from datetime import datetime
from typing import Any, Dict, List, Optional
from typing import Any, Optional
from openbb_core.provider.abstract.fetcher import Fetcher
from openbb_core.provider.standard_models.company_news import (
@@ -34,63 +32,64 @@ class YFinanceCompanyNewsQueryParams(CompanyNewsQueryParams):
class YFinanceCompanyNewsData(CompanyNewsData):
"""YFinance Company News Data."""
__alias_dict__ = {
"symbols": "relatedTickers",
"date": "providerPublishTime",
"url": "link",
"images": "thumbnail",
"source": "publisher",
}
source: str = Field(description="Source of the news article")
@field_validator("symbols", mode="before", check_fields=False)
@classmethod
def symbols_string(cls, v):
"""Symbols string validator."""
return ",".join(v)
source: Optional[str] = Field(
default=None, description="Source of the news article"
)
class YFinanceCompanyNewsFetcher(
Fetcher[
YFinanceCompanyNewsQueryParams,
List[YFinanceCompanyNewsData],
list[YFinanceCompanyNewsData],
]
):
"""Transform the query, extract and transform the data from the Yahoo Finance endpoints."""
@staticmethod
def transform_query(params: Dict[str, Any]) -> YFinanceCompanyNewsQueryParams:
def transform_query(params: dict[str, Any]) -> YFinanceCompanyNewsQueryParams:
"""Transform query params."""
return YFinanceCompanyNewsQueryParams(**params)
@staticmethod
async def aextract_data(
query: YFinanceCompanyNewsQueryParams,
credentials: Optional[Dict[str, str]],
credentials: Optional[dict[str, str]],
**kwargs: Any,
) -> List[Dict]:
) -> list[dict]:
"""Extract data."""
from yfinance import Ticker # pylint: disable=import-outside-toplevel
# pylint: disable=import-outside-toplevel
import asyncio # noqa
from yfinance import Ticker
results = []
results: list = []
symbols = query.symbol.split(",") # type: ignore
async def get_one(symbol):
data = Ticker(symbol).get_news()
data = Ticker(symbol).get_news(count=query.limit, tab="all")
for d in data:
images = None
if d.get("thumbnail"):
images = d["thumbnail"].get("resolutions")
_ = d.pop("uuid")
_ = d.pop("type")
d["date"] = datetime.utcfromtimestamp(d["providerPublishTime"])
d["images"] = (
[{k: str(v) for k, v in img.items()} for img in images]
if images
else None
)
results.extend(data)
new_content: dict = {}
content = d.get("content")
if not content:
continue
if thumbnail := content.get("thumbnail"):
images = thumbnail.get("resolutions")
if images:
new_content["images"] = [
{k: str(v) for k, v in img.items()} for img in images
]
new_content["url"] = content.get("canonicalUrl", {}).get("url")
new_content["source"] = content.get("provider", {}).get("displayName")
new_content["title"] = content.get("title")
new_content["date"] = content.get("pubDate")
description = content.get("description")
summary = content.get("summary")
if description:
new_content["text"] = description
elif summary:
new_content["text"] = summary
results.append(new_content)
tasks = [get_one(symbol) for symbol in symbols]
@@ -101,8 +100,8 @@ class YFinanceCompanyNewsFetcher(
@staticmethod
def transform_data(
query: YFinanceCompanyNewsQueryParams,
data: List[Dict],
data: list[dict],
**kwargs: Any,
) -> List[YFinanceCompanyNewsData]:
) -> list[YFinanceCompanyNewsData]:
"""Transform data."""
return [YFinanceCompanyNewsData.model_validate(d) for d in data]

View File

@@ -1,4 +1,4 @@
# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand.
[[package]]
name = "aiohappyeyeballs"
@@ -13,87 +13,87 @@ files = [
[[package]]
name = "aiohttp"
version = "3.11.9"
version = "3.11.11"
description = "Async http client/server framework (asyncio)"
optional = false
python-versions = ">=3.9"
files = [
{file = "aiohttp-3.11.9-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0411777249f25d11bd2964a230b3ffafcbed6cd65d0f2b132bc2b8f5b8c347c7"},
{file = "aiohttp-3.11.9-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:499368eb904566fbdf1a3836a1532000ef1308f34a1bcbf36e6351904cced771"},
{file = "aiohttp-3.11.9-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0b5a5009b0159a8f707879dc102b139466d8ec6db05103ec1520394fdd8ea02c"},
{file = "aiohttp-3.11.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:176f8bb8931da0613bb0ed16326d01330066bb1e172dd97e1e02b1c27383277b"},
{file = "aiohttp-3.11.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6435a66957cdba1a0b16f368bde03ce9c79c57306b39510da6ae5312a1a5b2c1"},
{file = "aiohttp-3.11.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:202f40fb686e5f93908eee0c75d1e6fbe50a43e9bd4909bf3bf4a56b560ca180"},
{file = "aiohttp-3.11.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39625703540feb50b6b7f938b3856d1f4886d2e585d88274e62b1bd273fae09b"},
{file = "aiohttp-3.11.9-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c6beeac698671baa558e82fa160be9761cf0eb25861943f4689ecf9000f8ebd0"},
{file = "aiohttp-3.11.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:96726839a42429318017e67a42cca75d4f0d5248a809b3cc2e125445edd7d50d"},
{file = "aiohttp-3.11.9-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3f5461c77649358610fb9694e790956b4238ac5d9e697a17f63619c096469afe"},
{file = "aiohttp-3.11.9-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4313f3bc901255b22f01663eeeae167468264fdae0d32c25fc631d5d6e15b502"},
{file = "aiohttp-3.11.9-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:d6e274661c74195708fc4380a4ef64298926c5a50bb10fbae3d01627d7a075b7"},
{file = "aiohttp-3.11.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:db2914de2559809fdbcf3e48f41b17a493b58cb7988d3e211f6b63126c55fe82"},
{file = "aiohttp-3.11.9-cp310-cp310-win32.whl", hash = "sha256:27935716f8d62c1c73010428db310fd10136002cfc6d52b0ba7bdfa752d26066"},
{file = "aiohttp-3.11.9-cp310-cp310-win_amd64.whl", hash = "sha256:afbe85b50ade42ddff5669947afde9e8a610e64d2c80be046d67ec4368e555fa"},
{file = "aiohttp-3.11.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:afcda759a69c6a8be3aae764ec6733155aa4a5ad9aad4f398b52ba4037942fe3"},
{file = "aiohttp-3.11.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5bba6b83fde4ca233cfda04cbd4685ab88696b0c8eaf76f7148969eab5e248a"},
{file = "aiohttp-3.11.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:442356e8924fe1a121f8c87866b0ecdc785757fd28924b17c20493961b3d6697"},
{file = "aiohttp-3.11.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f737fef6e117856400afee4f17774cdea392b28ecf058833f5eca368a18cf1bf"},
{file = "aiohttp-3.11.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea142255d4901b03f89cb6a94411ecec117786a76fc9ab043af8f51dd50b5313"},
{file = "aiohttp-3.11.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e1e9e447856e9b7b3d38e1316ae9a8c92e7536ef48373de758ea055edfd5db5"},
{file = "aiohttp-3.11.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7f6173302f8a329ca5d1ee592af9e628d3ade87816e9958dcf7cdae2841def7"},
{file = "aiohttp-3.11.9-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7c6147c6306f537cff59409609508a1d2eff81199f0302dd456bb9e7ea50c39"},
{file = "aiohttp-3.11.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e9d036a9a41fc78e8a3f10a86c2fc1098fca8fab8715ba9eb999ce4788d35df0"},
{file = "aiohttp-3.11.9-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:2ac9fd83096df36728da8e2f4488ac3b5602238f602706606f3702f07a13a409"},
{file = "aiohttp-3.11.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:d3108f0ad5c6b6d78eec5273219a5bbd884b4aacec17883ceefaac988850ce6e"},
{file = "aiohttp-3.11.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:96bbec47beb131bbf4bae05d8ef99ad9e5738f12717cfbbf16648b78b0232e87"},
{file = "aiohttp-3.11.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:fc726c3fa8f606d07bd2b500e5dc4c0fd664c59be7788a16b9e34352c50b6b6b"},
{file = "aiohttp-3.11.9-cp311-cp311-win32.whl", hash = "sha256:5720ebbc7a1b46c33a42d489d25d36c64c419f52159485e55589fbec648ea49a"},
{file = "aiohttp-3.11.9-cp311-cp311-win_amd64.whl", hash = "sha256:17af09d963fa1acd7e4c280e9354aeafd9e3d47eaa4a6bfbd2171ad7da49f0c5"},
{file = "aiohttp-3.11.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c1f2d7fd583fc79c240094b3e7237d88493814d4b300d013a42726c35a734bc9"},
{file = "aiohttp-3.11.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d4b8a1b6c7a68c73191f2ebd3bf66f7ce02f9c374e309bdb68ba886bbbf1b938"},
{file = "aiohttp-3.11.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd3f711f4c99da0091ced41dccdc1bcf8be0281dc314d6d9c6b6cf5df66f37a9"},
{file = "aiohttp-3.11.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:44cb1a1326a0264480a789e6100dc3e07122eb8cd1ad6b784a3d47d13ed1d89c"},
{file = "aiohttp-3.11.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7a7ddf981a0b953ade1c2379052d47ccda2f58ab678fca0671c7c7ca2f67aac2"},
{file = "aiohttp-3.11.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6ffa45cc55b18d4ac1396d1ddb029f139b1d3480f1594130e62bceadf2e1a838"},
{file = "aiohttp-3.11.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cca505829cdab58c2495ff418c96092d225a1bbd486f79017f6de915580d3c44"},
{file = "aiohttp-3.11.9-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44d323aa80a867cb6db6bebb4bbec677c6478e38128847f2c6b0f70eae984d72"},
{file = "aiohttp-3.11.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b2fab23003c4bb2249729a7290a76c1dda38c438300fdf97d4e42bf78b19c810"},
{file = "aiohttp-3.11.9-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:be0c7c98e38a1e3ad7a6ff64af8b6d6db34bf5a41b1478e24c3c74d9e7f8ed42"},
{file = "aiohttp-3.11.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5cc5e0d069c56645446c45a4b5010d4b33ac6c5ebfd369a791b5f097e46a3c08"},
{file = "aiohttp-3.11.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9bcf97b971289be69638d8b1b616f7e557e1342debc7fc86cf89d3f08960e411"},
{file = "aiohttp-3.11.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c7333e7239415076d1418dbfb7fa4df48f3a5b00f8fdf854fca549080455bc14"},
{file = "aiohttp-3.11.9-cp312-cp312-win32.whl", hash = "sha256:9384b07cfd3045b37b05ed002d1c255db02fb96506ad65f0f9b776b762a7572e"},
{file = "aiohttp-3.11.9-cp312-cp312-win_amd64.whl", hash = "sha256:f5252ba8b43906f206048fa569debf2cd0da0316e8d5b4d25abe53307f573941"},
{file = "aiohttp-3.11.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:282e0a7ddd36ebc411f156aeaa0491e8fe7f030e2a95da532cf0c84b0b70bc66"},
{file = "aiohttp-3.11.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ebd3e6b0c7d4954cca59d241970011f8d3327633d555051c430bd09ff49dc494"},
{file = "aiohttp-3.11.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:30f9f89ae625d412043f12ca3771b2ccec227cc93b93bb1f994db6e1af40a7d3"},
{file = "aiohttp-3.11.9-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a3b5b2c012d70c63d9d13c57ed1603709a4d9d7d473e4a9dfece0e4ea3d5f51"},
{file = "aiohttp-3.11.9-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ef1550bb5f55f71b97a6a395286db07f7f2c01c8890e613556df9a51da91e8d"},
{file = "aiohttp-3.11.9-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:317251b9c9a2f1a9ff9cd093775b34c6861d1d7df9439ce3d32a88c275c995cd"},
{file = "aiohttp-3.11.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21cbe97839b009826a61b143d3ca4964c8590d7aed33d6118125e5b71691ca46"},
{file = "aiohttp-3.11.9-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:618b18c3a2360ac940a5503da14fa4f880c5b9bc315ec20a830357bcc62e6bae"},
{file = "aiohttp-3.11.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a0cf4d814689e58f57ecd5d8c523e6538417ca2e72ff52c007c64065cef50fb2"},
{file = "aiohttp-3.11.9-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:15c4e489942d987d5dac0ba39e5772dcbed4cc9ae3710d1025d5ba95e4a5349c"},
{file = "aiohttp-3.11.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ec8df0ff5a911c6d21957a9182402aad7bf060eaeffd77c9ea1c16aecab5adbf"},
{file = "aiohttp-3.11.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ed95d66745f53e129e935ad726167d3a6cb18c5d33df3165974d54742c373868"},
{file = "aiohttp-3.11.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:647ec5bee7e4ec9f1034ab48173b5fa970d9a991e565549b965e93331f1328fe"},
{file = "aiohttp-3.11.9-cp313-cp313-win32.whl", hash = "sha256:ef2c9499b7bd1e24e473dc1a85de55d72fd084eea3d8bdeec7ee0720decb54fa"},
{file = "aiohttp-3.11.9-cp313-cp313-win_amd64.whl", hash = "sha256:84de955314aa5e8d469b00b14d6d714b008087a0222b0f743e7ffac34ef56aff"},
{file = "aiohttp-3.11.9-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e738aabff3586091221044b7a584865ddc4d6120346d12e28e788307cd731043"},
{file = "aiohttp-3.11.9-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:28f29bce89c3b401a53d6fd4bee401ee943083bf2bdc12ef297c1d63155070b0"},
{file = "aiohttp-3.11.9-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:31de2f10f63f96cc19e04bd2df9549559beadd0b2ee2da24a17e7ed877ca8c60"},
{file = "aiohttp-3.11.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77f31cebd8c27a36af6c7346055ac564946e562080ee1a838da724585c67474f"},
{file = "aiohttp-3.11.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0bcb7f6976dc0b6b56efde13294862adf68dd48854111b422a336fa729a82ea6"},
{file = "aiohttp-3.11.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a8b13b9950d8b2f8f58b6e5842c4b842b5887e2c32e3f4644d6642f1659a530"},
{file = "aiohttp-3.11.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9c23e62f3545c2216100603614f9e019e41b9403c47dd85b8e7e5015bf1bde0"},
{file = "aiohttp-3.11.9-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ec656680fc53a13f849c71afd0c84a55c536206d524cbc831cde80abbe80489e"},
{file = "aiohttp-3.11.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:36df00e0541f264ce42d62280281541a47474dfda500bc5b7f24f70a7f87be7a"},
{file = "aiohttp-3.11.9-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:8dcfd14c712aa9dd18049280bfb2f95700ff6a8bde645e09f17c3ed3f05a0130"},
{file = "aiohttp-3.11.9-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14624d96f0d69cf451deed3173079a68c322279be6030208b045ab77e1e8d550"},
{file = "aiohttp-3.11.9-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4b01d9cfcb616eeb6d40f02e66bebfe7b06d9f2ef81641fdd50b8dd981166e0b"},
{file = "aiohttp-3.11.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:928f92f80e2e8d6567b87d3316c1fd9860ccfe36e87a9a7f5237d4cda8baa1ba"},
{file = "aiohttp-3.11.9-cp39-cp39-win32.whl", hash = "sha256:c8a02f74ae419e3955af60f570d83187423e42e672a6433c5e292f1d23619269"},
{file = "aiohttp-3.11.9-cp39-cp39-win_amd64.whl", hash = "sha256:0a97d657f6cf8782a830bb476c13f7d777cfcab8428ac49dde15c22babceb361"},
{file = "aiohttp-3.11.9.tar.gz", hash = "sha256:a9266644064779840feec0e34f10a89b3ff1d2d6b751fe90017abcad1864fa7c"},
{file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"},
{file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"},
{file = "aiohttp-3.11.11-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:731468f555656767cda219ab42e033355fe48c85fbe3ba83a349631541715ba2"},
{file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cb23d8bb86282b342481cad4370ea0853a39e4a32a0042bb52ca6bdde132df43"},
{file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f047569d655f81cb70ea5be942ee5d4421b6219c3f05d131f64088c73bb0917f"},
{file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd7659baae9ccf94ae5fe8bfaa2c7bc2e94d24611528395ce88d009107e00c6d"},
{file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:af01e42ad87ae24932138f154105e88da13ce7d202a6de93fafdafb2883a00ef"},
{file = "aiohttp-3.11.11-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5854be2f3e5a729800bac57a8d76af464e160f19676ab6aea74bde18ad19d438"},
{file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6526e5fb4e14f4bbf30411216780c9967c20c5a55f2f51d3abd6de68320cc2f3"},
{file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:85992ee30a31835fc482468637b3e5bd085fa8fe9392ba0bdcbdc1ef5e9e3c55"},
{file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:88a12ad8ccf325a8a5ed80e6d7c3bdc247d66175afedbe104ee2aaca72960d8e"},
{file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:0a6d3fbf2232e3a08c41eca81ae4f1dff3d8f1a30bae415ebe0af2d2458b8a33"},
{file = "aiohttp-3.11.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:84a585799c58b795573c7fa9b84c455adf3e1d72f19a2bf498b54a95ae0d194c"},
{file = "aiohttp-3.11.11-cp310-cp310-win32.whl", hash = "sha256:bfde76a8f430cf5c5584553adf9926534352251d379dcb266ad2b93c54a29745"},
{file = "aiohttp-3.11.11-cp310-cp310-win_amd64.whl", hash = "sha256:0fd82b8e9c383af11d2b26f27a478640b6b83d669440c0a71481f7c865a51da9"},
{file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ba74ec819177af1ef7f59063c6d35a214a8fde6f987f7661f4f0eecc468a8f76"},
{file = "aiohttp-3.11.11-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4af57160800b7a815f3fe0eba9b46bf28aafc195555f1824555fa2cfab6c1538"},
{file = "aiohttp-3.11.11-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffa336210cf9cd8ed117011085817d00abe4c08f99968deef0013ea283547204"},
{file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81b8fe282183e4a3c7a1b72f5ade1094ed1c6345a8f153506d114af5bf8accd9"},
{file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3af41686ccec6a0f2bdc66686dc0f403c41ac2089f80e2214a0f82d001052c03"},
{file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70d1f9dde0e5dd9e292a6d4d00058737052b01f3532f69c0c65818dac26dc287"},
{file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:249cc6912405917344192b9f9ea5cd5b139d49e0d2f5c7f70bdfaf6b4dbf3a2e"},
{file = "aiohttp-3.11.11-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0eb98d90b6690827dcc84c246811feeb4e1eea683c0eac6caed7549be9c84665"},
{file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ec82bf1fda6cecce7f7b915f9196601a1bd1a3079796b76d16ae4cce6d0ef89b"},
{file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9fd46ce0845cfe28f108888b3ab17abff84ff695e01e73657eec3f96d72eef34"},
{file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:bd176afcf8f5d2aed50c3647d4925d0db0579d96f75a31e77cbaf67d8a87742d"},
{file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:ec2aa89305006fba9ffb98970db6c8221541be7bee4c1d027421d6f6df7d1ce2"},
{file = "aiohttp-3.11.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:92cde43018a2e17d48bb09c79e4d4cb0e236de5063ce897a5e40ac7cb4878773"},
{file = "aiohttp-3.11.11-cp311-cp311-win32.whl", hash = "sha256:aba807f9569455cba566882c8938f1a549f205ee43c27b126e5450dc9f83cc62"},
{file = "aiohttp-3.11.11-cp311-cp311-win_amd64.whl", hash = "sha256:ae545f31489548c87b0cced5755cfe5a5308d00407000e72c4fa30b19c3220ac"},
{file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e595c591a48bbc295ebf47cb91aebf9bd32f3ff76749ecf282ea7f9f6bb73886"},
{file = "aiohttp-3.11.11-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3ea1b59dc06396b0b424740a10a0a63974c725b1c64736ff788a3689d36c02d2"},
{file = "aiohttp-3.11.11-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8811f3f098a78ffa16e0ea36dffd577eb031aea797cbdba81be039a4169e242c"},
{file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7227b87a355ce1f4bf83bfae4399b1f5bb42e0259cb9405824bd03d2f4336a"},
{file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d40f9da8cabbf295d3a9dae1295c69975b86d941bc20f0a087f0477fa0a66231"},
{file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ffb3dc385f6bb1568aa974fe65da84723210e5d9707e360e9ecb51f59406cd2e"},
{file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8f5f7515f3552d899c61202d99dcb17d6e3b0de777900405611cd747cecd1b8"},
{file = "aiohttp-3.11.11-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3499c7ffbfd9c6a3d8d6a2b01c26639da7e43d47c7b4f788016226b1e711caa8"},
{file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8e2bf8029dbf0810c7bfbc3e594b51c4cc9101fbffb583a3923aea184724203c"},
{file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b6212a60e5c482ef90f2d788835387070a88d52cf6241d3916733c9176d39eab"},
{file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:d119fafe7b634dbfa25a8c597718e69a930e4847f0b88e172744be24515140da"},
{file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:6fba278063559acc730abf49845d0e9a9e1ba74f85f0ee6efd5803f08b285853"},
{file = "aiohttp-3.11.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:92fc484e34b733704ad77210c7957679c5c3877bd1e6b6d74b185e9320cc716e"},
{file = "aiohttp-3.11.11-cp312-cp312-win32.whl", hash = "sha256:9f5b3c1ed63c8fa937a920b6c1bec78b74ee09593b3f5b979ab2ae5ef60d7600"},
{file = "aiohttp-3.11.11-cp312-cp312-win_amd64.whl", hash = "sha256:1e69966ea6ef0c14ee53ef7a3d68b564cc408121ea56c0caa2dc918c1b2f553d"},
{file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:541d823548ab69d13d23730a06f97460f4238ad2e5ed966aaf850d7c369782d9"},
{file = "aiohttp-3.11.11-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:929f3ed33743a49ab127c58c3e0a827de0664bfcda566108989a14068f820194"},
{file = "aiohttp-3.11.11-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0882c2820fd0132240edbb4a51eb8ceb6eef8181db9ad5291ab3332e0d71df5f"},
{file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b63de12e44935d5aca7ed7ed98a255a11e5cb47f83a9fded7a5e41c40277d104"},
{file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa54f8ef31d23c506910c21163f22b124facb573bff73930735cf9fe38bf7dff"},
{file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a344d5dc18074e3872777b62f5f7d584ae4344cd6006c17ba12103759d407af3"},
{file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b7fb429ab1aafa1f48578eb315ca45bd46e9c37de11fe45c7f5f4138091e2f1"},
{file = "aiohttp-3.11.11-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c341c7d868750e31961d6d8e60ff040fb9d3d3a46d77fd85e1ab8e76c3e9a5c4"},
{file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ed9ee95614a71e87f1a70bc81603f6c6760128b140bc4030abe6abaa988f1c3d"},
{file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:de8d38f1c2810fa2a4f1d995a2e9c70bb8737b18da04ac2afbf3971f65781d87"},
{file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a9b7371665d4f00deb8f32208c7c5e652059b0fda41cf6dbcac6114a041f1cc2"},
{file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:620598717fce1b3bd14dd09947ea53e1ad510317c85dda2c9c65b622edc96b12"},
{file = "aiohttp-3.11.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf8d9bfee991d8acc72d060d53860f356e07a50f0e0d09a8dfedea1c554dd0d5"},
{file = "aiohttp-3.11.11-cp313-cp313-win32.whl", hash = "sha256:9d73ee3725b7a737ad86c2eac5c57a4a97793d9f442599bea5ec67ac9f4bdc3d"},
{file = "aiohttp-3.11.11-cp313-cp313-win_amd64.whl", hash = "sha256:c7a06301c2fb096bdb0bd25fe2011531c1453b9f2c163c8031600ec73af1cc99"},
{file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3e23419d832d969f659c208557de4a123e30a10d26e1e14b73431d3c13444c2e"},
{file = "aiohttp-3.11.11-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:21fef42317cf02e05d3b09c028712e1d73a9606f02467fd803f7c1f39cc59add"},
{file = "aiohttp-3.11.11-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f21bb8d0235fc10c09ce1d11ffbd40fc50d3f08a89e4cf3a0c503dc2562247a"},
{file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1642eceeaa5ab6c9b6dfeaaa626ae314d808188ab23ae196a34c9d97efb68350"},
{file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2170816e34e10f2fd120f603e951630f8a112e1be3b60963a1f159f5699059a6"},
{file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8be8508d110d93061197fd2d6a74f7401f73b6d12f8822bbcd6d74f2b55d71b1"},
{file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4eed954b161e6b9b65f6be446ed448ed3921763cc432053ceb606f89d793927e"},
{file = "aiohttp-3.11.11-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6c9af134da4bc9b3bd3e6a70072509f295d10ee60c697826225b60b9959acdd"},
{file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:44167fc6a763d534a6908bdb2592269b4bf30a03239bcb1654781adf5e49caf1"},
{file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:479b8c6ebd12aedfe64563b85920525d05d394b85f166b7873c8bde6da612f9c"},
{file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:10b4ff0ad793d98605958089fabfa350e8e62bd5d40aa65cdc69d6785859f94e"},
{file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:b540bd67cfb54e6f0865ceccd9979687210d7ed1a1cc8c01f8e67e2f1e883d28"},
{file = "aiohttp-3.11.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:1dac54e8ce2ed83b1f6b1a54005c87dfed139cf3f777fdc8afc76e7841101226"},
{file = "aiohttp-3.11.11-cp39-cp39-win32.whl", hash = "sha256:568c1236b2fde93b7720f95a890741854c1200fba4a3471ff48b2934d2d93fd3"},
{file = "aiohttp-3.11.11-cp39-cp39-win_amd64.whl", hash = "sha256:943a8b052e54dfd6439fd7989f67fc6a7f2138d0a2cf0a7de5f18aa4fe7eb3b1"},
{file = "aiohttp-3.11.11.tar.gz", hash = "sha256:bb49c7f1e6ebf3821a42d81d494f538107610c3a705987f53068546b0e90303e"},
]
[package.dependencies]
@@ -111,13 +111,13 @@ speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"]
[[package]]
name = "aiosignal"
version = "1.3.1"
version = "1.3.2"
description = "aiosignal: a list of registered asynchronous callbacks"
optional = false
python-versions = ">=3.7"
python-versions = ">=3.9"
files = [
{file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"},
{file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"},
{file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"},
{file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"},
]
[package.dependencies]
@@ -136,24 +136,24 @@ files = [
[[package]]
name = "anyio"
version = "4.6.2.post1"
version = "4.8.0"
description = "High level compatibility layer for multiple asynchronous event loop implementations"
optional = false
python-versions = ">=3.9"
files = [
{file = "anyio-4.6.2.post1-py3-none-any.whl", hash = "sha256:6d170c36fba3bdd840c73d3868c1e777e33676a69c3a72cf0a0d5d6d8009b61d"},
{file = "anyio-4.6.2.post1.tar.gz", hash = "sha256:4c8bc31ccdb51c7f7bd251f51c609e038d63e34219b44aa86e47576389880b4c"},
{file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"},
{file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"},
]
[package.dependencies]
exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""}
idna = ">=2.8"
sniffio = ">=1.1"
typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""}
typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
[package.extras]
doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21.0b1)"]
doc = ["Sphinx (>=7.4,<8.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1)", "uvloop (>=0.21)"]
trio = ["trio (>=0.26.1)"]
[[package]]
@@ -169,19 +169,19 @@ files = [
[[package]]
name = "attrs"
version = "24.2.0"
version = "24.3.0"
description = "Classes Without Boilerplate"
optional = false
python-versions = ">=3.7"
python-versions = ">=3.8"
files = [
{file = "attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"},
{file = "attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346"},
{file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"},
{file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"},
]
[package.extras]
benchmark = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
cov = ["cloudpickle", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
dev = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier (<24.7)"]
tests = ["cloudpickle", "hypothesis", "mypy (>=1.11.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
tests-mypy = ["mypy (>=1.11.1)", "pytest-mypy-plugins"]
@@ -220,138 +220,125 @@ lxml = ["lxml"]
[[package]]
name = "certifi"
version = "2024.8.30"
version = "2024.12.14"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
files = [
{file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"},
{file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"},
{file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
{file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
]
[[package]]
name = "charset-normalizer"
version = "3.4.0"
version = "3.4.1"
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
optional = false
python-versions = ">=3.7.0"
python-versions = ">=3.7"
files = [
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:4f9fc98dad6c2eaa32fc3af1417d95b5e3d08aff968df0cd320066def971f9a6"},
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0de7b687289d3c1b3e8660d0741874abe7888100efe14bd0f9fd7141bcbda92b"},
{file = "charset_normalizer-3.4.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5ed2e36c3e9b4f21dd9422f6893dec0abf2cca553af509b10cd630f878d3eb99"},
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d3ff7fc90b98c637bda91c89d51264a3dcf210cade3a2c6f838c7268d7a4ca"},
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1110e22af8ca26b90bd6364fe4c763329b0ebf1ee213ba32b68c73de5752323d"},
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86f4e8cca779080f66ff4f191a685ced73d2f72d50216f7112185dc02b90b9b7"},
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7f683ddc7eedd742e2889d2bfb96d69573fde1d92fcb811979cdb7165bb9c7d3"},
{file = "charset_normalizer-3.4.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27623ba66c183eca01bf9ff833875b459cad267aeeb044477fedac35e19ba907"},
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f606a1881d2663630ea5b8ce2efe2111740df4b687bd78b34a8131baa007f79b"},
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0b309d1747110feb25d7ed6b01afdec269c647d382c857ef4663bbe6ad95a912"},
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:136815f06a3ae311fae551c3df1f998a1ebd01ddd424aa5603a4336997629e95"},
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:14215b71a762336254351b00ec720a8e85cada43b987da5a042e4ce3e82bd68e"},
{file = "charset_normalizer-3.4.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:79983512b108e4a164b9c8d34de3992f76d48cadc9554c9e60b43f308988aabe"},
{file = "charset_normalizer-3.4.0-cp310-cp310-win32.whl", hash = "sha256:c94057af19bc953643a33581844649a7fdab902624d2eb739738a30e2b3e60fc"},
{file = "charset_normalizer-3.4.0-cp310-cp310-win_amd64.whl", hash = "sha256:55f56e2ebd4e3bc50442fbc0888c9d8c94e4e06a933804e2af3e89e2f9c1c749"},
{file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0d99dd8ff461990f12d6e42c7347fd9ab2532fb70e9621ba520f9e8637161d7c"},
{file = "charset_normalizer-3.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c57516e58fd17d03ebe67e181a4e4e2ccab1168f8c2976c6a334d4f819fe5944"},
{file = "charset_normalizer-3.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6dba5d19c4dfab08e58d5b36304b3f92f3bd5d42c1a3fa37b5ba5cdf6dfcbcee"},
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf4475b82be41b07cc5e5ff94810e6a01f276e37c2d55571e3fe175e467a1a1c"},
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce031db0408e487fd2775d745ce30a7cd2923667cf3b69d48d219f1d8f5ddeb6"},
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ff4e7cdfdb1ab5698e675ca622e72d58a6fa2a8aa58195de0c0061288e6e3ea"},
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3710a9751938947e6327ea9f3ea6332a09bf0ba0c09cae9cb1f250bd1f1549bc"},
{file = "charset_normalizer-3.4.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82357d85de703176b5587dbe6ade8ff67f9f69a41c0733cf2425378b49954de5"},
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47334db71978b23ebcf3c0f9f5ee98b8d65992b65c9c4f2d34c2eaf5bcaf0594"},
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:8ce7fd6767a1cc5a92a639b391891bf1c268b03ec7e021c7d6d902285259685c"},
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f1a2f519ae173b5b6a2c9d5fa3116ce16e48b3462c8b96dfdded11055e3d6365"},
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:63bc5c4ae26e4bc6be6469943b8253c0fd4e4186c43ad46e713ea61a0ba49129"},
{file = "charset_normalizer-3.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bcb4f8ea87d03bc51ad04add8ceaf9b0f085ac045ab4d74e73bbc2dc033f0236"},
{file = "charset_normalizer-3.4.0-cp311-cp311-win32.whl", hash = "sha256:9ae4ef0b3f6b41bad6366fb0ea4fc1d7ed051528e113a60fa2a65a9abb5b1d99"},
{file = "charset_normalizer-3.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:cee4373f4d3ad28f1ab6290684d8e2ebdb9e7a1b74fdc39e4c211995f77bec27"},
{file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0713f3adb9d03d49d365b70b84775d0a0d18e4ab08d12bc46baa6132ba78aaf6"},
{file = "charset_normalizer-3.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:de7376c29d95d6719048c194a9cf1a1b0393fbe8488a22008610b0361d834ecf"},
{file = "charset_normalizer-3.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a51b48f42d9358460b78725283f04bddaf44a9358197b889657deba38f329db"},
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b295729485b06c1a0683af02a9e42d2caa9db04a373dc38a6a58cdd1e8abddf1"},
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ee803480535c44e7f5ad00788526da7d85525cfefaf8acf8ab9a310000be4b03"},
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3d59d125ffbd6d552765510e3f31ed75ebac2c7470c7274195b9161a32350284"},
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8cda06946eac330cbe6598f77bb54e690b4ca93f593dee1568ad22b04f347c15"},
{file = "charset_normalizer-3.4.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07afec21bbbbf8a5cc3651aa96b980afe2526e7f048fdfb7f1014d84acc8b6d8"},
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6b40e8d38afe634559e398cc32b1472f376a4099c75fe6299ae607e404c033b2"},
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b8dcd239c743aa2f9c22ce674a145e0a25cb1566c495928440a181ca1ccf6719"},
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:84450ba661fb96e9fd67629b93d2941c871ca86fc38d835d19d4225ff946a631"},
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:44aeb140295a2f0659e113b31cfe92c9061622cadbc9e2a2f7b8ef6b1e29ef4b"},
{file = "charset_normalizer-3.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1db4e7fefefd0f548d73e2e2e041f9df5c59e178b4c72fbac4cc6f535cfb1565"},
{file = "charset_normalizer-3.4.0-cp312-cp312-win32.whl", hash = "sha256:5726cf76c982532c1863fb64d8c6dd0e4c90b6ece9feb06c9f202417a31f7dd7"},
{file = "charset_normalizer-3.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:b197e7094f232959f8f20541ead1d9862ac5ebea1d58e9849c1bf979255dfac9"},
{file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:dd4eda173a9fcccb5f2e2bd2a9f423d180194b1bf17cf59e3269899235b2a114"},
{file = "charset_normalizer-3.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e9e3c4c9e1ed40ea53acf11e2a386383c3304212c965773704e4603d589343ed"},
{file = "charset_normalizer-3.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:92a7e36b000bf022ef3dbb9c46bfe2d52c047d5e3f3343f43204263c5addc250"},
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54b6a92d009cbe2fb11054ba694bc9e284dad30a26757b1e372a1fdddaf21920"},
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ffd9493de4c922f2a38c2bf62b831dcec90ac673ed1ca182fe11b4d8e9f2a64"},
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:35c404d74c2926d0287fbd63ed5d27eb911eb9e4a3bb2c6d294f3cfd4a9e0c23"},
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4796efc4faf6b53a18e3d46343535caed491776a22af773f366534056c4e1fbc"},
{file = "charset_normalizer-3.4.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7fdd52961feb4c96507aa649550ec2a0d527c086d284749b2f582f2d40a2e0d"},
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:92db3c28b5b2a273346bebb24857fda45601aef6ae1c011c0a997106581e8a88"},
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ab973df98fc99ab39080bfb0eb3a925181454d7c3ac8a1e695fddfae696d9e90"},
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b67fdab07fdd3c10bb21edab3cbfe8cf5696f453afce75d815d9d7223fbe88b"},
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aa41e526a5d4a9dfcfbab0716c7e8a1b215abd3f3df5a45cf18a12721d31cb5d"},
{file = "charset_normalizer-3.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ffc519621dce0c767e96b9c53f09c5d215578e10b02c285809f76509a3931482"},
{file = "charset_normalizer-3.4.0-cp313-cp313-win32.whl", hash = "sha256:f19c1585933c82098c2a520f8ec1227f20e339e33aca8fa6f956f6691b784e67"},
{file = "charset_normalizer-3.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:707b82d19e65c9bd28b81dde95249b07bf9f5b90ebe1ef17d9b57473f8a64b7b"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dbe03226baf438ac4fda9e2d0715022fd579cb641c4cf639fa40d53b2fe6f3e2"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd9a8bd8900e65504a305bf8ae6fa9fbc66de94178c420791d0293702fce2df7"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8831399554b92b72af5932cdbbd4ddc55c55f631bb13ff8fe4e6536a06c5c51"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a14969b8691f7998e74663b77b4c36c0337cb1df552da83d5c9004a93afdb574"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcaf7c1524c0542ee2fc82cc8ec337f7a9f7edee2532421ab200d2b920fc97cf"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425c5f215d0eecee9a56cdb703203dda90423247421bf0d67125add85d0c4455"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:d5b054862739d276e09928de37c79ddeec42a6e1bfc55863be96a36ba22926f6"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:f3e73a4255342d4eb26ef6df01e3962e73aa29baa3124a8e824c5d3364a65748"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:2f6c34da58ea9c1a9515621f4d9ac379871a8f21168ba1b5e09d74250de5ad62"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:f09cb5a7bbe1ecae6e87901a2eb23e0256bb524a79ccc53eb0b7629fbe7677c4"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:0099d79bdfcf5c1f0c2c72f91516702ebf8b0b8ddd8905f97a8aecf49712c621"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-win32.whl", hash = "sha256:9c98230f5042f4945f957d006edccc2af1e03ed5e37ce7c373f00a5a4daa6149"},
{file = "charset_normalizer-3.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:62f60aebecfc7f4b82e3f639a7d1433a20ec32824db2199a11ad4f5e146ef5ee"},
{file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:af73657b7a68211996527dbfeffbb0864e043d270580c5aef06dc4b659a4b578"},
{file = "charset_normalizer-3.4.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cab5d0b79d987c67f3b9e9c53f54a61360422a5a0bc075f43cab5621d530c3b6"},
{file = "charset_normalizer-3.4.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:9289fd5dddcf57bab41d044f1756550f9e7cf0c8e373b8cdf0ce8773dc4bd417"},
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b493a043635eb376e50eedf7818f2f322eabbaa974e948bd8bdd29eb7ef2a51"},
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fa2566ca27d67c86569e8c85297aaf413ffab85a8960500f12ea34ff98e4c41"},
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8e538f46104c815be19c975572d74afb53f29650ea2025bbfaef359d2de2f7f"},
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fd30dc99682dc2c603c2b315bded2799019cea829f8bf57dc6b61efde6611c8"},
{file = "charset_normalizer-3.4.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2006769bd1640bdf4d5641c69a3d63b71b81445473cac5ded39740a226fa88ab"},
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:dc15e99b2d8a656f8e666854404f1ba54765871104e50c8e9813af8a7db07f12"},
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ab2e5bef076f5a235c3774b4f4028a680432cded7cad37bba0fd90d64b187d19"},
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:4ec9dd88a5b71abfc74e9df5ebe7921c35cbb3b641181a531ca65cdb5e8e4dea"},
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:43193c5cda5d612f247172016c4bb71251c784d7a4d9314677186a838ad34858"},
{file = "charset_normalizer-3.4.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:aa693779a8b50cd97570e5a0f343538a8dbd3e496fa5dcb87e29406ad0299654"},
{file = "charset_normalizer-3.4.0-cp38-cp38-win32.whl", hash = "sha256:7706f5850360ac01d80c89bcef1640683cc12ed87f42579dab6c5d3ed6888613"},
{file = "charset_normalizer-3.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:c3e446d253bd88f6377260d07c895816ebf33ffffd56c1c792b13bff9c3e1ade"},
{file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:980b4f289d1d90ca5efcf07958d3eb38ed9c0b7676bf2831a54d4f66f9c27dfa"},
{file = "charset_normalizer-3.4.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f28f891ccd15c514a0981f3b9db9aa23d62fe1a99997512b0491d2ed323d229a"},
{file = "charset_normalizer-3.4.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8aacce6e2e1edcb6ac625fb0f8c3a9570ccc7bfba1f63419b3769ccf6a00ed0"},
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bd7af3717683bea4c87acd8c0d3d5b44d56120b26fd3f8a692bdd2d5260c620a"},
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ff2ed8194587faf56555927b3aa10e6fb69d931e33953943bc4f837dfee2242"},
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e91f541a85298cf35433bf66f3fab2a4a2cff05c127eeca4af174f6d497f0d4b"},
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309a7de0a0ff3040acaebb35ec45d18db4b28232f21998851cfa709eeff49d62"},
{file = "charset_normalizer-3.4.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:285e96d9d53422efc0d7a17c60e59f37fbf3dfa942073f666db4ac71e8d726d0"},
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5d447056e2ca60382d460a604b6302d8db69476fd2015c81e7c35417cfabe4cd"},
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:20587d20f557fe189b7947d8e7ec5afa110ccf72a3128d61a2a387c3313f46be"},
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:130272c698667a982a5d0e626851ceff662565379baf0ff2cc58067b81d4f11d"},
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ab22fbd9765e6954bc0bcff24c25ff71dcbfdb185fcdaca49e81bac68fe724d3"},
{file = "charset_normalizer-3.4.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7782afc9b6b42200f7362858f9e73b1f8316afb276d316336c0ec3bd73312742"},
{file = "charset_normalizer-3.4.0-cp39-cp39-win32.whl", hash = "sha256:2de62e8801ddfff069cd5c504ce3bc9672b23266597d4e4f50eda28846c322f2"},
{file = "charset_normalizer-3.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:95c3c157765b031331dd4db3c775e58deaee050a3042fcad72cbc4189d7c8dca"},
{file = "charset_normalizer-3.4.0-py3-none-any.whl", hash = "sha256:fe9f97feb71aa9896b81973a7bbada8c49501dc73e58a10fcef6663af95e5079"},
{file = "charset_normalizer-3.4.0.tar.gz", hash = "sha256:223217c3d4f82c3ac5e29032b3f1c2eb0fb591b72161f86d93f5719079dae93e"},
{file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e218488cd232553829be0664c2292d3af2eeeb94b32bea483cf79ac6a694e037"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:80ed5e856eb7f30115aaf94e4a08114ccc8813e6ed1b5efa74f9f82e8509858f"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b010a7a4fd316c3c484d482922d13044979e78d1861f0e0650423144c616a46a"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4532bff1b8421fd0a320463030c7520f56a79c9024a4e88f01c537316019005a"},
{file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d973f03c0cb71c5ed99037b870f2be986c3c05e63622c017ea9816881d2dd247"},
{file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:3a3bd0dcd373514dcec91c411ddb9632c0d7d92aed7093b8c3bbb6d69ca74408"},
{file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d9c3cdf5390dcd29aa8056d13e8e99526cda0305acc038b96b30352aff5ff2bb"},
{file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2bdfe3ac2e1bbe5b59a1a63721eb3b95fc9b6817ae4a46debbb4e11f6232428d"},
{file = "charset_normalizer-3.4.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:eab677309cdb30d047996b36d34caeda1dc91149e4fdca0b1a039b3f79d9a807"},
{file = "charset_normalizer-3.4.1-cp310-cp310-win32.whl", hash = "sha256:c0429126cf75e16c4f0ad00ee0eae4242dc652290f940152ca8c75c3a4b6ee8f"},
{file = "charset_normalizer-3.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:9f0b8b1c6d84c8034a44893aba5e767bf9c7a211e313a9605d9c617d7083829f"},
{file = "charset_normalizer-3.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8bfa33f4f2672964266e940dd22a195989ba31669bd84629f05fab3ef4e2d125"},
{file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28bf57629c75e810b6ae989f03c0828d64d6b26a5e205535585f96093e405ed1"},
{file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f08ff5e948271dc7e18a35641d2f11a4cd8dfd5634f55228b691e62b37125eb3"},
{file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:234ac59ea147c59ee4da87a0c0f098e9c8d169f4dc2a159ef720f1a61bbe27cd"},
{file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fd4ec41f914fa74ad1b8304bbc634b3de73d2a0889bd32076342a573e0779e00"},
{file = "charset_normalizer-3.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eea6ee1db730b3483adf394ea72f808b6e18cf3cb6454b4d86e04fa8c4327a12"},
{file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c96836c97b1238e9c9e3fe90844c947d5afbf4f4c92762679acfe19927d81d77"},
{file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d86f7aff21ee58f26dcf5ae81a9addbd914115cdebcbb2217e4f0ed8982e146"},
{file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:09b5e6733cbd160dcc09589227187e242a30a49ca5cefa5a7edd3f9d19ed53fd"},
{file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:5777ee0881f9499ed0f71cc82cf873d9a0ca8af166dfa0af8ec4e675b7df48e6"},
{file = "charset_normalizer-3.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:237bdbe6159cff53b4f24f397d43c6336c6b0b42affbe857970cefbb620911c8"},
{file = "charset_normalizer-3.4.1-cp311-cp311-win32.whl", hash = "sha256:8417cb1f36cc0bc7eaba8ccb0e04d55f0ee52df06df3ad55259b9a323555fc8b"},
{file = "charset_normalizer-3.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:d7f50a1f8c450f3925cb367d011448c39239bb3eb4117c36a6d354794de4ce76"},
{file = "charset_normalizer-3.4.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:73d94b58ec7fecbc7366247d3b0b10a21681004153238750bb67bd9012414545"},
{file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dad3e487649f498dd991eeb901125411559b22e8d7ab25d3aeb1af367df5efd7"},
{file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c30197aa96e8eed02200a83fba2657b4c3acd0f0aa4bdc9f6c1af8e8962e0757"},
{file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2369eea1ee4a7610a860d88f268eb39b95cb588acd7235e02fd5a5601773d4fa"},
{file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc2722592d8998c870fa4e290c2eec2c1569b87fe58618e67d38b4665dfa680d"},
{file = "charset_normalizer-3.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffc9202a29ab3920fa812879e95a9e78b2465fd10be7fcbd042899695d75e616"},
{file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:804a4d582ba6e5b747c625bf1255e6b1507465494a40a2130978bda7b932c90b"},
{file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f55e69f030f7163dffe9fd0752b32f070566451afe180f99dbeeb81f511ad8d"},
{file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c4c3e6da02df6fa1410a7680bd3f63d4f710232d3139089536310d027950696a"},
{file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:5df196eb874dae23dcfb968c83d4f8fdccb333330fe1fc278ac5ceeb101003a9"},
{file = "charset_normalizer-3.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e358e64305fe12299a08e08978f51fc21fac060dcfcddd95453eabe5b93ed0e1"},
{file = "charset_normalizer-3.4.1-cp312-cp312-win32.whl", hash = "sha256:9b23ca7ef998bc739bf6ffc077c2116917eabcc901f88da1b9856b210ef63f35"},
{file = "charset_normalizer-3.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:6ff8a4a60c227ad87030d76e99cd1698345d4491638dfa6673027c48b3cd395f"},
{file = "charset_normalizer-3.4.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:aabfa34badd18f1da5ec1bc2715cadc8dca465868a4e73a0173466b688f29dda"},
{file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22e14b5d70560b8dd51ec22863f370d1e595ac3d024cb8ad7d308b4cd95f8313"},
{file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8436c508b408b82d87dc5f62496973a1805cd46727c34440b0d29d8a2f50a6c9"},
{file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2d074908e1aecee37a7635990b2c6d504cd4766c7bc9fc86d63f9c09af3fa11b"},
{file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:955f8851919303c92343d2f66165294848d57e9bba6cf6e3625485a70a038d11"},
{file = "charset_normalizer-3.4.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ecbf16649486d4aebafeaa7ec4c9fed8b88101f4dd612dcaf65d5e815f837f"},
{file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0924e81d3d5e70f8126529951dac65c1010cdf117bb75eb02dd12339b57749dd"},
{file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2967f74ad52c3b98de4c3b32e1a44e32975e008a9cd2a8cc8966d6a5218c5cb2"},
{file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:c75cb2a3e389853835e84a2d8fb2b81a10645b503eca9bcb98df6b5a43eb8886"},
{file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:09b26ae6b1abf0d27570633b2b078a2a20419c99d66fb2823173d73f188ce601"},
{file = "charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd"},
{file = "charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407"},
{file = "charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f30bf9fd9be89ecb2360c7d94a711f00c09b976258846efe40db3d05828e8089"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97f68b8d6831127e4787ad15e6757232e14e12060bec17091b85eb1486b91d8d"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7974a0b5ecd505609e3b19742b60cee7aa2aa2fb3151bc917e6e2646d7667dcf"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc54db6c8593ef7d4b2a331b58653356cf04f67c960f584edb7c3d8c97e8f39e"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:311f30128d7d333eebd7896965bfcfbd0065f1716ec92bd5638d7748eb6f936a"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:7d053096f67cd1241601111b698f5cad775f97ab25d81567d3f59219b5f1adbd"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:807f52c1f798eef6cf26beb819eeb8819b1622ddfeef9d0977a8502d4db6d534"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:dccbe65bd2f7f7ec22c4ff99ed56faa1e9f785482b9bbd7c717e26fd723a1d1e"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:2fb9bd477fdea8684f78791a6de97a953c51831ee2981f8e4f583ff3b9d9687e"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:01732659ba9b5b873fc117534143e4feefecf3b2078b0a6a2e925271bb6f4cfa"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-win32.whl", hash = "sha256:7a4f97a081603d2050bfaffdefa5b02a9ec823f8348a572e39032caa8404a487"},
{file = "charset_normalizer-3.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7b1bef6280950ee6c177b326508f86cad7ad4dff12454483b51d8b7d673a2c5d"},
{file = "charset_normalizer-3.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ecddf25bee22fe4fe3737a399d0d177d72bc22be6913acfab364b40bce1ba83c"},
{file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c60ca7339acd497a55b0ea5d506b2a2612afb2826560416f6894e8b5770d4a9"},
{file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b7b2d86dd06bfc2ade3312a83a5c364c7ec2e3498f8734282c6c3d4b07b346b8"},
{file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd78cfcda14a1ef52584dbb008f7ac81c1328c0f58184bf9a84c49c605002da6"},
{file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e27f48bcd0957c6d4cb9d6fa6b61d192d0b13d5ef563e5f2ae35feafc0d179c"},
{file = "charset_normalizer-3.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:01ad647cdd609225c5350561d084b42ddf732f4eeefe6e678765636791e78b9a"},
{file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:619a609aa74ae43d90ed2e89bdd784765de0a25ca761b93e196d938b8fd1dbbd"},
{file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:89149166622f4db9b4b6a449256291dc87a99ee53151c74cbd82a53c8c2f6ccd"},
{file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:7709f51f5f7c853f0fb938bcd3bc59cdfdc5203635ffd18bf354f6967ea0f824"},
{file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:345b0426edd4e18138d6528aed636de7a9ed169b4aaf9d61a8c19e39d26838ca"},
{file = "charset_normalizer-3.4.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0907f11d019260cdc3f94fbdb23ff9125f6b5d1039b76003b5b0ac9d6a6c9d5b"},
{file = "charset_normalizer-3.4.1-cp38-cp38-win32.whl", hash = "sha256:ea0d8d539afa5eb2728aa1932a988a9a7af94f18582ffae4bc10b3fbdad0626e"},
{file = "charset_normalizer-3.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:329ce159e82018d646c7ac45b01a430369d526569ec08516081727a20e9e4af4"},
{file = "charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41"},
{file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f"},
{file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2"},
{file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770"},
{file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4"},
{file = "charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537"},
{file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496"},
{file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78"},
{file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7"},
{file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6"},
{file = "charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294"},
{file = "charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5"},
{file = "charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765"},
{file = "charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85"},
{file = "charset_normalizer-3.4.1.tar.gz", hash = "sha256:44251f18cd68a75b56585dd00dae26183e102cd5e0f9f1466e6df5da2ed64ea3"},
]
[[package]]
name = "click"
version = "8.1.7"
version = "8.1.8"
description = "Composable command line interface toolkit"
optional = false
python-versions = ">=3.7"
files = [
{file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"},
{file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"},
{file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"},
{file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"},
]
[package.dependencies]
@@ -384,13 +371,13 @@ test = ["pytest (>=6)"]
[[package]]
name = "fastapi"
version = "0.115.5"
version = "0.115.6"
description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
optional = false
python-versions = ">=3.8"
files = [
{file = "fastapi-0.115.5-py3-none-any.whl", hash = "sha256:596b95adbe1474da47049e802f9a65ab2ffa9c2b07e7efee70eb8a66c9f2f796"},
{file = "fastapi-0.115.5.tar.gz", hash = "sha256:0e7a4d0dc0d01c68df21887cce0945e72d3c48b9f4f79dfe7a7d53aa08fbb289"},
{file = "fastapi-0.115.6-py3-none-any.whl", hash = "sha256:e9240b29e36fa8f4bb7290316988e90c381e5092e0cbe84e7818cc3713bcf305"},
{file = "fastapi-0.115.6.tar.gz", hash = "sha256:9ec46f7addc14ea472958a96aae5b5de65f39721a46aaf5705c480d9a8b76654"},
]
[package.dependencies]
@@ -956,13 +943,13 @@ files = [
[[package]]
name = "openbb-core"
version = "1.3.7"
version = "1.3.8"
description = "OpenBB package with core functionality."
optional = false
python-versions = "<4.0,>=3.9"
files = [
{file = "openbb_core-1.3.7-py3-none-any.whl", hash = "sha256:2dd620db5d17c8c4802dd0537de92fb88d11f4f7252ab026e54302c6f86467fa"},
{file = "openbb_core-1.3.7.tar.gz", hash = "sha256:2e6facd812ee4ad43b9444fedcf3211599d7cda9cbb4999647cd8e4d9e4af210"},
{file = "openbb_core-1.3.8-py3-none-any.whl", hash = "sha256:0eb832afcb04c34044f641ffe1bb7a001663087fd7cba469db177df33afa4408"},
{file = "openbb_core-1.3.8.tar.gz", hash = "sha256:e52ba3967dd9bb0cfa83c7ccf9f27bbfe885e1b898d38aad5b028d180495d80f"},
]
[package.dependencies]
@@ -980,7 +967,7 @@ requests = ">=2.32.1,<3.0.0"
ruff = ">=0.7,<0.8"
uuid7 = ">=0.1.0,<0.2.0"
uvicorn = ">=0.32.0,<0.33.0"
websockets = ">=13.0,<14.0"
websockets = ">=14.0,<15.0"
[[package]]
name = "pandas"
@@ -1096,13 +1083,13 @@ type = ["mypy (>=1.11.2)"]
[[package]]
name = "posthog"
version = "3.7.4"
version = "3.7.5"
description = "Integrate PostHog into any python application."
optional = false
python-versions = "*"
files = [
{file = "posthog-3.7.4-py2.py3-none-any.whl", hash = "sha256:21c18c6bf43b2de303ea4cd6e95804cc0f24c20cb2a96a8fd09da2ed50b62faa"},
{file = "posthog-3.7.4.tar.gz", hash = "sha256:19384bd09d330f9787a7e2446aba14c8057ece56144970ea2791072d4e40cd36"},
{file = "posthog-3.7.5-py2.py3-none-any.whl", hash = "sha256:022132c17069dde03c5c5904e2ae1b9bd68d5059cbc5a8dffc5c1537a1b71cb5"},
{file = "posthog-3.7.5.tar.gz", hash = "sha256:8ba40ab623da35db72715fc87fe7dccb7fc272ced92581fe31db2d4dbe7ad761"},
]
[package.dependencies]
@@ -1210,18 +1197,18 @@ files = [
[[package]]
name = "pydantic"
version = "2.10.3"
version = "2.10.5"
description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.8"
files = [
{file = "pydantic-2.10.3-py3-none-any.whl", hash = "sha256:be04d85bbc7b65651c5f8e6b9976ed9c6f41782a55524cef079a34a0bb82144d"},
{file = "pydantic-2.10.3.tar.gz", hash = "sha256:cb5ac360ce894ceacd69c403187900a02c4b20b693a9dd1d643e1effab9eadf9"},
{file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"},
{file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"},
]
[package.dependencies]
annotated-types = ">=0.6.0"
pydantic-core = "2.27.1"
pydantic-core = "2.27.2"
typing-extensions = ">=4.12.2"
[package.extras]
@@ -1230,111 +1217,111 @@ timezone = ["tzdata"]
[[package]]
name = "pydantic-core"
version = "2.27.1"
version = "2.27.2"
description = "Core functionality for Pydantic validation and serialization"
optional = false
python-versions = ">=3.8"
files = [
{file = "pydantic_core-2.27.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:71a5e35c75c021aaf400ac048dacc855f000bdfed91614b4a726f7432f1f3d6a"},
{file = "pydantic_core-2.27.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f82d068a2d6ecfc6e054726080af69a6764a10015467d7d7b9f66d6ed5afa23b"},
{file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121ceb0e822f79163dd4699e4c54f5ad38b157084d97b34de8b232bcaad70278"},
{file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4603137322c18eaf2e06a4495f426aa8d8388940f3c457e7548145011bb68e05"},
{file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a33cd6ad9017bbeaa9ed78a2e0752c5e250eafb9534f308e7a5f7849b0b1bfb4"},
{file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:15cc53a3179ba0fcefe1e3ae50beb2784dede4003ad2dfd24f81bba4b23a454f"},
{file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45d9c5eb9273aa50999ad6adc6be5e0ecea7e09dbd0d31bd0c65a55a2592ca08"},
{file = "pydantic_core-2.27.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8bf7b66ce12a2ac52d16f776b31d16d91033150266eb796967a7e4621707e4f6"},
{file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:655d7dd86f26cb15ce8a431036f66ce0318648f8853d709b4167786ec2fa4807"},
{file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:5556470f1a2157031e676f776c2bc20acd34c1990ca5f7e56f1ebf938b9ab57c"},
{file = "pydantic_core-2.27.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f69ed81ab24d5a3bd93861c8c4436f54afdf8e8cc421562b0c7504cf3be58206"},
{file = "pydantic_core-2.27.1-cp310-none-win32.whl", hash = "sha256:f5a823165e6d04ccea61a9f0576f345f8ce40ed533013580e087bd4d7442b52c"},
{file = "pydantic_core-2.27.1-cp310-none-win_amd64.whl", hash = "sha256:57866a76e0b3823e0b56692d1a0bf722bffb324839bb5b7226a7dbd6c9a40b17"},
{file = "pydantic_core-2.27.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:ac3b20653bdbe160febbea8aa6c079d3df19310d50ac314911ed8cc4eb7f8cb8"},
{file = "pydantic_core-2.27.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a5a8e19d7c707c4cadb8c18f5f60c843052ae83c20fa7d44f41594c644a1d330"},
{file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f7059ca8d64fea7f238994c97d91f75965216bcbe5f695bb44f354893f11d52"},
{file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bed0f8a0eeea9fb72937ba118f9db0cb7e90773462af7962d382445f3005e5a4"},
{file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a3cb37038123447cf0f3ea4c74751f6a9d7afef0eb71aa07bf5f652b5e6a132c"},
{file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:84286494f6c5d05243456e04223d5a9417d7f443c3b76065e75001beb26f88de"},
{file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acc07b2cfc5b835444b44a9956846b578d27beeacd4b52e45489e93276241025"},
{file = "pydantic_core-2.27.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fefee876e07a6e9aad7a8c8c9f85b0cdbe7df52b8a9552307b09050f7512c7e"},
{file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:258c57abf1188926c774a4c94dd29237e77eda19462e5bb901d88adcab6af919"},
{file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:35c14ac45fcfdf7167ca76cc80b2001205a8d5d16d80524e13508371fb8cdd9c"},
{file = "pydantic_core-2.27.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d1b26e1dff225c31897696cab7d4f0a315d4c0d9e8666dbffdb28216f3b17fdc"},
{file = "pydantic_core-2.27.1-cp311-none-win32.whl", hash = "sha256:2cdf7d86886bc6982354862204ae3b2f7f96f21a3eb0ba5ca0ac42c7b38598b9"},
{file = "pydantic_core-2.27.1-cp311-none-win_amd64.whl", hash = "sha256:3af385b0cee8df3746c3f406f38bcbfdc9041b5c2d5ce3e5fc6637256e60bbc5"},
{file = "pydantic_core-2.27.1-cp311-none-win_arm64.whl", hash = "sha256:81f2ec23ddc1b476ff96563f2e8d723830b06dceae348ce02914a37cb4e74b89"},
{file = "pydantic_core-2.27.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9cbd94fc661d2bab2bc702cddd2d3370bbdcc4cd0f8f57488a81bcce90c7a54f"},
{file = "pydantic_core-2.27.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f8c4718cd44ec1580e180cb739713ecda2bdee1341084c1467802a417fe0f02"},
{file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15aae984e46de8d376df515f00450d1522077254ef6b7ce189b38ecee7c9677c"},
{file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1ba5e3963344ff25fc8c40da90f44b0afca8cfd89d12964feb79ac1411a260ac"},
{file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:992cea5f4f3b29d6b4f7f1726ed8ee46c8331c6b4eed6db5b40134c6fe1768bb"},
{file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0325336f348dbee6550d129b1627cb8f5351a9dc91aad141ffb96d4937bd9529"},
{file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7597c07fbd11515f654d6ece3d0e4e5093edc30a436c63142d9a4b8e22f19c35"},
{file = "pydantic_core-2.27.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3bbd5d8cc692616d5ef6fbbbd50dbec142c7e6ad9beb66b78a96e9c16729b089"},
{file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:dc61505e73298a84a2f317255fcc72b710b72980f3a1f670447a21efc88f8381"},
{file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:e1f735dc43da318cad19b4173dd1ffce1d84aafd6c9b782b3abc04a0d5a6f5bb"},
{file = "pydantic_core-2.27.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f4e5658dbffe8843a0f12366a4c2d1c316dbe09bb4dfbdc9d2d9cd6031de8aae"},
{file = "pydantic_core-2.27.1-cp312-none-win32.whl", hash = "sha256:672ebbe820bb37988c4d136eca2652ee114992d5d41c7e4858cdd90ea94ffe5c"},
{file = "pydantic_core-2.27.1-cp312-none-win_amd64.whl", hash = "sha256:66ff044fd0bb1768688aecbe28b6190f6e799349221fb0de0e6f4048eca14c16"},
{file = "pydantic_core-2.27.1-cp312-none-win_arm64.whl", hash = "sha256:9a3b0793b1bbfd4146304e23d90045f2a9b5fd5823aa682665fbdaf2a6c28f3e"},
{file = "pydantic_core-2.27.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:f216dbce0e60e4d03e0c4353c7023b202d95cbaeff12e5fd2e82ea0a66905073"},
{file = "pydantic_core-2.27.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a2e02889071850bbfd36b56fd6bc98945e23670773bc7a76657e90e6b6603c08"},
{file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42b0e23f119b2b456d07ca91b307ae167cc3f6c846a7b169fca5326e32fdc6cf"},
{file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:764be71193f87d460a03f1f7385a82e226639732214b402f9aa61f0d025f0737"},
{file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c00666a3bd2f84920a4e94434f5974d7bbc57e461318d6bb34ce9cdbbc1f6b2"},
{file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3ccaa88b24eebc0f849ce0a4d09e8a408ec5a94afff395eb69baf868f5183107"},
{file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c65af9088ac534313e1963443d0ec360bb2b9cba6c2909478d22c2e363d98a51"},
{file = "pydantic_core-2.27.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:206b5cf6f0c513baffaeae7bd817717140770c74528f3e4c3e1cec7871ddd61a"},
{file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:062f60e512fc7fff8b8a9d680ff0ddaaef0193dba9fa83e679c0c5f5fbd018bc"},
{file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:a0697803ed7d4af5e4c1adf1670af078f8fcab7a86350e969f454daf598c4960"},
{file = "pydantic_core-2.27.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:58ca98a950171f3151c603aeea9303ef6c235f692fe555e883591103da709b23"},
{file = "pydantic_core-2.27.1-cp313-none-win32.whl", hash = "sha256:8065914ff79f7eab1599bd80406681f0ad08f8e47c880f17b416c9f8f7a26d05"},
{file = "pydantic_core-2.27.1-cp313-none-win_amd64.whl", hash = "sha256:ba630d5e3db74c79300d9a5bdaaf6200172b107f263c98a0539eeecb857b2337"},
{file = "pydantic_core-2.27.1-cp313-none-win_arm64.whl", hash = "sha256:45cf8588c066860b623cd11c4ba687f8d7175d5f7ef65f7129df8a394c502de5"},
{file = "pydantic_core-2.27.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:5897bec80a09b4084aee23f9b73a9477a46c3304ad1d2d07acca19723fb1de62"},
{file = "pydantic_core-2.27.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:d0165ab2914379bd56908c02294ed8405c252250668ebcb438a55494c69f44ab"},
{file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6b9af86e1d8e4cfc82c2022bfaa6f459381a50b94a29e95dcdda8442d6d83864"},
{file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f6c8a66741c5f5447e047ab0ba7a1c61d1e95580d64bce852e3df1f895c4067"},
{file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9a42d6a8156ff78981f8aa56eb6394114e0dedb217cf8b729f438f643608cbcd"},
{file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64c65f40b4cd8b0e049a8edde07e38b476da7e3aaebe63287c899d2cff253fa5"},
{file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdcf339322a3fae5cbd504edcefddd5a50d9ee00d968696846f089b4432cf78"},
{file = "pydantic_core-2.27.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bf99c8404f008750c846cb4ac4667b798a9f7de673ff719d705d9b2d6de49c5f"},
{file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8f1edcea27918d748c7e5e4d917297b2a0ab80cad10f86631e488b7cddf76a36"},
{file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:159cac0a3d096f79ab6a44d77a961917219707e2a130739c64d4dd46281f5c2a"},
{file = "pydantic_core-2.27.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:029d9757eb621cc6e1848fa0b0310310de7301057f623985698ed7ebb014391b"},
{file = "pydantic_core-2.27.1-cp38-none-win32.whl", hash = "sha256:a28af0695a45f7060e6f9b7092558a928a28553366519f64083c63a44f70e618"},
{file = "pydantic_core-2.27.1-cp38-none-win_amd64.whl", hash = "sha256:2d4567c850905d5eaaed2f7a404e61012a51caf288292e016360aa2b96ff38d4"},
{file = "pydantic_core-2.27.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:e9386266798d64eeb19dd3677051f5705bf873e98e15897ddb7d76f477131967"},
{file = "pydantic_core-2.27.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4228b5b646caa73f119b1ae756216b59cc6e2267201c27d3912b592c5e323b60"},
{file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b3dfe500de26c52abe0477dde16192ac39c98f05bf2d80e76102d394bd13854"},
{file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:aee66be87825cdf72ac64cb03ad4c15ffef4143dbf5c113f64a5ff4f81477bf9"},
{file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b748c44bb9f53031c8cbc99a8a061bc181c1000c60a30f55393b6e9c45cc5bd"},
{file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ca038c7f6a0afd0b2448941b6ef9d5e1949e999f9e5517692eb6da58e9d44be"},
{file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e0bd57539da59a3e4671b90a502da9a28c72322a4f17866ba3ac63a82c4498e"},
{file = "pydantic_core-2.27.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ac6c2c45c847bbf8f91930d88716a0fb924b51e0c6dad329b793d670ec5db792"},
{file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b94d4ba43739bbe8b0ce4262bcc3b7b9f31459ad120fb595627eaeb7f9b9ca01"},
{file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:00e6424f4b26fe82d44577b4c842d7df97c20be6439e8e685d0d715feceb9fb9"},
{file = "pydantic_core-2.27.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:38de0a70160dd97540335b7ad3a74571b24f1dc3ed33f815f0880682e6880131"},
{file = "pydantic_core-2.27.1-cp39-none-win32.whl", hash = "sha256:7ccebf51efc61634f6c2344da73e366c75e735960b5654b63d7e6f69a5885fa3"},
{file = "pydantic_core-2.27.1-cp39-none-win_amd64.whl", hash = "sha256:a57847b090d7892f123726202b7daa20df6694cbd583b67a592e856bff603d6c"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:3fa80ac2bd5856580e242dbc202db873c60a01b20309c8319b5c5986fbe53ce6"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d950caa237bb1954f1b8c9227b5065ba6875ac9771bb8ec790d956a699b78676"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0e4216e64d203e39c62df627aa882f02a2438d18a5f21d7f721621f7a5d3611d"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:02a3d637bd387c41d46b002f0e49c52642281edacd2740e5a42f7017feea3f2c"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:161c27ccce13b6b0c8689418da3885d3220ed2eae2ea5e9b2f7f3d48f1d52c27"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:19910754e4cc9c63bc1c7f6d73aa1cfee82f42007e407c0f413695c2f7ed777f"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:e173486019cc283dc9778315fa29a363579372fe67045e971e89b6365cc035ed"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:af52d26579b308921b73b956153066481f064875140ccd1dfd4e77db89dbb12f"},
{file = "pydantic_core-2.27.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:981fb88516bd1ae8b0cbbd2034678a39dedc98752f264ac9bc5839d3923fa04c"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5fde892e6c697ce3e30c61b239330fc5d569a71fefd4eb6512fc6caec9dd9e2f"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:816f5aa087094099fff7edabb5e01cc370eb21aa1a1d44fe2d2aefdfb5599b31"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c10c309e18e443ddb108f0ef64e8729363adbfd92d6d57beec680f6261556f3"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98476c98b02c8e9b2eec76ac4156fd006628b1b2d0ef27e548ffa978393fd154"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c3027001c28434e7ca5a6e1e527487051136aa81803ac812be51802150d880dd"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:7699b1df36a48169cdebda7ab5a2bac265204003f153b4bd17276153d997670a"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1c39b07d90be6b48968ddc8c19e7585052088fd7ec8d568bb31ff64c70ae3c97"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:46ccfe3032b3915586e469d4972973f893c0a2bb65669194a5bdea9bacc088c2"},
{file = "pydantic_core-2.27.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:62ba45e21cf6571d7f716d903b5b7b6d2617e2d5d67c0923dc47b9d41369f840"},
{file = "pydantic_core-2.27.1.tar.gz", hash = "sha256:62a763352879b84aa31058fc931884055fd75089cccbd9d58bb6afd01141b235"},
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
{file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7969e133a6f183be60e9f6f56bfae753585680f3b7307a8e555a948d443cc05a"},
{file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3de9961f2a346257caf0aa508a4da705467f53778e9ef6fe744c038119737ef5"},
{file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e2bb4d3e5873c37bb3dd58714d4cd0b0e6238cebc4177ac8fe878f8b3aa8e74c"},
{file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:280d219beebb0752699480fe8f1dc61ab6615c2046d76b7ab7ee38858de0a4e7"},
{file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47956ae78b6422cbd46f772f1746799cbb862de838fd8d1fbd34a82e05b0983a"},
{file = "pydantic_core-2.27.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:14d4a5c49d2f009d62a2a7140d3064f686d17a5d1a268bc641954ba181880236"},
{file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:337b443af21d488716f8d0b6164de833e788aa6bd7e3a39c005febc1284f4962"},
{file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:03d0f86ea3184a12f41a2d23f7ccb79cdb5a18e06993f8a45baa8dfec746f0e9"},
{file = "pydantic_core-2.27.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7041c36f5680c6e0f08d922aed302e98b3745d97fe1589db0a3eebf6624523af"},
{file = "pydantic_core-2.27.2-cp310-cp310-win32.whl", hash = "sha256:50a68f3e3819077be2c98110c1f9dcb3817e93f267ba80a2c05bb4f8799e2ff4"},
{file = "pydantic_core-2.27.2-cp310-cp310-win_amd64.whl", hash = "sha256:e0fd26b16394ead34a424eecf8a31a1f5137094cabe84a1bcb10fa6ba39d3d31"},
{file = "pydantic_core-2.27.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8e10c99ef58cfdf2a66fc15d66b16c4a04f62bca39db589ae8cba08bc55331bc"},
{file = "pydantic_core-2.27.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:26f32e0adf166a84d0cb63be85c562ca8a6fa8de28e5f0d92250c6b7e9e2aff7"},
{file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8c19d1ea0673cd13cc2f872f6c9ab42acc4e4f492a7ca9d3795ce2b112dd7e15"},
{file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e68c4446fe0810e959cdff46ab0a41ce2f2c86d227d96dc3847af0ba7def306"},
{file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d9640b0059ff4f14d1f37321b94061c6db164fbe49b334b31643e0528d100d99"},
{file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:40d02e7d45c9f8af700f3452f329ead92da4c5f4317ca9b896de7ce7199ea459"},
{file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c1fd185014191700554795c99b347d64f2bb637966c4cfc16998a0ca700d048"},
{file = "pydantic_core-2.27.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d81d2068e1c1228a565af076598f9e7451712700b673de8f502f0334f281387d"},
{file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1a4207639fb02ec2dbb76227d7c751a20b1a6b4bc52850568e52260cae64ca3b"},
{file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:3de3ce3c9ddc8bbd88f6e0e304dea0e66d843ec9de1b0042b0911c1663ffd474"},
{file = "pydantic_core-2.27.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:30c5f68ded0c36466acede341551106821043e9afaad516adfb6e8fa80a4e6a6"},
{file = "pydantic_core-2.27.2-cp311-cp311-win32.whl", hash = "sha256:c70c26d2c99f78b125a3459f8afe1aed4d9687c24fd677c6a4436bc042e50d6c"},
{file = "pydantic_core-2.27.2-cp311-cp311-win_amd64.whl", hash = "sha256:08e125dbdc505fa69ca7d9c499639ab6407cfa909214d500897d02afb816e7cc"},
{file = "pydantic_core-2.27.2-cp311-cp311-win_arm64.whl", hash = "sha256:26f0d68d4b235a2bae0c3fc585c585b4ecc51382db0e3ba402a22cbc440915e4"},
{file = "pydantic_core-2.27.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:9e0c8cfefa0ef83b4da9588448b6d8d2a2bf1a53c3f1ae5fca39eb3061e2f0b0"},
{file = "pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:83097677b8e3bd7eaa6775720ec8e0405f1575015a463285a92bfdfe254529ef"},
{file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:172fce187655fece0c90d90a678424b013f8fbb0ca8b036ac266749c09438cb7"},
{file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:519f29f5213271eeeeb3093f662ba2fd512b91c5f188f3bb7b27bc5973816934"},
{file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05e3a55d124407fffba0dd6b0c0cd056d10e983ceb4e5dbd10dda135c31071d6"},
{file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c3ed807c7b91de05e63930188f19e921d1fe90de6b4f5cd43ee7fcc3525cb8c"},
{file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6fb4aadc0b9a0c063206846d603b92030eb6f03069151a625667f982887153e2"},
{file = "pydantic_core-2.27.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:28ccb213807e037460326424ceb8b5245acb88f32f3d2777427476e1b32c48c4"},
{file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:de3cd1899e2c279b140adde9357c4495ed9d47131b4a4eaff9052f23398076b3"},
{file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:220f892729375e2d736b97d0e51466252ad84c51857d4d15f5e9692f9ef12be4"},
{file = "pydantic_core-2.27.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a0fcd29cd6b4e74fe8ddd2c90330fd8edf2e30cb52acda47f06dd615ae72da57"},
{file = "pydantic_core-2.27.2-cp312-cp312-win32.whl", hash = "sha256:1e2cb691ed9834cd6a8be61228471d0a503731abfb42f82458ff27be7b2186fc"},
{file = "pydantic_core-2.27.2-cp312-cp312-win_amd64.whl", hash = "sha256:cc3f1a99a4f4f9dd1de4fe0312c114e740b5ddead65bb4102884b384c15d8bc9"},
{file = "pydantic_core-2.27.2-cp312-cp312-win_arm64.whl", hash = "sha256:3911ac9284cd8a1792d3cb26a2da18f3ca26c6908cc434a18f730dc0db7bfa3b"},
{file = "pydantic_core-2.27.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:7d14bd329640e63852364c306f4d23eb744e0f8193148d4044dd3dacdaacbd8b"},
{file = "pydantic_core-2.27.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:82f91663004eb8ed30ff478d77c4d1179b3563df6cdb15c0817cd1cdaf34d154"},
{file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71b24c7d61131bb83df10cc7e687433609963a944ccf45190cfc21e0887b08c9"},
{file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fa8e459d4954f608fa26116118bb67f56b93b209c39b008277ace29937453dc9"},
{file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce8918cbebc8da707ba805b7fd0b382816858728ae7fe19a942080c24e5b7cd1"},
{file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:eda3f5c2a021bbc5d976107bb302e0131351c2ba54343f8a496dc8783d3d3a6a"},
{file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bd8086fa684c4775c27f03f062cbb9eaa6e17f064307e86b21b9e0abc9c0f02e"},
{file = "pydantic_core-2.27.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8d9b3388db186ba0c099a6d20f0604a44eabdeef1777ddd94786cdae158729e4"},
{file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:7a66efda2387de898c8f38c0cf7f14fca0b51a8ef0b24bfea5849f1b3c95af27"},
{file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:18a101c168e4e092ab40dbc2503bdc0f62010e95d292b27827871dc85450d7ee"},
{file = "pydantic_core-2.27.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ba5dd002f88b78a4215ed2f8ddbdf85e8513382820ba15ad5ad8955ce0ca19a1"},
{file = "pydantic_core-2.27.2-cp313-cp313-win32.whl", hash = "sha256:1ebaf1d0481914d004a573394f4be3a7616334be70261007e47c2a6fe7e50130"},
{file = "pydantic_core-2.27.2-cp313-cp313-win_amd64.whl", hash = "sha256:953101387ecf2f5652883208769a79e48db18c6df442568a0b5ccd8c2723abee"},
{file = "pydantic_core-2.27.2-cp313-cp313-win_arm64.whl", hash = "sha256:ac4dbfd1691affb8f48c2c13241a2e3b60ff23247cbcf981759c768b6633cf8b"},
{file = "pydantic_core-2.27.2-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d3e8d504bdd3f10835468f29008d72fc8359d95c9c415ce6e767203db6127506"},
{file = "pydantic_core-2.27.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:521eb9b7f036c9b6187f0b47318ab0d7ca14bd87f776240b90b21c1f4f149320"},
{file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85210c4d99a0114f5a9481b44560d7d1e35e32cc5634c656bc48e590b669b145"},
{file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d716e2e30c6f140d7560ef1538953a5cd1a87264c737643d481f2779fc247fe1"},
{file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f66d89ba397d92f840f8654756196d93804278457b5fbede59598a1f9f90b228"},
{file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:669e193c1c576a58f132e3158f9dfa9662969edb1a250c54d8fa52590045f046"},
{file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdbe7629b996647b99c01b37f11170a57ae675375b14b8c13b8518b8320ced5"},
{file = "pydantic_core-2.27.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d262606bf386a5ba0b0af3b97f37c83d7011439e3dc1a9298f21efb292e42f1a"},
{file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:cabb9bcb7e0d97f74df8646f34fc76fbf793b7f6dc2438517d7a9e50eee4f14d"},
{file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_armv7l.whl", hash = "sha256:d2d63f1215638d28221f664596b1ccb3944f6e25dd18cd3b86b0a4c408d5ebb9"},
{file = "pydantic_core-2.27.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:bca101c00bff0adb45a833f8451b9105d9df18accb8743b08107d7ada14bd7da"},
{file = "pydantic_core-2.27.2-cp38-cp38-win32.whl", hash = "sha256:f6f8e111843bbb0dee4cb6594cdc73e79b3329b526037ec242a3e49012495b3b"},
{file = "pydantic_core-2.27.2-cp38-cp38-win_amd64.whl", hash = "sha256:fd1aea04935a508f62e0d0ef1f5ae968774a32afc306fb8545e06f5ff5cdf3ad"},
{file = "pydantic_core-2.27.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:c10eb4f1659290b523af58fa7cffb452a61ad6ae5613404519aee4bfbf1df993"},
{file = "pydantic_core-2.27.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ef592d4bad47296fb11f96cd7dc898b92e795032b4894dfb4076cfccd43a9308"},
{file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c61709a844acc6bf0b7dce7daae75195a10aac96a596ea1b776996414791ede4"},
{file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:42c5f762659e47fdb7b16956c71598292f60a03aa92f8b6351504359dbdba6cf"},
{file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4c9775e339e42e79ec99c441d9730fccf07414af63eac2f0e48e08fd38a64d76"},
{file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57762139821c31847cfb2df63c12f725788bd9f04bc2fb392790959b8f70f118"},
{file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0d1e85068e818c73e048fe28cfc769040bb1f475524f4745a5dc621f75ac7630"},
{file = "pydantic_core-2.27.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:097830ed52fd9e427942ff3b9bc17fab52913b2f50f2880dc4a5611446606a54"},
{file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:044a50963a614ecfae59bb1eaf7ea7efc4bc62f49ed594e18fa1e5d953c40e9f"},
{file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:4e0b4220ba5b40d727c7f879eac379b822eee5d8fff418e9d3381ee45b3b0362"},
{file = "pydantic_core-2.27.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5e4f4bb20d75e9325cc9696c6802657b58bc1dbbe3022f32cc2b2b632c3fbb96"},
{file = "pydantic_core-2.27.2-cp39-cp39-win32.whl", hash = "sha256:cca63613e90d001b9f2f9a9ceb276c308bfa2a43fafb75c8031c4f66039e8c6e"},
{file = "pydantic_core-2.27.2-cp39-cp39-win_amd64.whl", hash = "sha256:77d1bca19b0f7021b3a982e6f903dcd5b2b06076def36a652e3907f596e29f67"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2bf14caea37e91198329b828eae1618c068dfb8ef17bb33287a7ad4b61ac314e"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:b0cb791f5b45307caae8810c2023a184c74605ec3bcbb67d13846c28ff731ff8"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:688d3fd9fcb71f41c4c015c023d12a79d1c4c0732ec9eb35d96e3388a120dcf3"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d591580c34f4d731592f0e9fe40f9cc1b430d297eecc70b962e93c5c668f15f"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:82f986faf4e644ffc189a7f1aafc86e46ef70372bb153e7001e8afccc6e54133"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:bec317a27290e2537f922639cafd54990551725fc844249e64c523301d0822fc"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:0296abcb83a797db256b773f45773da397da75a08f5fcaef41f2044adec05f50"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0d75070718e369e452075a6017fbf187f788e17ed67a3abd47fa934d001863d9"},
{file = "pydantic_core-2.27.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:7e17b560be3c98a8e3aa66ce828bdebb9e9ac6ad5466fba92eb74c4c95cb1151"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:c33939a82924da9ed65dab5a65d427205a73181d8098e79b6b426bdf8ad4e656"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:00bad2484fa6bda1e216e7345a798bd37c68fb2d97558edd584942aa41b7d278"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c817e2b40aba42bac6f457498dacabc568c3b7a986fc9ba7c8d9d260b71485fb"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:251136cdad0cb722e93732cb45ca5299fb56e1344a833640bf93b2803f8d1bfd"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d2088237af596f0a524d3afc39ab3b036e8adb054ee57cbb1dcf8e09da5b29cc"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:d4041c0b966a84b4ae7a09832eb691a35aec90910cd2dbe7a208de59be77965b"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8083d4e875ebe0b864ffef72a4304827015cff328a1be6e22cc850753bfb122b"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f141ee28a0ad2123b6611b6ceff018039df17f32ada8b534e6aa039545a3efb2"},
{file = "pydantic_core-2.27.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7d0c8399fcc1848491f00e0314bd59fb34a9c008761bcb422a057670c3f65e35"},
{file = "pydantic_core-2.27.2.tar.gz", hash = "sha256:eb026e5a4c1fee05726072337ff51d1efb6f59090b7da90d30ea58625b1ffb39"},
]
[package.dependencies]
@@ -1457,13 +1444,13 @@ files = [
[[package]]
name = "six"
version = "1.16.0"
version = "1.17.0"
description = "Python 2 and 3 compatibility utilities"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
files = [
{file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
]
[[package]]
@@ -1530,13 +1517,13 @@ files = [
[[package]]
name = "urllib3"
version = "2.2.3"
version = "2.3.0"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
python-versions = ">=3.8"
python-versions = ">=3.9"
files = [
{file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"},
{file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"},
{file = "urllib3-2.3.0-py3-none-any.whl", hash = "sha256:1cee9ad369867bfdbbb48b7dd50374c0967a0bb7710050facf0dd6911440e3df"},
{file = "urllib3-2.3.0.tar.gz", hash = "sha256:f8c5449b3cf0861679ce7e0503c7b44b5ec981bec0d1d3795a07f1ba96f0204d"},
]
[package.extras]
@@ -1588,97 +1575,80 @@ files = [
[[package]]
name = "websockets"
version = "13.1"
version = "14.1"
description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
optional = false
python-versions = ">=3.8"
python-versions = ">=3.9"
files = [
{file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"},
{file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"},
{file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"},
{file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"},
{file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"},
{file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"},
{file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"},
{file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"},
{file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"},
{file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"},
{file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"},
{file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"},
{file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"},
{file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"},
{file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"},
{file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"},
{file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"},
{file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"},
{file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"},
{file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"},
{file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"},
{file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"},
{file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"},
{file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"},
{file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"},
{file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"},
{file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"},
{file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"},
{file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"},
{file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"},
{file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"},
{file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"},
{file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"},
{file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"},
{file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"},
{file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"},
{file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"},
{file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"},
{file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"},
{file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"},
{file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"},
{file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"},
{file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"},
{file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"},
{file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"},
{file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"},
{file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"},
{file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"},
{file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"},
{file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"},
{file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"},
{file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"},
{file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"},
{file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"},
{file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"},
{file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"},
{file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"},
{file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"},
{file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"},
{file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"},
{file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"},
{file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"},
{file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"},
{file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"},
{file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"},
{file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"},
{file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"},
{file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"},
{file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"},
{file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"},
{file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"},
{file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"},
{file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"},
{file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"},
{file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"},
{file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"},
{file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"},
{file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"},
{file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"},
{file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"},
{file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"},
{file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"},
{file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"},
{file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"},
{file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"},
{file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"},
{file = "websockets-14.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a0adf84bc2e7c86e8a202537b4fd50e6f7f0e4a6b6bf64d7ccb96c4cd3330b29"},
{file = "websockets-14.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90b5d9dfbb6d07a84ed3e696012610b6da074d97453bd01e0e30744b472c8179"},
{file = "websockets-14.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2177ee3901075167f01c5e335a6685e71b162a54a89a56001f1c3e9e3d2ad250"},
{file = "websockets-14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f14a96a0034a27f9d47fd9788913924c89612225878f8078bb9d55f859272b0"},
{file = "websockets-14.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1f874ba705deea77bcf64a9da42c1f5fc2466d8f14daf410bc7d4ceae0a9fcb0"},
{file = "websockets-14.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9607b9a442392e690a57909c362811184ea429585a71061cd5d3c2b98065c199"},
{file = "websockets-14.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:bea45f19b7ca000380fbd4e02552be86343080120d074b87f25593ce1700ad58"},
{file = "websockets-14.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:219c8187b3ceeadbf2afcf0f25a4918d02da7b944d703b97d12fb01510869078"},
{file = "websockets-14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad2ab2547761d79926effe63de21479dfaf29834c50f98c4bf5b5480b5838434"},
{file = "websockets-14.1-cp310-cp310-win32.whl", hash = "sha256:1288369a6a84e81b90da5dbed48610cd7e5d60af62df9851ed1d1d23a9069f10"},
{file = "websockets-14.1-cp310-cp310-win_amd64.whl", hash = "sha256:e0744623852f1497d825a49a99bfbec9bea4f3f946df6eb9d8a2f0c37a2fec2e"},
{file = "websockets-14.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:449d77d636f8d9c17952628cc7e3b8faf6e92a17ec581ec0c0256300717e1512"},
{file = "websockets-14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a35f704be14768cea9790d921c2c1cc4fc52700410b1c10948511039be824aac"},
{file = "websockets-14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b1f3628a0510bd58968c0f60447e7a692933589b791a6b572fcef374053ca280"},
{file = "websockets-14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c3deac3748ec73ef24fc7be0b68220d14d47d6647d2f85b2771cb35ea847aa1"},
{file = "websockets-14.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7048eb4415d46368ef29d32133134c513f507fff7d953c18c91104738a68c3b3"},
{file = "websockets-14.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f6cf0ad281c979306a6a34242b371e90e891bce504509fb6bb5246bbbf31e7b6"},
{file = "websockets-14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc1fc87428c1d18b643479caa7b15db7d544652e5bf610513d4a3478dbe823d0"},
{file = "websockets-14.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f95ba34d71e2fa0c5d225bde3b3bdb152e957150100e75c86bc7f3964c450d89"},
{file = "websockets-14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9481a6de29105d73cf4515f2bef8eb71e17ac184c19d0b9918a3701c6c9c4f23"},
{file = "websockets-14.1-cp311-cp311-win32.whl", hash = "sha256:368a05465f49c5949e27afd6fbe0a77ce53082185bbb2ac096a3a8afaf4de52e"},
{file = "websockets-14.1-cp311-cp311-win_amd64.whl", hash = "sha256:6d24fc337fc055c9e83414c94e1ee0dee902a486d19d2a7f0929e49d7d604b09"},
{file = "websockets-14.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ed907449fe5e021933e46a3e65d651f641975a768d0649fee59f10c2985529ed"},
{file = "websockets-14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:87e31011b5c14a33b29f17eb48932e63e1dcd3fa31d72209848652310d3d1f0d"},
{file = "websockets-14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bc6ccf7d54c02ae47a48ddf9414c54d48af9c01076a2e1023e3b486b6e72c707"},
{file = "websockets-14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9777564c0a72a1d457f0848977a1cbe15cfa75fa2f67ce267441e465717dcf1a"},
{file = "websockets-14.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a655bde548ca98f55b43711b0ceefd2a88a71af6350b0c168aa77562104f3f45"},
{file = "websockets-14.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3dfff83ca578cada2d19e665e9c8368e1598d4e787422a460ec70e531dbdd58"},
{file = "websockets-14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6a6c9bcf7cdc0fd41cc7b7944447982e8acfd9f0d560ea6d6845428ed0562058"},
{file = "websockets-14.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4b6caec8576e760f2c7dd878ba817653144d5f369200b6ddf9771d64385b84d4"},
{file = "websockets-14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eb6d38971c800ff02e4a6afd791bbe3b923a9a57ca9aeab7314c21c84bf9ff05"},
{file = "websockets-14.1-cp312-cp312-win32.whl", hash = "sha256:1d045cbe1358d76b24d5e20e7b1878efe578d9897a25c24e6006eef788c0fdf0"},
{file = "websockets-14.1-cp312-cp312-win_amd64.whl", hash = "sha256:90f4c7a069c733d95c308380aae314f2cb45bd8a904fb03eb36d1a4983a4993f"},
{file = "websockets-14.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:3630b670d5057cd9e08b9c4dab6493670e8e762a24c2c94ef312783870736ab9"},
{file = "websockets-14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36ebd71db3b89e1f7b1a5deaa341a654852c3518ea7a8ddfdf69cc66acc2db1b"},
{file = "websockets-14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5b918d288958dc3fa1c5a0b9aa3256cb2b2b84c54407f4813c45d52267600cd3"},
{file = "websockets-14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00fe5da3f037041da1ee0cf8e308374e236883f9842c7c465aa65098b1c9af59"},
{file = "websockets-14.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8149a0f5a72ca36720981418eeffeb5c2729ea55fa179091c81a0910a114a5d2"},
{file = "websockets-14.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:77569d19a13015e840b81550922056acabc25e3f52782625bc6843cfa034e1da"},
{file = "websockets-14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:cf5201a04550136ef870aa60ad3d29d2a59e452a7f96b94193bee6d73b8ad9a9"},
{file = "websockets-14.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:88cf9163ef674b5be5736a584c999e98daf3aabac6e536e43286eb74c126b9c7"},
{file = "websockets-14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:836bef7ae338a072e9d1863502026f01b14027250a4545672673057997d5c05a"},
{file = "websockets-14.1-cp313-cp313-win32.whl", hash = "sha256:0d4290d559d68288da9f444089fd82490c8d2744309113fc26e2da6e48b65da6"},
{file = "websockets-14.1-cp313-cp313-win_amd64.whl", hash = "sha256:8621a07991add373c3c5c2cf89e1d277e49dc82ed72c75e3afc74bd0acc446f0"},
{file = "websockets-14.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:01bb2d4f0a6d04538d3c5dfd27c0643269656c28045a53439cbf1c004f90897a"},
{file = "websockets-14.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:414ffe86f4d6f434a8c3b7913655a1a5383b617f9bf38720e7c0799fac3ab1c6"},
{file = "websockets-14.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8fda642151d5affdee8a430bd85496f2e2517be3a2b9d2484d633d5712b15c56"},
{file = "websockets-14.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd7c11968bc3860d5c78577f0dbc535257ccec41750675d58d8dc66aa47fe52c"},
{file = "websockets-14.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a032855dc7db987dff813583d04f4950d14326665d7e714d584560b140ae6b8b"},
{file = "websockets-14.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7e7ea2f782408c32d86b87a0d2c1fd8871b0399dd762364c731d86c86069a78"},
{file = "websockets-14.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:39450e6215f7d9f6f7bc2a6da21d79374729f5d052333da4d5825af8a97e6735"},
{file = "websockets-14.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ceada5be22fa5a5a4cdeec74e761c2ee7db287208f54c718f2df4b7e200b8d4a"},
{file = "websockets-14.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3fc753451d471cff90b8f467a1fc0ae64031cf2d81b7b34e1811b7e2691bc4bc"},
{file = "websockets-14.1-cp39-cp39-win32.whl", hash = "sha256:14839f54786987ccd9d03ed7f334baec0f02272e7ec4f6e9d427ff584aeea8b4"},
{file = "websockets-14.1-cp39-cp39-win_amd64.whl", hash = "sha256:d9fd19ecc3a4d5ae82ddbfb30962cf6d874ff943e56e0c81f5169be2fda62979"},
{file = "websockets-14.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e5dc25a9dbd1a7f61eca4b7cb04e74ae4b963d658f9e4f9aad9cd00b688692c8"},
{file = "websockets-14.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:04a97aca96ca2acedf0d1f332c861c5a4486fdcba7bcef35873820f940c4231e"},
{file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df174ece723b228d3e8734a6f2a6febbd413ddec39b3dc592f5a4aa0aff28098"},
{file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:034feb9f4286476f273b9a245fb15f02c34d9586a5bc936aff108c3ba1b21beb"},
{file = "websockets-14.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:660c308dabd2b380807ab64b62985eaccf923a78ebc572bd485375b9ca2b7dc7"},
{file = "websockets-14.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:5a42d3ecbb2db5080fc578314439b1d79eef71d323dc661aa616fb492436af5d"},
{file = "websockets-14.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ddaa4a390af911da6f680be8be4ff5aaf31c4c834c1a9147bc21cbcbca2d4370"},
{file = "websockets-14.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a4c805c6034206143fbabd2d259ec5e757f8b29d0a2f0bf3d2fe5d1f60147a4a"},
{file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:205f672a6c2c671a86d33f6d47c9b35781a998728d2c7c2a3e1cf3333fcb62b7"},
{file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef440054124728cc49b01c33469de06755e5a7a4e83ef61934ad95fc327fbb0"},
{file = "websockets-14.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7591d6f440af7f73c4bd9404f3772bfee064e639d2b6cc8c94076e71b2471c1"},
{file = "websockets-14.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:25225cc79cfebc95ba1d24cd3ab86aaa35bcd315d12fa4358939bd55e9bd74a5"},
{file = "websockets-14.1-py3-none-any.whl", hash = "sha256:4d4fc827a20abe6d544a119896f6b78ee13fe81cbfef416f3f2ddf09a03f0e2e"},
{file = "websockets-14.1.tar.gz", hash = "sha256:398b10c77d471c0aab20a845e7a60076b6390bfdaac7a6d2edb0d2c59d75e8d8"},
]
[[package]]
@@ -1779,13 +1749,13 @@ propcache = ">=0.2.0"
[[package]]
name = "yfinance"
version = "0.2.50"
version = "0.2.51"
description = "Download market data from Yahoo! Finance API"
optional = false
python-versions = "*"
files = [
{file = "yfinance-0.2.50-py2.py3-none-any.whl", hash = "sha256:0db13b19313043328fe88ded2ddc306ede7d901d0f5181462a1cce76acdbcd2a"},
{file = "yfinance-0.2.50.tar.gz", hash = "sha256:33b379cad4261313dc93bfe3148d2f6e6083210e6341f0c93dd3af853019b1a0"},
{file = "yfinance-0.2.51-py2.py3-none-any.whl", hash = "sha256:d5cc7a970bb4bb43e4deee853514cbaa3c2b070a0dee6b2861c1ab5076f21dc1"},
{file = "yfinance-0.2.51.tar.gz", hash = "sha256:7902cc9b23699a51efa50f1cc7a965220a56beccc00d189f929b4c7c5c189a60"},
]
[package.dependencies]
@@ -1802,7 +1772,7 @@ pytz = ">=2022.5"
requests = ">=2.31"
[package.extras]
nospam = ["requests-cache (>=1.0)", "requests-ratelimiter (>=0.3.1)"]
nospam = ["requests_cache (>=1.0)", "requests_ratelimiter (>=0.3.1)"]
repair = ["scipy (>=1.6.3)"]
[[package]]
@@ -1827,4 +1797,4 @@ type = ["pytest-mypy"]
[metadata]
lock-version = "2.0"
python-versions = "^3.9"
content-hash = "5301fa8a6f2e828b45f354194feba513fb282a63c9cec253d4bd1a44ff8e9814"
content-hash = "417e77a779b8e46dddf3c27898e5b2331c2afc71acd3bfc8bcacfd0f17678635"

View File

@@ -9,7 +9,7 @@ packages = [{ include = "openbb_yfinance" }]
[tool.poetry.dependencies]
python = "^3.9"
yfinance = "^0.2.50"
yfinance = "^0.2.51"
openbb-core = "^1.3.6"
[build-system]

View File

@@ -11,56 +11,10 @@ interactions:
Cookie:
- MOCK_COOKIE
method: GET
uri: https://query2.finance.yahoo.com/v1/finance/search?crumb=MOCK_CRUMB&q=AAPL
uri: https://query1.finance.yahoo.com/v1/test/getcrumb
response:
body:
string: !!binary |
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
string: 2TsunvSDOSZ
headers:
Age:
- '0'
@@ -70,8 +24,6 @@ interactions:
- no-referrer-when-downgrade
Strict-Transport-Security:
- max-age=31536000
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
X-Frame-Options:
@@ -79,28 +31,28 @@ interactions:
X-XSS-Protection:
- 1; mode=block
cache-control:
- public, max-age=600, stale-while-revalidate=180
content-encoding:
- gzip
- private, max-age=60, stale-while-revalidate=30
content-length:
- '11'
content-type:
- application/json;charset=utf-8
- text/plain;charset=utf-8
date:
- Thu, 24 Oct 2024 05:32:56 GMT
- Fri, 10 Jan 2025 22:49:37 GMT
server:
- ATS
vary:
- Origin,Origin,Accept-Encoding
- Origin,Accept-Encoding
x-envoy-decorator-operation:
- finance-search--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/*
- finance-external-services-api--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/*
x-envoy-upstream-service-time:
- '85'
- '1'
y-rid:
- 5mfd32hjhjn08
- 0bt487ljo3901
status:
code: 200
message: OK
- request:
body: null
body: '{"serviceConfig": {"snippetCount": 2, "s": ["AAPL"]}}'
headers:
Accept:
- '*/*'
@@ -108,94 +60,548 @@ interactions:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '53'
Content-Type:
- application/json
Cookie:
- MOCK_COOKIE
method: GET
uri: https://query2.finance.yahoo.com/v1/finance/search?crumb=MOCK_CRUMB&q=MSFT
method: POST
uri: https://finance.yahoo.com/xhr/ncp?crumb=MOCK_CRUMB&queryRef=newsAll&serviceKey=ncp_fin
response:
body:
string: !!binary |
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
/6AHpBI1gK9Wc9cjQmtiPVopNXYJ/RIQkDFyblbjpFiKNGLKUKkwOGy19iTF5QVw2qKpdyUTFdk6
k8QEHHwADcVRGGrdJO4+FT7n4HwmGJoqoCsJOPYGocSeXEOM76r6f3dsVip99MIduJP1FosO2BKu
MJ5wR9ZUcwESozF1Euv2y8X0QatOUb3FvIVVqg8YFhAtjgbKCRwhFMMONnVQkyQInUuKIYce3xEt
/h/eU3+2J6puP1zPx4vV+X++JULyyAGHAyUfb9P5mAZBVU45qVKMP4V7Zz7c6HeKAIwmIQtktsQi
85ARo4HPtDG6juknSOq8fasRr1/sf/2G4PVm1oPKs+N6e7nRZ0NVnj3TLXz65Nmzsd7StuuzZ/91
s5v1+OyZ6KCbzWz/OT6fd/tnzy7p2bPt7sl+s55talevz1Zb/WL+hC719oVnq+N8ULq2aV6tZXX+
o+Z4dbbqu+2s23l1/g/d9vTVXlfnqz/8+tEvP16dreb1vLHPn13RPMlOjxNNT9fPn+6eT0zb6Vpp
O43dYbo56uH476uzleixH9b7eb3brs5X7+0fvPk1HS5v9Dit5+PU6agTXdJ6e5wnmrZkP365Fj09
cr2dxmG3nafdmOYrnT59Mj252R/0Wqdf7G4O89l0pFfr7eVEp5/PVwelWbfH048/WB+O8/TwWrdy
rdv53vT0Sqfjrq9pM53WfdpvaB67w/W03yjJWwNiHbuDnp7yH7S9ocOrybdJlGSz3uqJSPtO1i/0
OMPuAKe376aZnuukY2if702/ePzLp9Os/Wq72+wuX00H3e8Osx6mh3ygw/RwAx+qzuvpL7v19ji9
R5PtOVh73P78YtX3u+O5/7+nfy9W09VBx88vVlfzvD+e37//Zk/de0VXu929vru+Tzfz1e5wnw8k
G30Fx+v1fHX/YvXg/QPJ9MQ+vXefHky77fSeXj/4TGljV/T6gQ1b1sd+czxOL21hT6s3Ha92NxuZ
9Iu99nmi7yz1Zre7Pt577/7+wcX2vf2Di9UvdtdvT9V8dTatx1d3XOp8tNu2KmfTev7Zcdru5uly
Zws376Zrulx32mxe2Thov1c62KpfT692N4dJ9MW6G/f6ZsL0i/3GNsy96WL16+1xVpIz+/H0crf9
2Tyx2htne/rNXmjW49n08mrdr0471PYGzdPuhR6meX2tNqKJte+u9Thd26pv6PLy1URbsTXeTvpC
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
headers:
Age:
- '0'
Connection:
- keep-alive
Referrer-Policy:
- no-referrer-when-downgrade
Strict-Transport-Security:
- max-age=31536000
Set-Cookie:
- A1=d=AQABBFtzNWcCEJ4yZ_ubwis_EvqPVJq_Mm0FEgEBAQHENmc_ZyXUxyMA_eMAAA&S=AQAAAtEqWQmdqn_lX1LPnFTD4W8;
Expires=Sun, 11 Jan 2026 04:49:37 GMT; Max-Age=31557600; Domain=.yahoo.com;
Path=/; SameSite=Lax; Secure; HttpOnly
- A3=d=AQABBFtzNWcCEJ4yZ_ubwis_EvqPVJq_Mm0FEgEBAQHENmc_ZyXUxyMA_eMAAA&S=AQAAAtEqWQmdqn_lX1LPnFTD4W8;
Expires=Sun, 11 Jan 2026 04:49:37 GMT; Max-Age=31557600; Domain=.yahoo.com;
Path=/; SameSite=None; Secure; HttpOnly
- A1S=d=AQABBFtzNWcCEJ4yZ_ubwis_EvqPVJq_Mm0FEgEBAQHENmc_ZyXUxyMA_eMAAA&S=AQAAAtEqWQmdqn_lX1LPnFTD4W8;
Domain=.yahoo.com; Path=/; SameSite=Lax; Secure
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
X-Frame-Options:
- SAMEORIGIN
X-XSS-Protection:
- 1; mode=block
cache-control:
- public, max-age=600, stale-while-revalidate=180
- public, max-age=120
content-encoding:
- gzip
content-security-policy:
- 'connect-src ''self'' wss://streamer.finance.yahoo.com/ https://*.3lift.com
https://*.adsrvr.org https://*.adtrafficquality.google https://*.casalemedia.com
https://*.cdn.yimg.com https://*.clean.gg https://*.criteo.com https://securepubads.g.doubleclick.net/*
https://*.indexww.com/ https://*.liadm.com https://*.lijit.com/ https://*.media.net
https://*.oath.com https://*.openx.net https://*.pubmatic.com https://*.rubiconproject.com
https://*.seedtag.com https://*.sharethrough.com https://*.taboola.com https://*.yahoo.com
https://*.yahoo.net https://*.yieldmo.com https://ad.doubleclick.net https://api.alyavista.com
https://api.privacy-center.org https://bam.nr-data.net/ https://csi.gstatic.com
https://dpm.demdex.net/ https://googleads.g.doubleclick.net/td/auctionwinner
https://guce.yahoofinance.com https://oathmembershipsupport.my.salesforce-sites.com/
https://oathmembershipsupport.my.salesforce.com/ https://pagead2.googlesyndication.com
https://s.yimg.com https://sdk.privacy-center.org/f5623e34-377a-419c-8bb7-3928cebffbc9/
https://securepubads.g.doubleclick.net https://smetrics.att.com/ https://static.criteo.net/js/ld/publishertag.prebid.144.js;
default-src ''self''; font-src ''self'' data: https://cdn.taboola.com https://finance.yahoo.com
https://fonts.gstatic.com https://s.yimg.com; frame-src ''self'' https://*.3lift.com
https://*.a-mo.net https://*.abcnews.go.com https://*.adsrvr.org https://*.adtrafficquality.google
https://*.advertising.com https://*.amazon-adsystem.com https://*.bbc.co.uk
https://*.casalemedia.com https://*.chartbeat.com https://*.clicktivatedvideoplayer.com
https://*.criteo.com https://*.deezer.com https://*.delivery.vidible.tv https://*.dailymotion.com/embed/video
https://*.emxdgt.com https://*.etonline.com https://*.facebook.com https://*.google.com
https://*.gumgum.com https://*.hulu.com https://*.indexww.com https://*.instagram.com
https://*.jac.yahoosandbox.com https://*.lijit.com https://*.livestream.com
https://*.media.net https://*.mtvnservices.com https://*.myfinance.com https://*.nbc.com
https://*.nytimes.com https://*.oath.com https://*.openx.net https://*.pubmatic.com
https://*.reuters.com https://*.rubiconproject.com https://*.safeframe.googlesyndication.com
https://*.scribd.com https://*.seedtag.com https://*.sharethrough.com https://*.smartasset.com
https://*.soundcloud.com https://*.spotify.com https://*.taboola.com https://*.ted.com
https://*.theguardian.com https://*.tpc.googlesyndication.com https://*.trustedstack.com
https://*.tumblr.com https://*.turner.com https://*.usatoday.com https://*.vimeo.com
https://*.washingtonpost.com https://*.wsj.com https://*.yahoo.com https://*.yahoo.net
https://*.yieldmo.com https://abcnews.go.com https://att.demdex.net/ https://bbc.co.uk
https://cdn.yahoofinance.com/ https://chartbeat.com https://compass.pressekompass.net
https://console.googletagservices.com https://delivery.vidible.tv https://embed.acast.com
https://embed.music.apple.com https://embed.podcasts.apple.com https://embedder.wirewax.com
https://flo.uri.sh/ https://flourish.studio https://www.googletagmanager.com
https://guce.yahoofinance.com https://interactives.ap.org https://livestream.com
https://openweb.jac.yahoosandbox.com/ https://platform.twitter.com https://s.yimg.com
https://securepubads.g.doubleclick.net https://service.force.com/ https://smartasset.com
https://tpc.googlesyndication.com https://tsdtocl.com/ https://view.ceros.com
https://vimeo.com https://vplayer.nbcolympics.com https://widget-yahoo.ofx.com
https://www.bankrate.com https://www.credible.com https://www.dailymotion.com/embed/video/
https://www.myfinance.com https://www.surveymonkey.com https://www.youtube.com
https://yahoo.crunchbaseembed.com https://yahoo.real-estate.hk; img-src ''self''
data: blob: about: https://www.google.com/ads/measurement/l https://*.1rx.io
https://*.3lift.com https://*.adnxs.com https://*.adsafeprotected.com/ https://*.adsrvr.org
https://*.adtrafficquality.google https://*.amazon-adsystem.com https://*.casalemedia.com
https://*.cloudfront.net/pixel.gif https://*.criteo.com https://*.dotomi.com
https://*.doubleclick.net https://*.everesttech.net https://*.googlesyndication.com
https://*.indexww.com/ https://*.kueezrtb.com https://*.liadm.com https://*.lijit.com/
https://*.media.net https://*.mediago.io https://*.openx.net https://*.pubmatic.com
https://*.rubiconproject.com https://*.sharethrough.com https://*.disqus.com
https://*.sonobi.com https://*.taboola.com https://*.wc.yahoodns.net https://*.yahoo.com
https://*.yahoo.net https://*.yieldmo.com https://*.yimg.com https://crb.kargo.com
https://googleads.g.doubleclick.net/pagead/interaction/ https://media.zenfs.com
https://o.aolcdn.com/images/dims https://pbs.twimg.com https://ping.chartbeat.net
https://platform.twitter.com https://pong.chartbeat.net https://public.flourish.studio/resources/
https://res.cloudinary.com/yfc-nonprod/ https://res.cloudinary.com/yfc-production/
https://s2.coinmarketcap.com/static/img/coins/ https://sb.scorecardresearch.com
https://securepubads.g.doubleclick.net/pagead/adview https://smetrics.att.com/b/ss/attnetprod/
https://static2.chartbeat.com https://syndication.twitter.com https://vop-yahoo.akamaized.net/pixel.gif
https://www.facebook.com https://yahoovod.hs.llnwd.net/pixel.gif; manifest-src
''self'' https://s.yimg.com; media-src ''self'' blob: https://finance.yahoo.com
https://s.yimg.com https://res.cloudinary.com/yfc-nonprod/ https://res.cloudinary.com/yfc-production/;
object-src ''none''; report-to csp-endpoint; report-uri https://csp.yahoo.com/beacon/csp?src=yahoofinance;
sandbox allow-downloads allow-forms allow-modals allow-popups-to-escape-sandbox
allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation;
script-src ''self'' blob: ''unsafe-inline'' ''unsafe-eval'' https://*.adtrafficquality.google
https://*.oath.com https://*.salesforceliveagent.com/ https://*.taboola.com
https://*.yahoo.com https://*.yahoo.net https://adservice.google.com/adsid/integrator.js
https://cdn.ampproject.org/rtv/ https://cdn.jsdelivr.net/npm/ https://cdn.rawgit.com/dcodeIO/protobuf.js/
https://console.googletagservices.com/pubconsole/loader.js https://ec.yimg.com/didomi/
https://gum.criteo.com/ https://jac.yahoosandbox.com/2.0.0/jac.js https://oathmembershipsupport.my.salesforce-sites.com/
https://oathmembershipsupport.my.salesforce.com/ https://openweb.jac.yahoosandbox.com/1.5.0/jac.js
https://pagead2.googlesyndication.com https://platform.twitter.com https://s.aolcdn.com/membership/omp-static/omp-widgets/
https://s.yimg.com https://securepubads.g.doubleclick.net https://service.force.com/embeddedservice/5.0/
https://static.criteo.net/js/ld/publishertag.prebid.144.js https://static.lightning.force.com/
https://static2.chartbeat.com https://tpc.googlesyndication.com/pagead/js/
https://tpc.googlesyndication.com/sodar/sodar2.js https://wnsrvbjmeprtfrnfx.ay.delivery
https://www.googletagservices.com/activeview/js; style-src ''self'' ''unsafe-inline''
https://cdn.taboola.com https://finance.yahoo.com https://oathmembershipsupport.my.salesforce-sites.com/
https://platform.twitter.com https://s.yimg.com https://service.force.com/;
worker-src ''self'' blob: https://finance.yahoo.com'
content-type:
- application/json;charset=utf-8
- application/json
date:
- Thu, 24 Oct 2024 05:32:57 GMT
- Fri, 10 Jan 2025 22:49:37 GMT
expect-ct:
- max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only
permissions-policy:
- interest-cohort=()
referrer-policy:
- no-referrer-when-downgrade
report-to:
- '{"endpoints":[{"url":"https://csp.yahoo.com/beacon/csp?src=yahoofinance"}],"group":"csp-endpoint","max-age":10886400}'
server:
- ATS
strict-transport-security:
- max-age=31536000
vary:
- Origin,Origin,Accept-Encoding
- Accept-Encoding
x-content-type-options:
- nosniff
x-download-options:
- noopen
x-envoy-decorator-operation:
- finance-search--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/*
- finance-nimbus--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/*
x-envoy-upstream-service-time:
- '58'
y-rid:
- 70h28q5jhjn09
- '137'
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK
- request:
body: '{"serviceConfig": {"snippetCount": 2, "s": ["MSFT"]}}'
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
Content-Length:
- '53'
Content-Type:
- application/json
Cookie:
- MOCK_COOKIE
method: POST
uri: https://finance.yahoo.com/xhr/ncp?crumb=MOCK_CRUMB&queryRef=newsAll&serviceKey=ncp_fin
response:
body:
string: !!binary |
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
VbW9p2QRG2TxWq8o6u2TGfzQlZYzjYwLsN6jcTbhAmp+eiP56WLsSqsQck+IaQmVnL0R9zkcYDbP
w6gfOFQyaHDWPm1t4gLQwcy9IWkHSylB4jDAsy9OeIdOsI1GC4gwcGJB74kJjBnIanZ2EwRWdUaN
MMMS8vbFe29Z3CPnBFQSQbNA3mCMOilQXwIvyNQpZaL3J9GJZV5AWppgMzUj79CoC7AXpYYQZu0Q
PGFMKhGaFIQ8UbpGzwgsAJFqiqVKZejqUth0jvOsoCMVUs1xhgXsi9b8jPtyenc/pW5U6Bodri05
RR3KdzYP8xd/otn2d5vj4en64b+9WUIfU9TW/AiiBKkPD5ukwPCIsJQU469AEX7cX9tP1b0YzZgT
ZGcM9BMfoHtlzTQxYtbZ9a66QT6U9t3V719pmc3F0fY2nh0227MLezbNxrNntoUvHj97Njdb3qo9
e/bv17ujHZ49Gzb5+uLoPxyeH3dXz56d8bNn293jq4vN0Z++fnlvvbXvjp/xmd0O27314bg3vvRJ
W2/G+uEvmrH1vbXutkfbHtcP/1O3Pbm5svXD9eMnn37+p/W99XFzvPDPn+3tcLje22q3XT3ZPH+y
e7663F1vj4cVz6PtV4+vr/Z2aatHu+v9cXV4blfHjW4Ol6vdXM29GRyuzPR8xfuz60t/u3vrYQfd
b66Om912/XC9vrc+XF9e8v7Gv/0nT/vm+nDcqB1Wh931dth4/Xi+8Kcfdpfm/x/P7a3fdFhd8rDV
R/vN4JuV3Lx6/Xurc9ucnR9tu9mera7eEM8fdLW7ur7g/eqw0w1frE5LcMVXVys+rDbHw+rR+WZr
B1td8d62x9Vkfz1e/YG391exr4bxuNhsbXXcrcbmWzscb596wce521+udvvTLSteffF4Jby9v763
vrqWD/joY40BM4QIoT+J+SG2hzn9eX1vvTn8bnc42ni9POTmig+Hj3eDL14v+fXV3r7d2Isv9hfr
h9vri4t76+P59aVseXPh62G335xttnxx+v36/Hi8Ojx88OBw/2ZzeXZfd5cPdocHujc+7uH66mLH
fh7n5pLP7PDg1Us9UOflCTOAelwfozlclAlKYEcwolAc63s/ftNXm3E8Xz90bqi/XvzdaeTXD/F0
VfmNNbC3w+7i2j8fTgv/+u+96fX1A77aPNjb4UG8jw/4w+2Xf67vX388P+GvPyHR+lU5fwHwv99/
wB+Em48/eO/Fp6T94+/fe/HxB8dz/d37V3/+IObx24++4d9dfCtnAA/+y8bjvs77L0yu1vfWL94c
j/OfjMORz9YPfxyj9ct7v1z6z27+bB+hfXj+8e6DL9579NGXf/zy6quzk/R/vnzelT6/4a9C5Q/C
dx9/c1bH9+G7T75/r/7p6/df8Ff/2u3rz8//hOfZu9L/O0ch1jcGIWJ7PQaxhu8itvXLv7z0Jb1z
PGXv63dsDlcXfPMJX/o++ROf73arj2517freG6P18MGDVyr4/o3/0UkKV7HK293WNcdpB/x8gP/2
nq29ODx4rRxgt4Xj5vlx9xxudR+cdB8cbrUVqGsr+Kvug92ENzQSvNZIEDO2nKik++fHywvXfJvT
xp8/irK3s9st8cXj9b31BW99WE7G5STFxUafPznf767PzhctyGsr7hK8suGfbfT5K7/h3o/PefjD
+nDc6fMnG31u+1vNcLi5lJ0L/ennj/542i0/Xvn4wyfv/ezK44+erF/+5aQgLzfXlx/99cGbw2e3
1z6xF4cfFemPVz/am73xm5cv3S7v9jeu3l+91+2H3x/t8vbNfm6AS1LD2AbIZIbUwoDeTaB4zrkK
t1Ls7xrgn2v91wb5X6/5QneXl6tHH366Ot+cLPFxNa+PbsXON2fncLV74Q7K6rNHKz3fXB3Wv6ox
SL7tQ7PBUYMnP8i3vYGYVTA1oeGO3ih/awwStvQWY9AyvssYuDn7h9TBrff3e5+B0z54vSl0d7l+
+TZT+frRj24n4nZc1v9JpfHvr+YH1HZwmh/gI9zOD7w5P3ClcJofiJkQqbZ4u5v+iY3+K3y5e+1/
s5KdnYsRxWlYGGigQvPGdFNus5qVgPVvVvKXv//gw0/fsZKf7K5WtDq6z3bc23YcVsdzPq7G7nKz
5aON1aMPH6/c0Py6CzjfLuBcsqWT3Rq3dkv6nFBzy6VzSyr4Fm+mvN2bwfrrLeDVl55E+OkyPuUV
7v/3LubTdz447q6AwOcIbucIfpweNwIYkUL/Z5btP/41L1/+5XaRnlbmL4kr3xIb/WO3/Z3Y6NFu
ezjaxQX7RK8+3Nr+7Gb13tne7OABwPvXN6tHfHHl8cDc7Vf/Esv9tHp/c3Hh6+SdcdBbn7xif/Tw
R8tbHy23j7630t2lbE7xzfHF7nWMpG7x9zf/7//838PqgvdnHpzYhelxv9HN8WZ1Zlvbs5tiNyi8
Om4ubfXi3E6B0Wa/utrvxrUeV5vDarM9WZrVsEvejtXc7y5v97HuLq94u7HD/dXq91u9uB6nlzi3
FR8O15cnWf19hsnx3uqnUu62r2O1b/ni2uX0l+bDOfB2wMkN8Pjq4iTwKarab77lo13crM7tYvw4
Hnxc/QuW++X1cNxfrZ6c2+1D/btPGvBNac/ZI0x2k7l5FQXy4bi6Md6vxrX5xdN4edB39NHn/XEz
N6cAcbN1ATZn5qv6rcFcDE8QH0Z8GMJPg7lXDsd/FM29Y+9cPvgly/iBvjnMYKfFBKe1dHjtvv0C
9XoKhe9/b9t5OH25bR+8OHxz+rEKKrYcG4k5DxRpsoYJBTPnfgIZfqZII75NkRb6taLC9x7d52/G
4/7p2fn8+JOv6PL7i2+vzl5Hhfjx9++dYqGPv3nvxaf40Qv97cXzz76+CH/66pOdfdWvH/wKQr8l
6sE3Y7+TsP9E6PeH/Ifvvvy8f3D5x+vd5fG78fX7j+sXL/650O/XFfefC/J8z37FFxerx8e92XH1
h9313sfoZ+Heixcv7r9+x/840Hvzr+X64FjO4YErlcO7dgkcdyDXN6C3GgY2W8ACBV4pGPAH+D8J
eyj/00OhzfjNjRtr/B83V8f9b05b9lcI924t/N8Nnm4DlV8YPX3y+W9/Gip9+fjJ22KnN688+vC3
/xXB1MlBcqvuV/l4ffDg7n+tX/5/iPWkp8quAAA=
headers:
Age:
- '0'
Connection:
- keep-alive
Transfer-Encoding:
- chunked
cache-control:
- public, max-age=120
content-encoding:
- gzip
content-security-policy:
- 'connect-src ''self'' wss://streamer.finance.yahoo.com/ https://*.3lift.com
https://*.adsrvr.org https://*.adtrafficquality.google https://*.casalemedia.com
https://*.cdn.yimg.com https://*.clean.gg https://*.criteo.com https://securepubads.g.doubleclick.net/*
https://*.indexww.com/ https://*.liadm.com https://*.lijit.com/ https://*.media.net
https://*.oath.com https://*.openx.net https://*.pubmatic.com https://*.rubiconproject.com
https://*.seedtag.com https://*.sharethrough.com https://*.taboola.com https://*.yahoo.com
https://*.yahoo.net https://*.yieldmo.com https://ad.doubleclick.net https://api.alyavista.com
https://api.privacy-center.org https://bam.nr-data.net/ https://csi.gstatic.com
https://dpm.demdex.net/ https://googleads.g.doubleclick.net/td/auctionwinner
https://guce.yahoofinance.com https://oathmembershipsupport.my.salesforce-sites.com/
https://oathmembershipsupport.my.salesforce.com/ https://pagead2.googlesyndication.com
https://s.yimg.com https://sdk.privacy-center.org/f5623e34-377a-419c-8bb7-3928cebffbc9/
https://securepubads.g.doubleclick.net https://smetrics.att.com/ https://static.criteo.net/js/ld/publishertag.prebid.144.js;
default-src ''self''; font-src ''self'' data: https://cdn.taboola.com https://finance.yahoo.com
https://fonts.gstatic.com https://s.yimg.com; frame-src ''self'' https://*.3lift.com
https://*.a-mo.net https://*.abcnews.go.com https://*.adsrvr.org https://*.adtrafficquality.google
https://*.advertising.com https://*.amazon-adsystem.com https://*.bbc.co.uk
https://*.casalemedia.com https://*.chartbeat.com https://*.clicktivatedvideoplayer.com
https://*.criteo.com https://*.deezer.com https://*.delivery.vidible.tv https://*.dailymotion.com/embed/video
https://*.emxdgt.com https://*.etonline.com https://*.facebook.com https://*.google.com
https://*.gumgum.com https://*.hulu.com https://*.indexww.com https://*.instagram.com
https://*.jac.yahoosandbox.com https://*.lijit.com https://*.livestream.com
https://*.media.net https://*.mtvnservices.com https://*.myfinance.com https://*.nbc.com
https://*.nytimes.com https://*.oath.com https://*.openx.net https://*.pubmatic.com
https://*.reuters.com https://*.rubiconproject.com https://*.safeframe.googlesyndication.com
https://*.scribd.com https://*.seedtag.com https://*.sharethrough.com https://*.smartasset.com
https://*.soundcloud.com https://*.spotify.com https://*.taboola.com https://*.ted.com
https://*.theguardian.com https://*.tpc.googlesyndication.com https://*.trustedstack.com
https://*.tumblr.com https://*.turner.com https://*.usatoday.com https://*.vimeo.com
https://*.washingtonpost.com https://*.wsj.com https://*.yahoo.com https://*.yahoo.net
https://*.yieldmo.com https://abcnews.go.com https://att.demdex.net/ https://bbc.co.uk
https://cdn.yahoofinance.com/ https://chartbeat.com https://compass.pressekompass.net
https://console.googletagservices.com https://delivery.vidible.tv https://embed.acast.com
https://embed.music.apple.com https://embed.podcasts.apple.com https://embedder.wirewax.com
https://flo.uri.sh/ https://flourish.studio https://www.googletagmanager.com
https://guce.yahoofinance.com https://interactives.ap.org https://livestream.com
https://openweb.jac.yahoosandbox.com/ https://platform.twitter.com https://s.yimg.com
https://securepubads.g.doubleclick.net https://service.force.com/ https://smartasset.com
https://tpc.googlesyndication.com https://tsdtocl.com/ https://view.ceros.com
https://vimeo.com https://vplayer.nbcolympics.com https://widget-yahoo.ofx.com
https://www.bankrate.com https://www.credible.com https://www.dailymotion.com/embed/video/
https://www.myfinance.com https://www.surveymonkey.com https://www.youtube.com
https://yahoo.crunchbaseembed.com https://yahoo.real-estate.hk; img-src ''self''
data: blob: about: https://www.google.com/ads/measurement/l https://*.1rx.io
https://*.3lift.com https://*.adnxs.com https://*.adsafeprotected.com/ https://*.adsrvr.org
https://*.adtrafficquality.google https://*.amazon-adsystem.com https://*.casalemedia.com
https://*.cloudfront.net/pixel.gif https://*.criteo.com https://*.dotomi.com
https://*.doubleclick.net https://*.everesttech.net https://*.googlesyndication.com
https://*.indexww.com/ https://*.kueezrtb.com https://*.liadm.com https://*.lijit.com/
https://*.media.net https://*.mediago.io https://*.openx.net https://*.pubmatic.com
https://*.rubiconproject.com https://*.sharethrough.com https://*.disqus.com
https://*.sonobi.com https://*.taboola.com https://*.wc.yahoodns.net https://*.yahoo.com
https://*.yahoo.net https://*.yieldmo.com https://*.yimg.com https://crb.kargo.com
https://googleads.g.doubleclick.net/pagead/interaction/ https://media.zenfs.com
https://o.aolcdn.com/images/dims https://pbs.twimg.com https://ping.chartbeat.net
https://platform.twitter.com https://pong.chartbeat.net https://public.flourish.studio/resources/
https://res.cloudinary.com/yfc-nonprod/ https://res.cloudinary.com/yfc-production/
https://s2.coinmarketcap.com/static/img/coins/ https://sb.scorecardresearch.com
https://securepubads.g.doubleclick.net/pagead/adview https://smetrics.att.com/b/ss/attnetprod/
https://static2.chartbeat.com https://syndication.twitter.com https://vop-yahoo.akamaized.net/pixel.gif
https://www.facebook.com https://yahoovod.hs.llnwd.net/pixel.gif; manifest-src
''self'' https://s.yimg.com; media-src ''self'' blob: https://finance.yahoo.com
https://s.yimg.com https://res.cloudinary.com/yfc-nonprod/ https://res.cloudinary.com/yfc-production/;
object-src ''none''; report-to csp-endpoint; report-uri https://csp.yahoo.com/beacon/csp?src=yahoofinance;
sandbox allow-downloads allow-forms allow-modals allow-popups-to-escape-sandbox
allow-popups allow-presentation allow-same-origin allow-scripts allow-top-navigation-by-user-activation;
script-src ''self'' blob: ''unsafe-inline'' ''unsafe-eval'' https://*.adtrafficquality.google
https://*.oath.com https://*.salesforceliveagent.com/ https://*.taboola.com
https://*.yahoo.com https://*.yahoo.net https://adservice.google.com/adsid/integrator.js
https://cdn.ampproject.org/rtv/ https://cdn.jsdelivr.net/npm/ https://cdn.rawgit.com/dcodeIO/protobuf.js/
https://console.googletagservices.com/pubconsole/loader.js https://ec.yimg.com/didomi/
https://gum.criteo.com/ https://jac.yahoosandbox.com/2.0.0/jac.js https://oathmembershipsupport.my.salesforce-sites.com/
https://oathmembershipsupport.my.salesforce.com/ https://openweb.jac.yahoosandbox.com/1.5.0/jac.js
https://pagead2.googlesyndication.com https://platform.twitter.com https://s.aolcdn.com/membership/omp-static/omp-widgets/
https://s.yimg.com https://securepubads.g.doubleclick.net https://service.force.com/embeddedservice/5.0/
https://static.criteo.net/js/ld/publishertag.prebid.144.js https://static.lightning.force.com/
https://static2.chartbeat.com https://tpc.googlesyndication.com/pagead/js/
https://tpc.googlesyndication.com/sodar/sodar2.js https://wnsrvbjmeprtfrnfx.ay.delivery
https://www.googletagservices.com/activeview/js; style-src ''self'' ''unsafe-inline''
https://cdn.taboola.com https://finance.yahoo.com https://oathmembershipsupport.my.salesforce-sites.com/
https://platform.twitter.com https://s.yimg.com https://service.force.com/;
worker-src ''self'' blob: https://finance.yahoo.com'
content-type:
- application/json
date:
- Fri, 10 Jan 2025 22:49:38 GMT
expect-ct:
- max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only
permissions-policy:
- interest-cohort=()
referrer-policy:
- no-referrer-when-downgrade
report-to:
- '{"endpoints":[{"url":"https://csp.yahoo.com/beacon/csp?src=yahoofinance"}],"group":"csp-endpoint","max-age":10886400}'
server:
- ATS
strict-transport-security:
- max-age=31536000
vary:
- Accept-Encoding
x-content-type-options:
- nosniff
x-download-options:
- noopen
x-envoy-decorator-operation:
- finance-nimbus--mtls-production-gq1.finance-k8s.svc.yahoo.local:4080/*
x-envoy-upstream-service-time:
- '91'
x-frame-options:
- SAMEORIGIN
x-permitted-cross-domain-policies:
- none
x-xss-protection:
- 1; mode=block
status:
code: 200
message: OK

View File

@@ -170,7 +170,7 @@ def test_y_finance_futures_curve_fetcher(credentials=test_credentials):
@pytest.mark.record_http
def test_y_finance_company_news_fetcher(credentials=test_credentials):
"""Test YFinanceCompanyNewsFetcher."""
params = {"symbol": "AAPL,MSFT"}
params = {"symbol": "AAPL,MSFT", "limit": 2}
fetcher = YFinanceCompanyNewsFetcher()
result = fetcher.test(params, credentials)