From 3a25aa83a1843d704eaafbd1eaa37229bec1ca10 Mon Sep 17 00:00:00 2001 From: Danglewood <85772166+deeleeramone@users.noreply.github.com> Date: Thu, 8 Aug 2024 08:32:23 -0700 Subject: [PATCH] [Feature] Replace Nasdaq SP500 Multiples With Direct Source (#6609) * replace nasdaq sp500 multiples with direct source * black * filter for start/end date * linting * didn't commit the changes * docstring * black * docstring * unused argument * ruff * markdown in description * UPPER --------- Co-authored-by: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com> --- .../standard_models/sp500_multiples.py | 12 +- openbb_platform/dev_install.py | 15 +- .../index/integration/test_index_api.py | 10 +- .../index/integration/test_index_python.py | 8 + .../index/openbb_index/index_router.py | 4 +- openbb_platform/providers/multpl/README.md | 13 + openbb_platform/providers/multpl/__init__.py | 1 + .../multpl/openbb_multpl/__init__.py | 13 + .../multpl/openbb_multpl/models/__init__.py | 1 + .../openbb_multpl/models/sp500_multiples.py | 179 ++ .../multpl/openbb_multpl/utils/__init__.py | 1 + openbb_platform/providers/multpl/poetry.lock | 1894 +++++++++++++++++ .../providers/multpl/pyproject.toml | 19 + .../providers/multpl/tests/__init__.py | 1 + ...pl_sp500_multiples_fetcher_urllib3_v1.yaml | 427 ++++ ...pl_sp500_multiples_fetcher_urllib3_v2.yaml | 427 ++++ .../multpl/tests/test_multpl_fetchers.py | 27 + .../openbb_nasdaq/models/sp500_multiples.py | 10 +- openbb_platform/pyproject.toml | 3 + 19 files changed, 3055 insertions(+), 10 deletions(-) create mode 100644 openbb_platform/providers/multpl/README.md create mode 100644 openbb_platform/providers/multpl/__init__.py create mode 100644 openbb_platform/providers/multpl/openbb_multpl/__init__.py create mode 100644 openbb_platform/providers/multpl/openbb_multpl/models/__init__.py create mode 100644 openbb_platform/providers/multpl/openbb_multpl/models/sp500_multiples.py create mode 100644 openbb_platform/providers/multpl/openbb_multpl/utils/__init__.py create mode 100644 openbb_platform/providers/multpl/poetry.lock create mode 100644 openbb_platform/providers/multpl/pyproject.toml create mode 100644 openbb_platform/providers/multpl/tests/__init__.py create mode 100644 openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v1.yaml create mode 100644 openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v2.yaml create mode 100644 openbb_platform/providers/multpl/tests/test_multpl_fetchers.py diff --git a/openbb_platform/core/openbb_core/provider/standard_models/sp500_multiples.py b/openbb_platform/core/openbb_core/provider/standard_models/sp500_multiples.py index 8631478c467..b09a0d98b3e 100644 --- a/openbb_platform/core/openbb_core/provider/standard_models/sp500_multiples.py +++ b/openbb_platform/core/openbb_core/provider/standard_models/sp500_multiples.py @@ -1,7 +1,7 @@ """SP500 Multiples Standard Model.""" from datetime import date as dateType -from typing import Literal, Optional +from typing import Literal, Optional, Union from pydantic import Field @@ -12,7 +12,7 @@ from openbb_core.provider.utils.descriptions import ( QUERY_DESCRIPTIONS, ) -SERIES_NAMES = Literal[ +SERIES_NAME = Literal[ "shiller_pe_month", "shiller_pe_year", "pe_year", @@ -55,7 +55,7 @@ SERIES_NAMES = Literal[ class SP500MultiplesQueryParams(QueryParams): """SP500 Multiples Query.""" - series_name: SERIES_NAMES = Field( + series_name: Union[SERIES_NAME, str] = Field( description="The name of the series. Defaults to 'pe_month'.", default="pe_month", ) @@ -71,3 +71,9 @@ class SP500MultiplesData(Data): """SP500 Multiples Data.""" date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", "")) + name: str = Field( + description="Name of the series.", + ) + value: Union[int, float] = Field( + description="Value of the series.", + ) diff --git a/openbb_platform/dev_install.py b/openbb_platform/dev_install.py index 364320e0d27..5ea58e7ef9a 100644 --- a/openbb_platform/dev_install.py +++ b/openbb_platform/dev_install.py @@ -1,5 +1,7 @@ """Install for development script.""" +# flake8: noqa: S603 + import subprocess import sys from pathlib import Path @@ -52,6 +54,7 @@ openbb-ecb = { path = "./providers/ecb", optional = true, develop = true } openbb-finra = { path = "./providers/finra", optional = true, develop = true } openbb-finviz = { path = "./providers/finviz", optional = true, develop = true } openbb-government-us = { path = "./providers/government_us", optional = true, develop = true } +openbb-multpl = { path = "./providers/multpl", optional = true, develop = true } openbb-nasdaq = { path = "./providers/nasdaq", optional = true, develop = true } openbb-seeking-alpha = { path = "./providers/seeking_alpha", optional = true, develop = true } openbb-stockgrid = { path = "./providers/stockgrid" , optional = true, develop = true } @@ -138,10 +141,14 @@ def install_platform_local(_extras: bool = False): extras_args = ["-E", "all"] if _extras else [] subprocess.run( - CMD + ["lock", "--no-update"], cwd=PLATFORM_PATH, check=True # noqa: S603 + CMD + ["lock", "--no-update"], + cwd=PLATFORM_PATH, + check=True, ) subprocess.run( - CMD + ["install"] + extras_args, cwd=PLATFORM_PATH, check=True # noqa: S603 + CMD + ["install"] + extras_args, + cwd=PLATFORM_PATH, + check=True, ) except (Exception, KeyboardInterrupt) as e: @@ -179,7 +186,9 @@ def install_platform_cli(): CMD = [sys.executable, "-m", "poetry"] subprocess.run( - CMD + ["lock", "--no-update"], cwd=CLI_PATH, check=True # noqa: S603 + CMD + ["lock", "--no-update"], + cwd=CLI_PATH, + check=True, # noqa: S603 ) subprocess.run(CMD + ["install"], cwd=CLI_PATH, check=True) # noqa: S603 diff --git a/openbb_platform/extensions/index/integration/test_index_api.py b/openbb_platform/extensions/index/integration/test_index_api.py index baba6ed5c20..9ae1270bd1a 100644 --- a/openbb_platform/extensions/index/integration/test_index_api.py +++ b/openbb_platform/extensions/index/integration/test_index_api.py @@ -197,7 +197,15 @@ def test_index_snapshots(params, headers): "transform": "diff", "provider": "nasdaq", } - ) + ), + ( + { + "series_name": "pe_month", + "start_date": None, + "end_date": None, + "provider": "multpl", + } + ), ], ) @pytest.mark.integration diff --git a/openbb_platform/extensions/index/integration/test_index_python.py b/openbb_platform/extensions/index/integration/test_index_python.py index 61fdb91b79d..bf35704828e 100644 --- a/openbb_platform/extensions/index/integration/test_index_python.py +++ b/openbb_platform/extensions/index/integration/test_index_python.py @@ -187,6 +187,14 @@ def test_index_snapshots(params, obb): "provider": "nasdaq", } ), + ( + { + "series_name": "pe_month", + "start_date": None, + "end_date": None, + "provider": "multpl", + } + ), ], ) @pytest.mark.integration diff --git a/openbb_platform/extensions/index/openbb_index/index_router.py b/openbb_platform/extensions/index/openbb_index/index_router.py index 9c7cc87a5e7..2e38f4a92b9 100644 --- a/openbb_platform/extensions/index/openbb_index/index_router.py +++ b/openbb_platform/extensions/index/openbb_index/index_router.py @@ -93,8 +93,8 @@ async def search( @router.command( model="SP500Multiples", examples=[ - APIEx(parameters={"provider": "nasdaq"}), - APIEx(parameters={"series_name": "shiller_pe_year", "provider": "nasdaq"}), + APIEx(parameters={"provider": "multpl"}), + APIEx(parameters={"series_name": "shiller_pe_year", "provider": "multpl"}), ], ) async def sp500_multiples( diff --git a/openbb_platform/providers/multpl/README.md b/openbb_platform/providers/multpl/README.md new file mode 100644 index 00000000000..5c0d7c44177 --- /dev/null +++ b/openbb_platform/providers/multpl/README.md @@ -0,0 +1,13 @@ +# Multpl Provider Extension + +This is an implementation of the data published to (https://multpl.com)[https;//multpl.com] + +## Installation + +``` +pip install openbb-multpl +``` + +## Endpoints + +- `obb.index.sp500_multiples` diff --git a/openbb_platform/providers/multpl/__init__.py b/openbb_platform/providers/multpl/__init__.py new file mode 100644 index 00000000000..709aa464154 --- /dev/null +++ b/openbb_platform/providers/multpl/__init__.py @@ -0,0 +1 @@ +"""Multpl Provider Extension.""" diff --git a/openbb_platform/providers/multpl/openbb_multpl/__init__.py b/openbb_platform/providers/multpl/openbb_multpl/__init__.py new file mode 100644 index 00000000000..0647f54afed --- /dev/null +++ b/openbb_platform/providers/multpl/openbb_multpl/__init__.py @@ -0,0 +1,13 @@ +"""Multpl Provider Module.""" + +from openbb_core.provider.abstract.provider import Provider +from openbb_multpl.models.sp500_multiples import MultplSP500MultiplesFetcher + +multpl_provider = Provider( + name="multpl", + website="https://www.multpl.com/", + description="""Public broad-market data published to https://multpl.com.""", + fetcher_dict={ + "SP500Multiples": MultplSP500MultiplesFetcher, + }, +) diff --git a/openbb_platform/providers/multpl/openbb_multpl/models/__init__.py b/openbb_platform/providers/multpl/openbb_multpl/models/__init__.py new file mode 100644 index 00000000000..645755d1be1 --- /dev/null +++ b/openbb_platform/providers/multpl/openbb_multpl/models/__init__.py @@ -0,0 +1 @@ +"""Multpl Provider Models.""" diff --git a/openbb_platform/providers/multpl/openbb_multpl/models/sp500_multiples.py b/openbb_platform/providers/multpl/openbb_multpl/models/sp500_multiples.py new file mode 100644 index 00000000000..4d0052ebbdf --- /dev/null +++ b/openbb_platform/providers/multpl/openbb_multpl/models/sp500_multiples.py @@ -0,0 +1,179 @@ +"""Multpl S&P 500 Multiples Model.""" + +# pylint: disable=unused-argument + +from typing import Any, Dict, List, Optional +from warnings import warn + +from openbb_core.app.model.abstract.error import OpenBBError +from openbb_core.provider.abstract.fetcher import Fetcher +from openbb_core.provider.standard_models.sp500_multiples import ( + SP500MultiplesData, + SP500MultiplesQueryParams, +) +from openbb_core.provider.utils.errors import EmptyDataError +from pydantic import field_validator + +BASE_URL = "https://www.multpl.com/" + +URL_DICT = { + "shiller_pe_month": "shiller-pe/table/by-month", + "shiller_pe_year": "shiller-pe/table/by-year", + "pe_year": "s-p-500-pe-ratio/table/by-year", + "pe_month": "s-p-500-pe-ratio/table/by-month", + "dividend_year": "s-p-500-dividend/table/by-year", + "dividend_month": "s-p-500-dividend/table/by-month", + "dividend_growth_quarter": "s-p-500-dividend-growth/table/by-quarter", + "dividend_growth_year": "s-p-500-dividend-growth/table/by-year", + "dividend_yield_year": "s-p-500-dividend-yield/table/by-year", + "dividend_yield_month": "s-p-500-dividend-yield/table/by-month", + "earnings_year": "s-p-500-earnings/table/by-year", + "earnings_month": "s-p-500-earnings/table/by-month", + "earnings_growth_year": "s-p-500-earnings-growth/table/by-year", + "earnings_growth_quarter": "s-p-500-earnings-growth/table/by-quarter", + "real_earnings_growth_year": "s-p-500-real-earnings-growth/table/by-year", + "real_earnings_growth_quarter": "s-p-500-real-earnings-growth/table/by-quarter", + "earnings_yield_year": "s-p-500-earnings-yield/table/by-year", + "earnings_yield_month": "s-p-500-earnings-yield/table/by-month", + "real_price_year": "s-p-500-historical-prices/table/by-year", + "real_price_month": "s-p-500-historical-prices/table/by-month", + "inflation_adjusted_price_year": "inflation-adjusted-s-p-500/table/by-year", + "inflation_adjusted_price_month": "inflation-adjusted-s-p-500/table/by-month", + "sales_year": "s-p-500-sales/table/by-year", + "sales_quarter": "s-p-500-sales/table/by-quarter", + "sales_growth_year": "s-p-500-sales-growth/table/by-year", + "sales_growth_quarter": "s-p-500-sales-growth/table/by-quarter", + "real_sales_year": "s-p-500-real-sales/table/by-year", + "real_sales_quarter": "s-p-500-real-sales/table/by-quarter", + "real_sales_growth_year": "s-p-500-real-sales-growth/table/by-year", + "real_sales_growth_quarter": "s-p-500-real-sales-growth/table/by-quarter", + "price_to_sales_year": "s-p-500-price-to-sales/table/by-year", + "price_to_sales_quarter": "s-p-500-price-to-sales/table/by-quarter", + "price_to_book_value_year": "s-p-500-price-to-book/table/by-year", + "price_to_book_value_quarter": "s-p-500-price-to-book/table/by-quarter", + "book_value_year": "s-p-500-book-value/table/by-year", + "book_value_quarter": "s-p-500-book-value/table/by-quarter", +} + + +class MultplSP500MultiplesQueryParams(SP500MultiplesQueryParams): + """Multpl S&P 500 Multiples Query Params.""" + + __json_schema_extra__ = { + "series_name": { + "multiple_items_allowed": True, + "choices": sorted(list(URL_DICT)), + } + } + + @field_validator("series_name", mode="before", check_fields=False) + @classmethod + def validate_series_name(cls, v): + """Validate series_name.""" + series = v.split(",") + new_values: List = [] + for s in series: + if s not in URL_DICT: + raise OpenBBError( + f"{s} is not a valid `series_name`. Choices are: \n{sorted(list(URL_DICT))}\n" + ) + new_values.append(s) + if not new_values: + raise OpenBBError( + f"No valid series names provided. Choices are: \n{sorted(list(URL_DICT))}\n" + ) + return ",".join(new_values) + + +class MultplSP500MultiplesData(SP500MultiplesData): + """Multpl S&P 500 Multiples Data.""" + + __alias_dict__ = { + "date": "Date", + "value": "Value", + } + + +class MultplSP500MultiplesFetcher( + Fetcher[ + MultplSP500MultiplesQueryParams, + List[MultplSP500MultiplesData], + ] +): + """Multpl S&P 500 Multiples Fetcher.""" + + @staticmethod + def transform_query(params: Dict[str, Any]) -> MultplSP500MultiplesQueryParams: + """Transform the query params.""" + return MultplSP500MultiplesQueryParams(**params) + + @staticmethod + async def aextract_data( + query: MultplSP500MultiplesQueryParams, + credentials: Optional[Dict[str, str]], + **kwargs: Any, + ) -> List[Dict]: + """Extract data.""" + # pylint: disable=import-outside-toplevel + import asyncio # noqa + from io import StringIO + from openbb_core.provider.utils.helpers import amake_request + from numpy import nan + from pandas import read_html, to_datetime + + series = query.series_name.split(",") + urls = {s: f"{BASE_URL}{URL_DICT[s]}" for s in series} + results: List = [] + + async def response_callback(response, _): + """Response callback.""" + return await response.text() + + async def get_one(url, series): + """Get data for one series.""" + res = await amake_request(url, response_callback=response_callback) + if res: + df = read_html(StringIO(res))[0] # type: ignore + if not df.empty: + df["Date"] = to_datetime(df["Date"]).dt.date + df = df.sort_values("Date").reset_index(drop=True) + if query.start_date: + df = df[df["Date"] >= query.start_date] + if query.end_date: + df = df[df["Date"] <= query.end_date] + df["Value"] = df["Value"].apply( + lambda x: ( + x.strip().replace("† ", "").replace("%", "") + if isinstance(x, str) + else x + ) + ) + df["name"] = series + if "growth" in series or "yield" in series: + df["Value"] = df["Value"].astype(float) / 100 + + results.extend(df.replace({nan: None}).to_dict(orient="records")) + else: + warn(f"Failed to get data for {series}.") + + await asyncio.gather(*[get_one(url, series) for series, url in urls.items()]) + + if not results: + raise EmptyDataError("The request was returned empty.") + + return results + + @staticmethod + def transform_data( + query: MultplSP500MultiplesQueryParams, + data: List[Dict], + **kwargs: Any, + ) -> List[MultplSP500MultiplesData]: + """Transform and validate the data.""" + return [ + MultplSP500MultiplesData.model_validate(d) + for d in sorted( + data, + key=lambda x: (x["Date"], x["name"]), + ) + ] diff --git a/openbb_platform/providers/multpl/openbb_multpl/utils/__init__.py b/openbb_platform/providers/multpl/openbb_multpl/utils/__init__.py new file mode 100644 index 00000000000..da3e91ec2bd --- /dev/null +++ b/openbb_platform/providers/multpl/openbb_multpl/utils/__init__.py @@ -0,0 +1 @@ +"""Utilities and Helpers.""" diff --git a/openbb_platform/providers/multpl/poetry.lock b/openbb_platform/providers/multpl/poetry.lock new file mode 100644 index 00000000000..7b9aff68530 --- /dev/null +++ b/openbb_platform/providers/multpl/poetry.lock @@ -0,0 +1,1894 @@ +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.3.4" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = "<4.0,>=3.8" +files = [ + {file = "aiohappyeyeballs-2.3.4-py3-none-any.whl", hash = "sha256:40a16ceffcf1fc9e142fd488123b2e218abc4188cf12ac20c67200e1579baa42"}, + {file = "aiohappyeyeballs-2.3.4.tar.gz", hash = "sha256:7e1ae8399c320a8adec76f6c919ed5ceae6edd4c3672f4d9eae2b27e37c80ff6"}, +] + +[[package]] +name = "aiohttp" +version = "3.10.0" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "aiohttp-3.10.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:68ab608118e212f56feef44d4785aa90b713042da301f26338f36497b481cd79"}, + {file = "aiohttp-3.10.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:64a117c16273ca9f18670f33fc7fd9604b9f46ddb453ce948262889a6be72868"}, + {file = "aiohttp-3.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:54076a25f32305e585a3abae1f0ad10646bec539e0e5ebcc62b54ee4982ec29f"}, + {file = "aiohttp-3.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71c76685773444d90ae83874433505ed800e1706c391fdf9e57cc7857611e2f4"}, + {file = "aiohttp-3.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bdda86ab376f9b3095a1079a16fbe44acb9ddde349634f1c9909d13631ff3bcf"}, + {file = "aiohttp-3.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d6dcd1d21da5ae1416f69aa03e883a51e84b6c803b8618cbab341ac89a85b9e"}, + {file = "aiohttp-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:06ef0135d7ab7fb0284342fbbf8e8ddf73b7fee8ecc55f5c3a3d0a6b765e6d8b"}, + {file = "aiohttp-3.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ccab9381f38c669bb9254d848f3b41a3284193b3e274a34687822f98412097e9"}, + {file = "aiohttp-3.10.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:947da3aee057010bc750b7b4bb65cbd01b0bdb7c4e1cf278489a1d4a1e9596b3"}, + {file = "aiohttp-3.10.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:5268b35fee7eb754fb5b3d0f16a84a2e9ed21306f5377f3818596214ad2d7714"}, + {file = "aiohttp-3.10.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ff25d988fd6ce433b5c393094a5ca50df568bdccf90a8b340900e24e0d5fb45c"}, + {file = "aiohttp-3.10.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:594b4b4f1dfe8378b4a0342576dc87a930c960641159f5ae83843834016dbd59"}, + {file = "aiohttp-3.10.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c8820dad615cd2f296ed3fdea8402b12663ac9e5ea2aafc90ef5141eb10b50b8"}, + {file = "aiohttp-3.10.0-cp310-cp310-win32.whl", hash = "sha256:ab1d870403817c9a0486ca56ccbc0ebaf85d992277d48777faa5a95e40e5bcca"}, + {file = "aiohttp-3.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:563705a94ea3af43467167f3a21c665f3b847b2a0ae5544fa9e18df686a660da"}, + {file = "aiohttp-3.10.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13679e11937d3f37600860de1f848e2e062e2b396d3aa79b38c89f9c8ab7e791"}, + {file = "aiohttp-3.10.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c66a1aadafbc0bd7d648cb7fcb3860ec9beb1b436ce3357036a4d9284fcef9a"}, + {file = "aiohttp-3.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b7e3545b06aae925f90f06402e05cfb9c62c6409ce57041932163b09c48daad6"}, + {file = "aiohttp-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:effafe5144aa32f0388e8f99b1b2692cf094ea2f6b7ceca384b54338b77b1f50"}, + {file = "aiohttp-3.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a04f2c8d41821a2507b49b2694c40495a295b013afb0cc7355b337980b47c546"}, + {file = "aiohttp-3.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6dbfac556219d884d50edc6e1952a93545c2786193f00f5521ec0d9d464040ab"}, + {file = "aiohttp-3.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a65472256c5232681968deeea3cd5453aa091c44e8db09f22f1a1491d422c2d9"}, + {file = "aiohttp-3.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:941366a554e566efdd3f042e17a9e461a36202469e5fd2aee66fe3efe6412aef"}, + {file = "aiohttp-3.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:927b4aca6340301e7d8bb05278d0b6585b8633ea852b7022d604a5df920486bf"}, + {file = "aiohttp-3.10.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:34adb8412e736a5d0df6d1fccdf71599dfb07a63add241a94a189b6364e997f1"}, + {file = "aiohttp-3.10.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:43c60d9b332a01ee985f080f639f3e56abcfb95ec1320013c94083c3b6a2e143"}, + {file = "aiohttp-3.10.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:3f49edf7c5cd2987634116e1b6a0ee2438fca17f7c4ee480ff41decb76cf6158"}, + {file = "aiohttp-3.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9784246431eaf9d651b3cc06f9c64f9a9f57299f4971c5ea778fa0b81074ef13"}, + {file = "aiohttp-3.10.0-cp311-cp311-win32.whl", hash = "sha256:bec91402df78b897a47b66b9c071f48051cea68d853d8bc1d4404896c6de41ae"}, + {file = "aiohttp-3.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:25a9924343bf91b0c5082cae32cfc5a1f8787ac0433966319ec07b0ed4570722"}, + {file = "aiohttp-3.10.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:21dab4a704c68dc7bc2a1219a4027158e8968e2079f1444eda2ba88bc9f2895f"}, + {file = "aiohttp-3.10.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:872c0dcaccebd5733d535868fe2356aa6939f5827dcea7a8b9355bb2eff6f56e"}, + {file = "aiohttp-3.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f381424dbce313bb5a666a215e7a9dcebbc533e9a2c467a1f0c95279d24d1fa7"}, + {file = "aiohttp-3.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ca48e9f092a417c6669ee8d3a19d40b3c66dde1a2ae0d57e66c34812819b671"}, + {file = "aiohttp-3.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbe2f6d0466f5c59c7258e0745c20d74806a1385fbb7963e5bbe2309a11cc69b"}, + {file = "aiohttp-3.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:03799a95402a7ed62671c4465e1eae51d749d5439dbc49edb6eee52ea165c50b"}, + {file = "aiohttp-3.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5549c71c35b5f057a4eebcc538c41299826f7813f28880722b60e41c861a57ec"}, + {file = "aiohttp-3.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6fa7a42b78d8698491dc4ad388169de54cca551aa9900f750547372de396277"}, + {file = "aiohttp-3.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:77bbf0a2f6fefac6c0db1792c234f577d80299a33ce7125467439097cf869198"}, + {file = "aiohttp-3.10.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:34eaf5cfcc979846d73571b1a4be22cad5e029d55cdbe77cdc7545caa4dcb925"}, + {file = "aiohttp-3.10.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4f1de31a585344a106db43a9c3af2e15bb82e053618ff759f1fdd31d82da38eb"}, + {file = "aiohttp-3.10.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:f3a1ea61d96146e9b9e5597069466e2e4d9e01e09381c5dd51659f890d5e29e7"}, + {file = "aiohttp-3.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:73c01201219eb039a828bb58dcc13112eec2fed6eea718356316cd552df26e04"}, + {file = "aiohttp-3.10.0-cp312-cp312-win32.whl", hash = "sha256:33e915971eee6d2056d15470a1214e4e0f72b6aad10225548a7ab4c4f54e2db7"}, + {file = "aiohttp-3.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:2dc75da06c35a7b47a88ceadbf993a53d77d66423c2a78de8c6f9fb41ec35687"}, + {file = "aiohttp-3.10.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:f1bc4d68b83966012813598fe39b35b4e6019b69d29385cf7ec1cb08e1ff829b"}, + {file = "aiohttp-3.10.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d9b8b31c057a0b7bb822a159c490af05cb11b8069097f3236746a78315998afa"}, + {file = "aiohttp-3.10.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:10f0d7894ddc6ff8f369e3fdc082ef1f940dc1f5b9003cd40945d24845477220"}, + {file = "aiohttp-3.10.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:72de8ffba4a27e3c6e83e58a379fc4fe5548f69f9b541fde895afb9be8c31658"}, + {file = "aiohttp-3.10.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cd36d0f0afc2bd84f007cedd2d9a449c3cf04af471853a25eb71f28bc2e1a119"}, + {file = "aiohttp-3.10.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f64d503c661864866c09806ac360b95457f872d639ca61719115a9f389b2ec90"}, + {file = "aiohttp-3.10.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31616121369bc823791056c632f544c6c8f8d1ceecffd8bf3f72ef621eaabf49"}, + {file = "aiohttp-3.10.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f76c12abb88b7ee64b3f9ae72f0644af49ff139067b5add142836dab405d60d4"}, + {file = "aiohttp-3.10.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:6c99eef30a7e98144bcf44d615bc0f445b3a3730495fcc16124cb61117e1f81e"}, + {file = "aiohttp-3.10.0-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:39e7ec718e7a1971a5d98357e3e8c0529477d45c711d32cd91999dc8d8404e1e"}, + {file = "aiohttp-3.10.0-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:f1cef548ee4e84264b78879de0c754bbe223193c6313beb242ce862f82eab184"}, + {file = "aiohttp-3.10.0-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:f98f036eab11d2f90cdd01b9d1410de9d7eb520d070debeb2edadf158b758431"}, + {file = "aiohttp-3.10.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:cc4376ff537f7d2c1e98f97f6d548e99e5d96078b0333c1d3177c11467b972de"}, + {file = "aiohttp-3.10.0-cp38-cp38-win32.whl", hash = "sha256:ebedc51ee6d39f9ea5e26e255fd56a7f4e79a56e77d960f9bae75ef4f95ed57f"}, + {file = "aiohttp-3.10.0-cp38-cp38-win_amd64.whl", hash = "sha256:aad87626f31a85fd4af02ba7fd6cc424b39d4bff5c8677e612882649da572e47"}, + {file = "aiohttp-3.10.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1dc95c5e2a5e60095f1bb51822e3b504e6a7430c9b44bff2120c29bb876c5202"}, + {file = "aiohttp-3.10.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1c83977f7b6f4f4a96fab500f5a76d355f19f42675224a3002d375b3fb309174"}, + {file = "aiohttp-3.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8cedc48d36652dd3ac40e5c7c139d528202393e341a5e3475acedb5e8d5c4c75"}, + {file = "aiohttp-3.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b099fbb823efed3c1d736f343ac60d66531b13680ee9b2669e368280f41c2b8"}, + {file = "aiohttp-3.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d583755ddb9c97a2da1322f17fc7d26792f4e035f472d675e2761c766f94c2ff"}, + {file = "aiohttp-3.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a03a4407bdb9ae815f0d5a19df482b17df530cf7bf9c78771aa1c713c37ff1f"}, + {file = "aiohttp-3.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcb6e65f6ea7caa0188e36bebe9e72b259d3d525634758c91209afb5a6cbcba7"}, + {file = "aiohttp-3.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b6612c6ed3147a4a2d6463454b94b877566b38215665be4c729cd8b7bdce15b4"}, + {file = "aiohttp-3.10.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:0b0c0148d2a69b82ffe650c2ce235b431d49a90bde7dd2629bcb40314957acf6"}, + {file = "aiohttp-3.10.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0d85a173b4dbbaaad1900e197181ea0fafa617ca6656663f629a8a372fdc7d06"}, + {file = "aiohttp-3.10.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:12c43dace645023583f3dd2337dfc3aa92c99fb943b64dcf2bc15c7aa0fb4a95"}, + {file = "aiohttp-3.10.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:33acb0d9bf12cdc80ceec6f5fda83ea7990ce0321c54234d629529ca2c54e33d"}, + {file = "aiohttp-3.10.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:91e0b76502205484a4d1d6f25f461fa60fe81a7987b90e57f7b941b0753c3ec8"}, + {file = "aiohttp-3.10.0-cp39-cp39-win32.whl", hash = "sha256:1ebd8ed91428ffbe8b33a5bd6f50174e11882d5b8e2fe28670406ab5ee045ede"}, + {file = "aiohttp-3.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:0433795c4a8bafc03deb3e662192250ba5db347c41231b0273380d2f53c9ea0b"}, + {file = "aiohttp-3.10.0.tar.gz", hash = "sha256:e8dd7da2609303e3574c95b0ec9f1fd49647ef29b94701a2862cceae76382e1d"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<5.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +yarl = ">=1.0,<2.0" + +[package.extras] +speedups = ["Brotli", "aiodns (>=3.2.0)", "brotlicffi"] + +[[package]] +name = "aiosignal" +version = "1.3.1" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.7" +files = [ + {file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"}, + {file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.4.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.8" +files = [ + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, +] + +[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\""} + +[package.extras] +doc = ["Sphinx (>=7)", "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", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] + +[[package]] +name = "async-timeout" +version = "4.0.3" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.7" +files = [ + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, +] + +[[package]] +name = "attrs" +version = "24.1.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.7" +files = [ + {file = "attrs-24.1.0-py3-none-any.whl", hash = "sha256:377b47448cb61fea38533f671fba0d0f8a96fd58facd4dc518e3dac9dbea0905"}, + {file = "attrs-24.1.0.tar.gz", hash = "sha256:adbdec84af72d38be7628e353a09b6a6790d15cd71819f6e9d7b0faa8a125745"}, +] + +[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]"] +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"] + +[[package]] +name = "backoff" +version = "2.2.1" +description = "Function decoration for backoff and retry" +optional = false +python-versions = ">=3.7,<4.0" +files = [ + {file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"}, + {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, +] + +[[package]] +name = "certifi" +version = "2024.7.4" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +files = [ + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, +] + +[[package]] +name = "click" +version = "8.1.7" +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"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "dnspython" +version = "2.6.1" +description = "DNS toolkit" +optional = false +python-versions = ">=3.8" +files = [ + {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, + {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "sphinx (>=7.2.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=41)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=0.9.25)"] +idna = ["idna (>=3.6)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, +] + +[package.dependencies] +dnspython = ">=2.0.0" +idna = ">=2.0.0" + +[[package]] +name = "exceptiongroup" +version = "1.2.2" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +files = [ + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, +] + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.111.1" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fastapi-0.111.1-py3-none-any.whl", hash = "sha256:4f51cfa25d72f9fbc3280832e84b32494cf186f50158d364a8765aabf22587bf"}, + {file = "fastapi-0.111.1.tar.gz", hash = "sha256:ddd1ac34cb1f76c2e2d7f8545a4bcb5463bce4834e81abf0b189e0c359ab2413"}, +] + +[package.dependencies] +email_validator = ">=2.0.0" +fastapi-cli = ">=0.0.2" +httpx = ">=0.23.0" +jinja2 = ">=2.11.2" +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +python-multipart = ">=0.0.7" +starlette = ">=0.37.2,<0.38.0" +typing-extensions = ">=4.8.0" +uvicorn = {version = ">=0.12.0", extras = ["standard"]} + +[package.extras] +all = ["email_validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastapi-cli" +version = "0.0.5" +description = "Run and manage FastAPI apps from the command line with FastAPI CLI. 🚀" +optional = false +python-versions = ">=3.8" +files = [ + {file = "fastapi_cli-0.0.5-py3-none-any.whl", hash = "sha256:e94d847524648c748a5350673546bbf9bcaeb086b33c24f2e82e021436866a46"}, + {file = "fastapi_cli-0.0.5.tar.gz", hash = "sha256:d30e1239c6f46fcb95e606f02cdda59a1e2fa778a54b64686b3ff27f6211ff9f"}, +] + +[package.dependencies] +typer = ">=0.12.3" +uvicorn = {version = ">=0.15.0", extras = ["standard"]} + +[package.extras] +standard = ["uvicorn[standard] (>=0.15.0)"] + +[[package]] +name = "frozenlist" +version = "1.4.1" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.8" +files = [ + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"}, + {file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"}, + {file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"}, + {file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"}, + {file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"}, + {file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"}, + {file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"}, + {file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"}, + {file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"}, + {file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"}, + {file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"}, + {file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"}, + {file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"}, + {file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"}, + {file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"}, + {file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:20b51fa3f588ff2fe658663db52a41a4f7aa6c04f6201449c6c7c476bd255c0d"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:410478a0c562d1a5bcc2f7ea448359fcb050ed48b3c6f6f4f18c313a9bdb1826"}, + {file = "frozenlist-1.4.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:c6321c9efe29975232da3bd0af0ad216800a47e93d763ce64f291917a381b8eb"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48f6a4533887e189dae092f1cf981f2e3885175f7a0f33c91fb5b7b682b6bab6"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6eb73fa5426ea69ee0e012fb59cdc76a15b1283d6e32e4f8dc4482ec67d1194d"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fbeb989b5cc29e8daf7f976b421c220f1b8c731cbf22b9130d8815418ea45887"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:32453c1de775c889eb4e22f1197fe3bdfe457d16476ea407472b9442e6295f7a"}, + {file = "frozenlist-1.4.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:693945278a31f2086d9bf3df0fe8254bbeaef1fe71e1351c3bd730aa7d31c41b"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:1d0ce09d36d53bbbe566fe296965b23b961764c0bcf3ce2fa45f463745c04701"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:3a670dc61eb0d0eb7080890c13de3066790f9049b47b0de04007090807c776b0"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:dca69045298ce5c11fd539682cff879cc1e664c245d1c64da929813e54241d11"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a06339f38e9ed3a64e4c4e43aec7f59084033647f908e4259d279a52d3757d09"}, + {file = "frozenlist-1.4.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b7f2f9f912dca3934c1baec2e4585a674ef16fe00218d833856408c48d5beee7"}, + {file = "frozenlist-1.4.1-cp38-cp38-win32.whl", hash = "sha256:e7004be74cbb7d9f34553a5ce5fb08be14fb33bc86f332fb71cbe5216362a497"}, + {file = "frozenlist-1.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:5a7d70357e7cee13f470c7883a063aae5fe209a493c57d86eb7f5a6f910fae09"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:bfa4a17e17ce9abf47a74ae02f32d014c5e9404b6d9ac7f729e01562bbee601e"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b7e3ed87d4138356775346e6845cccbe66cd9e207f3cd11d2f0b9fd13681359d"}, + {file = "frozenlist-1.4.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c99169d4ff810155ca50b4da3b075cbde79752443117d89429595c2e8e37fed8"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edb678da49d9f72c9f6c609fbe41a5dfb9a9282f9e6a2253d5a91e0fc382d7c0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6db4667b187a6742b33afbbaf05a7bc551ffcf1ced0000a571aedbb4aa42fc7b"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55fdc093b5a3cb41d420884cdaf37a1e74c3c37a31f46e66286d9145d2063bd0"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:82e8211d69a4f4bc360ea22cd6555f8e61a1bd211d1d5d39d3d228b48c83a897"}, + {file = "frozenlist-1.4.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89aa2c2eeb20957be2d950b85974b30a01a762f3308cd02bb15e1ad632e22dc7"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9d3e0c25a2350080e9319724dede4f31f43a6c9779be48021a7f4ebde8b2d742"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7268252af60904bf52c26173cbadc3a071cece75f873705419c8681f24d3edea"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:0c250a29735d4f15321007fb02865f0e6b6a41a6b88f1f523ca1596ab5f50bd5"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:96ec70beabbd3b10e8bfe52616a13561e58fe84c0101dd031dc78f250d5128b9"}, + {file = "frozenlist-1.4.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:23b2d7679b73fe0e5a4560b672a39f98dfc6f60df63823b0a9970525325b95f6"}, + {file = "frozenlist-1.4.1-cp39-cp39-win32.whl", hash = "sha256:a7496bfe1da7fb1a4e1cc23bb67c58fab69311cc7d32b5a99c2007b4b2a0e932"}, + {file = "frozenlist-1.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:e6a20a581f9ce92d389a8c7d7c3dd47c81fd5d6e655c8dddf341e14aa48659d0"}, + {file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"}, + {file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"}, +] + +[[package]] +name = "h11" +version = "0.14.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.7" +files = [ + {file = "h11-0.14.0-py3-none-any.whl", hash = "sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761"}, + {file = "h11-0.14.0.tar.gz", hash = "sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d"}, +] + +[[package]] +name = "html5lib" +version = "1.1" +description = "HTML parser based on the WHATWG HTML specification" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +files = [ + {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"}, + {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"}, +] + +[package.dependencies] +six = ">=1.9" +webencodings = "*" + +[package.extras] +all = ["chardet (>=2.2)", "genshi", "lxml"] +chardet = ["chardet (>=2.2)"] +genshi = ["genshi"] +lxml = ["lxml"] + +[[package]] +name = "httpcore" +version = "1.0.5" +description = "A minimal low-level HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, +] + +[package.dependencies] +certifi = "*" +h11 = ">=0.13,<0.15" + +[package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] + +[[package]] +name = "httptools" +version = "0.6.1" +description = "A collection of framework independent HTTP protocol utils." +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "httptools-0.6.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d2f6c3c4cb1948d912538217838f6e9960bc4a521d7f9b323b3da579cd14532f"}, + {file = "httptools-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:00d5d4b68a717765b1fabfd9ca755bd12bf44105eeb806c03d1962acd9b8e563"}, + {file = "httptools-0.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:639dc4f381a870c9ec860ce5c45921db50205a37cc3334e756269736ff0aac58"}, + {file = "httptools-0.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e57997ac7fb7ee43140cc03664de5f268813a481dff6245e0075925adc6aa185"}, + {file = "httptools-0.6.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0ac5a0ae3d9f4fe004318d64b8a854edd85ab76cffbf7ef5e32920faef62f142"}, + {file = "httptools-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:3f30d3ce413088a98b9db71c60a6ada2001a08945cb42dd65a9a9fe228627658"}, + {file = "httptools-0.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:1ed99a373e327f0107cb513b61820102ee4f3675656a37a50083eda05dc9541b"}, + {file = "httptools-0.6.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7a7ea483c1a4485c71cb5f38be9db078f8b0e8b4c4dc0210f531cdd2ddac1ef1"}, + {file = "httptools-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:85ed077c995e942b6f1b07583e4eb0a8d324d418954fc6af913d36db7c05a5a0"}, + {file = "httptools-0.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b0bb634338334385351a1600a73e558ce619af390c2b38386206ac6a27fecfc"}, + {file = "httptools-0.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d9ceb2c957320def533671fc9c715a80c47025139c8d1f3797477decbc6edd2"}, + {file = "httptools-0.6.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4f0f8271c0a4db459f9dc807acd0eadd4839934a4b9b892f6f160e94da309837"}, + {file = "httptools-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6a4f5ccead6d18ec072ac0b84420e95d27c1cdf5c9f1bc8fbd8daf86bd94f43d"}, + {file = "httptools-0.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:5cceac09f164bcba55c0500a18fe3c47df29b62353198e4f37bbcc5d591172c3"}, + {file = "httptools-0.6.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:75c8022dca7935cba14741a42744eee13ba05db00b27a4b940f0d646bd4d56d0"}, + {file = "httptools-0.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:48ed8129cd9a0d62cf4d1575fcf90fb37e3ff7d5654d3a5814eb3d55f36478c2"}, + {file = "httptools-0.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6f58e335a1402fb5a650e271e8c2d03cfa7cea46ae124649346d17bd30d59c90"}, + {file = "httptools-0.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93ad80d7176aa5788902f207a4e79885f0576134695dfb0fefc15b7a4648d503"}, + {file = "httptools-0.6.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:9bb68d3a085c2174c2477eb3ffe84ae9fb4fde8792edb7bcd09a1d8467e30a84"}, + {file = "httptools-0.6.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b512aa728bc02354e5ac086ce76c3ce635b62f5fbc32ab7082b5e582d27867bb"}, + {file = "httptools-0.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:97662ce7fb196c785344d00d638fc9ad69e18ee4bfb4000b35a52efe5adcc949"}, + {file = "httptools-0.6.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8e216a038d2d52ea13fdd9b9c9c7459fb80d78302b257828285eca1c773b99b3"}, + {file = "httptools-0.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3e802e0b2378ade99cd666b5bffb8b2a7cc8f3d28988685dc300469ea8dd86cb"}, + {file = "httptools-0.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bd3e488b447046e386a30f07af05f9b38d3d368d1f7b4d8f7e10af85393db97"}, + {file = "httptools-0.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe467eb086d80217b7584e61313ebadc8d187a4d95bb62031b7bab4b205c3ba3"}, + {file = "httptools-0.6.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3c3b214ce057c54675b00108ac42bacf2ab8f85c58e3f324a4e963bbc46424f4"}, + {file = "httptools-0.6.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ae5b97f690badd2ca27cbf668494ee1b6d34cf1c464271ef7bfa9ca6b83ffaf"}, + {file = "httptools-0.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:405784577ba6540fa7d6ff49e37daf104e04f4b4ff2d1ac0469eaa6a20fde084"}, + {file = "httptools-0.6.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:95fb92dd3649f9cb139e9c56604cc2d7c7bf0fc2e7c8d7fbd58f96e35eddd2a3"}, + {file = "httptools-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dcbab042cc3ef272adc11220517278519adf8f53fd3056d0e68f0a6f891ba94e"}, + {file = "httptools-0.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf2372e98406efb42e93bfe10f2948e467edfd792b015f1b4ecd897903d3e8d"}, + {file = "httptools-0.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:678fcbae74477a17d103b7cae78b74800d795d702083867ce160fc202104d0da"}, + {file = "httptools-0.6.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:e0b281cf5a125c35f7f6722b65d8542d2e57331be573e9e88bc8b0115c4a7a81"}, + {file = "httptools-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:95658c342529bba4e1d3d2b1a874db16c7cca435e8827422154c9da76ac4e13a"}, + {file = "httptools-0.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:7ebaec1bf683e4bf5e9fbb49b8cc36da482033596a415b3e4ebab5a4c0d7ec5e"}, + {file = "httptools-0.6.1.tar.gz", hash = "sha256:c6e26c30455600b95d94b1b836085138e82f177351454ee841c148f93a9bad5a"}, +] + +[package.extras] +test = ["Cython (>=0.29.24,<0.30.0)"] + +[[package]] +name = "httpx" +version = "0.27.0" +description = "The next generation HTTP client." +optional = false +python-versions = ">=3.8" +files = [ + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, +] + +[package.dependencies] +anyio = "*" +certifi = "*" +httpcore = "==1.*" +idna = "*" +sniffio = "*" + +[package.extras] +brotli = ["brotli", "brotlicffi"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] +http2 = ["h2 (>=3,<5)"] +socks = ["socksio (==1.*)"] + +[[package]] +name = "idna" +version = "3.7" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.5" +files = [ + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, +] + +[[package]] +name = "importlib-metadata" +version = "6.11.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "importlib_metadata-6.11.0-py3-none-any.whl", hash = "sha256:f0afba6205ad8f8947c7d338b5342d5db2afbfd82f9cbef7879a9539cc12eb9b"}, + {file = "importlib_metadata-6.11.0.tar.gz", hash = "sha256:1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443"}, +] + +[package.dependencies] +zipp = ">=0.5" + +[package.extras] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] +perf = ["ipython"] +testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] + +[[package]] +name = "jinja2" +version = "3.1.4" +description = "A very fast and expressive template engine." +optional = false +python-versions = ">=3.7" +files = [ + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, +] + +[package.dependencies] +MarkupSafe = ">=2.0" + +[package.extras] +i18n = ["Babel (>=2.7)"] + +[[package]] +name = "markdown-it-py" +version = "3.0.0" +description = "Python port of markdown-it. Markdown parsing, done right!" +optional = false +python-versions = ">=3.8" +files = [ + {file = "markdown-it-py-3.0.0.tar.gz", hash = "sha256:e3f60a94fa066dc52ec76661e37c851cb232d92f9886b15cb560aaada2df8feb"}, + {file = "markdown_it_py-3.0.0-py3-none-any.whl", hash = "sha256:355216845c60bd96232cd8d8c40e8f9765cc86f46880e43a8fd22dc1a1a8cab1"}, +] + +[package.dependencies] +mdurl = ">=0.1,<1.0" + +[package.extras] +benchmarking = ["psutil", "pytest", "pytest-benchmark"] +code-style = ["pre-commit (>=3.0,<4.0)"] +compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "mistletoe (>=1.0,<2.0)", "mistune (>=2.0,<3.0)", "panflute (>=2.3,<3.0)"] +linkify = ["linkify-it-py (>=1,<3)"] +plugins = ["mdit-py-plugins"] +profiling = ["gprof2dot"] +rtd = ["jupyter_sphinx", "mdit-py-plugins", "myst-parser", "pyyaml", "sphinx", "sphinx-copybutton", "sphinx-design", "sphinx_book_theme"] +testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions"] + +[[package]] +name = "markupsafe" +version = "2.1.5" +description = "Safely add untrusted strings to HTML/XML markup." +optional = false +python-versions = ">=3.7" +files = [ + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +description = "Markdown URL utilities" +optional = false +python-versions = ">=3.7" +files = [ + {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, + {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, +] + +[[package]] +name = "monotonic" +version = "1.6" +description = "An implementation of time.monotonic() for Python 2 & < 3.3" +optional = false +python-versions = "*" +files = [ + {file = "monotonic-1.6-py2.py3-none-any.whl", hash = "sha256:68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c"}, + {file = "monotonic-1.6.tar.gz", hash = "sha256:3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7"}, +] + +[[package]] +name = "multidict" +version = "6.0.5" +description = "multidict implementation" +optional = false +python-versions = ">=3.7" +files = [ + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:228b644ae063c10e7f324ab1ab6b548bdf6f8b47f3ec234fef1093bc2735e5f9"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:896ebdcf62683551312c30e20614305f53125750803b614e9e6ce74a96232604"}, + {file = "multidict-6.0.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:411bf8515f3be9813d06004cac41ccf7d1cd46dfe233705933dd163b60e37600"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d147090048129ce3c453f0292e7697d333db95e52616b3793922945804a433c"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:215ed703caf15f578dca76ee6f6b21b7603791ae090fbf1ef9d865571039ade5"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c6390cf87ff6234643428991b7359b5f59cc15155695deb4eda5c777d2b880f"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fd81c4ebdb4f214161be351eb5bcf385426bf023041da2fd9e60681f3cebae"}, + {file = "multidict-6.0.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3cc2ad10255f903656017363cd59436f2111443a76f996584d1077e43ee51182"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6939c95381e003f54cd4c5516740faba40cf5ad3eeff460c3ad1d3e0ea2549bf"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:220dd781e3f7af2c2c1053da9fa96d9cf3072ca58f057f4c5adaaa1cab8fc442"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:766c8f7511df26d9f11cd3a8be623e59cca73d44643abab3f8c8c07620524e4a"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:fe5d7785250541f7f5019ab9cba2c71169dc7d74d0f45253f8313f436458a4ef"}, + {file = "multidict-6.0.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1c1496e73051918fcd4f58ff2e0f2f3066d1c76a0c6aeffd9b45d53243702cc"}, + {file = "multidict-6.0.5-cp310-cp310-win32.whl", hash = "sha256:7afcdd1fc07befad18ec4523a782cde4e93e0a2bf71239894b8d61ee578c1319"}, + {file = "multidict-6.0.5-cp310-cp310-win_amd64.whl", hash = "sha256:99f60d34c048c5c2fabc766108c103612344c46e35d4ed9ae0673d33c8fb26e8"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f285e862d2f153a70586579c15c44656f888806ed0e5b56b64489afe4a2dbfba"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e"}, + {file = "multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7be7047bd08accdb7487737631d25735c9a04327911de89ff1b26b81745bd4e3"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:de170c7b4fe6859beb8926e84f7d7d6c693dfe8e27372ce3b76f01c46e489fcf"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:04bde7a7b3de05732a4eb39c94574db1ec99abb56162d6c520ad26f83267de29"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85f67aed7bb647f93e7520633d8f51d3cbc6ab96957c71272b286b2f30dc70ed"}, + {file = "multidict-6.0.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:425bf820055005bfc8aa9a0b99ccb52cc2f4070153e34b701acc98d201693733"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d3eb1ceec286eba8220c26f3b0096cf189aea7057b6e7b7a2e60ed36b373b77f"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7901c05ead4b3fb75113fb1dd33eb1253c6d3ee37ce93305acd9d38e0b5f21a4"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:e0e79d91e71b9867c73323a3444724d496c037e578a0e1755ae159ba14f4f3d1"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:29bfeb0dff5cb5fdab2023a7a9947b3b4af63e9c47cae2a10ad58394b517fddc"}, + {file = "multidict-6.0.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e030047e85cbcedbfc073f71836d62dd5dadfbe7531cae27789ff66bc551bd5e"}, + {file = "multidict-6.0.5-cp311-cp311-win32.whl", hash = "sha256:2f4848aa3baa109e6ab81fe2006c77ed4d3cd1e0ac2c1fbddb7b1277c168788c"}, + {file = "multidict-6.0.5-cp311-cp311-win_amd64.whl", hash = "sha256:2faa5ae9376faba05f630d7e5e6be05be22913782b927b19d12b8145968a85ea"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:51d035609b86722963404f711db441cf7134f1889107fb171a970c9701f92e1e"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cbebcd5bcaf1eaf302617c114aa67569dd3f090dd0ce8ba9e35e9985b41ac35b"}, + {file = "multidict-6.0.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2ffc42c922dbfddb4a4c3b438eb056828719f07608af27d163191cb3e3aa6cc5"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ceb3b7e6a0135e092de86110c5a74e46bda4bd4fbfeeb3a3bcec79c0f861e450"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:79660376075cfd4b2c80f295528aa6beb2058fd289f4c9252f986751a4cd0496"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4428b29611e989719874670fd152b6625500ad6c686d464e99f5aaeeaca175a"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d84a5c3a5f7ce6db1f999fb9438f686bc2e09d38143f2d93d8406ed2dd6b9226"}, + {file = "multidict-6.0.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:76c0de87358b192de7ea9649beb392f107dcad9ad27276324c24c91774ca5271"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:79a6d2ba910adb2cbafc95dad936f8b9386e77c84c35bc0add315b856d7c3abb"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:92d16a3e275e38293623ebf639c471d3e03bb20b8ebb845237e0d3664914caef"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:fb616be3538599e797a2017cccca78e354c767165e8858ab5116813146041a24"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:14c2976aa9038c2629efa2c148022ed5eb4cb939e15ec7aace7ca932f48f9ba6"}, + {file = "multidict-6.0.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:435a0984199d81ca178b9ae2c26ec3d49692d20ee29bc4c11a2a8d4514c67eda"}, + {file = "multidict-6.0.5-cp312-cp312-win32.whl", hash = "sha256:9fe7b0653ba3d9d65cbe7698cca585bf0f8c83dbbcc710db9c90f478e175f2d5"}, + {file = "multidict-6.0.5-cp312-cp312-win_amd64.whl", hash = "sha256:01265f5e40f5a17f8241d52656ed27192be03bfa8764d88e8220141d1e4b3556"}, + {file = "multidict-6.0.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:19fe01cea168585ba0f678cad6f58133db2aa14eccaf22f88e4a6dccadfad8b3"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6bf7a982604375a8d49b6cc1b781c1747f243d91b81035a9b43a2126c04766f5"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:107c0cdefe028703fb5dafe640a409cb146d44a6ae201e55b35a4af8e95457dd"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:403c0911cd5d5791605808b942c88a8155c2592e05332d2bf78f18697a5fa15e"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aeaf541ddbad8311a87dd695ed9642401131ea39ad7bc8cf3ef3967fd093b626"}, + {file = "multidict-6.0.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e4972624066095e52b569e02b5ca97dbd7a7ddd4294bf4e7247d52635630dd83"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d946b0a9eb8aaa590df1fe082cee553ceab173e6cb5b03239716338629c50c7a"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b55358304d7a73d7bdf5de62494aaf70bd33015831ffd98bc498b433dfe5b10c"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:a3145cb08d8625b2d3fee1b2d596a8766352979c9bffe5d7833e0503d0f0b5e5"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d65f25da8e248202bd47445cec78e0025c0fe7582b23ec69c3b27a640dd7a8e3"}, + {file = "multidict-6.0.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c9bf56195c6bbd293340ea82eafd0071cb3d450c703d2c93afb89f93b8386ccc"}, + {file = "multidict-6.0.5-cp37-cp37m-win32.whl", hash = "sha256:69db76c09796b313331bb7048229e3bee7928eb62bab5e071e9f7fcc4879caee"}, + {file = "multidict-6.0.5-cp37-cp37m-win_amd64.whl", hash = "sha256:fce28b3c8a81b6b36dfac9feb1de115bab619b3c13905b419ec71d03a3fc1423"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76f067f5121dcecf0d63a67f29080b26c43c71a98b10c701b0677e4a065fbd54"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b82cc8ace10ab5bd93235dfaab2021c70637005e1ac787031f4d1da63d493c1d"}, + {file = "multidict-6.0.5-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:5cb241881eefd96b46f89b1a056187ea8e9ba14ab88ba632e68d7a2ecb7aadf7"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e94e6912639a02ce173341ff62cc1201232ab86b8a8fcc05572741a5dc7d93"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09a892e4a9fb47331da06948690ae38eaa2426de97b4ccbfafbdcbe5c8f37ff8"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55205d03e8a598cfc688c71ca8ea5f66447164efff8869517f175ea632c7cb7b"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:37b15024f864916b4951adb95d3a80c9431299080341ab9544ed148091b53f50"}, + {file = "multidict-6.0.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2a1dee728b52b33eebff5072817176c172050d44d67befd681609b4746e1c2e"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:edd08e6f2f1a390bf137080507e44ccc086353c8e98c657e666c017718561b89"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:60d698e8179a42ec85172d12f50b1668254628425a6bd611aba022257cac1386"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:3d25f19500588cbc47dc19081d78131c32637c25804df8414463ec908631e453"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4cc0ef8b962ac7a5e62b9e826bd0cd5040e7d401bc45a6835910ed699037a461"}, + {file = "multidict-6.0.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:eca2e9d0cc5a889850e9bbd68e98314ada174ff6ccd1129500103df7a94a7a44"}, + {file = "multidict-6.0.5-cp38-cp38-win32.whl", hash = "sha256:4a6a4f196f08c58c59e0b8ef8ec441d12aee4125a7d4f4fef000ccb22f8d7241"}, + {file = "multidict-6.0.5-cp38-cp38-win_amd64.whl", hash = "sha256:0275e35209c27a3f7951e1ce7aaf93ce0d163b28948444bec61dd7badc6d3f8c"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e7be68734bd8c9a513f2b0cfd508802d6609da068f40dc57d4e3494cefc92929"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1d9ea7a7e779d7a3561aade7d596649fbecfa5c08a7674b11b423783217933f9"}, + {file = "multidict-6.0.5-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ea1456df2a27c73ce51120fa2f519f1bea2f4a03a917f4a43c8707cf4cbbae1a"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf590b134eb70629e350691ecca88eac3e3b8b3c86992042fb82e3cb1830d5e1"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5c0631926c4f58e9a5ccce555ad7747d9a9f8b10619621f22f9635f069f6233e"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1c6912ab9ff5f179eaf6efe7365c1f425ed690b03341911bf4939ef2f3046"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0868d64af83169e4d4152ec612637a543f7a336e4a307b119e98042e852ad9c"}, + {file = "multidict-6.0.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:141b43360bfd3bdd75f15ed811850763555a251e38b2405967f8e25fb43f7d40"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7df704ca8cf4a073334e0427ae2345323613e4df18cc224f647f251e5e75a527"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:6214c5a5571802c33f80e6c84713b2c79e024995b9c5897f794b43e714daeec9"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:cd6c8fca38178e12c00418de737aef1261576bd1b6e8c6134d3e729a4e858b38"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:e02021f87a5b6932fa6ce916ca004c4d441509d33bbdbeca70d05dff5e9d2479"}, + {file = "multidict-6.0.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ebd8d160f91a764652d3e51ce0d2956b38efe37c9231cd82cfc0bed2e40b581c"}, + {file = "multidict-6.0.5-cp39-cp39-win32.whl", hash = "sha256:04da1bb8c8dbadf2a18a452639771951c662c5ad03aefe4884775454be322c9b"}, + {file = "multidict-6.0.5-cp39-cp39-win_amd64.whl", hash = "sha256:d6f6d4f185481c9669b9447bf9d9cf3b95a0e9df9d169bbc17e363b7d5487755"}, + {file = "multidict-6.0.5-py3-none-any.whl", hash = "sha256:0d63c74e3d7ab26de115c49bffc92cc77ed23395303d496eae515d4204a625e7"}, + {file = "multidict-6.0.5.tar.gz", hash = "sha256:f7e301075edaf50500f0b341543c41194d8df3ae5caf4702f2095f3ca73dd8da"}, +] + +[[package]] +name = "numpy" +version = "2.0.1" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +files = [ + {file = "numpy-2.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0fbb536eac80e27a2793ffd787895242b7f18ef792563d742c2d673bfcb75134"}, + {file = "numpy-2.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:69ff563d43c69b1baba77af455dd0a839df8d25e8590e79c90fcbe1499ebde42"}, + {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:1b902ce0e0a5bb7704556a217c4f63a7974f8f43e090aff03fcf262e0b135e02"}, + {file = "numpy-2.0.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:f1659887361a7151f89e79b276ed8dff3d75877df906328f14d8bb40bb4f5101"}, + {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4658c398d65d1b25e1760de3157011a80375da861709abd7cef3bad65d6543f9"}, + {file = "numpy-2.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4127d4303b9ac9f94ca0441138acead39928938660ca58329fe156f84b9f3015"}, + {file = "numpy-2.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e5eeca8067ad04bc8a2a8731183d51d7cbaac66d86085d5f4766ee6bf19c7f87"}, + {file = "numpy-2.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9adbd9bb520c866e1bfd7e10e1880a1f7749f1f6e5017686a5fbb9b72cf69f82"}, + {file = "numpy-2.0.1-cp310-cp310-win32.whl", hash = "sha256:7b9853803278db3bdcc6cd5beca37815b133e9e77ff3d4733c247414e78eb8d1"}, + {file = "numpy-2.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:81b0893a39bc5b865b8bf89e9ad7807e16717f19868e9d234bdaf9b1f1393868"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75b4e316c5902d8163ef9d423b1c3f2f6252226d1aa5cd8a0a03a7d01ffc6268"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6e4eeb6eb2fced786e32e6d8df9e755ce5be920d17f7ce00bc38fcde8ccdbf9e"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a1e01dcaab205fbece13c1410253a9eea1b1c9b61d237b6fa59bcc46e8e89343"}, + {file = "numpy-2.0.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:a8fc2de81ad835d999113ddf87d1ea2b0f4704cbd947c948d2f5513deafe5a7b"}, + {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5a3d94942c331dd4e0e1147f7a8699a4aa47dffc11bf8a1523c12af8b2e91bbe"}, + {file = "numpy-2.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15eb4eca47d36ec3f78cde0a3a2ee24cf05ca7396ef808dda2c0ddad7c2bde67"}, + {file = "numpy-2.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b83e16a5511d1b1f8a88cbabb1a6f6a499f82c062a4251892d9ad5d609863fb7"}, + {file = "numpy-2.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f87fec1f9bc1efd23f4227becff04bd0e979e23ca50cc92ec88b38489db3b55"}, + {file = "numpy-2.0.1-cp311-cp311-win32.whl", hash = "sha256:36d3a9405fd7c511804dc56fc32974fa5533bdeb3cd1604d6b8ff1d292b819c4"}, + {file = "numpy-2.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:08458fbf403bff5e2b45f08eda195d4b0c9b35682311da5a5a0a0925b11b9bd8"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:6bf4e6f4a2a2e26655717a1983ef6324f2664d7011f6ef7482e8c0b3d51e82ac"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6fddc5fe258d3328cd8e3d7d3e02234c5d70e01ebe377a6ab92adb14039cb4"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:5daab361be6ddeb299a918a7c0864fa8618af66019138263247af405018b04e1"}, + {file = "numpy-2.0.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:ea2326a4dca88e4a274ba3a4405eb6c6467d3ffbd8c7d38632502eaae3820587"}, + {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:529af13c5f4b7a932fb0e1911d3a75da204eff023ee5e0e79c1751564221a5c8"}, + {file = "numpy-2.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6790654cb13eab303d8402354fabd47472b24635700f631f041bd0b65e37298a"}, + {file = "numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:cbab9fc9c391700e3e1287666dfd82d8666d10e69a6c4a09ab97574c0b7ee0a7"}, + {file = "numpy-2.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:99d0d92a5e3613c33a5f01db206a33f8fdf3d71f2912b0de1739894668b7a93b"}, + {file = "numpy-2.0.1-cp312-cp312-win32.whl", hash = "sha256:173a00b9995f73b79eb0191129f2455f1e34c203f559dd118636858cc452a1bf"}, + {file = "numpy-2.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:bb2124fdc6e62baae159ebcfa368708867eb56806804d005860b6007388df171"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bfc085b28d62ff4009364e7ca34b80a9a080cbd97c2c0630bb5f7f770dae9414"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8fae4ebbf95a179c1156fab0b142b74e4ba4204c87bde8d3d8b6f9c34c5825ef"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:72dc22e9ec8f6eaa206deb1b1355eb2e253899d7347f5e2fae5f0af613741d06"}, + {file = "numpy-2.0.1-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:ec87f5f8aca726117a1c9b7083e7656a9d0d606eec7299cc067bb83d26f16e0c"}, + {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f682ea61a88479d9498bf2091fdcd722b090724b08b31d63e022adc063bad59"}, + {file = "numpy-2.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8efc84f01c1cd7e34b3fb310183e72fcdf55293ee736d679b6d35b35d80bba26"}, + {file = "numpy-2.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3fdabe3e2a52bc4eff8dc7a5044342f8bd9f11ef0934fcd3289a788c0eb10018"}, + {file = "numpy-2.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:24a0e1befbfa14615b49ba9659d3d8818a0f4d8a1c5822af8696706fbda7310c"}, + {file = "numpy-2.0.1-cp39-cp39-win32.whl", hash = "sha256:f9cf5ea551aec449206954b075db819f52adc1638d46a6738253a712d553c7b4"}, + {file = "numpy-2.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:e9e81fa9017eaa416c056e5d9e71be93d05e2c3c2ab308d23307a8bc4443c368"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:61728fba1e464f789b11deb78a57805c70b2ed02343560456190d0501ba37b0f"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:12f5d865d60fb9734e60a60f1d5afa6d962d8d4467c120a1c0cda6eb2964437d"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eacf3291e263d5a67d8c1a581a8ebbcfd6447204ef58828caf69a5e3e8c75990"}, + {file = "numpy-2.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2c3a346ae20cfd80b6cfd3e60dc179963ef2ea58da5ec074fd3d9e7a1e7ba97f"}, + {file = "numpy-2.0.1.tar.gz", hash = "sha256:485b87235796410c3519a699cfe1faab097e509e90ebb05dcd098db2ae87e7b3"}, +] + +[[package]] +name = "openbb-core" +version = "1.3.0" +description = "OpenBB package with core functionality." +optional = false +python-versions = "<4.0,>=3.9" +files = [ + {file = "openbb_core-1.3.0-py3-none-any.whl", hash = "sha256:cf9ed4b2438b896fd6a567fe17530a4c3de2e602f3bc29bf2082c0cb3c83ebdc"}, + {file = "openbb_core-1.3.0.tar.gz", hash = "sha256:da75321d0fa4ecb85e0c49948927e72ebc3a6fce8ac146ffd4e3eff01dc8420c"}, +] + +[package.dependencies] +aiohttp = ">=3.9.5,<4.0.0" +fastapi = ">=0.111.0,<0.112.0" +html5lib = ">=1.1,<2.0" +importlib-metadata = ">=6.8.0,<7.0.0" +pandas = ">=1.5.3" +posthog = ">=3.3.1,<4.0.0" +pydantic = ">=2.5.1,<3.0.0" +pyjwt = ">=2.8.0,<3.0.0" +python-dotenv = ">=1.0.0,<2.0.0" +python-multipart = ">=0.0.7,<0.0.8" +requests = ">=2.32.1,<3.0.0" +ruff = ">=0.1.6" +uuid7 = ">=0.1.0,<0.2.0" +uvicorn = ">=0.24,<0.25" +websockets = ">=12.0,<13.0" + +[[package]] +name = "pandas" +version = "2.2.2" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +files = [ + {file = "pandas-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce"}, + {file = "pandas-2.2.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08"}, + {file = "pandas-2.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51"}, + {file = "pandas-2.2.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99"}, + {file = "pandas-2.2.2-cp310-cp310-win_amd64.whl", hash = "sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288"}, + {file = "pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b"}, + {file = "pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db"}, + {file = "pandas-2.2.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1"}, + {file = "pandas-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef"}, + {file = "pandas-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad"}, + {file = "pandas-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76"}, + {file = "pandas-2.2.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32"}, + {file = "pandas-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2"}, + {file = "pandas-2.2.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863"}, + {file = "pandas-2.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a"}, + {file = "pandas-2.2.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57"}, + {file = "pandas-2.2.2-cp39-cp39-win_amd64.whl", hash = "sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4"}, + {file = "pandas-2.2.2.tar.gz", hash = "sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "posthog" +version = "3.5.0" +description = "Integrate PostHog into any python application." +optional = false +python-versions = "*" +files = [ + {file = "posthog-3.5.0-py2.py3-none-any.whl", hash = "sha256:3c672be7ba6f95d555ea207d4486c171d06657eb34b3ce25eb043bfe7b6b5b76"}, + {file = "posthog-3.5.0.tar.gz", hash = "sha256:8f7e3b2c6e8714d0c0c542a2109b83a7549f63b7113a133ab2763a89245ef2ef"}, +] + +[package.dependencies] +backoff = ">=1.10.0" +monotonic = ">=1.5" +python-dateutil = ">2.1" +requests = ">=2.7,<3.0" +six = ">=1.5" + +[package.extras] +dev = ["black", "flake8", "flake8-print", "isort", "pre-commit"] +sentry = ["django", "sentry-sdk"] +test = ["coverage", "flake8", "freezegun (==0.3.15)", "mock (>=2.0.0)", "pylint", "pytest", "pytest-timeout"] + +[[package]] +name = "pydantic" +version = "2.8.2" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, + {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, +] + +[package.dependencies] +annotated-types = ">=0.4.0" +pydantic-core = "2.20.1" +typing-extensions = {version = ">=4.6.1", markers = "python_version < \"3.13\""} + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.20.1" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, + {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, + {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, + {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, + {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, + {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, + {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, + {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, + {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, + {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, + {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, + {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, + {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, + {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pygments" +version = "2.18.0" +description = "Pygments is a syntax highlighting package written in Python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "pygments-2.18.0-py3-none-any.whl", hash = "sha256:b8e6aca0523f3ab76fee51799c488e38782ac06eafcf95e7ba832985c8e7b13a"}, + {file = "pygments-2.18.0.tar.gz", hash = "sha256:786ff802f32e91311bff3889f6e9a86e81505fe99f2735bb6d60ae0c5004f199"}, +] + +[package.extras] +windows-terminal = ["colorama (>=0.4.6)"] + +[[package]] +name = "pyjwt" +version = "2.9.0" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "PyJWT-2.9.0-py3-none-any.whl", hash = "sha256:3b02fb0f44517787776cf48f2ae25d8e14f300e6d7545a4315cee571a415e850"}, + {file = "pyjwt-2.9.0.tar.gz", hash = "sha256:7e1e5b56cc735432a7369cbfa0efe50fa113ebecdc04ae6922deba8b84582d0c"}, +] + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.0.1" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.8" +files = [ + {file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"}, + {file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-multipart" +version = "0.0.7" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.7" +files = [ + {file = "python_multipart-0.0.7-py3-none-any.whl", hash = "sha256:b1fef9a53b74c795e2347daac8c54b252d9e0df9c619712691c1cc8021bd3c49"}, + {file = "python_multipart-0.0.7.tar.gz", hash = "sha256:288a6c39b06596c1b988bb6794c6fbc80e6c369e35e5062637df256bee0c9af9"}, +] + +[package.extras] +dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatch", "invoke (==2.2.0)", "more-itertools (==4.3.0)", "pbr (==4.3.0)", "pluggy (==1.0.0)", "py (==1.11.0)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-timeout (==2.1.0)", "pyyaml (==5.1)"] + +[[package]] +name = "pytz" +version = "2024.1" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +files = [ + {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, + {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +description = "YAML parser and emitter for Python" +optional = false +python-versions = ">=3.6" +files = [ + {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, + {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, + {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, + {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, + {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, + {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, + {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, + {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, + {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, + {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, + {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, + {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, + {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, + {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, + {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, + {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, + {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, + {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, + {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, + {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, + {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, + {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, + {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, + {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, + {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, + {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, + {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, + {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, + {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, + {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, + {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, + {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, +] + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rich" +version = "13.7.1" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +optional = false +python-versions = ">=3.7.0" +files = [ + {file = "rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222"}, + {file = "rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432"}, +] + +[package.dependencies] +markdown-it-py = ">=2.2.0" +pygments = ">=2.13.0,<3.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<9)"] + +[[package]] +name = "ruff" +version = "0.5.6" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +files = [ + {file = "ruff-0.5.6-py3-none-linux_armv6l.whl", hash = "sha256:a0ef5930799a05522985b9cec8290b185952f3fcd86c1772c3bdbd732667fdcd"}, + {file = "ruff-0.5.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:b652dc14f6ef5d1552821e006f747802cc32d98d5509349e168f6bf0ee9f8f42"}, + {file = "ruff-0.5.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:80521b88d26a45e871f31e4b88938fd87db7011bb961d8afd2664982dfc3641a"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9bc8f328a9f1309ae80e4d392836e7dbc77303b38ed4a7112699e63d3b066ab"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4d394940f61f7720ad371ddedf14722ee1d6250fd8d020f5ea5a86e7be217daf"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:111a99cdb02f69ddb2571e2756e017a1496c2c3a2aeefe7b988ddab38b416d36"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:e395daba77a79f6dc0d07311f94cc0560375ca20c06f354c7c99af3bf4560c5d"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c476acb43c3c51e3c614a2e878ee1589655fa02dab19fe2db0423a06d6a5b1b6"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e2ff8003f5252fd68425fd53d27c1f08b201d7ed714bb31a55c9ac1d4c13e2eb"}, + {file = "ruff-0.5.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c94e084ba3eaa80c2172918c2ca2eb2230c3f15925f4ed8b6297260c6ef179ad"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:1f77c1c3aa0669fb230b06fb24ffa3e879391a3ba3f15e3d633a752da5a3e670"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f908148c93c02873210a52cad75a6eda856b2cbb72250370ce3afef6fb99b1ed"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:563a7ae61ad284187d3071d9041c08019975693ff655438d8d4be26e492760bd"}, + {file = "ruff-0.5.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:94fe60869bfbf0521e04fd62b74cbca21cbc5beb67cbb75ab33fe8c174f54414"}, + {file = "ruff-0.5.6-py3-none-win32.whl", hash = "sha256:e6a584c1de6f8591c2570e171cc7ce482bb983d49c70ddf014393cd39e9dfaed"}, + {file = "ruff-0.5.6-py3-none-win_amd64.whl", hash = "sha256:d7fe7dccb1a89dc66785d7aa0ac283b2269712d8ed19c63af908fdccca5ccc1a"}, + {file = "ruff-0.5.6-py3-none-win_arm64.whl", hash = "sha256:57c6c0dd997b31b536bff49b9eee5ed3194d60605a4427f735eeb1f9c1b8d264"}, + {file = "ruff-0.5.6.tar.gz", hash = "sha256:07c9e3c2a8e1fe377dd460371c3462671a728c981c3205a5217291422209f642"}, +] + +[[package]] +name = "shellingham" +version = "1.5.4" +description = "Tool to Detect Surrounding Shell" +optional = false +python-versions = ">=3.7" +files = [ + {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, + {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, +] + +[[package]] +name = "six" +version = "1.16.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +files = [ + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "starlette" +version = "0.37.2" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.8" +files = [ + {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"}, + {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"}, +] + +[package.dependencies] +anyio = ">=3.4.0,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] + +[[package]] +name = "typer" +version = "0.12.3" +description = "Typer, build great CLIs. Easy to code. Based on Python type hints." +optional = false +python-versions = ">=3.7" +files = [ + {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, + {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, +] + +[package.dependencies] +click = ">=8.0.0" +rich = ">=10.11.0" +shellingham = ">=1.3.0" +typing-extensions = ">=3.7.4.3" + +[[package]] +name = "typing-extensions" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +files = [ + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, +] + +[[package]] +name = "tzdata" +version = "2024.1" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +files = [ + {file = "tzdata-2024.1-py2.py3-none-any.whl", hash = "sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252"}, + {file = "tzdata-2024.1.tar.gz", hash = "sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd"}, +] + +[[package]] +name = "urllib3" +version = "2.2.2" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.8" +files = [ + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uuid7" +version = "0.1.0" +description = "UUID version 7, generating time-sorted UUIDs with 200ns time resolution and 48 bits of randomness" +optional = false +python-versions = ">=3.7" +files = [ + {file = "uuid7-0.1.0-py2.py3-none-any.whl", hash = "sha256:5e259bb63c8cb4aded5927ff41b444a80d0c7124e8a0ced7cf44efa1f5cccf61"}, + {file = "uuid7-0.1.0.tar.gz", hash = "sha256:8c57aa32ee7456d3cc68c95c4530bc571646defac01895cfc73545449894a63c"}, +] + +[[package]] +name = "uvicorn" +version = "0.24.0.post1" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.24.0.post1-py3-none-any.whl", hash = "sha256:7c84fea70c619d4a710153482c0d230929af7bcf76c7bfa6de151f0a3a80121e"}, + {file = "uvicorn-0.24.0.post1.tar.gz", hash = "sha256:09c8e5a79dc466bdf28dead50093957db184de356fcdc48697bad3bde4c2588e"}, +] + +[package.dependencies] +click = ">=7.0" +colorama = {version = ">=0.4", optional = true, markers = "sys_platform == \"win32\" and extra == \"standard\""} +h11 = ">=0.8" +httptools = {version = ">=0.5.0", optional = true, markers = "extra == \"standard\""} +python-dotenv = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +pyyaml = {version = ">=5.1", optional = true, markers = "extra == \"standard\""} +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} +uvloop = {version = ">=0.14.0,<0.15.0 || >0.15.0,<0.15.1 || >0.15.1", optional = true, markers = "(sys_platform != \"win32\" and sys_platform != \"cygwin\") and platform_python_implementation != \"PyPy\" and extra == \"standard\""} +watchfiles = {version = ">=0.13", optional = true, markers = "extra == \"standard\""} +websockets = {version = ">=10.4", optional = true, markers = "extra == \"standard\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "uvloop" +version = "0.19.0" +description = "Fast implementation of asyncio event loop on top of libuv" +optional = false +python-versions = ">=3.8.0" +files = [ + {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:de4313d7f575474c8f5a12e163f6d89c0a878bc49219641d49e6f1444369a90e"}, + {file = "uvloop-0.19.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5588bd21cf1fcf06bded085f37e43ce0e00424197e7c10e77afd4bbefffef428"}, + {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b1fd71c3843327f3bbc3237bedcdb6504fd50368ab3e04d0410e52ec293f5b8"}, + {file = "uvloop-0.19.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5a05128d315e2912791de6088c34136bfcdd0c7cbc1cf85fd6fd1bb321b7c849"}, + {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:cd81bdc2b8219cb4b2556eea39d2e36bfa375a2dd021404f90a62e44efaaf957"}, + {file = "uvloop-0.19.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5f17766fb6da94135526273080f3455a112f82570b2ee5daa64d682387fe0dcd"}, + {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:4ce6b0af8f2729a02a5d1575feacb2a94fc7b2e983868b009d51c9a9d2149bef"}, + {file = "uvloop-0.19.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:31e672bb38b45abc4f26e273be83b72a0d28d074d5b370fc4dcf4c4eb15417d2"}, + {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:570fc0ed613883d8d30ee40397b79207eedd2624891692471808a95069a007c1"}, + {file = "uvloop-0.19.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5138821e40b0c3e6c9478643b4660bd44372ae1e16a322b8fc07478f92684e24"}, + {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:91ab01c6cd00e39cde50173ba4ec68a1e578fee9279ba64f5221810a9e786533"}, + {file = "uvloop-0.19.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:47bf3e9312f63684efe283f7342afb414eea4d3011542155c7e625cd799c3b12"}, + {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:da8435a3bd498419ee8c13c34b89b5005130a476bda1d6ca8cfdde3de35cd650"}, + {file = "uvloop-0.19.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:02506dc23a5d90e04d4f65c7791e65cf44bd91b37f24cfc3ef6cf2aff05dc7ec"}, + {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2693049be9d36fef81741fddb3f441673ba12a34a704e7b4361efb75cf30befc"}, + {file = "uvloop-0.19.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7010271303961c6f0fe37731004335401eb9075a12680738731e9c92ddd96ad6"}, + {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:5daa304d2161d2918fa9a17d5635099a2f78ae5b5960e742b2fcfbb7aefaa593"}, + {file = "uvloop-0.19.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:7207272c9520203fea9b93843bb775d03e1cf88a80a936ce760f60bb5add92f3"}, + {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:78ab247f0b5671cc887c31d33f9b3abfb88d2614b84e4303f1a63b46c046c8bd"}, + {file = "uvloop-0.19.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:472d61143059c84947aa8bb74eabbace30d577a03a1805b77933d6bd13ddebbd"}, + {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45bf4c24c19fb8a50902ae37c5de50da81de4922af65baf760f7c0c42e1088be"}, + {file = "uvloop-0.19.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271718e26b3e17906b28b67314c45d19106112067205119dddbd834c2b7ce797"}, + {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:34175c9fd2a4bc3adc1380e1261f60306344e3407c20a4d684fd5f3be010fa3d"}, + {file = "uvloop-0.19.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:e27f100e1ff17f6feeb1f33968bc185bf8ce41ca557deee9d9bbbffeb72030b7"}, + {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:13dfdf492af0aa0a0edf66807d2b465607d11c4fa48f4a1fd41cbea5b18e8e8b"}, + {file = "uvloop-0.19.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6e3d4e85ac060e2342ff85e90d0c04157acb210b9ce508e784a944f852a40e67"}, + {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8ca4956c9ab567d87d59d49fa3704cf29e37109ad348f2d5223c9bf761a332e7"}, + {file = "uvloop-0.19.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f467a5fd23b4fc43ed86342641f3936a68ded707f4627622fa3f82a120e18256"}, + {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:492e2c32c2af3f971473bc22f086513cedfc66a130756145a931a90c3958cb17"}, + {file = "uvloop-0.19.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2df95fca285a9f5bfe730e51945ffe2fa71ccbfdde3b0da5772b4ee4f2e770d5"}, + {file = "uvloop-0.19.0.tar.gz", hash = "sha256:0246f4fd1bf2bf702e06b0d45ee91677ee5c31242f39aab4ea6fe0c51aedd0fd"}, +] + +[package.extras] +docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"] +test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"] + +[[package]] +name = "watchfiles" +version = "0.22.0" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "watchfiles-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:da1e0a8caebf17976e2ffd00fa15f258e14749db5e014660f53114b676e68538"}, + {file = "watchfiles-0.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:61af9efa0733dc4ca462347becb82e8ef4945aba5135b1638bfc20fad64d4f0e"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d9188979a58a096b6f8090e816ccc3f255f137a009dd4bbec628e27696d67c1"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2bdadf6b90c099ca079d468f976fd50062905d61fae183f769637cb0f68ba59a"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:067dea90c43bf837d41e72e546196e674f68c23702d3ef80e4e816937b0a3ffd"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf8a20266136507abf88b0df2328e6a9a7c7309e8daff124dda3803306a9fdb"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1235c11510ea557fe21be5d0e354bae2c655a8ee6519c94617fe63e05bca4171"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2444dc7cb9d8cc5ab88ebe792a8d75709d96eeef47f4c8fccb6df7c7bc5be71"}, + {file = "watchfiles-0.22.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c5af2347d17ab0bd59366db8752d9e037982e259cacb2ba06f2c41c08af02c39"}, + {file = "watchfiles-0.22.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9624a68b96c878c10437199d9a8b7d7e542feddda8d5ecff58fdc8e67b460848"}, + {file = "watchfiles-0.22.0-cp310-none-win32.whl", hash = "sha256:4b9f2a128a32a2c273d63eb1fdbf49ad64852fc38d15b34eaa3f7ca2f0d2b797"}, + {file = "watchfiles-0.22.0-cp310-none-win_amd64.whl", hash = "sha256:2627a91e8110b8de2406d8b2474427c86f5a62bf7d9ab3654f541f319ef22bcb"}, + {file = "watchfiles-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8c39987a1397a877217be1ac0fb1d8b9f662c6077b90ff3de2c05f235e6a8f96"}, + {file = "watchfiles-0.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a927b3034d0672f62fb2ef7ea3c9fc76d063c4b15ea852d1db2dc75fe2c09696"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052d668a167e9fc345c24203b104c313c86654dd6c0feb4b8a6dfc2462239249"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e45fb0d70dda1623a7045bd00c9e036e6f1f6a85e4ef2c8ae602b1dfadf7550"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c49b76a78c156979759d759339fb62eb0549515acfe4fd18bb151cc07366629c"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4a65474fd2b4c63e2c18ac67a0c6c66b82f4e73e2e4d940f837ed3d2fd9d4da"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc0cba54f47c660d9fa3218158b8963c517ed23bd9f45fe463f08262a4adae1"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94ebe84a035993bb7668f58a0ebf998174fb723a39e4ef9fce95baabb42b787f"}, + {file = "watchfiles-0.22.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e0f0a874231e2839abbf473256efffe577d6ee2e3bfa5b540479e892e47c172d"}, + {file = "watchfiles-0.22.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:213792c2cd3150b903e6e7884d40660e0bcec4465e00563a5fc03f30ea9c166c"}, + {file = "watchfiles-0.22.0-cp311-none-win32.whl", hash = "sha256:b44b70850f0073b5fcc0b31ede8b4e736860d70e2dbf55701e05d3227a154a67"}, + {file = "watchfiles-0.22.0-cp311-none-win_amd64.whl", hash = "sha256:00f39592cdd124b4ec5ed0b1edfae091567c72c7da1487ae645426d1b0ffcad1"}, + {file = "watchfiles-0.22.0-cp311-none-win_arm64.whl", hash = "sha256:3218a6f908f6a276941422b035b511b6d0d8328edd89a53ae8c65be139073f84"}, + {file = "watchfiles-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c7b978c384e29d6c7372209cbf421d82286a807bbcdeb315427687f8371c340a"}, + {file = "watchfiles-0.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd4c06100bce70a20c4b81e599e5886cf504c9532951df65ad1133e508bf20be"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:425440e55cd735386ec7925f64d5dde392e69979d4c8459f6bb4e920210407f2"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68fe0c4d22332d7ce53ad094622b27e67440dacefbaedd29e0794d26e247280c"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8a31bfd98f846c3c284ba694c6365620b637debdd36e46e1859c897123aa232"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc2e8fe41f3cac0660197d95216c42910c2b7e9c70d48e6d84e22f577d106fc1"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b7cc10261c2786c41d9207193a85c1db1b725cf87936df40972aab466179b6"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28585744c931576e535860eaf3f2c0ec7deb68e3b9c5a85ca566d69d36d8dd27"}, + {file = "watchfiles-0.22.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00095dd368f73f8f1c3a7982a9801190cc88a2f3582dd395b289294f8975172b"}, + {file = "watchfiles-0.22.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:52fc9b0dbf54d43301a19b236b4a4614e610605f95e8c3f0f65c3a456ffd7d35"}, + {file = "watchfiles-0.22.0-cp312-none-win32.whl", hash = "sha256:581f0a051ba7bafd03e17127735d92f4d286af941dacf94bcf823b101366249e"}, + {file = "watchfiles-0.22.0-cp312-none-win_amd64.whl", hash = "sha256:aec83c3ba24c723eac14225194b862af176d52292d271c98820199110e31141e"}, + {file = "watchfiles-0.22.0-cp312-none-win_arm64.whl", hash = "sha256:c668228833c5619f6618699a2c12be057711b0ea6396aeaece4ded94184304ea"}, + {file = "watchfiles-0.22.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d47e9ef1a94cc7a536039e46738e17cce058ac1593b2eccdede8bf72e45f372a"}, + {file = "watchfiles-0.22.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28f393c1194b6eaadcdd8f941307fc9bbd7eb567995232c830f6aef38e8a6e88"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd64f3a4db121bc161644c9e10a9acdb836853155a108c2446db2f5ae1778c3d"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2abeb79209630da981f8ebca30a2c84b4c3516a214451bfc5f106723c5f45843"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cc382083afba7918e32d5ef12321421ef43d685b9a67cc452a6e6e18920890e"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d048ad5d25b363ba1d19f92dcf29023988524bee6f9d952130b316c5802069cb"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:103622865599f8082f03af4214eaff90e2426edff5e8522c8f9e93dc17caee13"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3e1f3cf81f1f823e7874ae563457828e940d75573c8fbf0ee66818c8b6a9099"}, + {file = "watchfiles-0.22.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8597b6f9dc410bdafc8bb362dac1cbc9b4684a8310e16b1ff5eee8725d13dcd6"}, + {file = "watchfiles-0.22.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0b04a2cbc30e110303baa6d3ddce8ca3664bc3403be0f0ad513d1843a41c97d1"}, + {file = "watchfiles-0.22.0-cp38-none-win32.whl", hash = "sha256:b610fb5e27825b570554d01cec427b6620ce9bd21ff8ab775fc3a32f28bba63e"}, + {file = "watchfiles-0.22.0-cp38-none-win_amd64.whl", hash = "sha256:fe82d13461418ca5e5a808a9e40f79c1879351fcaeddbede094028e74d836e86"}, + {file = "watchfiles-0.22.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3973145235a38f73c61474d56ad6199124e7488822f3a4fc97c72009751ae3b0"}, + {file = "watchfiles-0.22.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:280a4afbc607cdfc9571b9904b03a478fc9f08bbeec382d648181c695648202f"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a0d883351a34c01bd53cfa75cd0292e3f7e268bacf2f9e33af4ecede7e21d1d"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9165bcab15f2b6d90eedc5c20a7f8a03156b3773e5fb06a790b54ccecdb73385"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc1b9b56f051209be458b87edb6856a449ad3f803315d87b2da4c93b43a6fe72"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dc1fc25a1dedf2dd952909c8e5cb210791e5f2d9bc5e0e8ebc28dd42fed7562"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc92d2d2706d2b862ce0568b24987eba51e17e14b79a1abcd2edc39e48e743c8"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97b94e14b88409c58cdf4a8eaf0e67dfd3ece7e9ce7140ea6ff48b0407a593ec"}, + {file = "watchfiles-0.22.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:96eec15e5ea7c0b6eb5bfffe990fc7c6bd833acf7e26704eb18387fb2f5fd087"}, + {file = "watchfiles-0.22.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:28324d6b28bcb8d7c1041648d7b63be07a16db5510bea923fc80b91a2a6cbed6"}, + {file = "watchfiles-0.22.0-cp39-none-win32.whl", hash = "sha256:8c3e3675e6e39dc59b8fe5c914a19d30029e36e9f99468dddffd432d8a7b1c93"}, + {file = "watchfiles-0.22.0-cp39-none-win_amd64.whl", hash = "sha256:25c817ff2a86bc3de3ed2df1703e3d24ce03479b27bb4527c57e722f8554d971"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b810a2c7878cbdecca12feae2c2ae8af59bea016a78bc353c184fa1e09f76b68"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7e1f9c5d1160d03b93fc4b68a0aeb82fe25563e12fbcdc8507f8434ab6f823c"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:030bc4e68d14bcad2294ff68c1ed87215fbd9a10d9dea74e7cfe8a17869785ab"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ace7d060432acde5532e26863e897ee684780337afb775107c0a90ae8dbccfd2"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5834e1f8b71476a26df97d121c0c0ed3549d869124ed2433e02491553cb468c2"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:0bc3b2f93a140df6806c8467c7f51ed5e55a931b031b5c2d7ff6132292e803d6"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fdebb655bb1ba0122402352b0a4254812717a017d2dc49372a1d47e24073795"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8e0aa0e8cc2a43561e0184c0513e291ca891db13a269d8d47cb9841ced7c71"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2f350cbaa4bb812314af5dab0eb8d538481e2e2279472890864547f3fe2281ed"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7a74436c415843af2a769b36bf043b6ccbc0f8d784814ba3d42fc961cdb0a9dc"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00ad0bcd399503a84cc688590cdffbe7a991691314dde5b57b3ed50a41319a31"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72a44e9481afc7a5ee3291b09c419abab93b7e9c306c9ef9108cb76728ca58d2"}, + {file = "watchfiles-0.22.0.tar.gz", hash = "sha256:988e981aaab4f3955209e7e28c7794acdb690be1efa7f16f8ea5aba7ffdadacb"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websockets" +version = "12.0" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"}, + {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"}, + {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"}, + {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"}, + {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"}, + {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"}, + {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"}, + {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"}, + {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"}, + {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"}, + {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"}, + {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"}, + {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"}, + {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"}, + {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"}, + {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"}, + {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"}, + {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"}, + {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"}, + {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"}, + {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"}, + {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"}, + {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"}, + {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"}, + {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"}, +] + +[[package]] +name = "yarl" +version = "1.9.4" +description = "Yet another URL library" +optional = false +python-versions = ">=3.7" +files = [ + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"}, + {file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"}, + {file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"}, + {file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"}, + {file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"}, + {file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"}, + {file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"}, + {file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"}, + {file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"}, + {file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"}, + {file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"}, + {file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"}, + {file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"}, + {file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"}, + {file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"}, + {file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"}, + {file = "yarl-1.9.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:63b20738b5aac74e239622d2fe30df4fca4942a86e31bf47a81a0e94c14df94f"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7d7f7de27b8944f1fee2c26a88b4dabc2409d2fea7a9ed3df79b67277644e17"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c74018551e31269d56fab81a728f683667e7c28c04e807ba08f8c9e3bba32f14"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ca06675212f94e7a610e85ca36948bb8fc023e458dd6c63ef71abfd482481aa5"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5aef935237d60a51a62b86249839b51345f47564208c6ee615ed2a40878dccdd"}, + {file = "yarl-1.9.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2b134fd795e2322b7684155b7855cc99409d10b2e408056db2b93b51a52accc7"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:d25039a474c4c72a5ad4b52495056f843a7ff07b632c1b92ea9043a3d9950f6e"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:957b4774373cf6f709359e5c8c4a0af9f6d7875db657adb0feaf8d6cb3c3964c"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:d7eeb6d22331e2fd42fce928a81c697c9ee2d51400bd1a28803965883e13cead"}, + {file = "yarl-1.9.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:6a962e04b8f91f8c4e5917e518d17958e3bdee71fd1d8b88cdce74dd0ebbf434"}, + {file = "yarl-1.9.4-cp37-cp37m-win32.whl", hash = "sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749"}, + {file = "yarl-1.9.4-cp37-cp37m-win_amd64.whl", hash = "sha256:ad4d7a90a92e528aadf4965d685c17dacff3df282db1121136c382dc0b6014d2"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:ec61d826d80fc293ed46c9dd26995921e3a82146feacd952ef0757236fc137be"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8be9e837ea9113676e5754b43b940b50cce76d9ed7d2461df1af39a8ee674d9f"}, + {file = "yarl-1.9.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:bef596fdaa8f26e3d66af846bbe77057237cb6e8efff8cd7cc8dff9a62278bbf"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2d47552b6e52c3319fede1b60b3de120fe83bde9b7bddad11a69fb0af7db32f1"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84fc30f71689d7fc9168b92788abc977dc8cefa806909565fc2951d02f6b7d57"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4aa9741085f635934f3a2583e16fcf62ba835719a8b2b28fb2917bb0537c1dfa"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:206a55215e6d05dbc6c98ce598a59e6fbd0c493e2de4ea6cc2f4934d5a18d130"}, + {file = "yarl-1.9.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07574b007ee20e5c375a8fe4a0789fad26db905f9813be0f9fef5a68080de559"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5a2e2433eb9344a163aced6a5f6c9222c0786e5a9e9cac2c89f0b28433f56e23"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6ad6d10ed9b67a382b45f29ea028f92d25bc0bc1daf6c5b801b90b5aa70fb9ec"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6fe79f998a4052d79e1c30eeb7d6c1c1056ad33300f682465e1b4e9b5a188b78"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:a825ec844298c791fd28ed14ed1bffc56a98d15b8c58a20e0e08c1f5f2bea1be"}, + {file = "yarl-1.9.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8619d6915b3b0b34420cf9b2bb6d81ef59d984cb0fde7544e9ece32b4b3043c3"}, + {file = "yarl-1.9.4-cp38-cp38-win32.whl", hash = "sha256:686a0c2f85f83463272ddffd4deb5e591c98aac1897d65e92319f729c320eece"}, + {file = "yarl-1.9.4-cp38-cp38-win_amd64.whl", hash = "sha256:a00862fb23195b6b8322f7d781b0dc1d82cb3bcac346d1e38689370cc1cc398b"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:604f31d97fa493083ea21bd9b92c419012531c4e17ea6da0f65cacdcf5d0bd27"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8a854227cf581330ffa2c4824d96e52ee621dd571078a252c25e3a3b3d94a1b1"}, + {file = "yarl-1.9.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ba6f52cbc7809cd8d74604cce9c14868306ae4aa0282016b641c661f981a6e91"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a6327976c7c2f4ee6816eff196e25385ccc02cb81427952414a64811037bbc8b"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8397a3817d7dcdd14bb266283cd1d6fc7264a48c186b986f32e86d86d35fbac5"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e0381b4ce23ff92f8170080c97678040fc5b08da85e9e292292aba67fdac6c34"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23d32a2594cb5d565d358a92e151315d1b2268bc10f4610d098f96b147370136"}, + {file = "yarl-1.9.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ddb2a5c08a4eaaba605340fdee8fc08e406c56617566d9643ad8bf6852778fc7"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:26a1dc6285e03f3cc9e839a2da83bcbf31dcb0d004c72d0730e755b33466c30e"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:18580f672e44ce1238b82f7fb87d727c4a131f3a9d33a5e0e82b793362bf18b4"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:29e0f83f37610f173eb7e7b5562dd71467993495e568e708d99e9d1944f561ec"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:1f23e4fe1e8794f74b6027d7cf19dc25f8b63af1483d91d595d4a07eca1fb26c"}, + {file = "yarl-1.9.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:db8e58b9d79200c76956cefd14d5c90af54416ff5353c5bfd7cbe58818e26ef0"}, + {file = "yarl-1.9.4-cp39-cp39-win32.whl", hash = "sha256:c7224cab95645c7ab53791022ae77a4509472613e839dab722a72abe5a684575"}, + {file = "yarl-1.9.4-cp39-cp39-win_amd64.whl", hash = "sha256:824d6c50492add5da9374875ce72db7a0733b29c2394890aef23d533106e2b15"}, + {file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"}, + {file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" + +[[package]] +name = "zipp" +version = "3.19.2" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.8" +files = [ + {file = "zipp-3.19.2-py3-none-any.whl", hash = "sha256:f091755f667055f2d02b32c53771a7a6c8b47e1fdbc4b72a8b9072b3eef8015c"}, + {file = "zipp-3.19.2.tar.gz", hash = "sha256:bf1dcf6450f873a13e952a29504887c89e6de7506209e5b1bcc3460135d4de19"}, +] + +[package.extras] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] + +[metadata] +lock-version = "2.0" +python-versions = "^3.9,<3.13" +content-hash = "444c49bf06faa6256d12f38f4f2bb94357edfa0bcacda141fefb22c2951d5347" diff --git a/openbb_platform/providers/multpl/pyproject.toml b/openbb_platform/providers/multpl/pyproject.toml new file mode 100644 index 00000000000..8d06e78e12a --- /dev/null +++ b/openbb_platform/providers/multpl/pyproject.toml @@ -0,0 +1,19 @@ +[tool.poetry] +name = "openbb-multpl" +version = "1.0.0" +description = "Public data on historical S&P Multiples." +authors = ["OpenBB Team "] +readme = "README.md" +packages = [{ include = "openbb_multpl" }] + +[tool.poetry.dependencies] +python = "^3.9,<3.13" +openbb-core = "^1.3.0" + + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.plugins."openbb_provider_extension"] +multpl = "openbb_multpl:multpl_provider" diff --git a/openbb_platform/providers/multpl/tests/__init__.py b/openbb_platform/providers/multpl/tests/__init__.py new file mode 100644 index 00000000000..935578a39a0 --- /dev/null +++ b/openbb_platform/providers/multpl/tests/__init__.py @@ -0,0 +1 @@ +"""Multpl Provider Module Tests.""" diff --git a/openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v1.yaml b/openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v1.yaml new file mode 100644 index 00000000000..43a0f6d80ad --- /dev/null +++ b/openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v1.yaml @@ -0,0 +1,427 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://www.multpl.com/s-p-500-pe-ratio/table/by-month + response: + body: + string: !!binary | + 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 + +nbtUFGK41ovpaIUxrdAyVilOGeuCJpl5llqV13UVFSUicGtGp6xmIoyKdi5eGYKaGLQ4onqiiUp + G4PDYHT/i3xDTSmO6+H1FJXE6AATmUNVKU4iHYi808hKYs6cXClOIv7SHMpKYaa+xqpLWBPJOS8F + tGvM/bMnV4qTKKPSOxSWwvjOg2SsUpxEmKE5DFY2ZuAckqksxUlkJzSHylIY35YdKktxXDNhpoAK + kziU4UTo9UK74rhOHqOyFCaRukXmMGBJjifRYQpo16oxKXKNO4xYiuNaRaGyFMZXpKGybA7mjJ7M + i8qyMSid6xXpuLGaZQvFce2YprJsDITuaiwqS3FcNSMqy8Z4+w5TQcVxFfioLIXxrU9SWYrzRd+5 + OM5v1vm7F28vlqsP+At/Zov1/HC4bu0X23Xr3YvytdXyurXMD4v9andcbTd4Pcve7t79ab9a5Nlx + m+Xz/Wa1uTtk+zl+385u5od8mW032XE/X63xm+z4MV9/yLOH7eZ4n71cL//6uH0zP7zc3Bx2b/b5 + brs/5suX++Ll8sW38+x+n99et+6Px93VxcXHjx+7D4/r427dXWwfLg6dXWfc63Xqb75ovat/fHsx + f9ctDfz2cb/PN8fsT99lq0OWH46rhzm+KLvdbx+yNX48HLP623kR880yW1SffJjvf8qPpUm7cLkV + Gfws+377uF/kV5lla77YbrpP83XezZePF//jcL9ar/P9xXJ+nHfvjw+FC7Psz9ubfH/Mvi9/GyzP + wrffw9qb7fanQD7O93f58br1/mY93/zUgr3r69Zmu93lm3zfipx0qLw0f5j/O747eOlud7Hbb5eP + i+NF73LW70+G/cH4Irh1fni/Xr0/rn+1yq//+Z/+dvpyMX/YXfcn09nLxT5HK37Ir2fDwbj516+/ + /8M/XBPyEq3607fbZQ7S4OVxfnddNk5n0Ct+9YfldT4aLW/z4XixmE57t/3l7XhxedMf9Oa3o+Fw + 2c9b7/6wL/rLZr7Ovvv5EZ6YbxZ5cMLb1cNddtgvrlsXF6t9ZzPvlhfVmS8PT4dj/lBcXY7f/eoY + f/H1/GHwcnvdfzmPTG1lH1fL4/11qw9v5au7ezgTP95s98t8f93qtbL5Gi+1ssPxaZ2jo68Ou/X8 + 6SpbbXCR+ZvqnVeb7SbPfrF6CJ11vjm+ydA37labq97u5/jlVnbxLrvd7kMjHrfoMtn3L+HbN3/K + 0F9DT/xz0Ei31hwFVmgxXCH6xttSa9n88LRZlJ4IOghNvJvf5fPloHu33d6tc/x+uVoEYtni5W8v + fjxcAHTzVL6p++PhV4v1Ckq4Xsw7u8ebzmA2Hgyno9lwNL6cDfvT1ovFfns4wFxc0XVrjmt9etg+ + wpS3F6UpsOkXnQ56IwaM4c3TIOt08NJqc6gHjOj7Wi8+c2Xpyc7Nerv46U3RGlfDHvz2pmyPq8EY + /2i9COKAAzqVrS1pbP3Gw3qLlptdDobD8WTWGwZzYVLjv3cvXkVmZdfoCZvl9mM3fvE//iP71397 + 3d09Hu5ffXp+/QYN01xxOSy+eIswWA2LhzzvzNeHbWij++G77/McveewfXuBf7zAaLlevWtGg4tK + 9J0d+nol8aYDhG7+5QeqUa0YaTrHbScMAvjsy6rz1OPtb8LY8MN8/VioRWLqEbHztMrXS3K+q4fr + v4TXfZYcMJShO3xhyvfh9bJPm6DV5hYDLbonGvbHR2h32anGbui//l326+p30EpxqSbq8zGf1tQX + VH/s4nEdQlcV1Yq/sji6LdZwDfpKGfXq31d/U5G32+0RY+y7FzB0u0fowGWEQIIx9cNqiTjycn0o + Axlefbkvfi7G78N2na+filEA119/dL5+sXvc77aH/NDONttj8XtEyGUIkPVvMowc8+UHRJp2gXqY + P2U3ebbMMSTlSwwbNzAc/3/xl+1jdrjfPq6X2WF1t8kedwUPIQkDUxl01xiBEEJelIH0onq5E15u + vbvP90XviZBF/A+xvrxwjLsfQj8Pzgwd+9vt7gkDxP0xe7nAj2+yQW+AVSf85rTfh+85bq8QAI/z + xfFvGLVb7758LTQZGXEjtZbbDUJ057CbLyCgKi2o2iw4tdZk+T4M44vQQGXGUAfD3fxpNy9ThsXd + qnOz2lx8zG8g8NaLh/x4v8XFokHgjjCW7R6P2fFphxhwv1ou800r28wf8K/Fw7KVfQhyQxg+dH7G + +LSALFMfuQc0X76/eTwet5v3K37+h19/N/3b6Z/+++9/+7vffUdGNbzUl1JagWzlLsdgWgTCwxH9 + b3Fxc9y8L9/1/u9/191t7k4iWWnv4fHmYVVc00XwEwwtG6mQxUmvP/F3oYowhBayoAwwWsLQ/39j + UtlbkRgddtvNAZnLWbGpCEpfHXum495oiOdi9AdElIJHFH08bqtXbx/X604R+Do087p13D+iZ/+/ + iVmVUOK/MAbWoa31eMiR8CCgHFtvXlRhEQnOfr/dX98+bgopvZq3b9qL159ebfKP2R9CZ3zdDZ3x + X1tIMPJffUCi9XDdauebBRLBf/7zH77dIjnaIM14NX/dbr1E8m797ib8DjK1frd4/W/dH7erzatW + 6zXmBcfH/eYX/ec3YSyvLQ8/I4Fev/s/KefmOxZBAgA= + headers: + Cache-Control: + - public + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - text/html; charset=utf-8 + Date: + - Sat, 03 Aug 2024 20:11:14 GMT + Etag: + - W/"05dada163616fcb30bb864f819dc05df68416e4b" + Expires: + - Sat, 03 Aug 2024 20:11:21 GMT + Server: + - nginx/1.18.0 (Ubuntu) + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v2.yaml b/openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v2.yaml new file mode 100644 index 00000000000..652c08d46fa --- /dev/null +++ b/openbb_platform/providers/multpl/tests/record/http/test_multpl_fetchers/test_multpl_sp500_multiples_fetcher_urllib3_v2.yaml @@ -0,0 +1,427 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + method: GET + uri: https://www.multpl.com/s-p-500-pe-ratio/table/by-month + response: + body: + string: !!binary | + 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 + +nbtUFGK41ovpaIUxrdAyVilOGeuCJpl5llqV13UVFSUicGtGp6xmIoyKdi5eGYKaGLQ4onqiiUp + G4PDYHT/i3xDTSmO6+H1FJXE6AATmUNVKU4iHYi808hKYs6cXClOIv7SHMpKYaa+xqpLWBPJOS8F + tGvM/bMnV4qTKKPSOxSWwvjOg2SsUpxEmKE5DFY2ZuAckqksxUlkJzSHylIY35YdKktxXDNhpoAK + kziU4UTo9UK74rhOHqOyFCaRukXmMGBJjifRYQpo16oxKXKNO4xYiuNaRaGyFMZXpKGybA7mjJ7M + i8qyMSid6xXpuLGaZQvFce2YprJsDITuaiwqS3FcNSMqy8Z4+w5TQcVxFfioLIXxrU9SWYrzRd+5 + OM5v1vm7F28vlqsP+At/Zov1/HC4bu0X23Xr3YvytdXyurXMD4v9andcbTd4Pcve7t79ab9a5Nlx + m+Xz/Wa1uTtk+zl+385u5od8mW032XE/X63xm+z4MV9/yLOH7eZ4n71cL//6uH0zP7zc3Bx2b/b5 + brs/5suX++Ll8sW38+x+n99et+6Px93VxcXHjx+7D4/r427dXWwfLg6dXWfc63Xqb75ovat/fHsx + f9ctDfz2cb/PN8fsT99lq0OWH46rhzm+KLvdbx+yNX48HLP623kR880yW1SffJjvf8qPpUm7cLkV + Gfws+377uF/kV5lla77YbrpP83XezZePF//jcL9ar/P9xXJ+nHfvjw+FC7Psz9ubfH/Mvi9/GyzP + wrffw9qb7fanQD7O93f58br1/mY93/zUgr3r69Zmu93lm3zfipx0qLw0f5j/O747eOlud7Hbb5eP + i+NF73LW70+G/cH4Irh1fni/Xr0/rn+1yq//+Z/+dvpyMX/YXfcn09nLxT5HK37Ir2fDwbj516+/ + /8M/XBPyEq3607fbZQ7S4OVxfnddNk5n0Ct+9YfldT4aLW/z4XixmE57t/3l7XhxedMf9Oa3o+Fw + 2c9b7/6wL/rLZr7Ovvv5EZ6YbxZ5cMLb1cNddtgvrlsXF6t9ZzPvlhfVmS8PT4dj/lBcXY7f/eoY + f/H1/GHwcnvdfzmPTG1lH1fL4/11qw9v5au7ezgTP95s98t8f93qtbL5Gi+1ssPxaZ2jo68Ou/X8 + 6SpbbXCR+ZvqnVeb7SbPfrF6CJ11vjm+ydA37labq97u5/jlVnbxLrvd7kMjHrfoMtn3L+HbN3/K + 0F9DT/xz0Ei31hwFVmgxXCH6xttSa9n88LRZlJ4IOghNvJvf5fPloHu33d6tc/x+uVoEYtni5W8v + fjxcAHTzVL6p++PhV4v1Ckq4Xsw7u8ebzmA2Hgyno9lwNL6cDfvT1ovFfns4wFxc0XVrjmt9etg+ + wpS3F6UpsOkXnQ56IwaM4c3TIOt08NJqc6gHjOj7Wi8+c2Xpyc7Nerv46U3RGlfDHvz2pmyPq8EY + /2i9COKAAzqVrS1pbP3Gw3qLlptdDobD8WTWGwZzYVLjv3cvXkVmZdfoCZvl9mM3fvE//iP71397 + 3d09Hu5ffXp+/QYN01xxOSy+eIswWA2LhzzvzNeHbWij++G77/McveewfXuBf7zAaLlevWtGg4tK + 9J0d+nol8aYDhG7+5QeqUa0YaTrHbScMAvjsy6rz1OPtb8LY8MN8/VioRWLqEbHztMrXS3K+q4fr + v4TXfZYcMJShO3xhyvfh9bJPm6DV5hYDLbonGvbHR2h32anGbui//l326+p30EpxqSbq8zGf1tQX + VH/s4nEdQlcV1Yq/sji6LdZwDfpKGfXq31d/U5G32+0RY+y7FzB0u0fowGWEQIIx9cNqiTjycn0o + Axlefbkvfi7G78N2na+filEA119/dL5+sXvc77aH/NDONttj8XtEyGUIkPVvMowc8+UHRJp2gXqY + P2U3ebbMMSTlSwwbNzAc/3/xl+1jdrjfPq6X2WF1t8kedwUPIQkDUxl01xiBEEJelIH0onq5E15u + vbvP90XviZBF/A+xvrxwjLsfQj8Pzgwd+9vt7gkDxP0xe7nAj2+yQW+AVSf85rTfh+85bq8QAI/z + xfFvGLVb7758LTQZGXEjtZbbDUJ057CbLyCgKi2o2iw4tdZk+T4M44vQQGXGUAfD3fxpNy9ThsXd + qnOz2lx8zG8g8NaLh/x4v8XFokHgjjCW7R6P2fFphxhwv1ou800r28wf8K/Fw7KVfQhyQxg+dH7G + +LSALFMfuQc0X76/eTwet5v3K37+h19/N/3b6Z/+++9/+7vffUdGNbzUl1JagWzlLsdgWgTCwxH9 + b3Fxc9y8L9/1/u9/191t7k4iWWnv4fHmYVVc00XwEwwtG6mQxUmvP/F3oYowhBayoAwwWsLQ/39j + UtlbkRgddtvNAZnLWbGpCEpfHXum495oiOdi9AdElIJHFH08bqtXbx/X604R+Do087p13D+iZ/+/ + iVmVUOK/MAbWoa31eMiR8CCgHFtvXlRhEQnOfr/dX98+bgopvZq3b9qL159ebfKP2R9CZ3zdDZ3x + X1tIMPJffUCi9XDdauebBRLBf/7zH77dIjnaIM14NX/dbr1E8m797ib8DjK1frd4/W/dH7erzatW + 6zXmBcfH/eYX/ec3YSyvLQ8/I4Fev/s/KefmOxZBAgA= + headers: + Cache-Control: + - public + Connection: + - keep-alive + Content-Encoding: + - gzip + Content-Type: + - text/html; charset=utf-8 + Date: + - Sat, 03 Aug 2024 20:10:21 GMT + Etag: + - W/"05dada163616fcb30bb864f819dc05df68416e4b" + Expires: + - Sat, 03 Aug 2024 20:11:21 GMT + Server: + - nginx/1.18.0 (Ubuntu) + Transfer-Encoding: + - chunked + Vary: + - Accept-Encoding + status: + code: 200 + message: OK +version: 1 diff --git a/openbb_platform/providers/multpl/tests/test_multpl_fetchers.py b/openbb_platform/providers/multpl/tests/test_multpl_fetchers.py new file mode 100644 index 00000000000..458d12efb55 --- /dev/null +++ b/openbb_platform/providers/multpl/tests/test_multpl_fetchers.py @@ -0,0 +1,27 @@ +"""Multpl Fetcher Tests.""" + +import pytest +from openbb_core.app.service.user_service import UserService +from openbb_multpl.models.sp500_multiples import MultplSP500MultiplesFetcher + +test_credentials = UserService().default_user_settings.credentials.model_dump( + mode="json" +) + + +@pytest.fixture(scope="module") +def vcr_config(): + """VCR configuration.""" + return { + "filter_headers": [("User-Agent", None)], + } + + +@pytest.mark.record_http +def test_multpl_sp500_multiples_fetcher(credentials=None): + """Test multpl sp500 multiples fetcher.""" + params = {} + + fetcher = MultplSP500MultiplesFetcher() + result = fetcher.test(params, credentials) + assert result is None diff --git a/openbb_platform/providers/nasdaq/openbb_nasdaq/models/sp500_multiples.py b/openbb_platform/providers/nasdaq/openbb_nasdaq/models/sp500_multiples.py index 94dfbd11e41..8a12b9832b8 100644 --- a/openbb_platform/providers/nasdaq/openbb_nasdaq/models/sp500_multiples.py +++ b/openbb_platform/providers/nasdaq/openbb_nasdaq/models/sp500_multiples.py @@ -3,6 +3,7 @@ # pylint: disable=unused-argument from typing import Any, Dict, List, Optional +from warnings import warn from openbb_core.provider.abstract.fetcher import Fetcher from openbb_core.provider.standard_models.sp500_multiples import ( @@ -50,6 +51,12 @@ class NasdaqSP500MultiplesFetcher( """Get the raw Nasdaq Data.""" import nasdaqdatalink # pylint: disable=import-outside-toplevel + # TODO: Remove this warning when removing from the fetcher_dict. + warn( + "This data set is no longer updated. Install `openbb-multpl` for replacement source of the same data." + + " This provider fetcher will be removed in a future version.", + category=FutureWarning, + ) api_key = credentials.get("nasdaq_api_key") if credentials else "" if "Year" in query.series_name: @@ -68,9 +75,10 @@ class NasdaqSP500MultiplesFetcher( **kwargs, ) .reset_index() - .rename(columns={"Date": "date", "Value": query.series_name}) + .rename(columns={"Date": "date", "Value": "value"}) ) data["date"] = data["date"].dt.strftime("%Y-%m-%d") + data.loc[:, "name"] = query.series_name return data.to_dict("records") diff --git a/openbb_platform/pyproject.toml b/openbb_platform/pyproject.toml index 958b1602359..50ff7616167 100644 --- a/openbb_platform/pyproject.toml +++ b/openbb_platform/pyproject.toml @@ -44,6 +44,7 @@ openbb-ecb = { version = "^1.3.0", optional = true } openbb-finra = { version = "^1.3.0", optional = true } openbb-finviz = { version = "^1.2.0", optional = true } openbb-government-us = { version = "^1.3.0", optional = true } +openbb-multpl = { version = "1.0.0", optional = true } openbb-nasdaq = { version = "^1.3.0", optional = true } openbb-seeking-alpha = { version = "^1.3.0", optional = true } openbb-stockgrid = { version = "^1.3.0", optional = true } @@ -67,6 +68,7 @@ finra = ["openbb-finra"] finviz = ["openbb-finviz"] government_us = ["openbb-government-us"] nasdaq = ["openbb-nasdaq"] +multpl = ["openbb-multpl"] quantitative = ["openbb-quantitative"] seeking_alpha = ["openbb-seeking-alpha"] stockgrid = ["openbb-stockgrid"] @@ -86,6 +88,7 @@ all = [ "openbb-finra", "openbb-finviz", "openbb-government-us", + "openbb-multpl", "openbb-nasdaq", "openbb-quantitative", "openbb-seeking-alpha",