From b43c3eaaee8874f6de4c759f53a0d7bf6fca0a57 Mon Sep 17 00:00:00 2001
From: Danglewood <85772166+deeleeramone@users.noreply.github.com>
Date: Thu, 19 Oct 2023 14:11:03 -0700
Subject: [PATCH 01/23] feature/v4-biztoc-provider: Adds Biztoc provider and
GlobalNews (#5546)
* add biztoc provider
* duplicate field
* black
* request headers
* recapture test
* move stuff around
* add integration tests
* duplicate OECD entry in dev_install
* duplicate entry for oecd in pyproject.toml
---
openbb_platform/dev_install.py | 1 +
.../news/integration/test_news_api.py | 10 +-
.../news/integration/test_news_python.py | 1 +
openbb_platform/poetry.lock | 721 +++++---
openbb_platform/providers/biztoc/README.md | 12 +
openbb_platform/providers/biztoc/__init__.py | 0
.../biztoc/openbb_biztoc/__init__.py | 22 +
.../biztoc/openbb_biztoc/models/__init__.py | 0
.../openbb_biztoc/models/global_news.py | 107 ++
.../biztoc/openbb_biztoc/utils/__init__.py | 0
.../biztoc/openbb_biztoc/utils/helpers.py | 135 ++
openbb_platform/providers/biztoc/poetry.lock | 1501 +++++++++++++++++
.../providers/biztoc/pyproject.toml | 19 +
.../providers/biztoc/tests/__init__.py | 0
.../test_biztoc_global_news_fetcher.yaml | 930 ++++++++++
.../biztoc/tests/test_biztoc_fetchers.py | 24 +
openbb_platform/pyproject.toml | 5 +-
17 files changed, 3203 insertions(+), 285 deletions(-)
create mode 100644 openbb_platform/providers/biztoc/README.md
create mode 100644 openbb_platform/providers/biztoc/__init__.py
create mode 100644 openbb_platform/providers/biztoc/openbb_biztoc/__init__.py
create mode 100644 openbb_platform/providers/biztoc/openbb_biztoc/models/__init__.py
create mode 100644 openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py
create mode 100644 openbb_platform/providers/biztoc/openbb_biztoc/utils/__init__.py
create mode 100644 openbb_platform/providers/biztoc/openbb_biztoc/utils/helpers.py
create mode 100644 openbb_platform/providers/biztoc/poetry.lock
create mode 100644 openbb_platform/providers/biztoc/pyproject.toml
create mode 100644 openbb_platform/providers/biztoc/tests/__init__.py
create mode 100644 openbb_platform/providers/biztoc/tests/record/http/test_biztoc_fetchers/test_biztoc_global_news_fetcher.yaml
create mode 100644 openbb_platform/providers/biztoc/tests/test_biztoc_fetchers.py
diff --git a/openbb_platform/dev_install.py b/openbb_platform/dev_install.py
index 2ed5c70e300a..55f3927e4e26 100644
--- a/openbb_platform/dev_install.py
+++ b/openbb_platform/dev_install.py
@@ -34,6 +34,7 @@
# Community dependencies
openbb-alpha-vantage = { path = "./providers/alpha_vantage", optional = true, develop = true }
+openbb-biztoc = { path = "./providers/biztoc", optional = true, develop = true }
openbb-cboe = { path = "./providers/cboe", optional = true, develop = true }
openbb-quandl = { path = "./providers/quandl", optional = true, develop = true }
openbb-yfinance = { path = "./providers/yfinance", optional = true, develop = true }
diff --git a/openbb_platform/extensions/news/integration/test_news_api.py b/openbb_platform/extensions/news/integration/test_news_api.py
index b1f4b004b948..2389e68f5096 100644
--- a/openbb_platform/extensions/news/integration/test_news_api.py
+++ b/openbb_platform/extensions/news/integration/test_news_api.py
@@ -1,18 +1,11 @@
-import base64
-
import pytest
import requests
-from openbb_core.env import Env
from openbb_provider.utils.helpers import get_querystring
@pytest.fixture(scope="session")
def headers():
- userpass = f"{Env().API_USERNAME}:{Env().API_PASSWORD}"
- userpass_bytes = userpass.encode("ascii")
- base64_bytes = base64.b64encode(userpass_bytes)
-
- return {"Authorization": f"Basic {base64_bytes.decode('ascii')}"}
+ return {}
@pytest.mark.parametrize(
@@ -51,6 +44,7 @@ def headers():
"limit": 20,
}
),
+ ({"provider": "biztoc", "filter": "tag", "tag": "federalreserve"}),
],
)
@pytest.mark.integration
diff --git a/openbb_platform/extensions/news/integration/test_news_python.py b/openbb_platform/extensions/news/integration/test_news_python.py
index 6c7d15232a1d..65de5ba1a931 100644
--- a/openbb_platform/extensions/news/integration/test_news_python.py
+++ b/openbb_platform/extensions/news/integration/test_news_python.py
@@ -50,6 +50,7 @@ def obb(pytestconfig):
"limit": 20,
}
),
+ ({"provider": "biztoc", "filter": "tag", "tag": "federalreserve"}),
],
)
@pytest.mark.integration
diff --git a/openbb_platform/poetry.lock b/openbb_platform/poetry.lock
index 8a1402ebc16a..d9679f2739f0 100644
--- a/openbb_platform/poetry.lock
+++ b/openbb_platform/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
[[package]]
name = "aiohttp"
@@ -122,6 +122,20 @@ files = [
[package.dependencies]
frozenlist = ">=1.1.0"
+[[package]]
+name = "annotated-types"
+version = "0.6.0"
+description = "Reusable constraint types to use with typing.Annotated"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"},
+ {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""}
+
[[package]]
name = "anyio"
version = "3.7.1"
@@ -443,69 +457,69 @@ test = ["flake8", "isort", "pytest"]
[[package]]
name = "cython"
-version = "3.0.3"
+version = "3.0.4"
description = "The Cython compiler for writing C extensions in the Python language."
optional = true
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
files = [
- {file = "Cython-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85073ab414ff432d2a39d36cb49c39ce69f30b53daccc7699bfad0ce3d1b539a"},
- {file = "Cython-3.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30c1d9bd2bcb9b1a195dd23b359771857df8ebd4a1038fb37dd155d3ea38c09c"},
- {file = "Cython-3.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9296f332523d5c550ebae694483874d255264cff3281372f25ea5f2739b96651"},
- {file = "Cython-3.0.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d52ed47edbf48392dd0f419135e7ff59673f6b32d27d3ffc9e61a515571c050d"},
- {file = "Cython-3.0.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:6f63e959d13775472d37e731b2450d120e8db87e956e2de74475e8f17a89b1fb"},
- {file = "Cython-3.0.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22d268c3023f405e13aa0c1600389794694ab3671614f8e782d89a1055da0858"},
- {file = "Cython-3.0.3-cp310-cp310-win32.whl", hash = "sha256:51850f277660f67171135515e45edfc8815f723ff20768e39cb9785b2671062f"},
- {file = "Cython-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bff1fec968a6b2ca452ae9bff6d6d0bf8486427d4d791e85543240266b6915e0"},
- {file = "Cython-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:587d664ff6bd5b03611ddc6ef320b7f8677d824c45d15553f16a69191a643843"},
- {file = "Cython-3.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3192cd780435fca5ae5d79006b48cbf0ea674853b5a7b0055a122045bff9d84e"},
- {file = "Cython-3.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f7578b59ffd0d9c95ae6f7ae852309918915998b7fe0ed2f8725a683de8da276"},
- {file = "Cython-3.0.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f05889eb1b5a95a7adf97303279c2d13819ff62292e10337e6c940dbf570b5d"},
- {file = "Cython-3.0.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1d3416c24a1b7bf3a2d9615a7f9f12b00fac0b94fb2e61449e0c1ecf20d6ed52"},
- {file = "Cython-3.0.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4cc0f7244da06fdc6a4a7240df788805436b6fb7f20edee777eb77777d9d2eb1"},
- {file = "Cython-3.0.3-cp311-cp311-win32.whl", hash = "sha256:845e24ee70c204062e03f813114751387abf454b29410336797582e04abbc07b"},
- {file = "Cython-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:e3ad109bdf40f55318e001cad12bcc00e8119569b49f72e442c082355617b036"},
- {file = "Cython-3.0.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:14b898ec2fdeea68f81bd3838b035800b173b59ed532674f65a82724bab35d3b"},
- {file = "Cython-3.0.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:188705eeae094bb716bc3e3d0da4e13469f0a0de803b65dfd63fe7eb78ec6173"},
- {file = "Cython-3.0.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eb128fa40305f18eaa4d8dd0980033b92db86aada927181d3c3d561aa0634db"},
- {file = "Cython-3.0.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80bd3167e689419cdaf7ede0d20a9f126b9698a43b1f8d3e8f54b970c7a6cd07"},
- {file = "Cython-3.0.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d0c7b315f6feb75e2c949dc7816da5626cdca097fea1c0d9f4fdb20d2f4ffc2a"},
- {file = "Cython-3.0.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:db9d4de4cd6cd3ad1c3f455aae877ad81a92b92b7cbb01dfb32b6306b873932b"},
- {file = "Cython-3.0.3-cp312-cp312-win32.whl", hash = "sha256:be1a679c7ad90813f9206c9d62993f3bd0cba9330668e97bb3f70c87ae94d5f5"},
- {file = "Cython-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:fa08259f4d176b86561eeff6954f9924099c0b0c128fc2cbfc18343c068ad8ca"},
- {file = "Cython-3.0.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:056340c49bf7861eb1eba941423e67620b7c85e264e9a5594163f1d1e8b95acc"},
- {file = "Cython-3.0.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cfbd60137f6fca9c29101d7517d4e341e0fd279ffc2489634e5e2dd592457c2"},
- {file = "Cython-3.0.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66b7e71c16cab0814945014ffb101ead2b173259098bbb1b8138e7a547da3709"},
- {file = "Cython-3.0.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:42b1ff0e19fb4d1fe68b60f55d46942ed246a323f6bbeec302924b78b4c3b637"},
- {file = "Cython-3.0.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:5d6af87a787d5ce063e28e508fee34755a945e438c68ecda50eb4ea34c30e13f"},
- {file = "Cython-3.0.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0147a31fb73a063bb7b6c69fd843c1a2bad18f326f58048d4ee5bdaef87c9fbf"},
- {file = "Cython-3.0.3-cp36-cp36m-win32.whl", hash = "sha256:84084fa05cf9a67a85818fa72a741d1cae2e3096551158730730a3bafc3b2f52"},
- {file = "Cython-3.0.3-cp36-cp36m-win_amd64.whl", hash = "sha256:8a6a9a2d98758768052e4ac1bea4ebc20fae69b4c19cb2bc5457c9174532d302"},
- {file = "Cython-3.0.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:94fa403de3a413cd41b8eb4ddb4adcbd66aa0a64f9a84d1c5f696c93572c83aa"},
- {file = "Cython-3.0.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e729fd633a5225570c5480b36e7c530c8a82e2ab6d2944ddbe1ddfff5bf181b1"},
- {file = "Cython-3.0.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:59bf689409b0e51ef673e3dd0348727aef5b67e40f23f806be64c49cee321de0"},
- {file = "Cython-3.0.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f0ac9ec822fad010248b4a59ac197975de38c95378d0f13201c181dd9b0a2624"},
- {file = "Cython-3.0.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8e78fc42a6e846941d23aba1aca587520ad38c8970255242f08f9288b0eeba85"},
- {file = "Cython-3.0.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e40ac8bd6d11355d354bb4975bb88f6e923ba30f85e38f1f1234b642634e4fc4"},
- {file = "Cython-3.0.3-cp37-cp37m-win32.whl", hash = "sha256:77a920ae19fa1db5adb8a618cebb095ca4f56adfbf9fc32cb7008a590607b62b"},
- {file = "Cython-3.0.3-cp37-cp37m-win_amd64.whl", hash = "sha256:0630527a8c9e8fed815c38524e418dab713f5d66f6ac9dc2151b41f3a7727304"},
- {file = "Cython-3.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:4e956383e57d00b1fa6449b5ec03b9fa5fce2afd41ef3e518bee8e7c89f1616c"},
- {file = "Cython-3.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1ec9e15b821ef7e3c38abe9e4df4e6dda7af159325bc358afd5a3c2d5027ccfe"},
- {file = "Cython-3.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18f4fb7cc6ad8e99e8f387ebbcded171a701bfbfd8cd3fd46156bf44bb4fd968"},
- {file = "Cython-3.0.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b50f4f75f89e7eef2ed9c9b60746bc4ab1ba2bc0dff64587133db2b63e068f09"},
- {file = "Cython-3.0.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5545d20d7a1c0cf17559152f7f4a465c3d5caace82dd051f82e2d753ae9fd956"},
- {file = "Cython-3.0.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:1571b045ec1cb15c152c3949f3bd53ee0fa66d434271ea3d225658d99b7e721a"},
- {file = "Cython-3.0.3-cp38-cp38-win32.whl", hash = "sha256:3db04801fd15d826174f63ff45878d4b1e62aff27cf1ea96b186581052d24446"},
- {file = "Cython-3.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:75d42c8423ab299396f3c938445730600e32e4a2f0298f6f9df4d4a698fe8e16"},
- {file = "Cython-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:48bae87b657009e5648c21d4a92de9f3dc6fed3e35e92957fa8a07a18cea2313"},
- {file = "Cython-3.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ccde14ddc4b424435cb5722aa1529c254bbf3611e1ad9baea12d25e9c049361"},
- {file = "Cython-3.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c8e5afcc19861c3b22faafbe906c7e1b23f0595073ac10e21a80dec9e60e7dd"},
- {file = "Cython-3.0.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0e1c9385e99eef299396b9a1e39790e81819446c6a83e249f6f0fc71a64f57a0"},
- {file = "Cython-3.0.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d49d20db27c9cfcf45bb1fbf68f777bd1e04e4b949e4e5172d9ee8c9419bc792"},
- {file = "Cython-3.0.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d12591939af93c59defea6fc5320ca099eb44e4694e3b2cbe72fb24406079b97"},
- {file = "Cython-3.0.3-cp39-cp39-win32.whl", hash = "sha256:9f40b27545d583fd7df0d3c1b76b3bcaf8a72dbd8d83d5486af2384015660de8"},
- {file = "Cython-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:74ba0f11b384246b7965169f08bf67d426e4957fee5c165571340217a9b43cfc"},
- {file = "Cython-3.0.3-py2.py3-none-any.whl", hash = "sha256:176953a8a2532e34a589625a40c934ff339088f2bf4ddaa2e5cb77b05ca0c25c"},
- {file = "Cython-3.0.3.tar.gz", hash = "sha256:327309301b01f729f173a94511cb2280c87ba03c89ed428e88f913f778245030"},
+ {file = "Cython-3.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:096cb461bf8d913a4327d93ea38d18bc3dbc577a71d805be04754e4b2cc2c45d"},
+ {file = "Cython-3.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bf671d712816b48fa2731799017ed68e5e440922d0c7e13dc825c226639ff766"},
+ {file = "Cython-3.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:beb367fd88fc6ba8c204786f680229106d99da72a60f5906c85fc8d73640b01a"},
+ {file = "Cython-3.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6619264ed43d8d8819d4f1cdb8a62ab66f87e92f06f3ff3e2533fd95a9945e59"},
+ {file = "Cython-3.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c0fb9e7cf9db38918f19a803fab9bc7b2ed3f33a9e8319c616c464a0a8501b8d"},
+ {file = "Cython-3.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c214f6e88ecdc8ff5d13f0914890445fdaad21bddc34a90cd14aeb3ad5e55e2e"},
+ {file = "Cython-3.0.4-cp310-cp310-win32.whl", hash = "sha256:c9b1322f0d8ce5445fcc3a625b966f10c4182190026713e217d6f38d29930cb1"},
+ {file = "Cython-3.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:146bfaab567157f4aa34114a37e3f98a3d9c4527ee99d4fd730cab56482bd3cf"},
+ {file = "Cython-3.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c8e0f98d950987b0f9d5e10c41236bef5cb4fba701c6e680af0b9734faa3a85e"},
+ {file = "Cython-3.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fe227d6d8e2ea030e82abc8a3e361e31447b66849f8c069caa783999e54a8f2"},
+ {file = "Cython-3.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6da74000a672eac0d7cf02adc140b2f9c7d54eae6c196e615a1b5deb694d9203"},
+ {file = "Cython-3.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48cda82eb82ad2014d2ad194442ed3c46156366be98e4e02f3e29742cdbf94a0"},
+ {file = "Cython-3.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4355a2cb03b257773c0d2bb6af9818c72e836a9b09986e28f52e323d87b1fc67"},
+ {file = "Cython-3.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:10b426adc3027d66303f5c7aa8b254d10ed80827ff5cce9e892d550b708dc044"},
+ {file = "Cython-3.0.4-cp311-cp311-win32.whl", hash = "sha256:28de18f0d07eb34e2dd7b022ac30beab0fdd277846d07b7a08e69e6294f0762b"},
+ {file = "Cython-3.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:9d31d76ed777a8a85be3f8f7f1cfef09b3bc33f6ec4abee1067dcef107f49778"},
+ {file = "Cython-3.0.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d5a55749509c7f9f8a33bf9cc02cf76fd6564fcb38f486e43d2858145d735953"},
+ {file = "Cython-3.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58cdfdd942cf5ffcee974aabfe9b9e26c0c1538fd31c1b03596d40405f7f4d40"},
+ {file = "Cython-3.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5b906997e7b98d7d29b84d10a5318993eba1aaff82ff7e1a0ac00254307913d7"},
+ {file = "Cython-3.0.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f24114e1777604a28ae1c7a56a2c9964655f1031edecc448ad51e5abb19a279b"},
+ {file = "Cython-3.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:07d0e69959f267b79ffd18ece8599711ad2f3d3ed1eddd0d4812d2a97de2b912"},
+ {file = "Cython-3.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f7fcd93d15deceb2747b10266a39deccd94f257d610f3bbd52a7e16bc5908eda"},
+ {file = "Cython-3.0.4-cp312-cp312-win32.whl", hash = "sha256:0aa2a6bb3ff67794d8d1dafaed22913adcbb327e96eca3ac44e2f3ba4a0ae446"},
+ {file = "Cython-3.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:0021350f6d7022a37f598320460b84b2c0daccf6bb65641bbdbc8b990bdf4ad2"},
+ {file = "Cython-3.0.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b72c426df1586f967b1c61d2f8236702d75c6bbf34abdc258a59e09155a16414"},
+ {file = "Cython-3.0.4-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a9262408f05eef039981479b38b38252d5b853992e5bc54a2d2dd05a2a0178e"},
+ {file = "Cython-3.0.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28af4e7dff1742cb0f0a4823102c89c62a2d94115b68f718145fcfe0763c6e21"},
+ {file = "Cython-3.0.4-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4e8c144e2c5814e46868d1f81e2f4265ca1f314a8187d0420cd76e9563294cf8"},
+ {file = "Cython-3.0.4-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:19a64bf2591272348ab08bcd4a5f884259cc3186f008c9038b8ec7d01f847fd5"},
+ {file = "Cython-3.0.4-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:fc96efa617184b8581a02663e261b41c13a605da8ef4ba1ed735bf46184f815e"},
+ {file = "Cython-3.0.4-cp36-cp36m-win32.whl", hash = "sha256:15d52f7f9d08b264c042aa508bf457f53654b55f533e0262e146002b1c15d1cd"},
+ {file = "Cython-3.0.4-cp36-cp36m-win_amd64.whl", hash = "sha256:0650460b5fd6f16da4186e0a769b47db5532601e306f3b5d17941283d5e36d24"},
+ {file = "Cython-3.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b3ddfc6f05410095ec11491dde05f50973e501567d21cbfcf5832d95f141878a"},
+ {file = "Cython-3.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a0b92adfcac68dcf549daddec83c87a86995caa6f87bfb6f72de4797e1a6ad6"},
+ {file = "Cython-3.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ada3659608795bb36930d9a206b8dd6b865d85e2999a02ce8b34f3195d88301"},
+ {file = "Cython-3.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:061dec1be8d8b601b160582609a78eb08324a4ccf21bee0d04853a3e9dfcbefd"},
+ {file = "Cython-3.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:bc42004f181373cd3b39bbacfb71a5b0606ed6e4c199c940cca2212ba0f79525"},
+ {file = "Cython-3.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:f124ac9ee41e1bfdfb16f53f1db85de296cd2144a4e8fdee8c3560a8fe9b6d5d"},
+ {file = "Cython-3.0.4-cp37-cp37m-win32.whl", hash = "sha256:48b35ab009227ee6188991b5666aae1936b82a944f707c042cef267709de12b5"},
+ {file = "Cython-3.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:861979428f749faa9883dc4e11e8c3fc2c29bd0031cf49661604459b53ea7c66"},
+ {file = "Cython-3.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c7a7dd7c50d07718a5ac2bdea166085565f7217cf1e030cc07c22a8b80a406a7"},
+ {file = "Cython-3.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d40d4135f76fb0ed4caa2d422fdb4231616615698709d3c421ecc733f1ac7ca0"},
+ {file = "Cython-3.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:207f53893ca22d8c8f5db533f38382eb7ddc2d0b4ab51699bf052423a6febdad"},
+ {file = "Cython-3.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0422a40a58dcfbb54c8b4e125461d741031ff046bc678475cc7a6c801d2a7721"},
+ {file = "Cython-3.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ef4b144c5b29b4ea0b40c401458b86df8d75382b2e5d03e9f67f607c05b516a9"},
+ {file = "Cython-3.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0612439f810cc281e51fead69de0545c4d9772a1e82149c119d1aafc1f6210ba"},
+ {file = "Cython-3.0.4-cp38-cp38-win32.whl", hash = "sha256:b86871862bd65806ba0d0aa2b9c77fcdcc6cbd8d36196688f4896a34bb626334"},
+ {file = "Cython-3.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:6603a287188dcbc36358a73a7be43e8a2ecf0c6a06835bdfdd1b113943afdd6f"},
+ {file = "Cython-3.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0fc9e974419cc0393072b1e9a669f71c3b34209636d2005ff8620687daa82b8c"},
+ {file = "Cython-3.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e84988d384dfba678387ea7e4f68786c3703543018d473605d9299c69a07f197"},
+ {file = "Cython-3.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36299ffd5663203c25d3a76980f077e23b6d4f574d142f0f43943f57be445639"},
+ {file = "Cython-3.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8529cf09919263a6826adc04c5dde9f1406dd7920929b16be19ee9848110e353"},
+ {file = "Cython-3.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:8692249732d62e049df3884fa601b70fad3358703e137aceeb581e5860e7d9b7"},
+ {file = "Cython-3.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f234bc46043856d118ebd94b13ea29df674503bc94ced3d81ca46a1ad5b5b9ae"},
+ {file = "Cython-3.0.4-cp39-cp39-win32.whl", hash = "sha256:c2215f436ce3cce49e6e318cb8f7253cfc4d3bea690777c2a5dd52ae93342504"},
+ {file = "Cython-3.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:003ccc40e0867770db0018274977d1874e4df64983d5e3e36937f107e0b2fdf6"},
+ {file = "Cython-3.0.4-py2.py3-none-any.whl", hash = "sha256:e5e2859f97e9cceb8e70b0934c56157038b8b083245898593008162a70536d7e"},
+ {file = "Cython-3.0.4.tar.gz", hash = "sha256:2e379b491ee985d31e5faaf050f79f4a8f59f482835906efe4477b33b4fbe9ff"},
]
[[package]]
@@ -1244,6 +1258,47 @@ files = [
{file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"},
]
+[[package]]
+name = "numpy"
+version = "1.26.1"
+description = "Fundamental package for array computing in Python"
+optional = false
+python-versions = "<3.13,>=3.9"
+files = [
+ {file = "numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af"},
+ {file = "numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575"},
+ {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244"},
+ {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67"},
+ {file = "numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2"},
+ {file = "numpy-1.26.1-cp310-cp310-win32.whl", hash = "sha256:d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297"},
+ {file = "numpy-1.26.1-cp310-cp310-win_amd64.whl", hash = "sha256:d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab"},
+ {file = "numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a"},
+ {file = "numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9"},
+ {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3"},
+ {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974"},
+ {file = "numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c"},
+ {file = "numpy-1.26.1-cp311-cp311-win32.whl", hash = "sha256:b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b"},
+ {file = "numpy-1.26.1-cp311-cp311-win_amd64.whl", hash = "sha256:3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53"},
+ {file = "numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f"},
+ {file = "numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24"},
+ {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e"},
+ {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124"},
+ {file = "numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c"},
+ {file = "numpy-1.26.1-cp312-cp312-win32.whl", hash = "sha256:af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66"},
+ {file = "numpy-1.26.1-cp312-cp312-win_amd64.whl", hash = "sha256:9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7"},
+ {file = "numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e"},
+ {file = "numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617"},
+ {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e"},
+ {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908"},
+ {file = "numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5"},
+ {file = "numpy-1.26.1-cp39-cp39-win32.whl", hash = "sha256:d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104"},
+ {file = "numpy-1.26.1-cp39-cp39-win_amd64.whl", hash = "sha256:59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2"},
+ {file = "numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668"},
+ {file = "numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42"},
+ {file = "numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f"},
+ {file = "numpy-1.26.1.tar.gz", hash = "sha256:c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe"},
+]
+
[[package]]
name = "openbb-alpha-vantage"
version = "0.1.0a3"
@@ -1272,6 +1327,19 @@ files = [
[package.dependencies]
openbb-core = ">=0.1.0a2,<0.2.0"
+[[package]]
+name = "openbb-biztoc"
+version = "0.1.0a3"
+description = ""
+optional = true
+python-versions = "*"
+files = []
+develop = true
+
+[package.source]
+type = "directory"
+url = "providers/biztoc"
+
[[package]]
name = "openbb-cboe"
version = "0.1.0a3"
@@ -1510,19 +1578,20 @@ openbb-core = ">=0.1.0a2,<0.2.0"
[[package]]
name = "openbb-provider"
-version = "0.1.0a2"
+version = "0.1.0a3"
description = "OpenBB package to execute queries to financial data providers"
optional = false
python-versions = ">=3.8,<4.0"
files = [
- {file = "openbb_provider-0.1.0a2-py3-none-any.whl", hash = "sha256:4b21fa06f531ed6cf5497a163c849c2a973b150eb362d41feb510bbdfdf58c98"},
- {file = "openbb_provider-0.1.0a2.tar.gz", hash = "sha256:a1a76d4a18fc89d15beb5f30c74e9e7bbfc87f051be630bd58416543f722eac0"},
+ {file = "openbb_provider-0.1.0a3-py3-none-any.whl", hash = "sha256:d589e5fade39737b99f770295926d472faaeb7f4b9d963a6cafa362293c92303"},
+ {file = "openbb_provider-0.1.0a3.tar.gz", hash = "sha256:7f37432fca541a07f132efae1885a1d320d6746e814a7ef986bc2d7ca65916c8"},
]
[package.dependencies]
-importlib-metadata = ">=6.8.0,<7.0.0"
-pydantic = {version = ">=1.10,<2.0", extras = ["dotenv"]}
+importlib_metadata = ">=6.8.0,<7.0.0"
+pydantic = ">=2.4.2,<3.0.0"
pytest-recorder = ">=0.2.3,<0.3.0"
+python-dotenv = ">=1.0.0,<2.0.0"
requests = ">=2.31.0,<3.0.0"
urllib3 = "<2.0.0"
@@ -1665,8 +1734,8 @@ files = [
[package.dependencies]
numpy = [
- {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""},
{version = ">=1.20.3", markers = "python_version < \"3.10\""},
+ {version = ">=1.21.0", markers = "python_version >= \"3.10\""},
{version = ">=1.23.2", markers = "python_version >= \"3.11\""},
]
python-dateutil = ">=2.8.2"
@@ -1733,75 +1802,75 @@ test = ["pytest", "pytest-cov", "scipy"]
[[package]]
name = "peewee"
-version = "3.16.3"
+version = "3.17.0"
description = "a little orm"
optional = true
python-versions = "*"
files = [
- {file = "peewee-3.16.3.tar.gz", hash = "sha256:12b30e931193bc37b11f7c2ac646e3f67125a8b1a543ad6ab37ad124c8df7d16"},
+ {file = "peewee-3.17.0.tar.gz", hash = "sha256:3a56967f28a43ca7a4287f4803752aeeb1a57a08dee2e839b99868181dfb5df8"},
]
[[package]]
name = "pillow"
-version = "10.0.1"
+version = "10.1.0"
description = "Python Imaging Library (Fork)"
optional = true
python-versions = ">=3.8"
files = [
- {file = "Pillow-10.0.1-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:8f06be50669087250f319b706decf69ca71fdecd829091a37cc89398ca4dc17a"},
- {file = "Pillow-10.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:50bd5f1ebafe9362ad622072a1d2f5850ecfa44303531ff14353a4059113b12d"},
- {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6a90167bcca1216606223a05e2cf991bb25b14695c518bc65639463d7db722d"},
- {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f11c9102c56ffb9ca87134bd025a43d2aba3f1155f508eff88f694b33a9c6d19"},
- {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:186f7e04248103482ea6354af6d5bcedb62941ee08f7f788a1c7707bc720c66f"},
- {file = "Pillow-10.0.1-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:0462b1496505a3462d0f35dc1c4d7b54069747d65d00ef48e736acda2c8cbdff"},
- {file = "Pillow-10.0.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d889b53ae2f030f756e61a7bff13684dcd77e9af8b10c6048fb2c559d6ed6eaf"},
- {file = "Pillow-10.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:552912dbca585b74d75279a7570dd29fa43b6d93594abb494ebb31ac19ace6bd"},
- {file = "Pillow-10.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:787bb0169d2385a798888e1122c980c6eff26bf941a8ea79747d35d8f9210ca0"},
- {file = "Pillow-10.0.1-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:fd2a5403a75b54661182b75ec6132437a181209b901446ee5724b589af8edef1"},
- {file = "Pillow-10.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2d7e91b4379f7a76b31c2dda84ab9e20c6220488e50f7822e59dac36b0cd92b1"},
- {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19e9adb3f22d4c416e7cd79b01375b17159d6990003633ff1d8377e21b7f1b21"},
- {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93139acd8109edcdeffd85e3af8ae7d88b258b3a1e13a038f542b79b6d255c54"},
- {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:92a23b0431941a33242b1f0ce6c88a952e09feeea9af4e8be48236a68ffe2205"},
- {file = "Pillow-10.0.1-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:cbe68deb8580462ca0d9eb56a81912f59eb4542e1ef8f987405e35a0179f4ea2"},
- {file = "Pillow-10.0.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:522ff4ac3aaf839242c6f4e5b406634bfea002469656ae8358644fc6c4856a3b"},
- {file = "Pillow-10.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:84efb46e8d881bb06b35d1d541aa87f574b58e87f781cbba8d200daa835b42e1"},
- {file = "Pillow-10.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:898f1d306298ff40dc1b9ca24824f0488f6f039bc0e25cfb549d3195ffa17088"},
- {file = "Pillow-10.0.1-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:bcf1207e2f2385a576832af02702de104be71301c2696d0012b1b93fe34aaa5b"},
- {file = "Pillow-10.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5d6c9049c6274c1bb565021367431ad04481ebb54872edecfcd6088d27edd6ed"},
- {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28444cb6ad49726127d6b340217f0627abc8732f1194fd5352dec5e6a0105635"},
- {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de596695a75496deb3b499c8c4f8e60376e0516e1a774e7bc046f0f48cd620ad"},
- {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:2872f2d7846cf39b3dbff64bc1104cc48c76145854256451d33c5faa55c04d1a"},
- {file = "Pillow-10.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:4ce90f8a24e1c15465048959f1e94309dfef93af272633e8f37361b824532e91"},
- {file = "Pillow-10.0.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:ee7810cf7c83fa227ba9125de6084e5e8b08c59038a7b2c9045ef4dde61663b4"},
- {file = "Pillow-10.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:b1be1c872b9b5fcc229adeadbeb51422a9633abd847c0ff87dc4ef9bb184ae08"},
- {file = "Pillow-10.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:98533fd7fa764e5f85eebe56c8e4094db912ccbe6fbf3a58778d543cadd0db08"},
- {file = "Pillow-10.0.1-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:764d2c0daf9c4d40ad12fbc0abd5da3af7f8aa11daf87e4fa1b834000f4b6b0a"},
- {file = "Pillow-10.0.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fcb59711009b0168d6ee0bd8fb5eb259c4ab1717b2f538bbf36bacf207ef7a68"},
- {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:697a06bdcedd473b35e50a7e7506b1d8ceb832dc238a336bd6f4f5aa91a4b500"},
- {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9f665d1e6474af9f9da5e86c2a3a2d2d6204e04d5af9c06b9d42afa6ebde3f21"},
- {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:2fa6dd2661838c66f1a5473f3b49ab610c98a128fc08afbe81b91a1f0bf8c51d"},
- {file = "Pillow-10.0.1-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:3a04359f308ebee571a3127fdb1bd01f88ba6f6fb6d087f8dd2e0d9bff43f2a7"},
- {file = "Pillow-10.0.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:723bd25051454cea9990203405fa6b74e043ea76d4968166dfd2569b0210886a"},
- {file = "Pillow-10.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:71671503e3015da1b50bd18951e2f9daf5b6ffe36d16f1eb2c45711a301521a7"},
- {file = "Pillow-10.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:44e7e4587392953e5e251190a964675f61e4dae88d1e6edbe9f36d6243547ff3"},
- {file = "Pillow-10.0.1-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:3855447d98cced8670aaa63683808df905e956f00348732448b5a6df67ee5849"},
- {file = "Pillow-10.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:ed2d9c0704f2dc4fa980b99d565c0c9a543fe5101c25b3d60488b8ba80f0cce1"},
- {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f5bb289bb835f9fe1a1e9300d011eef4d69661bb9b34d5e196e5e82c4cb09b37"},
- {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a0d3e54ab1df9df51b914b2233cf779a5a10dfd1ce339d0421748232cea9876"},
- {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:2cc6b86ece42a11f16f55fe8903595eff2b25e0358dec635d0a701ac9586588f"},
- {file = "Pillow-10.0.1-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:ca26ba5767888c84bf5a0c1a32f069e8204ce8c21d00a49c90dabeba00ce0145"},
- {file = "Pillow-10.0.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f0b4b06da13275bc02adfeb82643c4a6385bd08d26f03068c2796f60d125f6f2"},
- {file = "Pillow-10.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bc2e3069569ea9dbe88d6b8ea38f439a6aad8f6e7a6283a38edf61ddefb3a9bf"},
- {file = "Pillow-10.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:8b451d6ead6e3500b6ce5c7916a43d8d8d25ad74b9102a629baccc0808c54971"},
- {file = "Pillow-10.0.1-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:32bec7423cdf25c9038fef614a853c9d25c07590e1a870ed471f47fb80b244db"},
- {file = "Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7cf63d2c6928b51d35dfdbda6f2c1fddbe51a6bc4a9d4ee6ea0e11670dd981e"},
- {file = "Pillow-10.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f6d3d4c905e26354e8f9d82548475c46d8e0889538cb0657aa9c6f0872a37aa4"},
- {file = "Pillow-10.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:847e8d1017c741c735d3cd1883fa7b03ded4f825a6e5fcb9378fd813edee995f"},
- {file = "Pillow-10.0.1-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:7f771e7219ff04b79e231d099c0a28ed83aa82af91fd5fa9fdb28f5b8d5addaf"},
- {file = "Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459307cacdd4138edee3875bbe22a2492519e060660eaf378ba3b405d1c66317"},
- {file = "Pillow-10.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b059ac2c4c7a97daafa7dc850b43b2d3667def858a4f112d1aa082e5c3d6cf7d"},
- {file = "Pillow-10.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:d6caf3cd38449ec3cd8a68b375e0c6fe4b6fd04edb6c9766b55ef84a6e8ddf2d"},
- {file = "Pillow-10.0.1.tar.gz", hash = "sha256:d72967b06be9300fed5cfbc8b5bafceec48bf7cdc7dab66b1d2549035287191d"},
+ {file = "Pillow-10.1.0-cp310-cp310-macosx_10_10_x86_64.whl", hash = "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106"},
+ {file = "Pillow-10.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273"},
+ {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666"},
+ {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2"},
+ {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593"},
+ {file = "Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db"},
+ {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f"},
+ {file = "Pillow-10.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818"},
+ {file = "Pillow-10.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57"},
+ {file = "Pillow-10.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7"},
+ {file = "Pillow-10.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7"},
+ {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610"},
+ {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839"},
+ {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172"},
+ {file = "Pillow-10.1.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061"},
+ {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262"},
+ {file = "Pillow-10.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992"},
+ {file = "Pillow-10.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a"},
+ {file = "Pillow-10.1.0-cp312-cp312-macosx_10_10_x86_64.whl", hash = "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b"},
+ {file = "Pillow-10.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d"},
+ {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27"},
+ {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312"},
+ {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de"},
+ {file = "Pillow-10.1.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651"},
+ {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b"},
+ {file = "Pillow-10.1.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f"},
+ {file = "Pillow-10.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996"},
+ {file = "Pillow-10.1.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793"},
+ {file = "Pillow-10.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e"},
+ {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2"},
+ {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a"},
+ {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01"},
+ {file = "Pillow-10.1.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d"},
+ {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80"},
+ {file = "Pillow-10.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212"},
+ {file = "Pillow-10.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14"},
+ {file = "Pillow-10.1.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099"},
+ {file = "Pillow-10.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616"},
+ {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb"},
+ {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219"},
+ {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34"},
+ {file = "Pillow-10.1.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd"},
+ {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28"},
+ {file = "Pillow-10.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2"},
+ {file = "Pillow-10.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256"},
+ {file = "Pillow-10.1.0-pp310-pypy310_pp73-macosx_10_10_x86_64.whl", hash = "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7"},
+ {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba"},
+ {file = "Pillow-10.1.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4"},
+ {file = "Pillow-10.1.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9"},
+ {file = "Pillow-10.1.0-pp39-pypy39_pp73-macosx_10_10_x86_64.whl", hash = "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e"},
+ {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412"},
+ {file = "Pillow-10.1.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b"},
+ {file = "Pillow-10.1.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f"},
+ {file = "Pillow-10.1.0.tar.gz", hash = "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38"},
]
[package.extras]
@@ -1911,56 +1980,140 @@ files = [
[[package]]
name = "pydantic"
-version = "1.10.13"
-description = "Data validation and settings management using python type hints"
+version = "2.4.2"
+description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.7"
files = [
- {file = "pydantic-1.10.13-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:efff03cc7a4f29d9009d1c96ceb1e7a70a65cfe86e89d34e4a5f2ab1e5693737"},
- {file = "pydantic-1.10.13-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3ecea2b9d80e5333303eeb77e180b90e95eea8f765d08c3d278cd56b00345d01"},
- {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1740068fd8e2ef6eb27a20e5651df000978edce6da6803c2bef0bc74540f9548"},
- {file = "pydantic-1.10.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:84bafe2e60b5e78bc64a2941b4c071a4b7404c5c907f5f5a99b0139781e69ed8"},
- {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:bc0898c12f8e9c97f6cd44c0ed70d55749eaf783716896960b4ecce2edfd2d69"},
- {file = "pydantic-1.10.13-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:654db58ae399fe6434e55325a2c3e959836bd17a6f6a0b6ca8107ea0571d2e17"},
- {file = "pydantic-1.10.13-cp310-cp310-win_amd64.whl", hash = "sha256:75ac15385a3534d887a99c713aa3da88a30fbd6204a5cd0dc4dab3d770b9bd2f"},
- {file = "pydantic-1.10.13-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c553f6a156deb868ba38a23cf0df886c63492e9257f60a79c0fd8e7173537653"},
- {file = "pydantic-1.10.13-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5e08865bc6464df8c7d61439ef4439829e3ab62ab1669cddea8dd00cd74b9ffe"},
- {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e31647d85a2013d926ce60b84f9dd5300d44535a9941fe825dc349ae1f760df9"},
- {file = "pydantic-1.10.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:210ce042e8f6f7c01168b2d84d4c9eb2b009fe7bf572c2266e235edf14bacd80"},
- {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:8ae5dd6b721459bfa30805f4c25880e0dd78fc5b5879f9f7a692196ddcb5a580"},
- {file = "pydantic-1.10.13-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:f8e81fc5fb17dae698f52bdd1c4f18b6ca674d7068242b2aff075f588301bbb0"},
- {file = "pydantic-1.10.13-cp311-cp311-win_amd64.whl", hash = "sha256:61d9dce220447fb74f45e73d7ff3b530e25db30192ad8d425166d43c5deb6df0"},
- {file = "pydantic-1.10.13-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4b03e42ec20286f052490423682016fd80fda830d8e4119f8ab13ec7464c0132"},
- {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f59ef915cac80275245824e9d771ee939133be38215555e9dc90c6cb148aaeb5"},
- {file = "pydantic-1.10.13-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5a1f9f747851338933942db7af7b6ee8268568ef2ed86c4185c6ef4402e80ba8"},
- {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:97cce3ae7341f7620a0ba5ef6cf043975cd9d2b81f3aa5f4ea37928269bc1b87"},
- {file = "pydantic-1.10.13-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:854223752ba81e3abf663d685f105c64150873cc6f5d0c01d3e3220bcff7d36f"},
- {file = "pydantic-1.10.13-cp37-cp37m-win_amd64.whl", hash = "sha256:b97c1fac8c49be29486df85968682b0afa77e1b809aff74b83081cc115e52f33"},
- {file = "pydantic-1.10.13-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c958d053453a1c4b1c2062b05cd42d9d5c8eb67537b8d5a7e3c3032943ecd261"},
- {file = "pydantic-1.10.13-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4c5370a7edaac06daee3af1c8b1192e305bc102abcbf2a92374b5bc793818599"},
- {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d6f6e7305244bddb4414ba7094ce910560c907bdfa3501e9db1a7fd7eaea127"},
- {file = "pydantic-1.10.13-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d3a3c792a58e1622667a2837512099eac62490cdfd63bd407993aaf200a4cf1f"},
- {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c636925f38b8db208e09d344c7aa4f29a86bb9947495dd6b6d376ad10334fb78"},
- {file = "pydantic-1.10.13-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:678bcf5591b63cc917100dc50ab6caebe597ac67e8c9ccb75e698f66038ea953"},
- {file = "pydantic-1.10.13-cp38-cp38-win_amd64.whl", hash = "sha256:6cf25c1a65c27923a17b3da28a0bdb99f62ee04230c931d83e888012851f4e7f"},
- {file = "pydantic-1.10.13-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8ef467901d7a41fa0ca6db9ae3ec0021e3f657ce2c208e98cd511f3161c762c6"},
- {file = "pydantic-1.10.13-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:968ac42970f57b8344ee08837b62f6ee6f53c33f603547a55571c954a4225691"},
- {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9849f031cf8a2f0a928fe885e5a04b08006d6d41876b8bbd2fc68a18f9f2e3fd"},
- {file = "pydantic-1.10.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:56e3ff861c3b9c6857579de282ce8baabf443f42ffba355bf070770ed63e11e1"},
- {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f00790179497767aae6bcdc36355792c79e7bbb20b145ff449700eb076c5f96"},
- {file = "pydantic-1.10.13-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:75b297827b59bc229cac1a23a2f7a4ac0031068e5be0ce385be1462e7e17a35d"},
- {file = "pydantic-1.10.13-cp39-cp39-win_amd64.whl", hash = "sha256:e70ca129d2053fb8b728ee7d1af8e553a928d7e301a311094b8a0501adc8763d"},
- {file = "pydantic-1.10.13-py3-none-any.whl", hash = "sha256:b87326822e71bd5f313e7d3bfdc77ac3247035ac10b0c0618bd99dcf95b1e687"},
- {file = "pydantic-1.10.13.tar.gz", hash = "sha256:32c8b48dcd3b2ac4e78b0ba4af3a2c2eb6048cb75202f0ea7b34feb740efc340"},
-]
-
-[package.dependencies]
-python-dotenv = {version = ">=0.10.4", optional = true, markers = "extra == \"dotenv\""}
-typing-extensions = ">=4.2.0"
+ {file = "pydantic-2.4.2-py3-none-any.whl", hash = "sha256:bc3ddf669d234f4220e6e1c4d96b061abe0998185a8d7855c0126782b7abc8c1"},
+ {file = "pydantic-2.4.2.tar.gz", hash = "sha256:94f336138093a5d7f426aac732dcfe7ab4eb4da243c88f891d65deb4a2556ee7"},
+]
+
+[package.dependencies]
+annotated-types = ">=0.4.0"
+pydantic-core = "2.10.1"
+typing-extensions = ">=4.6.1"
[package.extras]
-dotenv = ["python-dotenv (>=0.10.4)"]
-email = ["email-validator (>=1.0.3)"]
+email = ["email-validator (>=2.0.0)"]
+
+[[package]]
+name = "pydantic-core"
+version = "2.10.1"
+description = ""
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"},
+ {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"},
+ {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"},
+ {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"},
+ {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"},
+ {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"},
+ {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"},
+ {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"},
+ {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"},
+ {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"},
+ {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"},
+ {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"},
+ {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"},
+ {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"},
+ {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"},
+ {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
[[package]]
name = "pyhdfe"
@@ -2161,6 +2314,7 @@ files = [
{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"},
@@ -2168,8 +2322,15 @@ files = [
{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_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"},
@@ -2186,6 +2347,7 @@ files = [
{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"},
@@ -2193,6 +2355,7 @@ files = [
{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"},
@@ -2305,110 +2468,110 @@ yaml = ["pyyaml (>=5.4)"]
[[package]]
name = "rpds-py"
-version = "0.10.4"
+version = "0.10.6"
description = "Python bindings to Rust's persistent data structures (rpds)"
optional = true
python-versions = ">=3.8"
files = [
- {file = "rpds_py-0.10.4-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:e41824343c2c129599645373992b1ce17720bb8a514f04ff9567031e1c26951e"},
- {file = "rpds_py-0.10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b9d8884d58ea8801e5906a491ab34af975091af76d1a389173db491ee7e316bb"},
- {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5db93f9017b384a4f194e1d89e1ce82d0a41b1fafdbbd3e0c8912baf13f2950f"},
- {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c31ecfc53ac03dad4928a1712f3a2893008bfba1b3cde49e1c14ff67faae2290"},
- {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4f92d2372ec992c82fd7c74aa21e2a1910b3dcdc6a7e6392919a138f21d528a3"},
- {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7ea49ddf51d5ec0c3cbd95190dd15e077a3153c8d4b22a33da43b5dd2b3c640"},
- {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1c27942722cd5039bbf5098c7e21935a96243fed00ea11a9589f3c6c6424bd84"},
- {file = "rpds_py-0.10.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:08f07150c8ebbdbce1d2d51b8e9f4d588749a2af6a98035485ebe45c7ad9394e"},
- {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:f3331a3684192659fa1090bf2b448db928152fcba08222e58106f44758ef25f7"},
- {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:efffa359cc69840c8793f0c05a7b663de6afa7b9078fa6c80309ee38b9db677d"},
- {file = "rpds_py-0.10.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:86e8d6ff15fa7a9590c0addaf3ce52fb58bda4299cab2c2d0afa404db6848dab"},
- {file = "rpds_py-0.10.4-cp310-none-win32.whl", hash = "sha256:8f90fc6dd505867514c8b8ef68a712dc0be90031a773c1ae2ad469f04062daef"},
- {file = "rpds_py-0.10.4-cp310-none-win_amd64.whl", hash = "sha256:9f9184744fb800c9f28e155a5896ecb54816296ee79d5d1978be6a2ae60f53c4"},
- {file = "rpds_py-0.10.4-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:72e9b1e92830c876cd49565d8404e4dcc9928302d348ea2517bc3f9e3a873a2a"},
- {file = "rpds_py-0.10.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3650eae998dc718960e90120eb45d42bd57b18b21b10cb9ee05f91bff2345d48"},
- {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f40413d2859737ce6d95c29ce2dde0ef7cdc3063b5830ae4342fef5922c3bba7"},
- {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b953d11b544ca5f2705bb77b177d8e17ab1bfd69e0fd99790a11549d2302258c"},
- {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28b4942ec7d9d6114c1e08cace0157db92ef674636a38093cab779ace5742d3a"},
- {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2e0e2e01c5f61ddf47e3ed2d1fe1c9136e780ca6222d57a2517b9b02afd4710c"},
- {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:927e3461dae0c09b1f2e0066e50c1a9204f8a64a3060f596e9a6742d3b307785"},
- {file = "rpds_py-0.10.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8e69bbe0ede8f7fe2616e779421bbdb37f025c802335a90f6416e4d98b368a37"},
- {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cc688a59c100f038fa9fec9e4ab457c2e2d1fca350fe7ea395016666f0d0a2dc"},
- {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ec001689402b9104700b50a005c2d3d0218eae90eaa8bdbbd776fe78fe8a74b7"},
- {file = "rpds_py-0.10.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:628fbb8be71a103499d10b189af7764996ab2634ed7b44b423f1e19901606e0e"},
- {file = "rpds_py-0.10.4-cp311-none-win32.whl", hash = "sha256:e3f9c9e5dd8eba4768e15f19044e1b5e216929a43a54b4ab329e103aed9f3eda"},
- {file = "rpds_py-0.10.4-cp311-none-win_amd64.whl", hash = "sha256:3bc561c183684636c0099f9c3fbab8c1671841942edbce784bb01b4707d17924"},
- {file = "rpds_py-0.10.4-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:36ff30385fb9fb3ac23a28bffdd4a230a5229ed5b15704b708b7c84bfb7fce51"},
- {file = "rpds_py-0.10.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:db0589e0bf41ff6ce284ab045ca89f27be1adf19e7bce26c2e7de6739a70c18b"},
- {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c330cb125983c5d380fef4a4155248a276297c86d64625fdaf500157e1981c"},
- {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d230fddc60caced271cc038e43e6fb8f4dd6b2dbaa44ac9763f2d76d05b0365a"},
- {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a9e864ec051a58fdb6bb2e6da03942adb20273897bc70067aee283e62bbac4d"},
- {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e41d5b334e8de4bc3f38843f31b2afa9a0c472ebf73119d3fd55cde08974bdf"},
- {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5bb3f3cb6072c73e6ec1f865d8b80419b599f1597acf33f63fbf02252aab5a03"},
- {file = "rpds_py-0.10.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:576d48e1e45c211e99fc02655ade65c32a75d3e383ccfd98ce59cece133ed02c"},
- {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b28b9668a22ca2cfca4433441ba9acb2899624a323787a509a3dc5fbfa79c49d"},
- {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ddbd113a37307638f94be5ae232a325155fd24dbfae2c56455da8724b471e7be"},
- {file = "rpds_py-0.10.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bd0ad98c7d72b0e4cbfe89cdfa12cd07d2fd6ed22864341cdce12b318a383442"},
- {file = "rpds_py-0.10.4-cp312-none-win32.whl", hash = "sha256:2a97406d5e08b7095428f01dac0d3c091dc072351151945a167e7968d2755559"},
- {file = "rpds_py-0.10.4-cp312-none-win_amd64.whl", hash = "sha256:aab24b9bbaa3d49e666e9309556591aa00748bd24ea74257a405f7fed9e8b10d"},
- {file = "rpds_py-0.10.4-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6c5ca3eb817fb54bfd066740b64a2b31536eb8fe0b183dc35b09a7bd628ed680"},
- {file = "rpds_py-0.10.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:fd37ab9a24021821b715478357af1cf369d5a42ac7405e83e5822be00732f463"},
- {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2573ec23ad3a59dd2bc622befac845695972f3f2d08dc1a4405d017d20a6c225"},
- {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:362faeae52dc6ccc50c0b6a01fa2ec0830bb61c292033f3749a46040b876f4ba"},
- {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:40f6e53461b19ddbb3354fe5bcf3d50d4333604ae4bf25b478333d83ca68002c"},
- {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6090ba604ea06b525a231450ae5d343917a393cbf50423900dea968daf61d16f"},
- {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28e29dac59df890972f73c511948072897f512974714a803fe793635b80ff8c7"},
- {file = "rpds_py-0.10.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f82abb5c5b83dc30e96be99ce76239a030b62a73a13c64410e429660a5602bfd"},
- {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a3628815fd170a64624001bfb4e28946fd515bd672e68a1902d9e0290186eaf3"},
- {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:d37f27ad80f742ef82796af3fe091888864958ad0bc8bab03da1830fa00c6004"},
- {file = "rpds_py-0.10.4-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:255a23bded80605e9f3997753e3a4b89c9aec9efb07ec036b1ca81440efcc1a9"},
- {file = "rpds_py-0.10.4-cp38-none-win32.whl", hash = "sha256:049098dabfe705e9638c55a3321137a821399c50940041a6fcce267a22c70db2"},
- {file = "rpds_py-0.10.4-cp38-none-win_amd64.whl", hash = "sha256:aa45cc71bf23a3181b8aa62466b5a2b7b7fb90fdc01df67ca433cd4fce7ec94d"},
- {file = "rpds_py-0.10.4-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:3507c459767cf24c11e9520e2a37c89674266abe8e65453e5cb66398aa47ee7b"},
- {file = "rpds_py-0.10.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2603e084054351cc65097da326570102c4c5bd07426ba8471ceaefdb0b642cc9"},
- {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0f1d336786cb62613c72c00578c98e5bb8cd57b49c5bae5d4ab906ca7872f98"},
- {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf032367f921201deaecf221d4cc895ea84b3decf50a9c73ee106f961885a0ad"},
- {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7f050ceffd8c730c1619a16bbf0b9cd037dcdb94b54710928ba38c7bde67e4a4"},
- {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8709eb4ab477c533b7d0a76cd3065d7d95c9e25e6b9f6e27caeeb8c63e8799c9"},
- {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc20dadb102140dff63529e08ce6f9745dbd36e673ebb2b1c4a63e134bca81c2"},
- {file = "rpds_py-0.10.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cd7da2adc721ccf19ac7ec86cae3a4fcaba03d9c477d5bd64ded6e9bb817bf3f"},
- {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e5dba1c11e089b526379e74f6c636202e4c5bad9a48c7416502b8a5b0d026c91"},
- {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:ffd539d213c1ea2989ab92a5b9371ae7159c8c03cf2bcb9f2f594752f755ecd3"},
- {file = "rpds_py-0.10.4-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:e791e3d13b14d0a7921804d0efe4d7bd15508bbcf8cb7a0c1ee1a27319a5f033"},
- {file = "rpds_py-0.10.4-cp39-none-win32.whl", hash = "sha256:2f2ac8bb01f705c5caaa7fe77ffd9b03f92f1b5061b94228f6ea5eaa0fca68ad"},
- {file = "rpds_py-0.10.4-cp39-none-win_amd64.whl", hash = "sha256:7c7ca791bedda059e5195cf7c6b77384657a51429357cdd23e64ac1d4973d6dc"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:9c7e7bd1fa1f535af71dfcd3700fc83a6dc261a1204f8f5327d8ffe82e52905d"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:7089d8bfa8064b28b2e39f5af7bf12d42f61caed884e35b9b4ea9e6fb1175077"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1f191befea279cb9669b57be97ab1785781c8bab805900e95742ebfaa9cbf1d"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:98c0aecf661c175ce9cb17347fc51a5c98c3e9189ca57e8fcd9348dae18541db"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d81359911c3bb31c899c6a5c23b403bdc0279215e5b3bc0d2a692489fed38632"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:83da147124499fe41ed86edf34b4e81e951b3fe28edcc46288aac24e8a5c8484"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49db6c0a0e6626c2b97f5e7f8f7074da21cbd8ec73340c25e839a2457c007efa"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:125776d5db15162fdd9135372bef7fe4fb7c5f5810cf25898eb74a06a0816aec"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:32819b662e3b4c26355a4403ea2f60c0a00db45b640fe722dd12db3d2ef807fb"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:3bd38b80491ef9686f719c1ad3d24d14fbd0e069988fdd4e7d1a6ffcdd7f4a13"},
- {file = "rpds_py-0.10.4-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:2e79eeeff8394284b09577f36316d410525e0cf0133abb3de10660e704d3d38e"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:3e37f1f134037601eb4b1f46854194f0cc082435dac2ee3de11e51529f7831f2"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:ba3246c60303eab3d0e562addf25a983d60bddc36f4d1edc2510f056d19df255"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9123ba0f3f98ff79780eebca9984a2b525f88563844b740f94cffb9099701230"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d98802b78093c7083cc51f83da41a5be5a57d406798c9f69424bd75f8ae0812a"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:58bae860d1d116e6b4e1aad0cdc48a187d5893994f56d26db0c5534df7a47afd"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd7e62e7d5bcfa38a62d8397fba6d0428b970ab7954c2197501cd1624f7f0bbb"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83f5228459b84fa6279e4126a53abfdd73cd9cc183947ee5084153880f65d7"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4bcb1abecd998a72ad4e36a0fca93577fd0c059a6aacc44f16247031b98f6ff4"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:9e7b3ad9f53ea9e085b3d27286dd13f8290969c0a153f8a52c8b5c46002c374b"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:cbec8e43cace64e63398155dc585dc479a89fef1e57ead06c22d3441e1bd09c3"},
- {file = "rpds_py-0.10.4-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ad21c60fc880204798f320387164dcacc25818a7b4ec2a0bf6b6c1d57b007d23"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:6baea8a4f6f01e69e75cfdef3edd4a4d1c4b56238febbdf123ce96d09fbff010"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:94876c21512535955a960f42a155213315e6ab06a4ce8ce372341a2a1b143eeb"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4cb55454a20d1b935f9eaab52e6ceab624a2efd8b52927c7ae7a43e02828dbe0"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:13cbd79ccedc6b39c279af31ebfb0aec0467ad5d14641ddb15738bf6e4146157"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00a88003db3cc953f8656b59fc9af9d0637a1fb93c235814007988f8c153b2f2"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d0f7f77a77c37159c9f417b8dd847f67a29e98c6acb52ee98fc6b91efbd1b2b6"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70563a1596d2e0660ca2cebb738443437fc0e38597e7cbb276de0a7363924a52"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e3ece9aa6d07e18c966f14b4352a4c6f40249f6174d3d2c694c1062e19c6adbb"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:d5ad7b1a1f6964d19b1a8acfc14bf7864f39587b3e25c16ca04f6cd1815026b3"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:60018626e637528a1fa64bb3a2b3e46ab7bf672052316d61c3629814d5e65052"},
- {file = "rpds_py-0.10.4-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:ae8a32ab77a84cc870bbfb60645851ca0f7d58fd251085ad67464b1445d632ca"},
- {file = "rpds_py-0.10.4.tar.gz", hash = "sha256:18d5ff7fbd305a1d564273e9eb22de83ae3cd9cd6329fddc8f12f6428a711a6a"},
+ {file = "rpds_py-0.10.6-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:6bdc11f9623870d75692cc33c59804b5a18d7b8a4b79ef0b00b773a27397d1f6"},
+ {file = "rpds_py-0.10.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:26857f0f44f0e791f4a266595a7a09d21f6b589580ee0585f330aaccccb836e3"},
+ {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7f5e15c953ace2e8dde9824bdab4bec50adb91a5663df08d7d994240ae6fa31"},
+ {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:61fa268da6e2e1cd350739bb61011121fa550aa2545762e3dc02ea177ee4de35"},
+ {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c48f3fbc3e92c7dd6681a258d22f23adc2eb183c8cb1557d2fcc5a024e80b094"},
+ {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0503c5b681566e8b722fe8c4c47cce5c7a51f6935d5c7012c4aefe952a35eed"},
+ {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:734c41f9f57cc28658d98270d3436dba65bed0cfc730d115b290e970150c540d"},
+ {file = "rpds_py-0.10.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a5d7ed104d158c0042a6a73799cf0eb576dfd5fc1ace9c47996e52320c37cb7c"},
+ {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e3df0bc35e746cce42579826b89579d13fd27c3d5319a6afca9893a9b784ff1b"},
+ {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:73e0a78a9b843b8c2128028864901f55190401ba38aae685350cf69b98d9f7c9"},
+ {file = "rpds_py-0.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5ed505ec6305abd2c2c9586a7b04fbd4baf42d4d684a9c12ec6110deefe2a063"},
+ {file = "rpds_py-0.10.6-cp310-none-win32.whl", hash = "sha256:d97dd44683802000277bbf142fd9f6b271746b4846d0acaf0cefa6b2eaf2a7ad"},
+ {file = "rpds_py-0.10.6-cp310-none-win_amd64.whl", hash = "sha256:b455492cab07107bfe8711e20cd920cc96003e0da3c1f91297235b1603d2aca7"},
+ {file = "rpds_py-0.10.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:e8cdd52744f680346ff8c1ecdad5f4d11117e1724d4f4e1874f3a67598821069"},
+ {file = "rpds_py-0.10.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:66414dafe4326bca200e165c2e789976cab2587ec71beb80f59f4796b786a238"},
+ {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cc435d059f926fdc5b05822b1be4ff2a3a040f3ae0a7bbbe672babb468944722"},
+ {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8e7f2219cb72474571974d29a191714d822e58be1eb171f229732bc6fdedf0ac"},
+ {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3953c6926a63f8ea5514644b7afb42659b505ece4183fdaaa8f61d978754349e"},
+ {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2bb2e4826be25e72013916eecd3d30f66fd076110de09f0e750163b416500721"},
+ {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7bf347b495b197992efc81a7408e9a83b931b2f056728529956a4d0858608b80"},
+ {file = "rpds_py-0.10.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:102eac53bb0bf0f9a275b438e6cf6904904908562a1463a6fc3323cf47d7a532"},
+ {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40f93086eef235623aa14dbddef1b9fb4b22b99454cb39a8d2e04c994fb9868c"},
+ {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e22260a4741a0e7a206e175232867b48a16e0401ef5bce3c67ca5b9705879066"},
+ {file = "rpds_py-0.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f4e56860a5af16a0fcfa070a0a20c42fbb2012eed1eb5ceeddcc7f8079214281"},
+ {file = "rpds_py-0.10.6-cp311-none-win32.whl", hash = "sha256:0774a46b38e70fdde0c6ded8d6d73115a7c39d7839a164cc833f170bbf539116"},
+ {file = "rpds_py-0.10.6-cp311-none-win_amd64.whl", hash = "sha256:4a5ee600477b918ab345209eddafde9f91c0acd931f3776369585a1c55b04c57"},
+ {file = "rpds_py-0.10.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:5ee97c683eaface61d38ec9a489e353d36444cdebb128a27fe486a291647aff6"},
+ {file = "rpds_py-0.10.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0713631d6e2d6c316c2f7b9320a34f44abb644fc487b77161d1724d883662e31"},
+ {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b5a53f5998b4bbff1cb2e967e66ab2addc67326a274567697379dd1e326bded7"},
+ {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6a555ae3d2e61118a9d3e549737bb4a56ff0cec88a22bd1dfcad5b4e04759175"},
+ {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:945eb4b6bb8144909b203a88a35e0a03d22b57aefb06c9b26c6e16d72e5eb0f0"},
+ {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:52c215eb46307c25f9fd2771cac8135d14b11a92ae48d17968eda5aa9aaf5071"},
+ {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1b3cd23d905589cb205710b3988fc8f46d4a198cf12862887b09d7aaa6bf9b9"},
+ {file = "rpds_py-0.10.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64ccc28683666672d7c166ed465c09cee36e306c156e787acef3c0c62f90da5a"},
+ {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:516a611a2de12fbea70c78271e558f725c660ce38e0006f75139ba337d56b1f6"},
+ {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9ff93d3aedef11f9c4540cf347f8bb135dd9323a2fc705633d83210d464c579d"},
+ {file = "rpds_py-0.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d858532212f0650be12b6042ff4378dc2efbb7792a286bee4489eaa7ba010586"},
+ {file = "rpds_py-0.10.6-cp312-none-win32.whl", hash = "sha256:3c4eff26eddac49d52697a98ea01b0246e44ca82ab09354e94aae8823e8bda02"},
+ {file = "rpds_py-0.10.6-cp312-none-win_amd64.whl", hash = "sha256:150eec465dbc9cbca943c8e557a21afdcf9bab8aaabf386c44b794c2f94143d2"},
+ {file = "rpds_py-0.10.6-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:cf693eb4a08eccc1a1b636e4392322582db2a47470d52e824b25eca7a3977b53"},
+ {file = "rpds_py-0.10.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4134aa2342f9b2ab6c33d5c172e40f9ef802c61bb9ca30d21782f6e035ed0043"},
+ {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e782379c2028a3611285a795b89b99a52722946d19fc06f002f8b53e3ea26ea9"},
+ {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2f6da6d842195fddc1cd34c3da8a40f6e99e4a113918faa5e60bf132f917c247"},
+ {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b4a9fe992887ac68256c930a2011255bae0bf5ec837475bc6f7edd7c8dfa254e"},
+ {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b788276a3c114e9f51e257f2a6f544c32c02dab4aa7a5816b96444e3f9ffc336"},
+ {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa1afc70a02645809c744eefb7d6ee8fef7e2fad170ffdeacca267fd2674f13"},
+ {file = "rpds_py-0.10.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bddd4f91eede9ca5275e70479ed3656e76c8cdaaa1b354e544cbcf94c6fc8ac4"},
+ {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:775049dfa63fb58293990fc59473e659fcafd953bba1d00fc5f0631a8fd61977"},
+ {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:c6c45a2d2b68c51fe3d9352733fe048291e483376c94f7723458cfd7b473136b"},
+ {file = "rpds_py-0.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0699ab6b8c98df998c3eacf51a3b25864ca93dab157abe358af46dc95ecd9801"},
+ {file = "rpds_py-0.10.6-cp38-none-win32.whl", hash = "sha256:ebdab79f42c5961682654b851f3f0fc68e6cc7cd8727c2ac4ffff955154123c1"},
+ {file = "rpds_py-0.10.6-cp38-none-win_amd64.whl", hash = "sha256:24656dc36f866c33856baa3ab309da0b6a60f37d25d14be916bd3e79d9f3afcf"},
+ {file = "rpds_py-0.10.6-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:0898173249141ee99ffcd45e3829abe7bcee47d941af7434ccbf97717df020e5"},
+ {file = "rpds_py-0.10.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9e9184fa6c52a74a5521e3e87badbf9692549c0fcced47443585876fcc47e469"},
+ {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5752b761902cd15073a527b51de76bbae63d938dc7c5c4ad1e7d8df10e765138"},
+ {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:99a57006b4ec39dbfb3ed67e5b27192792ffb0553206a107e4aadb39c5004cd5"},
+ {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09586f51a215d17efdb3a5f090d7cbf1633b7f3708f60a044757a5d48a83b393"},
+ {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e225a6a14ecf44499aadea165299092ab0cba918bb9ccd9304eab1138844490b"},
+ {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2039f8d545f20c4e52713eea51a275e62153ee96c8035a32b2abb772b6fc9e5"},
+ {file = "rpds_py-0.10.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34ad87a831940521d462ac11f1774edf867c34172010f5390b2f06b85dcc6014"},
+ {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dcdc88b6b01015da066da3fb76545e8bb9a6880a5ebf89e0f0b2e3ca557b3ab7"},
+ {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:25860ed5c4e7f5e10c496ea78af46ae8d8468e0be745bd233bab9ca99bfd2647"},
+ {file = "rpds_py-0.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7854a207ef77319ec457c1eb79c361b48807d252d94348305db4f4b62f40f7f3"},
+ {file = "rpds_py-0.10.6-cp39-none-win32.whl", hash = "sha256:e6fcc026a3f27c1282c7ed24b7fcac82cdd70a0e84cc848c0841a3ab1e3dea2d"},
+ {file = "rpds_py-0.10.6-cp39-none-win_amd64.whl", hash = "sha256:e98c4c07ee4c4b3acf787e91b27688409d918212dfd34c872201273fdd5a0e18"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:68fe9199184c18d997d2e4293b34327c0009a78599ce703e15cd9a0f47349bba"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3339eca941568ed52d9ad0f1b8eb9fe0958fa245381747cecf2e9a78a5539c42"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a360cfd0881d36c6dc271992ce1eda65dba5e9368575663de993eeb4523d895f"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:031f76fc87644a234883b51145e43985aa2d0c19b063e91d44379cd2786144f8"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f36a9d751f86455dc5278517e8b65580eeee37d61606183897f122c9e51cef3"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:052a832078943d2b2627aea0d19381f607fe331cc0eb5df01991268253af8417"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:023574366002bf1bd751ebaf3e580aef4a468b3d3c216d2f3f7e16fdabd885ed"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:defa2c0c68734f4a82028c26bcc85e6b92cced99866af118cd6a89b734ad8e0d"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:879fb24304ead6b62dbe5034e7b644b71def53c70e19363f3c3be2705c17a3b4"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:53c43e10d398e365da2d4cc0bcaf0854b79b4c50ee9689652cdc72948e86f487"},
+ {file = "rpds_py-0.10.6-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:3777cc9dea0e6c464e4b24760664bd8831738cc582c1d8aacf1c3f546bef3f65"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:40578a6469e5d1df71b006936ce95804edb5df47b520c69cf5af264d462f2cbb"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:cf71343646756a072b85f228d35b1d7407da1669a3de3cf47f8bbafe0c8183a4"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:10f32b53f424fc75ff7b713b2edb286fdbfc94bf16317890260a81c2c00385dc"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:81de24a1c51cfb32e1fbf018ab0bdbc79c04c035986526f76c33e3f9e0f3356c"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac17044876e64a8ea20ab132080ddc73b895b4abe9976e263b0e30ee5be7b9c2"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e8a78bd4879bff82daef48c14d5d4057f6856149094848c3ed0ecaf49f5aec2"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78ca33811e1d95cac8c2e49cb86c0fb71f4d8409d8cbea0cb495b6dbddb30a55"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c63c3ef43f0b3fb00571cff6c3967cc261c0ebd14a0a134a12e83bdb8f49f21f"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:7fde6d0e00b2fd0dbbb40c0eeec463ef147819f23725eda58105ba9ca48744f4"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_i686.whl", hash = "sha256:79edd779cfc46b2e15b0830eecd8b4b93f1a96649bcb502453df471a54ce7977"},
+ {file = "rpds_py-0.10.6-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:9164ec8010327ab9af931d7ccd12ab8d8b5dc2f4c6a16cbdd9d087861eaaefa1"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d29ddefeab1791e3c751e0189d5f4b3dbc0bbe033b06e9c333dca1f99e1d523e"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:30adb75ecd7c2a52f5e76af50644b3e0b5ba036321c390b8e7ec1bb2a16dd43c"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd609fafdcdde6e67a139898196698af37438b035b25ad63704fd9097d9a3482"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6eef672de005736a6efd565577101277db6057f65640a813de6c2707dc69f396"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cf4393c7b41abbf07c88eb83e8af5013606b1cdb7f6bc96b1b3536b53a574b8"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ad857f42831e5b8d41a32437f88d86ead6c191455a3499c4b6d15e007936d4cf"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d7360573f1e046cb3b0dceeb8864025aa78d98be4bb69f067ec1c40a9e2d9df"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d08f63561c8a695afec4975fae445245386d645e3e446e6f260e81663bfd2e38"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:f0f17f2ce0f3529177a5fff5525204fad7b43dd437d017dd0317f2746773443d"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:442626328600bde1d09dc3bb00434f5374948838ce75c41a52152615689f9403"},
+ {file = "rpds_py-0.10.6-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:e9616f5bd2595f7f4a04b67039d890348ab826e943a9bfdbe4938d0eba606971"},
+ {file = "rpds_py-0.10.6.tar.gz", hash = "sha256:4ce5a708d65a8dbf3748d2474b580d606b1b9f91b5c6ab2a316e0b0cf7a4ba50"},
]
[[package]]
@@ -2667,12 +2830,20 @@ files = [
{file = "statsmodels-0.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a6a0a1a06ff79be8aa89c8494b33903442859add133f0dda1daf37c3c71682e"},
{file = "statsmodels-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77b3cd3a5268ef966a0a08582c591bd29c09c88b4566c892a7c087935234f285"},
{file = "statsmodels-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c64ebe9cf376cba0c31aed138e15ed179a1d128612dd241cdf299d159e5e882"},
+ {file = "statsmodels-0.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:229b2f676b4a45cb62d132a105c9c06ca8a09ffba060abe34935391eb5d9ba87"},
{file = "statsmodels-0.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb471f757fc45102a87e5d86e87dc2c8c78b34ad4f203679a46520f1d863b9da"},
{file = "statsmodels-0.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:582f9e41092e342aaa04920d17cc3f97240e3ee198672f194719b5a3d08657d6"},
{file = "statsmodels-0.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7ebe885ccaa64b4bc5ad49ac781c246e7a594b491f08ab4cfd5aa456c363a6f6"},
{file = "statsmodels-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b587ee5d23369a0e881da6e37f78371dce4238cf7638a455db4b633a1a1c62d6"},
{file = "statsmodels-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef7fa4813c7a73b0d8a0c830250f021c102c71c95e9fe0d6877bcfb56d38b8c"},
+ {file = "statsmodels-0.14.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afe80544ef46730ea1b11cc655da27038bbaa7159dc5af4bc35bbc32982262f2"},
{file = "statsmodels-0.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:a6ad7b8aadccd4e4dd7f315a07bef1bca41d194eeaf4ec600d20dea02d242fce"},
+ {file = "statsmodels-0.14.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0eea4a0b761aebf0c355b726ac5616b9a8b618bd6e81a96b9f998a61f4fd7484"},
+ {file = "statsmodels-0.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4c815ce7a699047727c65a7c179bff4031cff9ae90c78ca730cfd5200eb025dd"},
+ {file = "statsmodels-0.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:575f61337c8e406ae5fa074d34bc6eb77b5a57c544b2d4ee9bc3da6a0a084cf1"},
+ {file = "statsmodels-0.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8be53cdeb82f49c4cb0fda6d7eeeb2d67dbd50179b3e1033510e061863720d93"},
+ {file = "statsmodels-0.14.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6f7d762df4e04d1dde8127d07e91aff230eae643aa7078543e60e83e7d5b40db"},
+ {file = "statsmodels-0.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:fc2c7931008a911e3060c77ea8933f63f7367c0f3af04f82db3a04808ad2cd2c"},
{file = "statsmodels-0.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3757542c95247e4ab025291a740efa5da91dc11a05990c033d40fce31c450dc9"},
{file = "statsmodels-0.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de489e3ed315bdba55c9d1554a2e89faa65d212e365ab81bc323fa52681fc60e"},
{file = "statsmodels-0.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e290f4718177bffa8823a780f3b882d56dd64ad1c18cfb4bc8b5558f3f5757"},
@@ -2688,8 +2859,8 @@ files = [
[package.dependencies]
numpy = [
- {version = ">=1.22.3", markers = "python_version == \"3.10\" and platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""},
{version = ">=1.18", markers = "python_version != \"3.10\" or platform_system != \"Windows\" or platform_python_implementation == \"PyPy\""},
+ {version = ">=1.22.3", markers = "python_version == \"3.10\" and platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""},
]
packaging = ">=21.3"
pandas = ">=1.0"
@@ -2903,13 +3074,13 @@ six = "*"
[[package]]
name = "urllib3"
-version = "1.26.17"
+version = "1.26.18"
description = "HTTP library with thread-safe connection pooling, file post, and more."
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
files = [
- {file = "urllib3-1.26.17-py2.py3-none-any.whl", hash = "sha256:94a757d178c9be92ef5539b8840d48dc9cf1b2709c9d6b588232a055c524458b"},
- {file = "urllib3-1.26.17.tar.gz", hash = "sha256:24d6a242c28d29af46c3fae832c36db3bbebcc533dd1bb549172cd739c82df21"},
+ {file = "urllib3-1.26.18-py2.py3-none-any.whl", hash = "sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07"},
+ {file = "urllib3-1.26.18.tar.gz", hash = "sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"},
]
[package.extras]
@@ -3265,13 +3436,13 @@ docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.link
testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
[extras]
-all = ["openbb-alpha-vantage", "openbb-cboe", "openbb-charting", "openbb-econometrics", "openbb-futures", "openbb-oecd", "openbb-qa", "openbb-quandl", "openbb-ta", "openbb-yfinance"]
+all = ["openbb-alpha-vantage", "openbb-biztoc", "openbb-cboe", "openbb-charting", "openbb-econometrics", "openbb-futures", "openbb-qa", "openbb-quandl", "openbb-ta", "openbb-yfinance"]
alpha-vantage = ["openbb-alpha-vantage"]
+biztoc = ["openbb-biztoc"]
cboe = ["openbb-cboe"]
charting = ["openbb-charting"]
econometrics = ["openbb-econometrics"]
futures = ["openbb-futures"]
-oecd = ["openbb-oecd"]
qa = ["openbb-qa"]
quandl = ["openbb-quandl"]
ta = ["openbb-ta"]
@@ -3280,4 +3451,4 @@ yfinance = ["openbb-yfinance"]
[metadata]
lock-version = "2.0"
python-versions = ">=3.8,<3.12"
-content-hash = "569aba76bee8aab670525bf53ed6baeaf35577ae694dd15054a4e32c0fc0f4f2"
+content-hash = "ae7575359a4657ad0c34ab7209e9469d54af78b1e57e8e338aee1e6d0fe0620f"
diff --git a/openbb_platform/providers/biztoc/README.md b/openbb_platform/providers/biztoc/README.md
new file mode 100644
index 000000000000..b929315cf378
--- /dev/null
+++ b/openbb_platform/providers/biztoc/README.md
@@ -0,0 +1,12 @@
+# OpenBB Biztoc Provider
+
+This extension integrates the Biztoc data provider
+into the OpenBB Platform.
+
+## Installation
+
+To install the extension, run the following command in this folder:
+
+```bash
+pip install .
+```
diff --git a/openbb_platform/providers/biztoc/__init__.py b/openbb_platform/providers/biztoc/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/openbb_platform/providers/biztoc/openbb_biztoc/__init__.py b/openbb_platform/providers/biztoc/openbb_biztoc/__init__.py
new file mode 100644
index 000000000000..37cb17bf291d
--- /dev/null
+++ b/openbb_platform/providers/biztoc/openbb_biztoc/__init__.py
@@ -0,0 +1,22 @@
+"""Biztoc provider module."""
+
+from openbb_biztoc.models.global_news import BiztocGlobalNewsFetcher
+from openbb_provider.abstract.provider import Provider
+
+biztoc_provider = Provider(
+ name="biztoc",
+ website="https://api.biztoc.com/#biztoc-default",
+ description="""BizToc uses Rapid API for its REST API.
+ You may sign up for your free account at https://rapidapi.com/thma/api/biztoc.
+
+ The Base URL for all requests is:
+
+ https://biztoc.p.rapidapi.com/
+
+ If you're not a developer but would still like to use Biztoc outside of the main website,
+ we've partnered with OpenBB, allowing you to pull in BizToc's news stream in their Terminal.""",
+ required_credentials=["api_key"],
+ fetcher_dict={
+ "GlobalNews": BiztocGlobalNewsFetcher,
+ },
+)
diff --git a/openbb_platform/providers/biztoc/openbb_biztoc/models/__init__.py b/openbb_platform/providers/biztoc/openbb_biztoc/models/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py b/openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py
new file mode 100644
index 000000000000..0895eafb8140
--- /dev/null
+++ b/openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py
@@ -0,0 +1,107 @@
+"""Biztoc Globl News Fetcher."""
+from datetime import datetime, timedelta
+from typing import Any, Dict, List, Literal, Optional
+
+from openbb_biztoc.utils.helpers import get_news
+from openbb_provider.abstract.fetcher import Fetcher
+from openbb_provider.standard_models.global_news import (
+ GlobalNewsData,
+ GlobalNewsQueryParams,
+)
+from pandas import to_datetime
+from pydantic import Field, field_validator
+
+
+class BiztocGlobalNewsQueryParams(GlobalNewsQueryParams):
+ """Biztoc Global News QueryParams."""
+
+ filter: Literal[
+ "crypto", "hot", "latest", "main", "media", "source", "tag"
+ ] = Field(default="latest", description="Filter by type of news.")
+ source: str = Field(
+ description="Filter by a specific publisher. Only valid when filter is set to source.",
+ default="bloomberg",
+ )
+ tag: Optional[str] = Field(
+ description="Tag, topic, to filter articles by. Only valid when filter is set to tag.",
+ default=None,
+ )
+ term: Optional[str] = Field(
+ description="Search term to filter articles by. This overrides all other filters.",
+ default=None,
+ )
+
+
+class BiztocGlobalNewsData(GlobalNewsData):
+ """Biztoc Global News Data."""
+
+ __alias_dict__ = {"date": "created", "text": "body", "site": "domain"}
+
+ images: Optional[Dict[str, str]] = Field(
+ description="Images for the article.", alias="images", default=None
+ )
+ favicon: Optional[str] = Field(
+ description="Icon image for the source of the article.", default=None
+ )
+ tags: Optional[List[str]] = Field(description="Tags for the article.", default=None)
+ id: Optional[str] = Field(description="Unique Article ID.", default=None)
+ score: Optional[float] = Field(
+ description="Search relevance score for the article.", default=None
+ )
+
+ @field_validator("date", "updated", mode="before", check_fields=False)
+ def date_validate(cls, v): # pylint: disable=E0213
+ """Return formatted datetime."""
+ return to_datetime(v).strftime("%Y-%m-%d %H:%M:%S")
+
+
+class BiztocGlobalNewsFetcher(
+ Fetcher[
+ BiztocGlobalNewsQueryParams,
+ List[BiztocGlobalNewsData],
+ ]
+):
+ """Transform the query, extract and transform the data from the Biztoc endpoints."""
+
+ @staticmethod
+ def transform_query(params: Dict[str, Any]) -> BiztocGlobalNewsQueryParams:
+ """Transform the query."""
+ return BiztocGlobalNewsQueryParams(**params)
+
+ @staticmethod
+ def extract_data(
+ query: BiztocGlobalNewsQueryParams,
+ credentials: Optional[Dict[str, str]],
+ **kwargs: Any,
+ ) -> List[Dict]:
+ """Extract the data from the Biztoc endpoint."""
+
+ api_key = credentials.get("biztoc_api_key") if credentials else ""
+
+ data = get_news(
+ api_key=api_key, filter=query.filter, source=query.source, tag=query.tag, term=query.term # type: ignore
+ )
+ if query.filter == "hot":
+ _data = []
+ for i in range(0, len(data)):
+ _posts = data[i]["posts"]
+ _data.extend(_posts)
+ data = _data
+
+ times = {"2 Hours Ago": 2, "4 Hours Ago": 4}
+ # Drop 'body_preview' because it is always nan, empty string, or empty string with space.
+ for i in range(0, len(data)):
+ if "body_preview" in data[i]:
+ data[i].pop("body_preview")
+ # Some items when filter is 'hot' don't have a proper timestamp, only a label.
+ if "created" in data[i] and data[i]["created"] in times:
+ data[i]["created"] = datetime.now() - timedelta(
+ hours=times[data[i]["created"]]
+ )
+
+ return data
+
+ @staticmethod
+ def transform_data(data: List[Dict], **kwargs: Any) -> List[BiztocGlobalNewsData]:
+ """Transform the data to the standard format."""
+ return [BiztocGlobalNewsData.model_validate(d) for d in data]
diff --git a/openbb_platform/providers/biztoc/openbb_biztoc/utils/__init__.py b/openbb_platform/providers/biztoc/openbb_biztoc/utils/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/openbb_platform/providers/biztoc/openbb_biztoc/utils/helpers.py b/openbb_platform/providers/biztoc/openbb_biztoc/utils/helpers.py
new file mode 100644
index 000000000000..c618915eec14
--- /dev/null
+++ b/openbb_platform/providers/biztoc/openbb_biztoc/utils/helpers.py
@@ -0,0 +1,135 @@
+from datetime import timedelta
+from typing import Dict, List, Literal
+
+import requests
+import requests_cache
+
+
+def get_sources(api_key: str) -> List[Dict]:
+ """Valid sources for Biztoc queries."""
+
+ biztoc_session_sources = requests_cache.CachedSession(
+ "OpenBB_Biztoc_Pages", expire_after=timedelta(days=3), use_cache_dir=True
+ )
+ headers = {
+ "X-RapidAPI-Key": f"{api_key}",
+ "X-RapidAPI-Host": "biztoc.p.rapidapi.com",
+ "Accept": "application/json",
+ "Accept-Encoding": "gzip",
+ }
+ sources = biztoc_session_sources.get(
+ "https://biztoc.p.rapidapi.com/sources", headers=headers, timeout=10
+ )
+
+ return sources.json()
+
+
+def get_pages(api_key: str) -> List[str]:
+ """Valid pages for Biztoc queries."""
+
+ biztoc_session_pages = requests_cache.CachedSession(
+ "OpenBB_Biztoc_Pages", expire_after=timedelta(days=3), use_cache_dir=True
+ )
+ headers = {
+ "X-RapidAPI-Key": f"{api_key}",
+ "X-RapidAPI-Host": "biztoc.p.rapidapi.com",
+ "Accept": "application/json",
+ "Accept-Encoding": "gzip",
+ }
+ pages = biztoc_session_pages.get(
+ "https://biztoc.p.rapidapi.com/pages", headers=headers, timeout=10
+ )
+
+ return pages.json()
+
+
+def get_tags_by_page(page_id: str, api_key: str) -> List[str]:
+ """Valid tags required for Biztoc queries."""
+
+ biztoc_session_tags = requests_cache.CachedSession(
+ "OpenBB_Biztoc_Tags", expire_after=timedelta(days=1), use_cache_dir=True
+ )
+ headers = {
+ "X-RapidAPI-Key": f"{api_key}",
+ "X-RapidAPI-Host": "biztoc.p.rapidapi.com",
+ "Accept": "application/json",
+ "Accept-Encoding": "gzip",
+ }
+ tags = biztoc_session_tags.get(
+ f"https://biztoc.p.rapidapi.com/tags/{page_id}", headers=headers, timeout=10
+ )
+
+ return tags.json()
+
+
+def get_all_tags(api_key) -> Dict[str, List[str]]:
+ tags: Dict[str, List[str]] = {}
+
+ pages = get_pages(api_key)
+ for page in pages:
+ page_tags = get_tags_by_page(page, api_key)
+ tags.update({page: [x["tag"] for x in page_tags]})
+
+ return tags
+
+
+def get_news(
+ api_key: str,
+ filter: Literal[
+ "crypto", "hot", "latest", "main", "media", "source", "tag"
+ ] = "latest",
+ source: str = "bloomberg",
+ tag: str = "",
+ term: str = "",
+) -> List[Dict]:
+ """Calls the BizToc API and returns the data."""
+
+ results = []
+ term = term.replace(" ", "%20") if term else ""
+ _tags = get_all_tags(api_key)
+ pages = get_pages(api_key)
+ tags = []
+ tag = tag.lower() if tag else ""
+ for page in pages:
+ tags.extend(_tags[page][:])
+
+ _sources = get_sources(api_key)
+ sources = sorted([i["id"] for i in _sources])
+
+ headers = {
+ "X-RapidAPI-Key": f"{api_key}",
+ "X-RapidAPI-Host": "biztoc.p.rapidapi.com",
+ "Accept": "application/json",
+ "Accept-Encoding": "gzip",
+ }
+
+ filter_dict = {
+ "hot": "news/hot",
+ "latest": "news/latest",
+ "crypto": "news/latest/crypto",
+ "main": "news/latest/main",
+ "media": "news/latest/media",
+ "source": f"news/source/{source.lower()}",
+ "tag": f"tag/{tag}",
+ }
+ if filter == "source" and source.lower() not in sources:
+ raise ValueError(f"{source} not a valid source. Valid sources: {sources}")
+
+ if filter == "tag" and tag.lower().replace(" ", "") not in tags:
+ raise ValueError(f"{tag} not a valid tag. Valid tags: {tags}")
+
+ url = (
+ f"https://biztoc.p.rapidapi.com/search?q={term}"
+ if term
+ else f"https://biztoc.p.rapidapi.com/{filter_dict[filter]}"
+ )
+ r = requests.get(url, headers=headers, timeout=5)
+ if r.status_code != 200:
+ raise RuntimeError(f"HTTP error - > {r.text}")
+
+ try:
+ results = r.json()
+ except Exception as e:
+ raise (e)
+
+ return results
diff --git a/openbb_platform/providers/biztoc/poetry.lock b/openbb_platform/providers/biztoc/poetry.lock
new file mode 100644
index 000000000000..20997b62f2e1
--- /dev/null
+++ b/openbb_platform/providers/biztoc/poetry.lock
@@ -0,0 +1,1501 @@
+# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
+
+[[package]]
+name = "annotated-types"
+version = "0.6.0"
+description = "Reusable constraint types to use with typing.Annotated"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "annotated_types-0.6.0-py3-none-any.whl", hash = "sha256:0641064de18ba7a25dee8f96403ebc39113d0cb953a01429249d5c7564666a43"},
+ {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""}
+
+[[package]]
+name = "anyio"
+version = "3.7.1"
+description = "High level compatibility layer for multiple asynchronous event loop implementations"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "anyio-3.7.1-py3-none-any.whl", hash = "sha256:91dee416e570e92c64041bd18b900d1d6fa78dff7048769ce5ac5ddad004fbb5"},
+ {file = "anyio-3.7.1.tar.gz", hash = "sha256:44a3c9aba0f5defa43261a8b3efb97891f2bd7d804e0e1f56419befa1adfc780"},
+]
+
+[package.dependencies]
+exceptiongroup = {version = "*", markers = "python_version < \"3.11\""}
+idna = ">=2.8"
+sniffio = ">=1.1"
+
+[package.extras]
+doc = ["Sphinx", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme (>=1.2.2)", "sphinxcontrib-jquery"]
+test = ["anyio[trio]", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"]
+trio = ["trio (<0.22)"]
+
+[[package]]
+name = "attrs"
+version = "23.1.0"
+description = "Classes Without Boilerplate"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "attrs-23.1.0-py3-none-any.whl", hash = "sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04"},
+ {file = "attrs-23.1.0.tar.gz", hash = "sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"},
+]
+
+[package.extras]
+cov = ["attrs[tests]", "coverage[toml] (>=5.3)"]
+dev = ["attrs[docs,tests]", "pre-commit"]
+docs = ["furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier", "zope-interface"]
+tests = ["attrs[tests-no-zope]", "zope-interface"]
+tests-no-zope = ["cloudpickle", "hypothesis", "mypy (>=1.1.1)", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins", "pytest-xdist[psutil]"]
+
+[[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 = "cattrs"
+version = "23.1.2"
+description = "Composable complex class support for attrs and dataclasses."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "cattrs-23.1.2-py3-none-any.whl", hash = "sha256:b2bb14311ac17bed0d58785e5a60f022e5431aca3932e3fc5cc8ed8639de50a4"},
+ {file = "cattrs-23.1.2.tar.gz", hash = "sha256:db1c821b8c537382b2c7c66678c3790091ca0275ac486c76f3c8f3920e83c657"},
+]
+
+[package.dependencies]
+attrs = ">=20"
+exceptiongroup = {version = "*", markers = "python_version < \"3.11\""}
+typing_extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""}
+
+[package.extras]
+bson = ["pymongo (>=4.2.0,<5.0.0)"]
+cbor2 = ["cbor2 (>=5.4.6,<6.0.0)"]
+msgpack = ["msgpack (>=1.0.2,<2.0.0)"]
+orjson = ["orjson (>=3.5.2,<4.0.0)"]
+pyyaml = ["PyYAML (>=6.0,<7.0)"]
+tomlkit = ["tomlkit (>=0.11.4,<0.12.0)"]
+ujson = ["ujson (>=5.4.0,<6.0.0)"]
+
+[[package]]
+name = "certifi"
+version = "2023.7.22"
+description = "Python package for providing Mozilla's CA Bundle."
+optional = false
+python-versions = ">=3.6"
+files = [
+ {file = "certifi-2023.7.22-py3-none-any.whl", hash = "sha256:92d6037539857d8206b8f6ae472e8b77db8058fec5937a1ef3f54304089edbb9"},
+ {file = "certifi-2023.7.22.tar.gz", hash = "sha256:539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"},
+]
+
+[[package]]
+name = "charset-normalizer"
+version = "3.3.0"
+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.0.tar.gz", hash = "sha256:63563193aec44bce707e0c5ca64ff69fa72ed7cf34ce6e11d5127555756fd2f6"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:effe5406c9bd748a871dbcaf3ac69167c38d72db8c9baf3ff954c344f31c4cbe"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4162918ef3098851fcd8a628bf9b6a98d10c380725df9e04caf5ca6dd48c847a"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0570d21da019941634a531444364f2482e8db0b3425fcd5ac0c36565a64142c8"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5707a746c6083a3a74b46b3a631d78d129edab06195a92a8ece755aac25a3f3d"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:278c296c6f96fa686d74eb449ea1697f3c03dc28b75f873b65b5201806346a69"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a4b71f4d1765639372a3b32d2638197f5cd5221b19531f9245fcc9ee62d38f56"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5969baeaea61c97efa706b9b107dcba02784b1601c74ac84f2a532ea079403e"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a3f93dab657839dfa61025056606600a11d0b696d79386f974e459a3fbc568ec"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:db756e48f9c5c607b5e33dd36b1d5872d0422e960145b08ab0ec7fd420e9d649"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:232ac332403e37e4a03d209a3f92ed9071f7d3dbda70e2a5e9cff1c4ba9f0678"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:e5c1502d4ace69a179305abb3f0bb6141cbe4714bc9b31d427329a95acfc8bdd"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:2502dd2a736c879c0f0d3e2161e74d9907231e25d35794584b1ca5284e43f596"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23e8565ab7ff33218530bc817922fae827420f143479b753104ab801145b1d5b"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-win32.whl", hash = "sha256:1872d01ac8c618a8da634e232f24793883d6e456a66593135aeafe3784b0848d"},
+ {file = "charset_normalizer-3.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:557b21a44ceac6c6b9773bc65aa1b4cc3e248a5ad2f5b914b91579a32e22204d"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:d7eff0f27edc5afa9e405f7165f85a6d782d308f3b6b9d96016c010597958e63"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6a685067d05e46641d5d1623d7c7fdf15a357546cbb2f71b0ebde91b175ffc3e"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0d3d5b7db9ed8a2b11a774db2bbea7ba1884430a205dbd54a32d61d7c2a190fa"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2935ffc78db9645cb2086c2f8f4cfd23d9b73cc0dc80334bc30aac6f03f68f8c"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fe359b2e3a7729010060fbca442ca225280c16e923b37db0e955ac2a2b72a05"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:380c4bde80bce25c6e4f77b19386f5ec9db230df9f2f2ac1e5ad7af2caa70459"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0d1e3732768fecb052d90d62b220af62ead5748ac51ef61e7b32c266cac9293"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1b2919306936ac6efb3aed1fbf81039f7087ddadb3160882a57ee2ff74fd2382"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f8888e31e3a85943743f8fc15e71536bda1c81d5aa36d014a3c0c44481d7db6e"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:82eb849f085624f6a607538ee7b83a6d8126df6d2f7d3b319cb837b289123078"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7b8b8bf1189b3ba9b8de5c8db4d541b406611a71a955bbbd7385bbc45fcb786c"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5adf257bd58c1b8632046bbe43ee38c04e1038e9d37de9c57a94d6bd6ce5da34"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c350354efb159b8767a6244c166f66e67506e06c8924ed74669b2c70bc8735b1"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-win32.whl", hash = "sha256:02af06682e3590ab952599fbadac535ede5d60d78848e555aa58d0c0abbde786"},
+ {file = "charset_normalizer-3.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:86d1f65ac145e2c9ed71d8ffb1905e9bba3a91ae29ba55b4c46ae6fc31d7c0d4"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:3b447982ad46348c02cb90d230b75ac34e9886273df3a93eec0539308a6296d7"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:abf0d9f45ea5fb95051c8bfe43cb40cda383772f7e5023a83cc481ca2604d74e"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b09719a17a2301178fac4470d54b1680b18a5048b481cb8890e1ef820cb80455"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3d9b48ee6e3967b7901c052b670c7dda6deb812c309439adaffdec55c6d7b78"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:edfe077ab09442d4ef3c52cb1f9dab89bff02f4524afc0acf2d46be17dc479f5"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3debd1150027933210c2fc321527c2299118aa929c2f5a0a80ab6953e3bd1908"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86f63face3a527284f7bb8a9d4f78988e3c06823f7bea2bd6f0e0e9298ca0403"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:24817cb02cbef7cd499f7c9a2735286b4782bd47a5b3516a0e84c50eab44b98e"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c71f16da1ed8949774ef79f4a0260d28b83b3a50c6576f8f4f0288d109777989"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:9cf3126b85822c4e53aa28c7ec9869b924d6fcfb76e77a45c44b83d91afd74f9"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:b3b2316b25644b23b54a6f6401074cebcecd1244c0b8e80111c9a3f1c8e83d65"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:03680bb39035fbcffe828eae9c3f8afc0428c91d38e7d61aa992ef7a59fb120e"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4cc152c5dd831641e995764f9f0b6589519f6f5123258ccaca8c6d34572fefa8"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-win32.whl", hash = "sha256:b8f3307af845803fb0b060ab76cf6dd3a13adc15b6b451f54281d25911eb92df"},
+ {file = "charset_normalizer-3.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:8eaf82f0eccd1505cf39a45a6bd0a8cf1c70dcfc30dba338207a969d91b965c0"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:dc45229747b67ffc441b3de2f3ae5e62877a282ea828a5bdb67883c4ee4a8810"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f4a0033ce9a76e391542c182f0d48d084855b5fcba5010f707c8e8c34663d77"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ada214c6fa40f8d800e575de6b91a40d0548139e5dc457d2ebb61470abf50186"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b1121de0e9d6e6ca08289583d7491e7fcb18a439305b34a30b20d8215922d43c"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1063da2c85b95f2d1a430f1c33b55c9c17ffaf5e612e10aeaad641c55a9e2b9d"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70f1d09c0d7748b73290b29219e854b3207aea922f839437870d8cc2168e31cc"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:250c9eb0f4600361dd80d46112213dff2286231d92d3e52af1e5a6083d10cad9"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:750b446b2ffce1739e8578576092179160f6d26bd5e23eb1789c4d64d5af7dc7"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:fc52b79d83a3fe3a360902d3f5d79073a993597d48114c29485e9431092905d8"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:588245972aca710b5b68802c8cad9edaa98589b1b42ad2b53accd6910dad3545"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e39c7eb31e3f5b1f88caff88bcff1b7f8334975b46f6ac6e9fc725d829bc35d4"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-win32.whl", hash = "sha256:abecce40dfebbfa6abf8e324e1860092eeca6f7375c8c4e655a8afb61af58f2c"},
+ {file = "charset_normalizer-3.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a91a981f185721542a0b7c92e9054b7ab4fea0508a795846bc5b0abf8118d4"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:67b8cc9574bb518ec76dc8e705d4c39ae78bb96237cb533edac149352c1f39fe"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:ac71b2977fb90c35d41c9453116e283fac47bb9096ad917b8819ca8b943abecd"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3ae38d325b512f63f8da31f826e6cb6c367336f95e418137286ba362925c877e"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:542da1178c1c6af8873e143910e2269add130a299c9106eef2594e15dae5e482"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:30a85aed0b864ac88309b7d94be09f6046c834ef60762a8833b660139cfbad13"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aae32c93e0f64469f74ccc730a7cb21c7610af3a775157e50bbd38f816536b38"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15b26ddf78d57f1d143bdf32e820fd8935d36abe8a25eb9ec0b5a71c82eb3895"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7f5d10bae5d78e4551b7be7a9b29643a95aded9d0f602aa2ba584f0388e7a557"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:249c6470a2b60935bafd1d1d13cd613f8cd8388d53461c67397ee6a0f5dce741"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:c5a74c359b2d47d26cdbbc7845e9662d6b08a1e915eb015d044729e92e7050b7"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:b5bcf60a228acae568e9911f410f9d9e0d43197d030ae5799e20dca8df588287"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:187d18082694a29005ba2944c882344b6748d5be69e3a89bf3cc9d878e548d5a"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:81bf654678e575403736b85ba3a7867e31c2c30a69bc57fe88e3ace52fb17b89"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-win32.whl", hash = "sha256:85a32721ddde63c9df9ebb0d2045b9691d9750cb139c161c80e500d210f5e26e"},
+ {file = "charset_normalizer-3.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:468d2a840567b13a590e67dd276c570f8de00ed767ecc611994c301d0f8c014f"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e0fc42822278451bc13a2e8626cf2218ba570f27856b536e00cfa53099724828"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:09c77f964f351a7369cc343911e0df63e762e42bac24cd7d18525961c81754f4"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:12ebea541c44fdc88ccb794a13fe861cc5e35d64ed689513a5c03d05b53b7c82"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:805dfea4ca10411a5296bcc75638017215a93ffb584c9e344731eef0dcfb026a"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:96c2b49eb6a72c0e4991d62406e365d87067ca14c1a729a870d22354e6f68115"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aaf7b34c5bc56b38c931a54f7952f1ff0ae77a2e82496583b247f7c969eb1479"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:619d1c96099be5823db34fe89e2582b336b5b074a7f47f819d6b3a57ff7bdb86"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a0ac5e7015a5920cfce654c06618ec40c33e12801711da6b4258af59a8eff00a"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:93aa7eef6ee71c629b51ef873991d6911b906d7312c6e8e99790c0f33c576f89"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7966951325782121e67c81299a031f4c115615e68046f79b85856b86ebffc4cd"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:02673e456dc5ab13659f85196c534dc596d4ef260e4d86e856c3b2773ce09843"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:c2af80fb58f0f24b3f3adcb9148e6203fa67dd3f61c4af146ecad033024dde43"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:153e7b6e724761741e0974fc4dcd406d35ba70b92bfe3fedcb497226c93b9da7"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-win32.whl", hash = "sha256:d47ecf253780c90ee181d4d871cd655a789da937454045b17b5798da9393901a"},
+ {file = "charset_normalizer-3.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:d97d85fa63f315a8bdaba2af9a6a686e0eceab77b3089af45133252618e70884"},
+ {file = "charset_normalizer-3.3.0-py3-none-any.whl", hash = "sha256:e46cd37076971c1040fc8c41273a8b3e2c624ce4f2be3f5dfcb7a430c1d3acc2"},
+]
+
+[[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 = "ecdsa"
+version = "0.18.0"
+description = "ECDSA cryptographic signature library (pure python)"
+optional = false
+python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*"
+files = [
+ {file = "ecdsa-0.18.0-py2.py3-none-any.whl", hash = "sha256:80600258e7ed2f16b9aa1d7c295bd70194109ad5a30fdee0eaeefef1d4c559dd"},
+ {file = "ecdsa-0.18.0.tar.gz", hash = "sha256:190348041559e21b22a1d65cee485282ca11a6f81d503fddb84d5017e9ed1e49"},
+]
+
+[package.dependencies]
+six = ">=1.9.0"
+
+[package.extras]
+gmpy = ["gmpy"]
+gmpy2 = ["gmpy2"]
+
+[[package]]
+name = "exceptiongroup"
+version = "1.1.3"
+description = "Backport of PEP 654 (exception groups)"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"},
+ {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"},
+]
+
+[package.extras]
+test = ["pytest (>=6)"]
+
+[[package]]
+name = "fastapi"
+version = "0.103.2"
+description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "fastapi-0.103.2-py3-none-any.whl", hash = "sha256:3270de872f0fe9ec809d4bd3d4d890c6d5cc7b9611d721d6438f9dacc8c4ef2e"},
+ {file = "fastapi-0.103.2.tar.gz", hash = "sha256:75a11f6bfb8fc4d2bec0bd710c2d5f2829659c0e8c0afd5560fdda6ce25ec653"},
+]
+
+[package.dependencies]
+anyio = ">=3.7.1,<4.0.0"
+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"
+starlette = ">=0.27.0,<0.28.0"
+typing-extensions = ">=4.5.0"
+
+[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.5)", "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 = "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 = "idna"
+version = "3.4"
+description = "Internationalized Domain Names in Applications (IDNA)"
+optional = false
+python-versions = ">=3.5"
+files = [
+ {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"},
+ {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"},
+]
+
+[[package]]
+name = "importlib-metadata"
+version = "6.8.0"
+description = "Read metadata from Python packages"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "importlib_metadata-6.8.0-py3-none-any.whl", hash = "sha256:3ebb78df84a805d7698245025b975d9d67053cd94c79245ba4b3eb694abe68bb"},
+ {file = "importlib_metadata-6.8.0.tar.gz", hash = "sha256:dbace7892d8c0c4ac1ad096662232f831d4e64f4c4545bd53016a3e9d4654743"},
+]
+
+[package.dependencies]
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "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 = "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.4"
+description = "multidict implementation"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"},
+ {file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"},
+ {file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"},
+ {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"},
+ {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"},
+ {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"},
+ {file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"},
+ {file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"},
+ {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"},
+ {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"},
+ {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"},
+ {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"},
+ {file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"},
+ {file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"},
+ {file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"},
+ {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"},
+ {file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"},
+ {file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"},
+ {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"},
+ {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"},
+ {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"},
+ {file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"},
+ {file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"},
+ {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"},
+ {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"},
+ {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"},
+ {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"},
+ {file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"},
+ {file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"},
+ {file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"},
+ {file = "multidict-6.0.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:67040058f37a2a51ed8ea8f6b0e6ee5bd78ca67f169ce6122f3e2ec80dfe9b78"},
+ {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:853888594621e6604c978ce2a0444a1e6e70c8d253ab65ba11657659dcc9100f"},
+ {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:39ff62e7d0f26c248b15e364517a72932a611a9b75f35b45be078d81bdb86603"},
+ {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af048912e045a2dc732847d33821a9d84ba553f5c5f028adbd364dd4765092ac"},
+ {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b1e8b901e607795ec06c9e42530788c45ac21ef3aaa11dbd0c69de543bfb79a9"},
+ {file = "multidict-6.0.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62501642008a8b9871ddfccbf83e4222cf8ac0d5aeedf73da36153ef2ec222d2"},
+ {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:99b76c052e9f1bc0721f7541e5e8c05db3941eb9ebe7b8553c625ef88d6eefde"},
+ {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:509eac6cf09c794aa27bcacfd4d62c885cce62bef7b2c3e8b2e49d365b5003fe"},
+ {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:21a12c4eb6ddc9952c415f24eef97e3e55ba3af61f67c7bc388dcdec1404a067"},
+ {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:5cad9430ab3e2e4fa4a2ef4450f548768400a2ac635841bc2a56a2052cdbeb87"},
+ {file = "multidict-6.0.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ab55edc2e84460694295f401215f4a58597f8f7c9466faec545093045476327d"},
+ {file = "multidict-6.0.4-cp37-cp37m-win32.whl", hash = "sha256:5a4dcf02b908c3b8b17a45fb0f15b695bf117a67b76b7ad18b73cf8e92608775"},
+ {file = "multidict-6.0.4-cp37-cp37m-win_amd64.whl", hash = "sha256:6ed5f161328b7df384d71b07317f4d8656434e34591f20552c7bcef27b0ab88e"},
+ {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5fc1b16f586f049820c5c5b17bb4ee7583092fa0d1c4e28b5239181ff9532e0c"},
+ {file = "multidict-6.0.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1502e24330eb681bdaa3eb70d6358e818e8e8f908a22a1851dfd4e15bc2f8161"},
+ {file = "multidict-6.0.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b692f419760c0e65d060959df05f2a531945af31fda0c8a3b3195d4efd06de11"},
+ {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45e1ecb0379bfaab5eef059f50115b54571acfbe422a14f668fc8c27ba410e7e"},
+ {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddd3915998d93fbcd2566ddf9cf62cdb35c9e093075f862935573d265cf8f65d"},
+ {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:59d43b61c59d82f2effb39a93c48b845efe23a3852d201ed2d24ba830d0b4cf2"},
+ {file = "multidict-6.0.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc8e1d0c705233c5dd0c5e6460fbad7827d5d36f310a0fadfd45cc3029762258"},
+ {file = "multidict-6.0.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6aa0418fcc838522256761b3415822626f866758ee0bc6632c9486b179d0b52"},
+ {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6748717bb10339c4760c1e63da040f5f29f5ed6e59d76daee30305894069a660"},
+ {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4d1a3d7ef5e96b1c9e92f973e43aa5e5b96c659c9bc3124acbbd81b0b9c8a951"},
+ {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4372381634485bec7e46718edc71528024fcdc6f835baefe517b34a33c731d60"},
+ {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:fc35cb4676846ef752816d5be2193a1e8367b4c1397b74a565a9d0389c433a1d"},
+ {file = "multidict-6.0.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:4b9d9e4e2b37daddb5c23ea33a3417901fa7c7b3dee2d855f63ee67a0b21e5b1"},
+ {file = "multidict-6.0.4-cp38-cp38-win32.whl", hash = "sha256:e41b7e2b59679edfa309e8db64fdf22399eec4b0b24694e1b2104fb789207779"},
+ {file = "multidict-6.0.4-cp38-cp38-win_amd64.whl", hash = "sha256:d6c254ba6e45d8e72739281ebc46ea5eb5f101234f3ce171f0e9f5cc86991480"},
+ {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:16ab77bbeb596e14212e7bab8429f24c1579234a3a462105cda4a66904998664"},
+ {file = "multidict-6.0.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc779e9e6f7fda81b3f9aa58e3a6091d49ad528b11ed19f6621408806204ad35"},
+ {file = "multidict-6.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4ceef517eca3e03c1cceb22030a3e39cb399ac86bff4e426d4fc6ae49052cc60"},
+ {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:281af09f488903fde97923c7744bb001a9b23b039a909460d0f14edc7bf59706"},
+ {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52f2dffc8acaba9a2f27174c41c9e57f60b907bb9f096b36b1a1f3be71c6284d"},
+ {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b41156839806aecb3641f3208c0dafd3ac7775b9c4c422d82ee2a45c34ba81ca"},
+ {file = "multidict-6.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d5e3fc56f88cc98ef8139255cf8cd63eb2c586531e43310ff859d6bb3a6b51f1"},
+ {file = "multidict-6.0.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8316a77808c501004802f9beebde51c9f857054a0c871bd6da8280e718444449"},
+ {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:f70b98cd94886b49d91170ef23ec5c0e8ebb6f242d734ed7ed677b24d50c82cf"},
+ {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bf6774e60d67a9efe02b3616fee22441d86fab4c6d335f9d2051d19d90a40063"},
+ {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:e69924bfcdda39b722ef4d9aa762b2dd38e4632b3641b1d9a57ca9cd18f2f83a"},
+ {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:6b181d8c23da913d4ff585afd1155a0e1194c0b50c54fcfe286f70cdaf2b7176"},
+ {file = "multidict-6.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:52509b5be062d9eafc8170e53026fbc54cf3b32759a23d07fd935fb04fc22d95"},
+ {file = "multidict-6.0.4-cp39-cp39-win32.whl", hash = "sha256:27c523fbfbdfd19c6867af7346332b62b586eed663887392cff78d614f9ec313"},
+ {file = "multidict-6.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:33029f5734336aa0d4c0384525da0387ef89148dc7191aae00ca5fb23d7aafc2"},
+ {file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"},
+]
+
+[[package]]
+name = "numpy"
+version = "1.24.4"
+description = "Fundamental package for array computing in Python"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "numpy-1.24.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c0bfb52d2169d58c1cdb8cc1f16989101639b34c7d3ce60ed70b19c63eba0b64"},
+ {file = "numpy-1.24.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ed094d4f0c177b1b8e7aa9cba7d6ceed51c0e569a5318ac0ca9a090680a6a1b1"},
+ {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79fc682a374c4a8ed08b331bef9c5f582585d1048fa6d80bc6c35bc384eee9b4"},
+ {file = "numpy-1.24.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ffe43c74893dbf38c2b0a1f5428760a1a9c98285553c89e12d70a96a7f3a4d6"},
+ {file = "numpy-1.24.4-cp310-cp310-win32.whl", hash = "sha256:4c21decb6ea94057331e111a5bed9a79d335658c27ce2adb580fb4d54f2ad9bc"},
+ {file = "numpy-1.24.4-cp310-cp310-win_amd64.whl", hash = "sha256:b4bea75e47d9586d31e892a7401f76e909712a0fd510f58f5337bea9572c571e"},
+ {file = "numpy-1.24.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f136bab9c2cfd8da131132c2cf6cc27331dd6fae65f95f69dcd4ae3c3639c810"},
+ {file = "numpy-1.24.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e2926dac25b313635e4d6cf4dc4e51c8c0ebfed60b801c799ffc4c32bf3d1254"},
+ {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:222e40d0e2548690405b0b3c7b21d1169117391c2e82c378467ef9ab4c8f0da7"},
+ {file = "numpy-1.24.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7215847ce88a85ce39baf9e89070cb860c98fdddacbaa6c0da3ffb31b3350bd5"},
+ {file = "numpy-1.24.4-cp311-cp311-win32.whl", hash = "sha256:4979217d7de511a8d57f4b4b5b2b965f707768440c17cb70fbf254c4b225238d"},
+ {file = "numpy-1.24.4-cp311-cp311-win_amd64.whl", hash = "sha256:b7b1fc9864d7d39e28f41d089bfd6353cb5f27ecd9905348c24187a768c79694"},
+ {file = "numpy-1.24.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1452241c290f3e2a312c137a9999cdbf63f78864d63c79039bda65ee86943f61"},
+ {file = "numpy-1.24.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:04640dab83f7c6c85abf9cd729c5b65f1ebd0ccf9de90b270cd61935eef0197f"},
+ {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5425b114831d1e77e4b5d812b69d11d962e104095a5b9c3b641a218abcc050e"},
+ {file = "numpy-1.24.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd80e219fd4c71fc3699fc1dadac5dcf4fd882bfc6f7ec53d30fa197b8ee22dc"},
+ {file = "numpy-1.24.4-cp38-cp38-win32.whl", hash = "sha256:4602244f345453db537be5314d3983dbf5834a9701b7723ec28923e2889e0bb2"},
+ {file = "numpy-1.24.4-cp38-cp38-win_amd64.whl", hash = "sha256:692f2e0f55794943c5bfff12b3f56f99af76f902fc47487bdfe97856de51a706"},
+ {file = "numpy-1.24.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2541312fbf09977f3b3ad449c4e5f4bb55d0dbf79226d7724211acc905049400"},
+ {file = "numpy-1.24.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9667575fb6d13c95f1b36aca12c5ee3356bf001b714fc354eb5465ce1609e62f"},
+ {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a86ed21e4f87050382c7bc96571755193c4c1392490744ac73d660e8f564a9"},
+ {file = "numpy-1.24.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d11efb4dbecbdf22508d55e48d9c8384db795e1b7b51ea735289ff96613ff74d"},
+ {file = "numpy-1.24.4-cp39-cp39-win32.whl", hash = "sha256:6620c0acd41dbcb368610bb2f4d83145674040025e5536954782467100aa8835"},
+ {file = "numpy-1.24.4-cp39-cp39-win_amd64.whl", hash = "sha256:befe2bf740fd8373cf56149a5c23a0f601e82869598d41f8e188a0e9869926f8"},
+ {file = "numpy-1.24.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:31f13e25b4e304632a4619d0e0777662c2ffea99fcae2029556b17d8ff958aef"},
+ {file = "numpy-1.24.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95f7ac6540e95bc440ad77f56e520da5bf877f87dca58bd095288dce8940532a"},
+ {file = "numpy-1.24.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e98f220aa76ca2a977fe435f5b04d7b3470c0a2e6312907b37ba6068f26787f2"},
+ {file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"},
+]
+
+[[package]]
+name = "numpy"
+version = "1.25.2"
+description = "Fundamental package for array computing in Python"
+optional = false
+python-versions = ">=3.9"
+files = [
+ {file = "numpy-1.25.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:db3ccc4e37a6873045580d413fe79b68e47a681af8db2e046f1dacfa11f86eb3"},
+ {file = "numpy-1.25.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:90319e4f002795ccfc9050110bbbaa16c944b1c37c0baeea43c5fb881693ae1f"},
+ {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfe4a913e29b418d096e696ddd422d8a5d13ffba4ea91f9f60440a3b759b0187"},
+ {file = "numpy-1.25.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f08f2e037bba04e707eebf4bc934f1972a315c883a9e0ebfa8a7756eabf9e357"},
+ {file = "numpy-1.25.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bec1e7213c7cb00d67093247f8c4db156fd03075f49876957dca4711306d39c9"},
+ {file = "numpy-1.25.2-cp310-cp310-win32.whl", hash = "sha256:7dc869c0c75988e1c693d0e2d5b26034644399dd929bc049db55395b1379e044"},
+ {file = "numpy-1.25.2-cp310-cp310-win_amd64.whl", hash = "sha256:834b386f2b8210dca38c71a6e0f4fd6922f7d3fcff935dbe3a570945acb1b545"},
+ {file = "numpy-1.25.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5462d19336db4560041517dbb7759c21d181a67cb01b36ca109b2ae37d32418"},
+ {file = "numpy-1.25.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c5652ea24d33585ea39eb6a6a15dac87a1206a692719ff45d53c5282e66d4a8f"},
+ {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d60fbae8e0019865fc4784745814cff1c421df5afee233db6d88ab4f14655a2"},
+ {file = "numpy-1.25.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60e7f0f7f6d0eee8364b9a6304c2845b9c491ac706048c7e8cf47b83123b8dbf"},
+ {file = "numpy-1.25.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:bb33d5a1cf360304754913a350edda36d5b8c5331a8237268c48f91253c3a364"},
+ {file = "numpy-1.25.2-cp311-cp311-win32.whl", hash = "sha256:5883c06bb92f2e6c8181df7b39971a5fb436288db58b5a1c3967702d4278691d"},
+ {file = "numpy-1.25.2-cp311-cp311-win_amd64.whl", hash = "sha256:5c97325a0ba6f9d041feb9390924614b60b99209a71a69c876f71052521d42a4"},
+ {file = "numpy-1.25.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b79e513d7aac42ae918db3ad1341a015488530d0bb2a6abcbdd10a3a829ccfd3"},
+ {file = "numpy-1.25.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:eb942bfb6f84df5ce05dbf4b46673ffed0d3da59f13635ea9b926af3deb76926"},
+ {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e0746410e73384e70d286f93abf2520035250aad8c5714240b0492a7302fdca"},
+ {file = "numpy-1.25.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d7806500e4f5bdd04095e849265e55de20d8cc4b661b038957354327f6d9b295"},
+ {file = "numpy-1.25.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8b77775f4b7df768967a7c8b3567e309f617dd5e99aeb886fa14dc1a0791141f"},
+ {file = "numpy-1.25.2-cp39-cp39-win32.whl", hash = "sha256:2792d23d62ec51e50ce4d4b7d73de8f67a2fd3ea710dcbc8563a51a03fb07b01"},
+ {file = "numpy-1.25.2-cp39-cp39-win_amd64.whl", hash = "sha256:76b4115d42a7dfc5d485d358728cdd8719be33cc5ec6ec08632a5d6fca2ed380"},
+ {file = "numpy-1.25.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:1a1329e26f46230bf77b02cc19e900db9b52f398d6722ca853349a782d4cff55"},
+ {file = "numpy-1.25.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c3abc71e8b6edba80a01a52e66d83c5d14433cbcd26a40c329ec7ed09f37901"},
+ {file = "numpy-1.25.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:1b9735c27cea5d995496f46a8b1cd7b408b3f34b6d50459d9ac8fe3a20cc17bf"},
+ {file = "numpy-1.25.2.tar.gz", hash = "sha256:fd608e19c8d7c55021dffd43bfe5492fab8cc105cc8986f813f8c3c048b38760"},
+]
+
+[[package]]
+name = "openbb-core"
+version = "0.1.0a4"
+description = "OpenBB package with core functionality"
+optional = false
+python-versions = ">=3.8,<4.0"
+files = [
+ {file = "openbb_core-0.1.0a4-py3-none-any.whl", hash = "sha256:f4a42ac3b7b8fec4b4b900576f08560216184f55e1a0b13ecc015853c660730a"},
+ {file = "openbb_core-0.1.0a4.tar.gz", hash = "sha256:9656dfe18cbfbaa61a37da1b39af7330af5004b4a5edb4809af82ae7b25c95ea"},
+]
+
+[package.dependencies]
+fastapi = ">=0.103.1,<0.104.0"
+html5lib = ">=1.1,<2.0"
+importlib_metadata = ">=6.8.0,<7.0.0"
+openbb-provider = ">=0.1.0a2,<0.2.0"
+pandas = ">=1.5.3"
+posthog = ">=3.0.1,<4.0.0"
+python-jose = ">=3.3.0,<4.0.0"
+python-multipart = ">=0.0.6,<0.0.7"
+uuid7 = ">=0.1.0,<0.2.0"
+uvicorn = ">=0.23.2,<0.24.0"
+websockets = ">=10.4,<11.0"
+
+[[package]]
+name = "openbb-provider"
+version = "0.1.0a3"
+description = "OpenBB package to execute queries to financial data providers"
+optional = false
+python-versions = ">=3.8,<4.0"
+files = [
+ {file = "openbb_provider-0.1.0a3-py3-none-any.whl", hash = "sha256:d589e5fade39737b99f770295926d472faaeb7f4b9d963a6cafa362293c92303"},
+ {file = "openbb_provider-0.1.0a3.tar.gz", hash = "sha256:7f37432fca541a07f132efae1885a1d320d6746e814a7ef986bc2d7ca65916c8"},
+]
+
+[package.dependencies]
+importlib_metadata = ">=6.8.0,<7.0.0"
+pydantic = ">=2.4.2,<3.0.0"
+pytest-recorder = ">=0.2.3,<0.3.0"
+python-dotenv = ">=1.0.0,<2.0.0"
+requests = ">=2.31.0,<3.0.0"
+urllib3 = "<2.0.0"
+
+[[package]]
+name = "pandas"
+version = "2.0.3"
+description = "Powerful data structures for data analysis, time series, and statistics"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "pandas-2.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e4c7c9f27a4185304c7caf96dc7d91bc60bc162221152de697c98eb0b2648dd8"},
+ {file = "pandas-2.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f167beed68918d62bffb6ec64f2e1d8a7d297a038f86d4aed056b9493fca407f"},
+ {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce0c6f76a0f1ba361551f3e6dceaff06bde7514a374aa43e33b588ec10420183"},
+ {file = "pandas-2.0.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba619e410a21d8c387a1ea6e8a0e49bb42216474436245718d7f2e88a2f8d7c0"},
+ {file = "pandas-2.0.3-cp310-cp310-win32.whl", hash = "sha256:3ef285093b4fe5058eefd756100a367f27029913760773c8bf1d2d8bebe5d210"},
+ {file = "pandas-2.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:9ee1a69328d5c36c98d8e74db06f4ad518a1840e8ccb94a4ba86920986bb617e"},
+ {file = "pandas-2.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b084b91d8d66ab19f5bb3256cbd5ea661848338301940e17f4492b2ce0801fe8"},
+ {file = "pandas-2.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37673e3bdf1551b95bf5d4ce372b37770f9529743d2498032439371fc7b7eb26"},
+ {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b9cb1e14fdb546396b7e1b923ffaeeac24e4cedd14266c3497216dd4448e4f2d"},
+ {file = "pandas-2.0.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d9cd88488cceb7635aebb84809d087468eb33551097d600c6dad13602029c2df"},
+ {file = "pandas-2.0.3-cp311-cp311-win32.whl", hash = "sha256:694888a81198786f0e164ee3a581df7d505024fbb1f15202fc7db88a71d84ebd"},
+ {file = "pandas-2.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:6a21ab5c89dcbd57f78d0ae16630b090eec626360085a4148693def5452d8a6b"},
+ {file = "pandas-2.0.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9e4da0d45e7f34c069fe4d522359df7d23badf83abc1d1cef398895822d11061"},
+ {file = "pandas-2.0.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:32fca2ee1b0d93dd71d979726b12b61faa06aeb93cf77468776287f41ff8fdc5"},
+ {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:258d3624b3ae734490e4d63c430256e716f488c4fcb7c8e9bde2d3aa46c29089"},
+ {file = "pandas-2.0.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9eae3dc34fa1aa7772dd3fc60270d13ced7346fcbcfee017d3132ec625e23bb0"},
+ {file = "pandas-2.0.3-cp38-cp38-win32.whl", hash = "sha256:f3421a7afb1a43f7e38e82e844e2bca9a6d793d66c1a7f9f0ff39a795bbc5e02"},
+ {file = "pandas-2.0.3-cp38-cp38-win_amd64.whl", hash = "sha256:69d7f3884c95da3a31ef82b7618af5710dba95bb885ffab339aad925c3e8ce78"},
+ {file = "pandas-2.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5247fb1ba347c1261cbbf0fcfba4a3121fbb4029d95d9ef4dc45406620b25c8b"},
+ {file = "pandas-2.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:81af086f4543c9d8bb128328b5d32e9986e0c84d3ee673a2ac6fb57fd14f755e"},
+ {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1994c789bf12a7c5098277fb43836ce090f1073858c10f9220998ac74f37c69b"},
+ {file = "pandas-2.0.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec591c48e29226bcbb316e0c1e9423622bc7a4eaf1ef7c3c9fa1a3981f89641"},
+ {file = "pandas-2.0.3-cp39-cp39-win32.whl", hash = "sha256:04dbdbaf2e4d46ca8da896e1805bc04eb85caa9a82e259e8eed00254d5e0c682"},
+ {file = "pandas-2.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:1168574b036cd8b93abc746171c9b4f1b83467438a5e45909fed645cf8692dbc"},
+ {file = "pandas-2.0.3.tar.gz", hash = "sha256:c02f372a88e0d17f36d3093a644c73cfc1788e876a7c4bcb4020a77512e2043c"},
+]
+
+[package.dependencies]
+numpy = [
+ {version = ">=1.20.3", markers = "python_version < \"3.10\""},
+ {version = ">=1.21.0", markers = "python_version >= \"3.10\""},
+ {version = ">=1.23.2", markers = "python_version >= \"3.11\""},
+]
+python-dateutil = ">=2.8.2"
+pytz = ">=2020.1"
+tzdata = ">=2022.1"
+
+[package.extras]
+all = ["PyQt5 (>=5.15.1)", "SQLAlchemy (>=1.4.16)", "beautifulsoup4 (>=4.9.3)", "bottleneck (>=1.3.2)", "brotlipy (>=0.7.0)", "fastparquet (>=0.6.3)", "fsspec (>=2021.07.0)", "gcsfs (>=2021.07.0)", "html5lib (>=1.1)", "hypothesis (>=6.34.2)", "jinja2 (>=3.0.0)", "lxml (>=4.6.3)", "matplotlib (>=3.6.1)", "numba (>=0.53.1)", "numexpr (>=2.7.3)", "odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pandas-gbq (>=0.15.0)", "psycopg2 (>=2.8.6)", "pyarrow (>=7.0.0)", "pymysql (>=1.0.2)", "pyreadstat (>=1.1.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)", "python-snappy (>=0.6.0)", "pyxlsb (>=1.0.8)", "qtpy (>=2.2.0)", "s3fs (>=2021.08.0)", "scipy (>=1.7.1)", "tables (>=3.6.1)", "tabulate (>=0.8.9)", "xarray (>=0.21.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)", "zstandard (>=0.15.2)"]
+aws = ["s3fs (>=2021.08.0)"]
+clipboard = ["PyQt5 (>=5.15.1)", "qtpy (>=2.2.0)"]
+compression = ["brotlipy (>=0.7.0)", "python-snappy (>=0.6.0)", "zstandard (>=0.15.2)"]
+computation = ["scipy (>=1.7.1)", "xarray (>=0.21.0)"]
+excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.0.7)", "pyxlsb (>=1.0.8)", "xlrd (>=2.0.1)", "xlsxwriter (>=1.4.3)"]
+feather = ["pyarrow (>=7.0.0)"]
+fss = ["fsspec (>=2021.07.0)"]
+gcp = ["gcsfs (>=2021.07.0)", "pandas-gbq (>=0.15.0)"]
+hdf5 = ["tables (>=3.6.1)"]
+html = ["beautifulsoup4 (>=4.9.3)", "html5lib (>=1.1)", "lxml (>=4.6.3)"]
+mysql = ["SQLAlchemy (>=1.4.16)", "pymysql (>=1.0.2)"]
+output-formatting = ["jinja2 (>=3.0.0)", "tabulate (>=0.8.9)"]
+parquet = ["pyarrow (>=7.0.0)"]
+performance = ["bottleneck (>=1.3.2)", "numba (>=0.53.1)", "numexpr (>=2.7.1)"]
+plot = ["matplotlib (>=3.6.1)"]
+postgresql = ["SQLAlchemy (>=1.4.16)", "psycopg2 (>=2.8.6)"]
+spss = ["pyreadstat (>=1.1.2)"]
+sql-other = ["SQLAlchemy (>=1.4.16)"]
+test = ["hypothesis (>=6.34.2)", "pytest (>=7.3.2)", "pytest-asyncio (>=0.17.0)", "pytest-xdist (>=2.2.0)"]
+xml = ["lxml (>=4.6.3)"]
+
+[[package]]
+name = "platformdirs"
+version = "3.11.0"
+description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "platformdirs-3.11.0-py3-none-any.whl", hash = "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"},
+ {file = "platformdirs-3.11.0.tar.gz", hash = "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3"},
+]
+
+[package.extras]
+docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"]
+
+[[package]]
+name = "posthog"
+version = "3.0.2"
+description = "Integrate PostHog into any python application."
+optional = false
+python-versions = "*"
+files = [
+ {file = "posthog-3.0.2-py2.py3-none-any.whl", hash = "sha256:a8c0af6f2401fbe50f90e68c4143d0824b54e872de036b1c2f23b5abb39d88ce"},
+ {file = "posthog-3.0.2.tar.gz", hash = "sha256:701fba6e446a4de687c6e861b587e7b7741955ad624bf34fe013c06a0fec6fb3"},
+]
+
+[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"]
+
+[[package]]
+name = "pyasn1"
+version = "0.5.0"
+description = "Pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208)"
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
+files = [
+ {file = "pyasn1-0.5.0-py2.py3-none-any.whl", hash = "sha256:87a2121042a1ac9358cabcaf1d07680ff97ee6404333bacca15f76aa8ad01a57"},
+ {file = "pyasn1-0.5.0.tar.gz", hash = "sha256:97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde"},
+]
+
+[[package]]
+name = "pydantic"
+version = "2.4.2"
+description = "Data validation using Python type hints"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "pydantic-2.4.2-py3-none-any.whl", hash = "sha256:bc3ddf669d234f4220e6e1c4d96b061abe0998185a8d7855c0126782b7abc8c1"},
+ {file = "pydantic-2.4.2.tar.gz", hash = "sha256:94f336138093a5d7f426aac732dcfe7ab4eb4da243c88f891d65deb4a2556ee7"},
+]
+
+[package.dependencies]
+annotated-types = ">=0.4.0"
+pydantic-core = "2.10.1"
+typing-extensions = ">=4.6.1"
+
+[package.extras]
+email = ["email-validator (>=2.0.0)"]
+
+[[package]]
+name = "pydantic-core"
+version = "2.10.1"
+description = ""
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "pydantic_core-2.10.1-cp310-cp310-macosx_10_7_x86_64.whl", hash = "sha256:d64728ee14e667ba27c66314b7d880b8eeb050e58ffc5fec3b7a109f8cddbd63"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:48525933fea744a3e7464c19bfede85df4aba79ce90c60b94d8b6e1eddd67096"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef337945bbd76cce390d1b2496ccf9f90b1c1242a3a7bc242ca4a9fc5993427a"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a1392e0638af203cee360495fd2cfdd6054711f2db5175b6e9c3c461b76f5175"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0675ba5d22de54d07bccde38997e780044dcfa9a71aac9fd7d4d7a1d2e3e65f7"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:128552af70a64660f21cb0eb4876cbdadf1a1f9d5de820fed6421fa8de07c893"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f6e6aed5818c264412ac0598b581a002a9f050cb2637a84979859e70197aa9e"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ecaac27da855b8d73f92123e5f03612b04c5632fd0a476e469dfc47cd37d6b2e"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b3c01c2fb081fced3bbb3da78510693dc7121bb893a1f0f5f4b48013201f362e"},
+ {file = "pydantic_core-2.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:92f675fefa977625105708492850bcbc1182bfc3e997f8eecb866d1927c98ae6"},
+ {file = "pydantic_core-2.10.1-cp310-none-win32.whl", hash = "sha256:420a692b547736a8d8703c39ea935ab5d8f0d2573f8f123b0a294e49a73f214b"},
+ {file = "pydantic_core-2.10.1-cp310-none-win_amd64.whl", hash = "sha256:0880e239827b4b5b3e2ce05e6b766a7414e5f5aedc4523be6b68cfbc7f61c5d0"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:073d4a470b195d2b2245d0343569aac7e979d3a0dcce6c7d2af6d8a920ad0bea"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:600d04a7b342363058b9190d4e929a8e2e715c5682a70cc37d5ded1e0dd370b4"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:39215d809470f4c8d1881758575b2abfb80174a9e8daf8f33b1d4379357e417c"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eeb3d3d6b399ffe55f9a04e09e635554012f1980696d6b0aca3e6cf42a17a03b"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7a7902bf75779bc12ccfc508bfb7a4c47063f748ea3de87135d433a4cca7a2f"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3625578b6010c65964d177626fde80cf60d7f2e297d56b925cb5cdeda6e9925a"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:caa48fc31fc7243e50188197b5f0c4228956f97b954f76da157aae7f67269ae8"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:07ec6d7d929ae9c68f716195ce15e745b3e8fa122fc67698ac6498d802ed0fa4"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e6f31a17acede6a8cd1ae2d123ce04d8cca74056c9d456075f4f6f85de055607"},
+ {file = "pydantic_core-2.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d8f1ebca515a03e5654f88411420fea6380fc841d1bea08effb28184e3d4899f"},
+ {file = "pydantic_core-2.10.1-cp311-none-win32.whl", hash = "sha256:6db2eb9654a85ada248afa5a6db5ff1cf0f7b16043a6b070adc4a5be68c716d6"},
+ {file = "pydantic_core-2.10.1-cp311-none-win_amd64.whl", hash = "sha256:4a5be350f922430997f240d25f8219f93b0c81e15f7b30b868b2fddfc2d05f27"},
+ {file = "pydantic_core-2.10.1-cp311-none-win_arm64.whl", hash = "sha256:5fdb39f67c779b183b0c853cd6b45f7db84b84e0571b3ef1c89cdb1dfc367325"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:b1f22a9ab44de5f082216270552aa54259db20189e68fc12484873d926426921"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8572cadbf4cfa95fb4187775b5ade2eaa93511f07947b38f4cd67cf10783b118"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db9a28c063c7c00844ae42a80203eb6d2d6bbb97070cfa00194dff40e6f545ab"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0e2a35baa428181cb2270a15864ec6286822d3576f2ed0f4cd7f0c1708472aff"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:05560ab976012bf40f25d5225a58bfa649bb897b87192a36c6fef1ab132540d7"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6495008733c7521a89422d7a68efa0a0122c99a5861f06020ef5b1f51f9ba7c"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14ac492c686defc8e6133e3a2d9eaf5261b3df26b8ae97450c1647286750b901"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8282bab177a9a3081fd3d0a0175a07a1e2bfb7fcbbd949519ea0980f8a07144d"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:aafdb89fdeb5fe165043896817eccd6434aee124d5ee9b354f92cd574ba5e78f"},
+ {file = "pydantic_core-2.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:f6defd966ca3b187ec6c366604e9296f585021d922e666b99c47e78738b5666c"},
+ {file = "pydantic_core-2.10.1-cp312-none-win32.whl", hash = "sha256:7c4d1894fe112b0864c1fa75dffa045720a194b227bed12f4be7f6045b25209f"},
+ {file = "pydantic_core-2.10.1-cp312-none-win_amd64.whl", hash = "sha256:5994985da903d0b8a08e4935c46ed8daf5be1cf217489e673910951dc533d430"},
+ {file = "pydantic_core-2.10.1-cp312-none-win_arm64.whl", hash = "sha256:0d8a8adef23d86d8eceed3e32e9cca8879c7481c183f84ed1a8edc7df073af94"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_10_7_x86_64.whl", hash = "sha256:9badf8d45171d92387410b04639d73811b785b5161ecadabf056ea14d62d4ede"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-macosx_11_0_arm64.whl", hash = "sha256:ebedb45b9feb7258fac0a268a3f6bec0a2ea4d9558f3d6f813f02ff3a6dc6698"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfe1090245c078720d250d19cb05d67e21a9cd7c257698ef139bc41cf6c27b4f"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e357571bb0efd65fd55f18db0a2fb0ed89d0bb1d41d906b138f088933ae618bb"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b3dcd587b69bbf54fc04ca157c2323b8911033e827fffaecf0cafa5a892a0904"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c120c9ce3b163b985a3b966bb701114beb1da4b0468b9b236fc754783d85aa3"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15d6bca84ffc966cc9976b09a18cf9543ed4d4ecbd97e7086f9ce9327ea48891"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5cabb9710f09d5d2e9e2748c3e3e20d991a4c5f96ed8f1132518f54ab2967221"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:82f55187a5bebae7d81d35b1e9aaea5e169d44819789837cdd4720d768c55d15"},
+ {file = "pydantic_core-2.10.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:1d40f55222b233e98e3921df7811c27567f0e1a4411b93d4c5c0f4ce131bc42f"},
+ {file = "pydantic_core-2.10.1-cp37-none-win32.whl", hash = "sha256:14e09ff0b8fe6e46b93d36a878f6e4a3a98ba5303c76bb8e716f4878a3bee92c"},
+ {file = "pydantic_core-2.10.1-cp37-none-win_amd64.whl", hash = "sha256:1396e81b83516b9d5c9e26a924fa69164156c148c717131f54f586485ac3c15e"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-macosx_10_7_x86_64.whl", hash = "sha256:6835451b57c1b467b95ffb03a38bb75b52fb4dc2762bb1d9dbed8de31ea7d0fc"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b00bc4619f60c853556b35f83731bd817f989cba3e97dc792bb8c97941b8053a"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fa467fd300a6f046bdb248d40cd015b21b7576c168a6bb20aa22e595c8ffcdd"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d99277877daf2efe074eae6338453a4ed54a2d93fb4678ddfe1209a0c93a2468"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fa7db7558607afeccb33c0e4bf1c9a9a835e26599e76af6fe2fcea45904083a6"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:aad7bd686363d1ce4ee930ad39f14e1673248373f4a9d74d2b9554f06199fb58"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:443fed67d33aa85357464f297e3d26e570267d1af6fef1c21ca50921d2976302"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:042462d8d6ba707fd3ce9649e7bf268633a41018d6a998fb5fbacb7e928a183e"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:ecdbde46235f3d560b18be0cb706c8e8ad1b965e5c13bbba7450c86064e96561"},
+ {file = "pydantic_core-2.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:ed550ed05540c03f0e69e6d74ad58d026de61b9eaebebbaaf8873e585cbb18de"},
+ {file = "pydantic_core-2.10.1-cp38-none-win32.whl", hash = "sha256:8cdbbd92154db2fec4ec973d45c565e767ddc20aa6dbaf50142676484cbff8ee"},
+ {file = "pydantic_core-2.10.1-cp38-none-win_amd64.whl", hash = "sha256:9f6f3e2598604956480f6c8aa24a3384dbf6509fe995d97f6ca6103bb8c2534e"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-macosx_10_7_x86_64.whl", hash = "sha256:655f8f4c8d6a5963c9a0687793da37b9b681d9ad06f29438a3b2326d4e6b7970"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e570ffeb2170e116a5b17e83f19911020ac79d19c96f320cbfa1fa96b470185b"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:64322bfa13e44c6c30c518729ef08fda6026b96d5c0be724b3c4ae4da939f875"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:485a91abe3a07c3a8d1e082ba29254eea3e2bb13cbbd4351ea4e5a21912cc9b0"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7c2b8eb9fc872e68b46eeaf835e86bccc3a58ba57d0eedc109cbb14177be531"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5cb87bdc2e5f620693148b5f8f842d293cae46c5f15a1b1bf7ceeed324a740c"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:25bd966103890ccfa028841a8f30cebcf5875eeac8c4bde4fe221364c92f0c9a"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f323306d0556351735b54acbf82904fe30a27b6a7147153cbe6e19aaaa2aa429"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0c27f38dc4fbf07b358b2bc90edf35e82d1703e22ff2efa4af4ad5de1b3833e7"},
+ {file = "pydantic_core-2.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:f1365e032a477c1430cfe0cf2856679529a2331426f8081172c4a74186f1d595"},
+ {file = "pydantic_core-2.10.1-cp39-none-win32.whl", hash = "sha256:a1c311fd06ab3b10805abb72109f01a134019739bd3286b8ae1bc2fc4e50c07a"},
+ {file = "pydantic_core-2.10.1-cp39-none-win_amd64.whl", hash = "sha256:ae8a8843b11dc0b03b57b52793e391f0122e740de3df1474814c700d2622950a"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_10_7_x86_64.whl", hash = "sha256:d43002441932f9a9ea5d6f9efaa2e21458221a3a4b417a14027a1d530201ef1b"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:fcb83175cc4936a5425dde3356f079ae03c0802bbdf8ff82c035f8a54b333521"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:962ed72424bf1f72334e2f1e61b68f16c0e596f024ca7ac5daf229f7c26e4208"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2cf5bb4dd67f20f3bbc1209ef572a259027c49e5ff694fa56bed62959b41e1f9"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e544246b859f17373bed915182ab841b80849ed9cf23f1f07b73b7c58baee5fb"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c0877239307b7e69d025b73774e88e86ce82f6ba6adf98f41069d5b0b78bd1bf"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:53df009d1e1ba40f696f8995683e067e3967101d4bb4ea6f667931b7d4a01357"},
+ {file = "pydantic_core-2.10.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a1254357f7e4c82e77c348dabf2d55f1d14d19d91ff025004775e70a6ef40ada"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-macosx_10_7_x86_64.whl", hash = "sha256:524ff0ca3baea164d6d93a32c58ac79eca9f6cf713586fdc0adb66a8cdeab96a"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3f0ac9fb8608dbc6eaf17956bf623c9119b4db7dbb511650910a82e261e6600f"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:320f14bd4542a04ab23747ff2c8a778bde727158b606e2661349557f0770711e"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63974d168b6233b4ed6a0046296803cb13c56637a7b8106564ab575926572a55"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:417243bf599ba1f1fef2bb8c543ceb918676954734e2dcb82bf162ae9d7bd514"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:dda81e5ec82485155a19d9624cfcca9be88a405e2857354e5b089c2a982144b2"},
+ {file = "pydantic_core-2.10.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:14cfbb00959259e15d684505263d5a21732b31248a5dd4941f73a3be233865b9"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:631cb7415225954fdcc2a024119101946793e5923f6c4d73a5914d27eb3d3a05"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:bec7dd208a4182e99c5b6c501ce0b1f49de2802448d4056091f8e630b28e9a52"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:149b8a07712f45b332faee1a2258d8ef1fb4a36f88c0c17cb687f205c5dc6e7d"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d966c47f9dd73c2d32a809d2be529112d509321c5310ebf54076812e6ecd884"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7eb037106f5c6b3b0b864ad226b0b7ab58157124161d48e4b30c4a43fef8bc4b"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:154ea7c52e32dce13065dbb20a4a6f0cc012b4f667ac90d648d36b12007fa9f7"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e562617a45b5a9da5be4abe72b971d4f00bf8555eb29bb91ec2ef2be348cd132"},
+ {file = "pydantic_core-2.10.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:f23b55eb5464468f9e0e9a9935ce3ed2a870608d5f534025cd5536bca25b1402"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:e9121b4009339b0f751955baf4543a0bfd6bc3f8188f8056b1a25a2d45099934"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:0523aeb76e03f753b58be33b26540880bac5aa54422e4462404c432230543f33"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e0e2959ef5d5b8dc9ef21e1a305a21a36e254e6a34432d00c72a92fdc5ecda5"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da01bec0a26befab4898ed83b362993c844b9a607a86add78604186297eb047e"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f2e9072d71c1f6cfc79a36d4484c82823c560e6f5599c43c1ca6b5cdbd54f881"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f36a3489d9e28fe4b67be9992a23029c3cec0babc3bd9afb39f49844a8c721c5"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f64f82cc3443149292b32387086d02a6c7fb39b8781563e0ca7b8d7d9cf72bd7"},
+ {file = "pydantic_core-2.10.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:b4a6db486ac8e99ae696e09efc8b2b9fea67b63c8f88ba7a1a16c24a057a0776"},
+ {file = "pydantic_core-2.10.1.tar.gz", hash = "sha256:0f8682dbdd2f67f8e1edddcbffcc29f60a6182b4901c367fc8c1c40d30bb0a82"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
+
+[[package]]
+name = "pytest-recorder"
+version = "0.2.3"
+description = "Pytest plugin, meant to facilitate unit tests writing for tools consumming Web APIs."
+optional = false
+python-versions = ">=3.8,<4.0"
+files = [
+ {file = "pytest_recorder-0.2.3-py3-none-any.whl", hash = "sha256:a2aa1f58a72e78585151840503c88b2a4b7aa85651ce3a08232c86e2680d0c90"},
+ {file = "pytest_recorder-0.2.3.tar.gz", hash = "sha256:ecba7069c87d6e30229db82a091c61e6abb18662c69eeb78a3866ea8b37f04b7"},
+]
+
+[package.dependencies]
+time-machine = ">=2.9.0,<3.0.0"
+vcrpy = ">=4.2.1,<5.0.0"
+
+[[package]]
+name = "python-dateutil"
+version = "2.8.2"
+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.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"},
+ {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
+]
+
+[package.dependencies]
+six = ">=1.5"
+
+[[package]]
+name = "python-dotenv"
+version = "1.0.0"
+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.0.tar.gz", hash = "sha256:a8df96034aae6d2d50a4ebe8216326c61c3eb64836776504fcca410e5937a3ba"},
+ {file = "python_dotenv-1.0.0-py3-none-any.whl", hash = "sha256:f5971a9226b701070a4bf2c38c89e5a3f0d64de8debda981d1db98583009122a"},
+]
+
+[package.extras]
+cli = ["click (>=5.0)"]
+
+[[package]]
+name = "python-jose"
+version = "3.3.0"
+description = "JOSE implementation in Python"
+optional = false
+python-versions = "*"
+files = [
+ {file = "python-jose-3.3.0.tar.gz", hash = "sha256:55779b5e6ad599c6336191246e95eb2293a9ddebd555f796a65f838f07e5d78a"},
+ {file = "python_jose-3.3.0-py2.py3-none-any.whl", hash = "sha256:9b1376b023f8b298536eedd47ae1089bcdb848f1535ab30555cd92002d78923a"},
+]
+
+[package.dependencies]
+ecdsa = "!=0.15"
+pyasn1 = "*"
+rsa = "*"
+
+[package.extras]
+cryptography = ["cryptography (>=3.4.0)"]
+pycrypto = ["pyasn1", "pycrypto (>=2.6.0,<2.7.0)"]
+pycryptodome = ["pyasn1", "pycryptodome (>=3.3.1,<4.0.0)"]
+
+[[package]]
+name = "python-multipart"
+version = "0.0.6"
+description = "A streaming multipart parser for Python"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "python_multipart-0.0.6-py3-none-any.whl", hash = "sha256:ee698bab5ef148b0a760751c261902cd096e57e10558e11aca17646b74ee1c18"},
+ {file = "python_multipart-0.0.6.tar.gz", hash = "sha256:e9925a80bb668529f1b67c7fdb0a5dacdd7cbfc6fb0bff3ea443fe22bdd62132"},
+]
+
+[package.extras]
+dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatch", "invoke (==1.7.3)", "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 = "2023.3.post1"
+description = "World timezone definitions, modern and historical"
+optional = false
+python-versions = "*"
+files = [
+ {file = "pytz-2023.3.post1-py2.py3-none-any.whl", hash = "sha256:ce42d816b81b68506614c11e8937d3aa9e41007ceb50bfdcb0749b921bf646c7"},
+ {file = "pytz-2023.3.post1.tar.gz", hash = "sha256:7b4fddbeb94a1eba4b557da24f19fdf9db575192544270a9101d8509f9f43d7b"},
+]
+
+[[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_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.31.0"
+description = "Python HTTP for Humans."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"},
+ {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"},
+]
+
+[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 = "requests-cache"
+version = "1.1.0"
+description = "A persistent cache for python requests"
+optional = false
+python-versions = ">=3.7,<4.0"
+files = [
+ {file = "requests_cache-1.1.0-py3-none-any.whl", hash = "sha256:178282bce704b912c59e7f88f367c42bddd6cde6bf511b2a3e3cfb7e5332a92a"},
+ {file = "requests_cache-1.1.0.tar.gz", hash = "sha256:41b79166aa8e300cc4de982f7ab7c52af914a785160be1eda25c6e9265969a67"},
+]
+
+[package.dependencies]
+attrs = ">=21.2"
+cattrs = ">=22.2"
+platformdirs = ">=2.5"
+requests = ">=2.22"
+url-normalize = ">=1.4"
+urllib3 = ">=1.25.5"
+
+[package.extras]
+all = ["boto3 (>=1.15)", "botocore (>=1.18)", "itsdangerous (>=2.0)", "pymongo (>=3)", "pyyaml (>=5.4)", "redis (>=3)", "ujson (>=5.4)"]
+bson = ["bson (>=0.5)"]
+docs = ["furo (>=2023.3,<2024.0)", "linkify-it-py (>=2.0,<3.0)", "myst-parser (>=1.0,<2.0)", "sphinx (>=5.0.2,<6.0.0)", "sphinx-autodoc-typehints (>=1.19)", "sphinx-automodapi (>=0.14)", "sphinx-copybutton (>=0.5)", "sphinx-design (>=0.2)", "sphinx-notfound-page (>=0.8)", "sphinxcontrib-apidoc (>=0.3)", "sphinxext-opengraph (>=0.6)"]
+dynamodb = ["boto3 (>=1.15)", "botocore (>=1.18)"]
+json = ["ujson (>=5.4)"]
+mongodb = ["pymongo (>=3)"]
+redis = ["redis (>=3)"]
+security = ["itsdangerous (>=2.0)"]
+yaml = ["pyyaml (>=5.4)"]
+
+[[package]]
+name = "rsa"
+version = "4.9"
+description = "Pure-Python RSA implementation"
+optional = false
+python-versions = ">=3.6,<4"
+files = [
+ {file = "rsa-4.9-py3-none-any.whl", hash = "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7"},
+ {file = "rsa-4.9.tar.gz", hash = "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"},
+]
+
+[package.dependencies]
+pyasn1 = ">=0.1.3"
+
+[[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.0"
+description = "Sniff out which async library your code is running under"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"},
+ {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"},
+]
+
+[[package]]
+name = "starlette"
+version = "0.27.0"
+description = "The little ASGI library that shines."
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "starlette-0.27.0-py3-none-any.whl", hash = "sha256:918416370e846586541235ccd38a474c08b80443ed31c578a418e2209b3eef91"},
+ {file = "starlette-0.27.0.tar.gz", hash = "sha256:6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75"},
+]
+
+[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", "pyyaml"]
+
+[[package]]
+name = "time-machine"
+version = "2.13.0"
+description = "Travel through time in your tests."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "time_machine-2.13.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:685d98593f13649ad5e7ce3e58efe689feca1badcf618ba397d3ab877ee59326"},
+ {file = "time_machine-2.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ccbce292380ebf63fb9a52e6b03d91677f6a003e0c11f77473efe3913a75f289"},
+ {file = "time_machine-2.13.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:679cbf9b15bfde1654cf48124128d3fbe52f821fa158a98fcee5fe7e05db1917"},
+ {file = "time_machine-2.13.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a26bdf3462d5f12a4c1009fdbe54366c6ef22c7b6f6808705b51dedaaeba8296"},
+ {file = "time_machine-2.13.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dabb3b155819811b4602f7e9be936e2024e20dc99a90f103e36b45768badf9c3"},
+ {file = "time_machine-2.13.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0db97f92be3efe0ac62fd3f933c91a78438cef13f283b6dfc2ee11123bfd7d8a"},
+ {file = "time_machine-2.13.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:12eed2e9171c85b703d75c985dab2ecad4fe7025b7d2f842596fce1576238ece"},
+ {file = "time_machine-2.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bdfe4a7f033e6783c3e9a7f8d8fc0b115367330762e00a03ff35fedf663994f3"},
+ {file = "time_machine-2.13.0-cp310-cp310-win32.whl", hash = "sha256:3a7a0a49ce50d9c306c4343a7d6a3baa11092d4399a4af4355c615ccc321a9d3"},
+ {file = "time_machine-2.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:1812e48c6c58707db9988445a219a908a710ea065b2cc808d9a50636291f27d4"},
+ {file = "time_machine-2.13.0-cp310-cp310-win_arm64.whl", hash = "sha256:5aee23cd046abf9caeddc982113e81ba9097a01f3972e9560f5ed64e3495f66d"},
+ {file = "time_machine-2.13.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e9a9d150e098be3daee5c9f10859ab1bd14a61abebaed86e6d71f7f18c05b9d7"},
+ {file = "time_machine-2.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2bd4169b808745d219a69094b3cb86006938d45e7293249694e6b7366225a186"},
+ {file = "time_machine-2.13.0-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:8d526cdcaca06a496877cfe61cc6608df2c3a6fce210e076761964ebac7f77cc"},
+ {file = "time_machine-2.13.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfef4ebfb4f055ce3ebc7b6c1c4d0dbfcffdca0e783ad8c6986c992915a57ed3"},
+ {file = "time_machine-2.13.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9f128db8997c3339f04f7f3946dd9bb2a83d15e0a40d35529774da1e9e501511"},
+ {file = "time_machine-2.13.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21bef5854d49b62e2c33848b5c3e8acf22a3b46af803ef6ff19529949cb7cf9f"},
+ {file = "time_machine-2.13.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:32b71e50b07f86916ac04bd1eefc2bd2c93706b81393748b08394509ee6585dc"},
+ {file = "time_machine-2.13.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1ac8ff145c63cd0dcfd9590fe694b5269aacbc130298dc7209b095d101f8cdde"},
+ {file = "time_machine-2.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:19a3b10161c91ca8e0fd79348665cca711fd2eac6ce336ff9e6b447783817f93"},
+ {file = "time_machine-2.13.0-cp311-cp311-win32.whl", hash = "sha256:5f87787d562e42bf1006a87eb689814105b98c4d5545874a281280d0f8b9a2d9"},
+ {file = "time_machine-2.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:62fd14a80b8b71726e07018628daaee0a2e00937625083f96f69ed6b8e3304c0"},
+ {file = "time_machine-2.13.0-cp311-cp311-win_arm64.whl", hash = "sha256:e9935aff447f5400a2665ab10ed2da972591713080e1befe1bb8954e7c0c7806"},
+ {file = "time_machine-2.13.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:34dcdbbd25c1e124e17fe58050452960fd16a11f9d3476aaa87260e28ecca0fd"},
+ {file = "time_machine-2.13.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e58d82fe0e59d6e096ada3281d647a2e7420f7da5453b433b43880e1c2e8e0c5"},
+ {file = "time_machine-2.13.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:71acbc1febbe87532c7355eca3308c073d6e502ee4ce272b5028967847c8e063"},
+ {file = "time_machine-2.13.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dec0ec2135a4e2a59623e40c31d6e8a8ae73305ade2634380e4263d815855750"},
+ {file = "time_machine-2.13.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e3a2611f8788608ebbcb060a5e36b45911bc3b8adc421b1dc29d2c81786ce4d"},
+ {file = "time_machine-2.13.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:42ef5349135626ad6cd889a0a81400137e5c6928502b0817ea9e90bb10702000"},
+ {file = "time_machine-2.13.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6c16d90a597a8c2d3ce22d6be2eb3e3f14786974c11b01886e51b3cf0d5edaf7"},
+ {file = "time_machine-2.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4f2ae8d0e359b216b695f1e7e7256f208c390db0480601a439c5dd1e1e4e16ce"},
+ {file = "time_machine-2.13.0-cp312-cp312-win32.whl", hash = "sha256:f5fa9610f7e73fff42806a2ed8b06d862aa59ce4d178a52181771d6939c3e237"},
+ {file = "time_machine-2.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:02b33a8c19768c94f7ffd6aa6f9f64818e88afce23250016b28583929d20fb12"},
+ {file = "time_machine-2.13.0-cp312-cp312-win_arm64.whl", hash = "sha256:0cc116056a8a2a917a4eec85661dfadd411e0d8faae604ef6a0e19fe5cd57ef1"},
+ {file = "time_machine-2.13.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:de01f33aa53da37530ad97dcd17e9affa25a8df4ab822506bb08101bab0c2673"},
+ {file = "time_machine-2.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:67fa45cd813821e4f5bec0ac0820869e8e37430b15509d3f5fad74ba34b53852"},
+ {file = "time_machine-2.13.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4a2d3db2c3b8e519d5ef436cd405abd33542a7b7761fb05ef5a5f782a8ce0b1"},
+ {file = "time_machine-2.13.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7558622a62243be866a7e7c41da48eacd82c874b015ecf67d18ebf65ca3f7436"},
+ {file = "time_machine-2.13.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab04cf4e56e1ee65bee2adaa26a04695e92eb1ed1ccc65fbdafd0d114399595a"},
+ {file = "time_machine-2.13.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b0c8f24ae611a58782773af34dd356f1f26756272c04be2be7ea73b47e5da37d"},
+ {file = "time_machine-2.13.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:4ca20f85a973a4ca8b00cf466cd72c27ccc72372549b138fd48d7e70e5a190ab"},
+ {file = "time_machine-2.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:9fad549521c4c13bdb1e889b2855a86ec835780d534ffd8f091c2647863243be"},
+ {file = "time_machine-2.13.0-cp38-cp38-win32.whl", hash = "sha256:20205422fcf2caf9a7488394587df86e5b54fdb315c1152094fbb63eec4e9304"},
+ {file = "time_machine-2.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:2dc76ee55a7d915a55960a726ceaca7b9097f67e4b4e681ef89871bcf98f00be"},
+ {file = "time_machine-2.13.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7693704c0f2f6b9beed912ff609781edf5fcf5d63aff30c92be4093e09d94b8e"},
+ {file = "time_machine-2.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:918f8389de29b4f41317d121f1150176fae2cdb5fa41f68b2aee0b9dc88df5c3"},
+ {file = "time_machine-2.13.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fe3fda5fa73fec74278912e438fce1612a79c36fd0cc323ea3dc2d5ce629f31"},
+ {file = "time_machine-2.13.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5c6245db573863b335d9ca64b3230f623caf0988594ae554c0c794e7f80e3e66"},
+ {file = "time_machine-2.13.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e433827eccd6700a34a2ab28fd9361ff6e4d4923f718d2d1dac6d1dcd9d54da6"},
+ {file = "time_machine-2.13.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:924377d398b1c48e519ad86a71903f9f36117f69e68242c99fb762a2465f5ad2"},
+ {file = "time_machine-2.13.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:66fb3877014dca0b9286b0f06fa74062357bd23f2d9d102d10e31e0f8fa9b324"},
+ {file = "time_machine-2.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:0c9829b2edfcf6b5d72a6ff330d4380f36a937088314c675531b43d3423dd8af"},
+ {file = "time_machine-2.13.0-cp39-cp39-win32.whl", hash = "sha256:1a22be4df364f49a507af4ac9ea38108a0105f39da3f9c60dce62d6c6ea4ccdc"},
+ {file = "time_machine-2.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:88601de1da06c7cab3d5ed3d5c3801ef683366e769e829e96383fdab6ae2fe42"},
+ {file = "time_machine-2.13.0-cp39-cp39-win_arm64.whl", hash = "sha256:3c87856105dcb25b5bbff031d99f06ef4d1c8380d096222e1bc63b496b5258e6"},
+ {file = "time_machine-2.13.0.tar.gz", hash = "sha256:c23b2408e3adcedec84ea1131e238f0124a5bc0e491f60d1137ad7239b37c01a"},
+]
+
+[package.dependencies]
+python-dateutil = "*"
+
+[[package]]
+name = "typing-extensions"
+version = "4.8.0"
+description = "Backported and Experimental Type Hints for Python 3.8+"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0"},
+ {file = "typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef"},
+]
+
+[[package]]
+name = "tzdata"
+version = "2023.3"
+description = "Provider of IANA time zone data"
+optional = false
+python-versions = ">=2"
+files = [
+ {file = "tzdata-2023.3-py2.py3-none-any.whl", hash = "sha256:7e65763eef3120314099b6939b5546db7adce1e7d6f2e179e3df563c70511eda"},
+ {file = "tzdata-2023.3.tar.gz", hash = "sha256:11ef1e08e54acb0d4f95bdb1be05da659673de4acbd21bf9c69e94cc5e907a3a"},
+]
+
+[[package]]
+name = "url-normalize"
+version = "1.4.3"
+description = "URL normalization for Python"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+files = [
+ {file = "url-normalize-1.4.3.tar.gz", hash = "sha256:d23d3a070ac52a67b83a1c59a0e68f8608d1cd538783b401bc9de2c0fac999b2"},
+ {file = "url_normalize-1.4.3-py2.py3-none-any.whl", hash = "sha256:ec3c301f04e5bb676d333a7fa162fa977ad2ca04b7e652bfc9fac4e405728eed"},
+]
+
+[package.dependencies]
+six = "*"
+
+[[package]]
+name = "urllib3"
+version = "1.26.18"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
+files = [
+ {file = "urllib3-1.26.18-py2.py3-none-any.whl", hash = "sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07"},
+ {file = "urllib3-1.26.18.tar.gz", hash = "sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0"},
+]
+
+[package.extras]
+brotli = ["brotli (==1.0.9)", "brotli (>=1.0.9)", "brotlicffi (>=0.8.0)", "brotlipy (>=0.6.0)"]
+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
+socks = ["PySocks (>=1.5.6,!=1.5.7,<2.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.23.2"
+description = "The lightning-fast ASGI server."
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "uvicorn-0.23.2-py3-none-any.whl", hash = "sha256:1f9be6558f01239d4fdf22ef8126c39cb1ad0addf76c40e760549d2c2f43ab53"},
+ {file = "uvicorn-0.23.2.tar.gz", hash = "sha256:4d3cc12d7727ba72b64d12d3cc7743124074c0a69f7b201512fc50c3e3f1569a"},
+]
+
+[package.dependencies]
+click = ">=7.0"
+h11 = ">=0.8"
+typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""}
+
+[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 = "vcrpy"
+version = "4.4.0"
+description = "Automatically mock your HTTP interactions to simplify and speed up testing"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "vcrpy-4.4.0-py2.py3-none-any.whl", hash = "sha256:560c9d0d8436ced29223ceefb513c3ac3f2e2a60d51a9830f236a1e63167905a"},
+ {file = "vcrpy-4.4.0.tar.gz", hash = "sha256:d1109ae93dbc2e7fcbc485849a7600d5dea510d3bef070eec4419c9a72ca2639"},
+]
+
+[package.dependencies]
+PyYAML = "*"
+six = ">=1.5"
+urllib3 = {version = "<2", markers = "python_version < \"3.10\""}
+wrapt = "*"
+yarl = "*"
+
+[[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 = "10.4"
+description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "websockets-10.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d58804e996d7d2307173d56c297cf7bc132c52df27a3efaac5e8d43e36c21c48"},
+ {file = "websockets-10.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:bc0b82d728fe21a0d03e65f81980abbbcb13b5387f733a1a870672c5be26edab"},
+ {file = "websockets-10.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ba089c499e1f4155d2a3c2a05d2878a3428cf321c848f2b5a45ce55f0d7d310c"},
+ {file = "websockets-10.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:33d69ca7612f0ddff3316b0c7b33ca180d464ecac2d115805c044bf0a3b0d032"},
+ {file = "websockets-10.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62e627f6b6d4aed919a2052efc408da7a545c606268d5ab5bfab4432734b82b4"},
+ {file = "websockets-10.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:38ea7b82bfcae927eeffc55d2ffa31665dc7fec7b8dc654506b8e5a518eb4d50"},
+ {file = "websockets-10.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e0cb5cc6ece6ffa75baccfd5c02cffe776f3f5c8bf486811f9d3ea3453676ce8"},
+ {file = "websockets-10.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ae5e95cfb53ab1da62185e23b3130e11d64431179debac6dc3c6acf08760e9b1"},
+ {file = "websockets-10.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7c584f366f46ba667cfa66020344886cf47088e79c9b9d39c84ce9ea98aaa331"},
+ {file = "websockets-10.4-cp310-cp310-win32.whl", hash = "sha256:b029fb2032ae4724d8ae8d4f6b363f2cc39e4c7b12454df8df7f0f563ed3e61a"},
+ {file = "websockets-10.4-cp310-cp310-win_amd64.whl", hash = "sha256:8dc96f64ae43dde92530775e9cb169979f414dcf5cff670455d81a6823b42089"},
+ {file = "websockets-10.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:47a2964021f2110116cc1125b3e6d87ab5ad16dea161949e7244ec583b905bb4"},
+ {file = "websockets-10.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e789376b52c295c4946403bd0efecf27ab98f05319df4583d3c48e43c7342c2f"},
+ {file = "websockets-10.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7d3f0b61c45c3fa9a349cf484962c559a8a1d80dae6977276df8fd1fa5e3cb8c"},
+ {file = "websockets-10.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f55b5905705725af31ccef50e55391621532cd64fbf0bc6f4bac935f0fccec46"},
+ {file = "websockets-10.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:00c870522cdb69cd625b93f002961ffb0c095394f06ba8c48f17eef7c1541f96"},
+ {file = "websockets-10.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f38706e0b15d3c20ef6259fd4bc1700cd133b06c3c1bb108ffe3f8947be15fa"},
+ {file = "websockets-10.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f2c38d588887a609191d30e902df2a32711f708abfd85d318ca9b367258cfd0c"},
+ {file = "websockets-10.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:fe10ddc59b304cb19a1bdf5bd0a7719cbbc9fbdd57ac80ed436b709fcf889106"},
+ {file = "websockets-10.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:90fcf8929836d4a0e964d799a58823547df5a5e9afa83081761630553be731f9"},
+ {file = "websockets-10.4-cp311-cp311-win32.whl", hash = "sha256:b9968694c5f467bf67ef97ae7ad4d56d14be2751000c1207d31bf3bb8860bae8"},
+ {file = "websockets-10.4-cp311-cp311-win_amd64.whl", hash = "sha256:a7a240d7a74bf8d5cb3bfe6be7f21697a28ec4b1a437607bae08ac7acf5b4882"},
+ {file = "websockets-10.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:74de2b894b47f1d21cbd0b37a5e2b2392ad95d17ae983e64727e18eb281fe7cb"},
+ {file = "websockets-10.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e3a686ecb4aa0d64ae60c9c9f1a7d5d46cab9bfb5d91a2d303d00e2cd4c4c5cc"},
+ {file = "websockets-10.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b0d15c968ea7a65211e084f523151dbf8ae44634de03c801b8bd070b74e85033"},
+ {file = "websockets-10.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00213676a2e46b6ebf6045bc11d0f529d9120baa6f58d122b4021ad92adabd41"},
+ {file = "websockets-10.4-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:e23173580d740bf8822fd0379e4bf30aa1d5a92a4f252d34e893070c081050df"},
+ {file = "websockets-10.4-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:dd500e0a5e11969cdd3320935ca2ff1e936f2358f9c2e61f100a1660933320ea"},
+ {file = "websockets-10.4-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:4239b6027e3d66a89446908ff3027d2737afc1a375f8fd3eea630a4842ec9a0c"},
+ {file = "websockets-10.4-cp37-cp37m-win32.whl", hash = "sha256:8a5cc00546e0a701da4639aa0bbcb0ae2bb678c87f46da01ac2d789e1f2d2038"},
+ {file = "websockets-10.4-cp37-cp37m-win_amd64.whl", hash = "sha256:a9f9a735deaf9a0cadc2d8c50d1a5bcdbae8b6e539c6e08237bc4082d7c13f28"},
+ {file = "websockets-10.4-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c1289596042fad2cdceb05e1ebf7aadf9995c928e0da2b7a4e99494953b1b94"},
+ {file = "websockets-10.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0cff816f51fb33c26d6e2b16b5c7d48eaa31dae5488ace6aae468b361f422b63"},
+ {file = "websockets-10.4-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:dd9becd5fe29773d140d68d607d66a38f60e31b86df75332703757ee645b6faf"},
+ {file = "websockets-10.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45ec8e75b7dbc9539cbfafa570742fe4f676eb8b0d3694b67dabe2f2ceed8aa6"},
+ {file = "websockets-10.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f72e5cd0f18f262f5da20efa9e241699e0cf3a766317a17392550c9ad7b37d8"},
+ {file = "websockets-10.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:185929b4808b36a79c65b7865783b87b6841e852ef5407a2fb0c03381092fa3b"},
+ {file = "websockets-10.4-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:7d27a7e34c313b3a7f91adcd05134315002aaf8540d7b4f90336beafaea6217c"},
+ {file = "websockets-10.4-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:884be66c76a444c59f801ac13f40c76f176f1bfa815ef5b8ed44321e74f1600b"},
+ {file = "websockets-10.4-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:931c039af54fc195fe6ad536fde4b0de04da9d5916e78e55405436348cfb0e56"},
+ {file = "websockets-10.4-cp38-cp38-win32.whl", hash = "sha256:db3c336f9eda2532ec0fd8ea49fef7a8df8f6c804cdf4f39e5c5c0d4a4ad9a7a"},
+ {file = "websockets-10.4-cp38-cp38-win_amd64.whl", hash = "sha256:48c08473563323f9c9debac781ecf66f94ad5a3680a38fe84dee5388cf5acaf6"},
+ {file = "websockets-10.4-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:40e826de3085721dabc7cf9bfd41682dadc02286d8cf149b3ad05bff89311e4f"},
+ {file = "websockets-10.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:56029457f219ade1f2fc12a6504ea61e14ee227a815531f9738e41203a429112"},
+ {file = "websockets-10.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f5fc088b7a32f244c519a048c170f14cf2251b849ef0e20cbbb0fdf0fdaf556f"},
+ {file = "websockets-10.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2fc8709c00704194213d45e455adc106ff9e87658297f72d544220e32029cd3d"},
+ {file = "websockets-10.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0154f7691e4fe6c2b2bc275b5701e8b158dae92a1ab229e2b940efe11905dff4"},
+ {file = "websockets-10.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c6d2264f485f0b53adf22697ac11e261ce84805c232ed5dbe6b1bcb84b00ff0"},
+ {file = "websockets-10.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9bc42e8402dc5e9905fb8b9649f57efcb2056693b7e88faa8fb029256ba9c68c"},
+ {file = "websockets-10.4-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:edc344de4dac1d89300a053ac973299e82d3db56330f3494905643bb68801269"},
+ {file = "websockets-10.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:84bc2a7d075f32f6ed98652db3a680a17a4edb21ca7f80fe42e38753a58ee02b"},
+ {file = "websockets-10.4-cp39-cp39-win32.whl", hash = "sha256:c94ae4faf2d09f7c81847c63843f84fe47bf6253c9d60b20f25edfd30fb12588"},
+ {file = "websockets-10.4-cp39-cp39-win_amd64.whl", hash = "sha256:bbccd847aa0c3a69b5f691a84d2341a4f8a629c6922558f2a70611305f902d74"},
+ {file = "websockets-10.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:82ff5e1cae4e855147fd57a2863376ed7454134c2bf49ec604dfe71e446e2193"},
+ {file = "websockets-10.4-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d210abe51b5da0ffdbf7b43eed0cfdff8a55a1ab17abbec4301c9ff077dd0342"},
+ {file = "websockets-10.4-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:942de28af58f352a6f588bc72490ae0f4ccd6dfc2bd3de5945b882a078e4e179"},
+ {file = "websockets-10.4-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9b27d6c1c6cd53dc93614967e9ce00ae7f864a2d9f99fe5ed86706e1ecbf485"},
+ {file = "websockets-10.4-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:3d3cac3e32b2c8414f4f87c1b2ab686fa6284a980ba283617404377cd448f631"},
+ {file = "websockets-10.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:da39dd03d130162deb63da51f6e66ed73032ae62e74aaccc4236e30edccddbb0"},
+ {file = "websockets-10.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:389f8dbb5c489e305fb113ca1b6bdcdaa130923f77485db5b189de343a179393"},
+ {file = "websockets-10.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09a1814bb15eff7069e51fed0826df0bc0702652b5cb8f87697d469d79c23576"},
+ {file = "websockets-10.4-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff64a1d38d156d429404aaa84b27305e957fd10c30e5880d1765c9480bea490f"},
+ {file = "websockets-10.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b343f521b047493dc4022dd338fc6db9d9282658862756b4f6fd0e996c1380e1"},
+ {file = "websockets-10.4-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:932af322458da7e4e35df32f050389e13d3d96b09d274b22a7aa1808f292fee4"},
+ {file = "websockets-10.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6a4162139374a49eb18ef5b2f4da1dd95c994588f5033d64e0bbfda4b6b6fcf"},
+ {file = "websockets-10.4-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c57e4c1349fbe0e446c9fa7b19ed2f8a4417233b6984277cce392819123142d3"},
+ {file = "websockets-10.4-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b627c266f295de9dea86bd1112ed3d5fafb69a348af30a2422e16590a8ecba13"},
+ {file = "websockets-10.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:05a7233089f8bd355e8cbe127c2e8ca0b4ea55467861906b80d2ebc7db4d6b72"},
+ {file = "websockets-10.4.tar.gz", hash = "sha256:eef610b23933c54d5d921c92578ae5f89813438fded840c2e9809d378dc765d3"},
+]
+
+[[package]]
+name = "wrapt"
+version = "1.15.0"
+description = "Module for decorators, wrappers and monkey patching."
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
+files = [
+ {file = "wrapt-1.15.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:ca1cccf838cd28d5a0883b342474c630ac48cac5df0ee6eacc9c7290f76b11c1"},
+ {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e826aadda3cae59295b95343db8f3d965fb31059da7de01ee8d1c40a60398b29"},
+ {file = "wrapt-1.15.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5fc8e02f5984a55d2c653f5fea93531e9836abbd84342c1d1e17abc4a15084c2"},
+ {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:96e25c8603a155559231c19c0349245eeb4ac0096fe3c1d0be5c47e075bd4f46"},
+ {file = "wrapt-1.15.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:40737a081d7497efea35ab9304b829b857f21558acfc7b3272f908d33b0d9d4c"},
+ {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f87ec75864c37c4c6cb908d282e1969e79763e0d9becdfe9fe5473b7bb1e5f09"},
+ {file = "wrapt-1.15.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:1286eb30261894e4c70d124d44b7fd07825340869945c79d05bda53a40caa079"},
+ {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:493d389a2b63c88ad56cdc35d0fa5752daac56ca755805b1b0c530f785767d5e"},
+ {file = "wrapt-1.15.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:58d7a75d731e8c63614222bcb21dd992b4ab01a399f1f09dd82af17bbfc2368a"},
+ {file = "wrapt-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:21f6d9a0d5b3a207cdf7acf8e58d7d13d463e639f0c7e01d82cdb671e6cb7923"},
+ {file = "wrapt-1.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ce42618f67741d4697684e501ef02f29e758a123aa2d669e2d964ff734ee00ee"},
+ {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41d07d029dd4157ae27beab04d22b8e261eddfc6ecd64ff7000b10dc8b3a5727"},
+ {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54accd4b8bc202966bafafd16e69da9d5640ff92389d33d28555c5fd4f25ccb7"},
+ {file = "wrapt-1.15.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2fbfbca668dd15b744418265a9607baa970c347eefd0db6a518aaf0cfbd153c0"},
+ {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:76e9c727a874b4856d11a32fb0b389afc61ce8aaf281ada613713ddeadd1cfec"},
+ {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e20076a211cd6f9b44a6be58f7eeafa7ab5720eb796975d0c03f05b47d89eb90"},
+ {file = "wrapt-1.15.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a74d56552ddbde46c246b5b89199cb3fd182f9c346c784e1a93e4dc3f5ec9975"},
+ {file = "wrapt-1.15.0-cp310-cp310-win32.whl", hash = "sha256:26458da5653aa5b3d8dc8b24192f574a58984c749401f98fff994d41d3f08da1"},
+ {file = "wrapt-1.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:75760a47c06b5974aa5e01949bf7e66d2af4d08cb8c1d6516af5e39595397f5e"},
+ {file = "wrapt-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ba1711cda2d30634a7e452fc79eabcadaffedf241ff206db2ee93dd2c89a60e7"},
+ {file = "wrapt-1.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:56374914b132c702aa9aa9959c550004b8847148f95e1b824772d453ac204a72"},
+ {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a89ce3fd220ff144bd9d54da333ec0de0399b52c9ac3d2ce34b569cf1a5748fb"},
+ {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3bbe623731d03b186b3d6b0d6f51865bf598587c38d6f7b0be2e27414f7f214e"},
+ {file = "wrapt-1.15.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3abbe948c3cbde2689370a262a8d04e32ec2dd4f27103669a45c6929bcdbfe7c"},
+ {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b67b819628e3b748fd3c2192c15fb951f549d0f47c0449af0764d7647302fda3"},
+ {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:7eebcdbe3677e58dd4c0e03b4f2cfa346ed4049687d839adad68cc38bb559c92"},
+ {file = "wrapt-1.15.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:74934ebd71950e3db69960a7da29204f89624dde411afbfb3b4858c1409b1e98"},
+ {file = "wrapt-1.15.0-cp311-cp311-win32.whl", hash = "sha256:bd84395aab8e4d36263cd1b9308cd504f6cf713b7d6d3ce25ea55670baec5416"},
+ {file = "wrapt-1.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:a487f72a25904e2b4bbc0817ce7a8de94363bd7e79890510174da9d901c38705"},
+ {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:4ff0d20f2e670800d3ed2b220d40984162089a6e2c9646fdb09b85e6f9a8fc29"},
+ {file = "wrapt-1.15.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:9ed6aa0726b9b60911f4aed8ec5b8dd7bf3491476015819f56473ffaef8959bd"},
+ {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:896689fddba4f23ef7c718279e42f8834041a21342d95e56922e1c10c0cc7afb"},
+ {file = "wrapt-1.15.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:75669d77bb2c071333417617a235324a1618dba66f82a750362eccbe5b61d248"},
+ {file = "wrapt-1.15.0-cp35-cp35m-win32.whl", hash = "sha256:fbec11614dba0424ca72f4e8ba3c420dba07b4a7c206c8c8e4e73f2e98f4c559"},
+ {file = "wrapt-1.15.0-cp35-cp35m-win_amd64.whl", hash = "sha256:fd69666217b62fa5d7c6aa88e507493a34dec4fa20c5bd925e4bc12fce586639"},
+ {file = "wrapt-1.15.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b0724f05c396b0a4c36a3226c31648385deb6a65d8992644c12a4963c70326ba"},
+ {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bbeccb1aa40ab88cd29e6c7d8585582c99548f55f9b2581dfc5ba68c59a85752"},
+ {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:38adf7198f8f154502883242f9fe7333ab05a5b02de7d83aa2d88ea621f13364"},
+ {file = "wrapt-1.15.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:578383d740457fa790fdf85e6d346fda1416a40549fe8db08e5e9bd281c6a475"},
+ {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:a4cbb9ff5795cd66f0066bdf5947f170f5d63a9274f99bdbca02fd973adcf2a8"},
+ {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:af5bd9ccb188f6a5fdda9f1f09d9f4c86cc8a539bd48a0bfdc97723970348418"},
+ {file = "wrapt-1.15.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b56d5519e470d3f2fe4aa7585f0632b060d532d0696c5bdfb5e8319e1d0f69a2"},
+ {file = "wrapt-1.15.0-cp36-cp36m-win32.whl", hash = "sha256:77d4c1b881076c3ba173484dfa53d3582c1c8ff1f914c6461ab70c8428b796c1"},
+ {file = "wrapt-1.15.0-cp36-cp36m-win_amd64.whl", hash = "sha256:077ff0d1f9d9e4ce6476c1a924a3332452c1406e59d90a2cf24aeb29eeac9420"},
+ {file = "wrapt-1.15.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5c5aa28df055697d7c37d2099a7bc09f559d5053c3349b1ad0c39000e611d317"},
+ {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a8564f283394634a7a7054b7983e47dbf39c07712d7b177b37e03f2467a024e"},
+ {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780c82a41dc493b62fc5884fb1d3a3b81106642c5c5c78d6a0d4cbe96d62ba7e"},
+ {file = "wrapt-1.15.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e169e957c33576f47e21864cf3fc9ff47c223a4ebca8960079b8bd36cb014fd0"},
+ {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b02f21c1e2074943312d03d243ac4388319f2456576b2c6023041c4d57cd7019"},
+ {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:f2e69b3ed24544b0d3dbe2c5c0ba5153ce50dcebb576fdc4696d52aa22db6034"},
+ {file = "wrapt-1.15.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d787272ed958a05b2c86311d3a4135d3c2aeea4fc655705f074130aa57d71653"},
+ {file = "wrapt-1.15.0-cp37-cp37m-win32.whl", hash = "sha256:02fce1852f755f44f95af51f69d22e45080102e9d00258053b79367d07af39c0"},
+ {file = "wrapt-1.15.0-cp37-cp37m-win_amd64.whl", hash = "sha256:abd52a09d03adf9c763d706df707c343293d5d106aea53483e0ec8d9e310ad5e"},
+ {file = "wrapt-1.15.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:cdb4f085756c96a3af04e6eca7f08b1345e94b53af8921b25c72f096e704e145"},
+ {file = "wrapt-1.15.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:230ae493696a371f1dbffaad3dafbb742a4d27a0afd2b1aecebe52b740167e7f"},
+ {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:63424c681923b9f3bfbc5e3205aafe790904053d42ddcc08542181a30a7a51bd"},
+ {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d6bcbfc99f55655c3d93feb7ef3800bd5bbe963a755687cbf1f490a71fb7794b"},
+ {file = "wrapt-1.15.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c99f4309f5145b93eca6e35ac1a988f0dc0a7ccf9ccdcd78d3c0adf57224e62f"},
+ {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b130fe77361d6771ecf5a219d8e0817d61b236b7d8b37cc045172e574ed219e6"},
+ {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:96177eb5645b1c6985f5c11d03fc2dbda9ad24ec0f3a46dcce91445747e15094"},
+ {file = "wrapt-1.15.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5fe3e099cf07d0fb5a1e23d399e5d4d1ca3e6dfcbe5c8570ccff3e9208274f7"},
+ {file = "wrapt-1.15.0-cp38-cp38-win32.whl", hash = "sha256:abd8f36c99512755b8456047b7be10372fca271bf1467a1caa88db991e7c421b"},
+ {file = "wrapt-1.15.0-cp38-cp38-win_amd64.whl", hash = "sha256:b06fa97478a5f478fb05e1980980a7cdf2712015493b44d0c87606c1513ed5b1"},
+ {file = "wrapt-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2e51de54d4fb8fb50d6ee8327f9828306a959ae394d3e01a1ba8b2f937747d86"},
+ {file = "wrapt-1.15.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0970ddb69bba00670e58955f8019bec4a42d1785db3faa043c33d81de2bf843c"},
+ {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76407ab327158c510f44ded207e2f76b657303e17cb7a572ffe2f5a8a48aa04d"},
+ {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cd525e0e52a5ff16653a3fc9e3dd827981917d34996600bbc34c05d048ca35cc"},
+ {file = "wrapt-1.15.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d37ac69edc5614b90516807de32d08cb8e7b12260a285ee330955604ed9dd29"},
+ {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:078e2a1a86544e644a68422f881c48b84fef6d18f8c7a957ffd3f2e0a74a0d4a"},
+ {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2cf56d0e237280baed46f0b5316661da892565ff58309d4d2ed7dba763d984b8"},
+ {file = "wrapt-1.15.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7dc0713bf81287a00516ef43137273b23ee414fe41a3c14be10dd95ed98a2df9"},
+ {file = "wrapt-1.15.0-cp39-cp39-win32.whl", hash = "sha256:46ed616d5fb42f98630ed70c3529541408166c22cdfd4540b88d5f21006b0eff"},
+ {file = "wrapt-1.15.0-cp39-cp39-win_amd64.whl", hash = "sha256:eef4d64c650f33347c1f9266fa5ae001440b232ad9b98f1f43dfe7a79435c0a6"},
+ {file = "wrapt-1.15.0-py3-none-any.whl", hash = "sha256:64b1df0f83706b4ef4cfb4fb0e4c2669100fd7ecacfb59e091fad300d4e04640"},
+ {file = "wrapt-1.15.0.tar.gz", hash = "sha256:d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"},
+]
+
+[[package]]
+name = "yarl"
+version = "1.9.2"
+description = "Yet another URL library"
+optional = false
+python-versions = ">=3.7"
+files = [
+ {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:8c2ad583743d16ddbdf6bb14b5cd76bf43b0d0006e918809d5d4ddf7bde8dd82"},
+ {file = "yarl-1.9.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82aa6264b36c50acfb2424ad5ca537a2060ab6de158a5bd2a72a032cc75b9eb8"},
+ {file = "yarl-1.9.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c0c77533b5ed4bcc38e943178ccae29b9bcf48ffd1063f5821192f23a1bd27b9"},
+ {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ee4afac41415d52d53a9833ebae7e32b344be72835bbb589018c9e938045a560"},
+ {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9bf345c3a4f5ba7f766430f97f9cc1320786f19584acc7086491f45524a551ac"},
+ {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2a96c19c52ff442a808c105901d0bdfd2e28575b3d5f82e2f5fd67e20dc5f4ea"},
+ {file = "yarl-1.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:891c0e3ec5ec881541f6c5113d8df0315ce5440e244a716b95f2525b7b9f3608"},
+ {file = "yarl-1.9.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c3a53ba34a636a256d767c086ceb111358876e1fb6b50dfc4d3f4951d40133d5"},
+ {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:566185e8ebc0898b11f8026447eacd02e46226716229cea8db37496c8cdd26e0"},
+ {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:2b0738fb871812722a0ac2154be1f049c6223b9f6f22eec352996b69775b36d4"},
+ {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:32f1d071b3f362c80f1a7d322bfd7b2d11e33d2adf395cc1dd4df36c9c243095"},
+ {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:e9fdc7ac0d42bc3ea78818557fab03af6181e076a2944f43c38684b4b6bed8e3"},
+ {file = "yarl-1.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:56ff08ab5df8429901ebdc5d15941b59f6253393cb5da07b4170beefcf1b2528"},
+ {file = "yarl-1.9.2-cp310-cp310-win32.whl", hash = "sha256:8ea48e0a2f931064469bdabca50c2f578b565fc446f302a79ba6cc0ee7f384d3"},
+ {file = "yarl-1.9.2-cp310-cp310-win_amd64.whl", hash = "sha256:50f33040f3836e912ed16d212f6cc1efb3231a8a60526a407aeb66c1c1956dde"},
+ {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:646d663eb2232d7909e6601f1a9107e66f9791f290a1b3dc7057818fe44fc2b6"},
+ {file = "yarl-1.9.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:aff634b15beff8902d1f918012fc2a42e0dbae6f469fce134c8a0dc51ca423bb"},
+ {file = "yarl-1.9.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a83503934c6273806aed765035716216cc9ab4e0364f7f066227e1aaea90b8d0"},
+ {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b25322201585c69abc7b0e89e72790469f7dad90d26754717f3310bfe30331c2"},
+ {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:22a94666751778629f1ec4280b08eb11815783c63f52092a5953faf73be24191"},
+ {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ec53a0ea2a80c5cd1ab397925f94bff59222aa3cf9c6da938ce05c9ec20428d"},
+ {file = "yarl-1.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:159d81f22d7a43e6eabc36d7194cb53f2f15f498dbbfa8edc8a3239350f59fe7"},
+ {file = "yarl-1.9.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:832b7e711027c114d79dffb92576acd1bd2decc467dec60e1cac96912602d0e6"},
+ {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:95d2ecefbcf4e744ea952d073c6922e72ee650ffc79028eb1e320e732898d7e8"},
+ {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:d4e2c6d555e77b37288eaf45b8f60f0737c9efa3452c6c44626a5455aeb250b9"},
+ {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:783185c75c12a017cc345015ea359cc801c3b29a2966c2655cd12b233bf5a2be"},
+ {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:b8cc1863402472f16c600e3e93d542b7e7542a540f95c30afd472e8e549fc3f7"},
+ {file = "yarl-1.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:822b30a0f22e588b32d3120f6d41e4ed021806418b4c9f0bc3048b8c8cb3f92a"},
+ {file = "yarl-1.9.2-cp311-cp311-win32.whl", hash = "sha256:a60347f234c2212a9f0361955007fcf4033a75bf600a33c88a0a8e91af77c0e8"},
+ {file = "yarl-1.9.2-cp311-cp311-win_amd64.whl", hash = "sha256:be6b3fdec5c62f2a67cb3f8c6dbf56bbf3f61c0f046f84645cd1ca73532ea051"},
+ {file = "yarl-1.9.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38a3928ae37558bc1b559f67410df446d1fbfa87318b124bf5032c31e3447b74"},
+ {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac9bb4c5ce3975aeac288cfcb5061ce60e0d14d92209e780c93954076c7c4367"},
+ {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3da8a678ca8b96c8606bbb8bfacd99a12ad5dd288bc6f7979baddd62f71c63ef"},
+ {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13414591ff516e04fcdee8dc051c13fd3db13b673c7a4cb1350e6b2ad9639ad3"},
+ {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf74d08542c3a9ea97bb8f343d4fcbd4d8f91bba5ec9d5d7f792dbe727f88938"},
+ {file = "yarl-1.9.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e7221580dc1db478464cfeef9b03b95c5852cc22894e418562997df0d074ccc"},
+ {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:494053246b119b041960ddcd20fd76224149cfea8ed8777b687358727911dd33"},
+ {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:52a25809fcbecfc63ac9ba0c0fb586f90837f5425edfd1ec9f3372b119585e45"},
+ {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:e65610c5792870d45d7b68c677681376fcf9cc1c289f23e8e8b39c1485384185"},
+ {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:1b1bba902cba32cdec51fca038fd53f8beee88b77efc373968d1ed021024cc04"},
+ {file = "yarl-1.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:662e6016409828ee910f5d9602a2729a8a57d74b163c89a837de3fea050c7582"},
+ {file = "yarl-1.9.2-cp37-cp37m-win32.whl", hash = "sha256:f364d3480bffd3aa566e886587eaca7c8c04d74f6e8933f3f2c996b7f09bee1b"},
+ {file = "yarl-1.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6a5883464143ab3ae9ba68daae8e7c5c95b969462bbe42e2464d60e7e2698368"},
+ {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5610f80cf43b6202e2c33ba3ec2ee0a2884f8f423c8f4f62906731d876ef4fac"},
+ {file = "yarl-1.9.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b9a4e67ad7b646cd6f0938c7ebfd60e481b7410f574c560e455e938d2da8e0f4"},
+ {file = "yarl-1.9.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:83fcc480d7549ccebe9415d96d9263e2d4226798c37ebd18c930fce43dfb9574"},
+ {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5fcd436ea16fee7d4207c045b1e340020e58a2597301cfbcfdbe5abd2356c2fb"},
+ {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:84e0b1599334b1e1478db01b756e55937d4614f8654311eb26012091be109d59"},
+ {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3458a24e4ea3fd8930e934c129b676c27452e4ebda80fbe47b56d8c6c7a63a9e"},
+ {file = "yarl-1.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:838162460b3a08987546e881a2bfa573960bb559dfa739e7800ceeec92e64417"},
+ {file = "yarl-1.9.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f4e2d08f07a3d7d3e12549052eb5ad3eab1c349c53ac51c209a0e5991bbada78"},
+ {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:de119f56f3c5f0e2fb4dee508531a32b069a5f2c6e827b272d1e0ff5ac040333"},
+ {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:149ddea5abf329752ea5051b61bd6c1d979e13fbf122d3a1f9f0c8be6cb6f63c"},
+ {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:674ca19cbee4a82c9f54e0d1eee28116e63bc6fd1e96c43031d11cbab8b2afd5"},
+ {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:9b3152f2f5677b997ae6c804b73da05a39daa6a9e85a512e0e6823d81cdad7cc"},
+ {file = "yarl-1.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5415d5a4b080dc9612b1b63cba008db84e908b95848369aa1da3686ae27b6d2b"},
+ {file = "yarl-1.9.2-cp38-cp38-win32.whl", hash = "sha256:f7a3d8146575e08c29ed1cd287068e6d02f1c7bdff8970db96683b9591b86ee7"},
+ {file = "yarl-1.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:63c48f6cef34e6319a74c727376e95626f84ea091f92c0250a98e53e62c77c72"},
+ {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:75df5ef94c3fdc393c6b19d80e6ef1ecc9ae2f4263c09cacb178d871c02a5ba9"},
+ {file = "yarl-1.9.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c027a6e96ef77d401d8d5a5c8d6bc478e8042f1e448272e8d9752cb0aff8b5c8"},
+ {file = "yarl-1.9.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3b078dbe227f79be488ffcfc7a9edb3409d018e0952cf13f15fd6512847f3f7"},
+ {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59723a029760079b7d991a401386390c4be5bfec1e7dd83e25a6a0881859e716"},
+ {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b03917871bf859a81ccb180c9a2e6c1e04d2f6a51d953e6a5cdd70c93d4e5a2a"},
+ {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c1012fa63eb6c032f3ce5d2171c267992ae0c00b9e164efe4d73db818465fac3"},
+ {file = "yarl-1.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a74dcbfe780e62f4b5a062714576f16c2f3493a0394e555ab141bf0d746bb955"},
+ {file = "yarl-1.9.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c56986609b057b4839968ba901944af91b8e92f1725d1a2d77cbac6972b9ed1"},
+ {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2c315df3293cd521033533d242d15eab26583360b58f7ee5d9565f15fee1bef4"},
+ {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:b7232f8dfbd225d57340e441d8caf8652a6acd06b389ea2d3222b8bc89cbfca6"},
+ {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:53338749febd28935d55b41bf0bcc79d634881195a39f6b2f767870b72514caf"},
+ {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:066c163aec9d3d073dc9ffe5dd3ad05069bcb03fcaab8d221290ba99f9f69ee3"},
+ {file = "yarl-1.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8288d7cd28f8119b07dd49b7230d6b4562f9b61ee9a4ab02221060d21136be80"},
+ {file = "yarl-1.9.2-cp39-cp39-win32.whl", hash = "sha256:b124e2a6d223b65ba8768d5706d103280914d61f5cae3afbc50fc3dfcc016623"},
+ {file = "yarl-1.9.2-cp39-cp39-win_amd64.whl", hash = "sha256:61016e7d582bc46a5378ffdd02cd0314fb8ba52f40f9cf4d9a5e7dbef88dee18"},
+ {file = "yarl-1.9.2.tar.gz", hash = "sha256:04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"},
+]
+
+[package.dependencies]
+idna = ">=2.0"
+multidict = ">=4.0"
+
+[[package]]
+name = "zipp"
+version = "3.17.0"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+optional = false
+python-versions = ">=3.8"
+files = [
+ {file = "zipp-3.17.0-py3-none-any.whl", hash = "sha256:0e923e726174922dce09c53c59ad483ff7bbb8e572e00c7f7c46b88556409f31"},
+ {file = "zipp-3.17.0.tar.gz", hash = "sha256:84e64a1c28cf7e91ed2078bb8cc8c259cb19b76942096c8d7b84947690cabaf0"},
+]
+
+[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"]
+testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy (>=0.9.1)", "pytest-ruff"]
+
+[metadata]
+lock-version = "2.0"
+python-versions = "^3.8"
+content-hash = "ead0797914467bcfd9460f1e06b39a03091076c12e34f99ac76aabf2a8b66e71"
diff --git a/openbb_platform/providers/biztoc/pyproject.toml b/openbb_platform/providers/biztoc/pyproject.toml
new file mode 100644
index 000000000000..bfcfc05bc14b
--- /dev/null
+++ b/openbb_platform/providers/biztoc/pyproject.toml
@@ -0,0 +1,19 @@
+[tool.poetry]
+name = "openbb-biztoc"
+version = "0.1.0a3"
+description = ""
+authors = ["OpenBB Team "]
+readme = "README.md"
+packages = [{ include = "openbb_biztoc" }]
+
+[tool.poetry.dependencies]
+python = "^3.8"
+openbb-core = "^0.1.0a4"
+requests-cache = "^1.1.0"
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry.plugins."openbb_provider_extension"]
+cboe = "openbb_biztoc:biztoc_provider"
diff --git a/openbb_platform/providers/biztoc/tests/__init__.py b/openbb_platform/providers/biztoc/tests/__init__.py
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/openbb_platform/providers/biztoc/tests/record/http/test_biztoc_fetchers/test_biztoc_global_news_fetcher.yaml b/openbb_platform/providers/biztoc/tests/record/http/test_biztoc_fetchers/test_biztoc_global_news_fetcher.yaml
new file mode 100644
index 000000000000..7abcaca1a281
--- /dev/null
+++ b/openbb_platform/providers/biztoc/tests/record/http/test_biztoc_fetchers/test_biztoc_global_news_fetcher.yaml
@@ -0,0 +1,930 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/pages
+ response:
+ body:
+ string: '["main","crypto","media","hot","wire"]
+
+ '
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab47abf72000-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '39'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:00 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=CymLWZlhMr3p%2BEqjjWMz%2FcFjna2HYGBes5m%2FqRlrmkE5sYNMUi2dGWuvbeBL1RpvrBWji7qN3HHlQX4KVDJslXWoayHutaobXmPX2Q4C5MPPg3FdQGhzdOG1yfcdDQev"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1876'
+ X-RateLimit-Requests-Reset:
+ - '2089589'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/tags/main
+ response:
+ body:
+ string: !!binary |
+ H4sIALVFKGUA/3VWwZLsNgi85zP2nFtu+ZVUDlhibMYS+CHJHm8q/x68eVsFM/OOw0iIhu7Gf/3z
+ 0WH++PODmgKWj39//w4sUKG53/8fIBeZ4RPczxtmVCiKDXVH98dYFYh9pFLOBRFad8GuFhh6utAG
+ BVsnJmAXzcJQctdRN3/9oN5RQ8J4QnEbU6EE7HHpaC3mJw0/rQ+fEt7HKkmh+yyzyFw8xFsRpRz6
+ I5qfute6kq9wMHXMMLocoitqe9+LN2PxoQn5DpWYsQOfsAz/Ahy+Q7R2WV3gjge1xQUajEygMJGH
+ gkW4juZvVuAFeo+d27YSx86d8ahUCtkMyaji+9Mf7teK3Edaz9D3rkKeMpbstEYl6v6cLCT+VWtD
+ QFQn4NXqvSmhn0iTRFAapqExIc7n5p9NoFKM0Wg4WqDGjHxpoEqXMLwVd+Ka7GJffOaOrfjioEDF
+ wJpf1HpxNLJ2wc9JSoEwvY47tgRWJr6+cikVNC2hngI77YFMdCeeXaSg1RRQ36nejdyhHHvaiuEe
+ mImPhxFHJvJGM0vJhrBBWvzZtsDBNzMOF9sLZKqk2+ghvhjw8xDJkRt3UxBGBpXAhUppoTm2EXSH
+ INRvuXvAWxWN90xnIjdi4ITPLxrTL7q8U7M/O5FpnluX5IVlttEHY5LqwflqqrQkR4Deb4Uer0nC
+ pJdoc0nMsSB75Yz2xpPNIgIQUzJG210IVc9JsT9pw3oWbORpugUmYxFuJpKKAeG3GZijp3W7aOUN
+ XDhje6aa+drpsbSxKVZr41B/ucigtpshYaATz6sE0l8ylJvJRm1/PDPaz5saB8qBkm0Pf0U2NO/z
+ R9gaddpmYsPpO/2sKbvI7Sz7JX3fxslnq/ig5JHzTjmcv+z8l3s7zHagmpHFdFRvL+sn482Ii8ay
+ FBIYJKMVs3nKDJbJz+PUUNQX+hz4gJvPxdAy/DAZbNJsS4aez9Qv49ad7H1IfsCNbOML72Aj9nO5
+ tjE+NnuyU5jg6MFCV2NNCWURWzvDRA9oi3mkTTEnHzaFX7wJ4kG/73+aja393awqLp0EG3Upr5HF
+ 2BrWZoptzHDCtWmI/dh2MvFF3hy2qECjk6ikSB7cIeyjPsykfJ0/v1mMU2jODD0QAKov7tr7LEGm
+ todMUOrH+bVt425jI0/4dNqvr5ujBU88JgiFHy9K6KAzerw/wEK+3MvxbFtClOHCK+nkQbduQN9a
+ 1dd3V5OwZmxu/tE/wmeTrp9maqgTqhnO37/9Bz30pJSSCwAA
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab4cdbfb7f82-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Length:
+ - '948'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:01 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=rnRmkXgNSUm1NZyMHIrWeuHzWUvDiQ%2B3LPMtOwgEUhRwpIruIbFmFOn%2FCYuHYuZsrBPSPcPBEHrS0dP6gidW3K1qtLAH3kj02LzAgVhYQ0gishf6fiowg8Ntd2HPweAE"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1875'
+ X-RateLimit-Requests-Reset:
+ - '2089588'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/tags/crypto
+ response:
+ body:
+ string: !!binary |
+ H4sIALZFKGUA/3VWzW70Ngy89zFy7uELeijQV2l7oCTa5loWBYr2xlv03UtvWoDcpJcsREf8GQ2H
+ /P2vN4X57be3RJqZ2tvfP/9nmfTDnVAXFNw3ZxqwJWjrBm0SwuK+QIUNCwgOBMnL1y/OkkG4UkOs
+ lQa3GNKd9E6qKM7SJnWn/0nlQ7pPOU3+ClLLcnZln8/T0Fkhmg2cBAP9dWrQsrcUnMinLAhjl9OZ
+ 9lE0HrNPb6H0JZVRQX0QGgJYnaFzPeeA3OUHqO3ONDPP1buZuFa+7+NLPKuSfFKpQl6F8+oL5dn7
+ Euo9OL++v9BpBjnv0GaPzwIerpwCGBMWFKgXieQIuKv/N8WKs4An5gIb+Lpk+DAzNhzkv5eQhp3q
+ uXDxECd49ZkXq6Vjmx8LeJ5sVEpFe3eNRHiwp+6FjSG0+psV7zRW6BU8bBCaZVLvdqKCldTzK08B
+ HFTP98H71cWt0FCh7F1RayjZfHXD29cJslI7MJZzeGyeZBN6kYa9eEyN5758tOgJal72FkBdBVZs
+ X4AbMOEv3kqrsqfjZllmXvC7HvD+b31jmQO+/+oetPKNwn2GXxH7hgo1RBwmRqZdXmtStS652wUf
+ c9DcwtXJhISrvzcUrEbBBi8UKTh8mS9SGaKw0cZfv6Somth6mxplKYVG3QNdoBgDwF4Tyh1uvoP2
+ MegVt8NDxaufFpkkhzhqLo3yB+H9e2tm7+3gE+Yg9gUOKqGakVn1xksbcWyYPBjdPKvOIGfNS+wF
+ ZdegdyYm58gQ0r8e4yIZagY/TzrsVffCcmMTlfDqbYbO4p3coKGeFjHwFCu3bQ/vPC5tidp4qq8o
+ 5wLqsYBKlp4aNx6epGyqZePWBtWAusFLZz1nU8FuFzdsvsGXnZOPLliMGWF4iDYKYwnCtDYyJ6ES
+ poR1TLcexUUqhaWgQO9Bc7oPngQe5BvIJHE7sVAhD8HnWKSALD0gWVvfQSRgPiNPkylNMR0KDcbW
+ YDUAK2Hs7SlOrOfAfA6M8M6G18hXWPXPIQZqqy+SdEBLu2VnvKIoMbZeWX+kPWcOWDXCekeZwg6w
+ cJtXDtO12+5VQ1qbSTue02R5BSnTP/Yf7+/pdv38ivb3B777stOZwuvDYWtcy4t/3M/94uu+J3ZV
+ gqiSBCLOFcZoXOJm9RRlj1ODw580cA1q7HjbDPPVmKH92Ka15edDzzkGtQEcun6hvtFH0CHlk6/W
+ +/OnfwBvy8x+OwsAAA==
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab51fa4f3aea-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Length:
+ - '925'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:02 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=e3Dqaqp5r5QSLtOc3u6JU%2Flojktm9Cxs2q7OG2iQ7mUYcmcV1fLQREmRo1mHgULiYZT8k3YJImEts0LQADOtvl9kq1d4d3EkfmPCAly4%2BdQ%2FeBOYF4XMeTNOVjHr5T6%2B"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1874'
+ X-RateLimit-Requests-Reset:
+ - '2089587'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/tags/media
+ response:
+ body:
+ string: !!binary |
+ H4sIALdFKGUA/21WS7LcNgzc5xhvnYUr5Y19FScLkIREjEhCBZIja1K5u6EX2wXMm6UgEr/uBvjt
+ 37cB69vXN+oCWN7++/OXIUOFbr4rJgIaaI9wKefBnIztfz9kLA3HUui7sYyMh8BuLCs8wB6gbfBm
+ DDsIVJ5tfIxkcxxwFpZ+0GIPaiEPbs5bwT6oEVjrAdJQgnBP1CPfUU7z94YH9ey8RhtZZrUFdVhh
+ GWKLQoE+eIotW6uqNkriBiU9O3Nla3IN7Z1x0Bho3R6rjdtCnI20nA4WXyzc6uzbKzwFdxbv8w5C
+ OM7XXbQYzE2AmqVJwHaDSk2JAO2EPG0X973gSxBsyXCn9IBe4G7xFwffyrw6V1D3YbsYqJTAIJat
+ lVIqiAqMh9oTf9h2am9mKBR91U37pYpBuX68ZuQL/AOrxR3H1JXqLbn6F3VBySaRQe6+kobHybJF
+ chgV4tZXeFYtR5iu5PcECW3QS5J9CNkWQoLaNbviqPGLCL75UVUOQ5zPjI+gHAOrowJ61UtANQBN
+ wbSVdF6oD0g0q4UK4hbnqKxxIg9bUqOolSppzpbyFI8w1RtLckgFPLnFv+enT/jFFhKszGNG1ZEj
+ kDLbfG9YOp7vunY9qgqYG6+XnCq06Yy3WUgHxyWBZ3Dsd+ZjULXtXkXn1YvxY1OV8JqX9oxiq/Vt
+ SMNCFMFyD/767CgcaHXprsiykr1BA4qftX3nQcvpGnenVmME1ZG1H0qtAG1zVGj2xAKl8JJ5duRl
+ 9ux791FNeZbpWnfNYCc3Lps2x/ZzZEKRMwh6vfaBd2Weltft8UU7rxeixvao1EOwxfxUnwqoBgRn
+ L6g0sHdVTMPNt0p7ZCuGIPAgS6ePKsK+O61hZU3SbVWrd10RayHPrLmjVAemvhM2nVvUPA/aYnMJ
+ KMXpvOJ3ivwBCNANkNw+cdNXI2dthIv/s9sOLrcOWUpSt2SFesPedSGuE0nYlXx3rpZgb1F37w2Z
+ vXtix6Db2a0PxSj6/ZKDDXib1+xUPV8dgs3zZUydUmejNY8nHESnHbbBFQYrhexiXBR31X9zp924
+ UMUM5gNLcWSAVPwU//3sWgsH93qIgrhbZikGWXfUKEBuzqAubbLZaXubRVRDKnscNeii7dO7MmbR
+ 9xeIOADercNDsIvORn0wIDveqPB0TfjrGlvbC9fUoWaP6xJvbnMFCvTy/RJBRWQb8c7rK6F//vgB
+ Wc8DbF0LAAA=
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab57dc8c5908-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Length:
+ - '920'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:03 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=FR2vOJsQLajCOGMFOiCtwx6NNHE9OKdBibXL4FX0revGUqc8ptf5%2F%2Fvl%2FmYenY9DXz8efXibdJYNSeUAJ6p06UeTPMrrVtZ4wJuxXtYmoP%2FxrZzZiX7keYq6Pg6pzBDb"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1873'
+ X-RateLimit-Requests-Reset:
+ - '2089586'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/tags/hot
+ response:
+ body:
+ string: '[]
+
+ '
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab5d8aae5a76-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '3'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:04 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=bQ6cqc0YVqRnkRMSrTTMzk%2FNIz1%2BFAGxwpZERmYvJUPlKiU2RJqleXwo2w31kZrjrWz0o1OSk5meieC2k7BTcWtautNimewP9oTNnK7bz32eeAqzdoJOcpMFx8RiIi7y"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1872'
+ X-RateLimit-Requests-Reset:
+ - '2089585'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/tags/wire
+ response:
+ body:
+ string: '[]
+
+ '
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab62fa2f20b1-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Length:
+ - '3'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:04 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=vCyGCo%2BtVBvQbSrnvFBwspJ0rD%2B5pMwtvo%2FXxDBem172KaO0SPsM5hvOLvUoCE55stmHF56KA4oJETMe2DsSo1Eojg2J0kcKQ4gdgm9EOUcf6oRKS%2BKG4O2wWB7uBiCl"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1871'
+ X-RateLimit-Requests-Reset:
+ - '2089585'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/sources
+ response:
+ body:
+ string: !!binary |
+ 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
+ A9T++af/ANZGFa71KwAA
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab68b8ea56c8-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Length:
+ - '2694'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:05 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=350bGZmVsCpjN90SzQ6k1Xiv03365SzQGR435xb7EWrCnAuFUlh4Cbi8YKb3EB1YPKsqfdPPygSPmv1GpSTiv3zJnDJ6yXTz0zZU9MdqB7AJ1QOzrmC%2FZMTiqpqY6MjI"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1870'
+ X-RateLimit-Requests-Reset:
+ - '2089584'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ X-RapidAPI-Host:
+ - biztoc.p.rapidapi.com
+ X-RapidAPI-Key:
+ - MOCK_API_KEY
+ method: GET
+ uri: https://biztoc.p.rapidapi.com/search?q=earnings
+ response:
+ body:
+ string: !!binary |
+ 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
+ 60D0DevINeucetb/7X/9H3LN8tMBuwAA
+ headers:
+ CF-Cache-Status:
+ - DYNAMIC
+ CF-RAY:
+ - 8151ab6dbf203b95-IAD
+ Cache-Control:
+ - no-store, no-cache, must-revalidate, max-age=0
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Length:
+ - '16212'
+ Content-Type:
+ - application/json
+ Date:
+ - Thu, 12 Oct 2023 19:15:06 GMT
+ NEL:
+ - '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
+ Report-To:
+ - '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=1YVn%2F0KK4QH5kYoRJvlrbCjxWiwQU%2BOSS4oCrB4AecLfZrIkX4ar53CFbJfcA1UPJZwPdW8GmQ32WKMnAbv3XEhF06Suc54w7woZhRMCyDQTbKRlXRJJJhkZdnqK19JK"}],"group":"cf-nel","max_age":604800}'
+ Server:
+ - RapidAPI-1.2.8
+ X-RapidAPI-Region:
+ - AWS - us-east-1
+ X-RapidAPI-Version:
+ - 1.2.8
+ X-RateLimit-Requests-Limit:
+ - '2000'
+ X-RateLimit-Requests-Remaining:
+ - '1869'
+ X-RateLimit-Requests-Reset:
+ - '2089583'
+ alt-svc:
+ - h3=":443"; ma=86400
+ permissions-policy:
+ - browsing-topics=()
+ referrer-policy:
+ - strict-origin-when-cross-origin
+ strict-transport-security:
+ - max-age=31556926; includeSubDomains
+ vary:
+ - Accept-Encoding, Cookie
+ x-content-type-options:
+ - nosniff
+ x-midashi-app:
+ - '1'
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/openbb_platform/providers/biztoc/tests/test_biztoc_fetchers.py b/openbb_platform/providers/biztoc/tests/test_biztoc_fetchers.py
new file mode 100644
index 000000000000..a639a0124729
--- /dev/null
+++ b/openbb_platform/providers/biztoc/tests/test_biztoc_fetchers.py
@@ -0,0 +1,24 @@
+import pytest
+from openbb_biztoc.models.global_news import BiztocGlobalNewsFetcher
+from openbb_core.app.service.user_service import UserService
+
+test_credentials = UserService().default_user_settings.credentials.dict()
+
+
+@pytest.fixture(scope="module")
+def vcr_config():
+ return {
+ "filter_headers": [("User-Agent", None), ("X-RapidAPI-Key", "MOCK_API_KEY")],
+ "filter_query_parameters": [
+ ("apikey", "MOCK_API_KEY"),
+ ],
+ }
+
+
+@pytest.mark.record_http
+def test_biztoc_global_news_fetcher(credentials=test_credentials):
+ params = {"term": "earnings"}
+
+ fetcher = BiztocGlobalNewsFetcher()
+ result = fetcher.test(params, credentials)
+ assert result is None
diff --git a/openbb_platform/pyproject.toml b/openbb_platform/pyproject.toml
index 84c505bf5f0a..aeec29a75811 100644
--- a/openbb_platform/pyproject.toml
+++ b/openbb_platform/pyproject.toml
@@ -26,6 +26,7 @@ openbb-stocks = "^0.1.0a3"
# Community dependencies
openbb-alpha-vantage = { version = "^0.1.0a3", optional = true }
+openbb-biztoc = { version = "^0.1.0a3", optional = true }
openbb-cboe = { version = "^0.1.0a3", optional = true }
openbb-quandl = { version = "^0.1.0a3", optional = true }
openbb-yfinance = { version = "^0.1.0a3", optional = true }
@@ -39,10 +40,10 @@ openbb-econometrics = { version = "^0.1.0a3", optional = true }
[tool.poetry.extras]
alpha_vantage = ["openbb-alpha-vantage"]
+biztoc = ["openbb-biztoc"]
cboe = ["openbb-cboe"]
quandl = ["openbb-quandl"]
yfinance = ["openbb-yfinance"]
-oecd = ["openbb-oecd"]
charting = ["openbb-charting"]
futures = ["openbb-futures"]
qa = ["openbb-qa"]
@@ -51,10 +52,10 @@ econometrics = ["openbb-econometrics"]
all = [
"openbb-alpha-vantage",
+ "openbb-biztoc",
"openbb-cboe",
"openbb-quandl",
"openbb-yfinance",
- "openbb-oecd",
"openbb-charting",
"openbb-futures",
"openbb-qa",
From 7c7b4cae98b8d5c837adc08b6d8fbbedbd0220e3 Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Thu, 19 Oct 2023 23:19:43 +0200
Subject: [PATCH 02/23] Add Biztoc to workflow
---
.github/workflows/platform-api-integration-test.yml | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/.github/workflows/platform-api-integration-test.yml b/.github/workflows/platform-api-integration-test.yml
index e8a00dd5de30..def45202ec60 100644
--- a/.github/workflows/platform-api-integration-test.yml
+++ b/.github/workflows/platform-api-integration-test.yml
@@ -57,6 +57,7 @@ jobs:
./openbb_platform/providers/quandl \
./openbb_platform/providers/yfinance \
./openbb_platform/providers/oecd \
+ ./openbb_platform/providers/biztoc \
./openbb_platform/extensions/charting \
./openbb_platform/extensions/futures \
./openbb_platform/extensions/qa \
@@ -90,7 +91,8 @@ jobs:
"fred_api_key": "${{ secrets.FRED_API_KEY }}",
"intrinio_api_key": "${{ secrets.INTRINIO_API_KEY }}",
"tradingeconomics_api_key": "${{ secrets.TRADINGECONOMICS_API_KEY }}",
- "quandl_api_key": "${{ secrets.QUANDL_API_KEY }}"
+ "quandl_api_key": "${{ secrets.QUANDL_API_KEY }}",
+ "biztoc_api_key": "${{ secrets.BIZTOC_API_KEY }}"
}
}' > ~/.openbb_platform/user_settings.json
From 494a3fd6c2fc33e9ae5741ab2222e33f5df19645 Mon Sep 17 00:00:00 2001
From: Diogo Sousa
Date: Fri, 20 Oct 2023 10:32:30 +0100
Subject: [PATCH 03/23] update readme: credentials
---
openbb_platform/platform/core/README.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/openbb_platform/platform/core/README.md b/openbb_platform/platform/core/README.md
index 0ff751bba5f4..0ff023cd4a33 100644
--- a/openbb_platform/platform/core/README.md
+++ b/openbb_platform/platform/core/README.md
@@ -313,6 +313,8 @@ obb.account.refresh()
obb.account.logout()
```
+> Note: credentials are stored as Pydantic `SecretStr` objects. This means that they will be masked when printed or displayed in a Jupyter Notebook. To get the actual value, use `obb.user.credentials.polygon_api_key.get_secret_value()`.
+
### 4.1.4. Command execution
How do we execute commands?
From 914572f351aa4133a665f0b268e55be249e96432 Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Fri, 20 Oct 2023 13:29:05 +0200
Subject: [PATCH 04/23] Add Preferences to README
---
openbb_platform/platform/core/README.md | 30 +++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)
diff --git a/openbb_platform/platform/core/README.md b/openbb_platform/platform/core/README.md
index 0ff023cd4a33..12c2df0de916 100644
--- a/openbb_platform/platform/core/README.md
+++ b/openbb_platform/platform/core/README.md
@@ -17,6 +17,7 @@
- [4.1.2. Utilities](#412-utilities)
- [User settings](#user-settings)
- [System settings](#system-settings)
+ - [Preferences](#preferences)
- [Coverage](#coverage)
- [4.1.3. OpenBB Hub Account](#413-openbb-hub-account)
- [4.1.4. Command execution](#414-command-execution)
@@ -26,8 +27,8 @@
- [5.1 HTTPS](#51-https)
- [5.2 Docker](#52-docker)
- [5.3 Authentication](#53-authentication)
- - [5.3.1 HTTP Basic Auth](#531-http-basic-auth)
- - [5.3.2 Custom authentication](#532-custom-authentication)
+ - [5.3.1 HTTP Basic Auth](#531-http-basic-auth)
+ - [5.3.2 Custom authentication](#532-custom-authentication)
- [6. Front-end typing](#6-front-end-typing)
## 1. Introduction
@@ -258,6 +259,31 @@ from openbb import obb
obb.system
```
+#### Preferences
+
+Check your preferences by adjusting the `user_settings.json` file inside your home directory.
+
+The default preferences are:
+
+```json
+{
+ "data_directory": "~/.openbb_platform", // Where to store data
+ "export_directory": "~/.openbb_platform/exports", // Where to store exports
+ "user_styles_directory": "~/.openbb_platform/styles/user", // Where to store user styles
+ "charting_extension": "openbb_charting", // Charting extension to use
+ "chart_style": "dark", // Chart style to use (dark or light)
+ "plot_enable_pywry": true, // Whether to enable PyWry
+ "plot_pywry_width": 1400, // PyWry width
+ "plot_pywry_height": 762, // PyWry height
+ "plot_open_export": false, // Whether to open plot image exports after they are created
+ "table_style": "dark", // Table style to use (dark or light)
+ "request_timeout": 15, // Request timeout
+ "metadata": true, // Whether to include metadata in the output
+ "output_type": "OBBject" // Our default output type (OBBject, dataframe, polars, numpy, dict, chart)
+}
+
+```
+
#### Coverage
Obtain the coverage of providers and commands.
From 6a921e487ce05a7dd165e53ad54f227eedddf772 Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Fri, 20 Oct 2023 14:45:36 +0200
Subject: [PATCH 05/23] improve tests
---
.../extensions/news/integration/test_news_api.py | 10 +++++++++-
.../extensions/news/integration/test_news_python.py | 10 +++++++++-
.../biztoc/openbb_biztoc/models/global_news.py | 1 -
3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/openbb_platform/extensions/news/integration/test_news_api.py b/openbb_platform/extensions/news/integration/test_news_api.py
index 2389e68f5096..99741924dd59 100644
--- a/openbb_platform/extensions/news/integration/test_news_api.py
+++ b/openbb_platform/extensions/news/integration/test_news_api.py
@@ -44,7 +44,15 @@ def headers():
"limit": 20,
}
),
- ({"provider": "biztoc", "filter": "tag", "tag": "federalreserve"}),
+ (
+ {
+ "provider": "biztoc",
+ "filter": "tag",
+ "tag": "federalreserve",
+ "source": "bloomberg",
+ "term": "MSFT",
+ }
+ ),
],
)
@pytest.mark.integration
diff --git a/openbb_platform/extensions/news/integration/test_news_python.py b/openbb_platform/extensions/news/integration/test_news_python.py
index 65de5ba1a931..cd8754a339c7 100644
--- a/openbb_platform/extensions/news/integration/test_news_python.py
+++ b/openbb_platform/extensions/news/integration/test_news_python.py
@@ -50,7 +50,15 @@ def obb(pytestconfig):
"limit": 20,
}
),
- ({"provider": "biztoc", "filter": "tag", "tag": "federalreserve"}),
+ (
+ {
+ "provider": "biztoc",
+ "filter": "tag",
+ "tag": "federalreserve",
+ "source": "bloomberg",
+ "term": "MSFT",
+ }
+ ),
],
)
@pytest.mark.integration
diff --git a/openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py b/openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py
index 0895eafb8140..392518c5c244 100644
--- a/openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py
+++ b/openbb_platform/providers/biztoc/openbb_biztoc/models/global_news.py
@@ -75,7 +75,6 @@ def extract_data(
**kwargs: Any,
) -> List[Dict]:
"""Extract the data from the Biztoc endpoint."""
-
api_key = credentials.get("biztoc_api_key") if credentials else ""
data = get_news(
From ea5fda0457551aabb6a307ca7a9ff0d4719ec4e1 Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Fri, 20 Oct 2023 14:55:10 +0200
Subject: [PATCH 06/23] fix biztoc
---
openbb_platform/providers/biztoc/pyproject.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openbb_platform/providers/biztoc/pyproject.toml b/openbb_platform/providers/biztoc/pyproject.toml
index bfcfc05bc14b..1e8aa3ff51d2 100644
--- a/openbb_platform/providers/biztoc/pyproject.toml
+++ b/openbb_platform/providers/biztoc/pyproject.toml
@@ -16,4 +16,4 @@ requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.plugins."openbb_provider_extension"]
-cboe = "openbb_biztoc:biztoc_provider"
+biztoc = "openbb_biztoc:biztoc_provider"
From c9199d83f36936d011ba08f151ec9c96eac662ae Mon Sep 17 00:00:00 2001
From: Diogo Sousa
Date: Fri, 20 Oct 2023 22:20:18 +0100
Subject: [PATCH 07/23] obbject pylint
---
.../core/openbb_core/app/model/obbject.py | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
diff --git a/openbb_platform/platform/core/openbb_core/app/model/obbject.py b/openbb_platform/platform/core/openbb_core/app/model/obbject.py
index aae91d18ddc4..1296d4faca11 100644
--- a/openbb_platform/platform/core/openbb_core/app/model/obbject.py
+++ b/openbb_platform/platform/core/openbb_core/app/model/obbject.py
@@ -1,6 +1,6 @@
"""The OBBject."""
from re import sub
-from typing import Any, Dict, Generic, List, Literal, Optional, TypeVar
+from typing import TYPE_CHECKING, Any, Dict, Generic, List, Literal, Optional, TypeVar
import pandas as pd
from numpy import ndarray
@@ -14,10 +14,11 @@
from openbb_core.app.provider_interface import ProviderInterface
from openbb_core.app.utils import basemodel_to_df
-try:
- from polars import DataFrame as PolarsDataFrame # type: ignore
-except ImportError:
- PolarsDataFrame = Any
+if TYPE_CHECKING:
+ try:
+ from polars import DataFrame as PolarsDataFrame
+ except ImportError:
+ PolarsDataFrame = None
T = TypeVar("T")
PROVIDERS = Literal[tuple(ProviderInterface().available_providers)] # type: ignore
@@ -168,14 +169,14 @@ def is_list_of_basemodel(items: List[Any]) -> bool:
return df
- def to_polars(self) -> PolarsDataFrame:
+ def to_polars(self) -> "PolarsDataFrame":
"""Convert results field to polars dataframe."""
try:
- from polars import from_pandas # type: ignore
- except ImportError:
+ from polars import from_pandas # pylint: disable=import-outside-toplevel
+ except ImportError as exc:
raise ImportError(
"Please install polars: `pip install polars` to use this function."
- )
+ ) from exc
return from_pandas(self.to_dataframe().reset_index())
From 90eeabf82c747e3186f57714d4d7a1a750d77b77 Mon Sep 17 00:00:00 2001
From: Henrique Joaquim
Date: Fri, 20 Oct 2023 22:33:54 +0100
Subject: [PATCH 08/23] updating ultima urls (#5587)
---
openbb_terminal/keys_controller.py | 2 +-
openbb_terminal/miscellaneous/models/all_api_keys.json | 2 +-
website/content/terminal/usage/guides/api-keys.md | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/openbb_terminal/keys_controller.py b/openbb_terminal/keys_controller.py
index b9d810230281..4b88c10b758c 100644
--- a/openbb_terminal/keys_controller.py
+++ b/openbb_terminal/keys_controller.py
@@ -1242,7 +1242,7 @@ def call_ultima(self, other_args: List[str]):
help="key",
)
if not other_args:
- console.print("For your API Key, https://ultimainsights.ai/")
+ console.print("For your API Key, https://ultimainsights.ai/openbb")
return
if other_args and "-" not in other_args[0][0]:
diff --git a/openbb_terminal/miscellaneous/models/all_api_keys.json b/openbb_terminal/miscellaneous/models/all_api_keys.json
index 58670f75cd44..a3672fe8c863 100644
--- a/openbb_terminal/miscellaneous/models/all_api_keys.json
+++ b/openbb_terminal/miscellaneous/models/all_api_keys.json
@@ -3,7 +3,7 @@
"name": "API_ULTIMA_KEY",
"source": "Ultima Insights",
"link": "https://www.ultimainsights.ai/",
- "markdown": "Go to: https://ultimainsights.ai/\n\n\n\nClick on, \"Get Started\", to start the sign-up process. After the account has been setup, navigate to [Generate API Key](https://beta.ultimainsights.ai/my-account/generate-api-key) and click \"Generate Key\"."
+ "markdown": "Go to: https://ultimainsights.ai/openbb\n\n\n\nClick on, \"Get Started\", to start the sign-up process. After the account has been setup, navigate to [Generate API Key](https://beta.ultimainsights.ai/my-account/generate-api-key) and click \"Generate Key\"."
},
{
"name": "API_KEY_ALPHAVANTAGE",
diff --git a/website/content/terminal/usage/guides/api-keys.md b/website/content/terminal/usage/guides/api-keys.md
index 8de80ae7c96a..173fa77f4894 100644
--- a/website/content/terminal/usage/guides/api-keys.md
+++ b/website/content/terminal/usage/guides/api-keys.md
@@ -831,11 +831,11 @@ Click on, "Open Account", to start the sign-up process. After the account has be
Instructions
-Go to: https://ultimainsights.ai/
+Go to: https://ultimainsights.ai/openbb

-Click on, "Get Started", to start the sign-up process. After the account has been setup, navigate to [Generate API Key](https://beta.ultimainsights.ai/my-account/generate-api-key) and click "Generate Key". Copy the API key to the clipboard, and enter this key into the OpenBB Terminal with:
+Click on, "Get Started", to start the sign-up process. After the account has been setup, navigate to [Generate API Key](https://ultimainsights.ai/openbb) and click "Generate Key". Copy the API key to the clipboard, and enter this key into the OpenBB Terminal with:
```console
/keys/ultima REPLACE_WITH_KEY
From 6952dd12e7aeabb8205441c1e5d3f1be2dfbbeca Mon Sep 17 00:00:00 2001
From: Diogo Sousa
Date: Sun, 22 Oct 2023 17:34:28 +0100
Subject: [PATCH 09/23] Bug fix: serializ SecretStr before dumping to json
---
.../core/openbb_core/app/model/credentials.py | 24 ++++++++++++++++---
.../openbb_core/app/model/hub/hub_session.py | 6 ++++-
.../core/openbb_core/app/static/account.py | 2 +-
3 files changed, 27 insertions(+), 5 deletions(-)
diff --git a/openbb_platform/platform/core/openbb_core/app/model/credentials.py b/openbb_platform/platform/core/openbb_core/app/model/credentials.py
index 9755a024b1e9..d8d0132fa394 100644
--- a/openbb_platform/platform/core/openbb_core/app/model/credentials.py
+++ b/openbb_platform/platform/core/openbb_core/app/model/credentials.py
@@ -1,6 +1,6 @@
from typing import Dict, List, Optional, Tuple
-from pydantic import ConfigDict, SecretStr, create_model
+from pydantic import ConfigDict, SecretStr, create_model, field_serializer
from openbb_core.app.provider_interface import ProviderInterface
@@ -20,13 +20,31 @@ def format_map(
return formatted
-Credentials = create_model( # type: ignore
+provider_credentials = ProviderInterface().required_credentials
+
+_Credentials = create_model( # type: ignore
"Credentials",
__config__=ConfigDict(validate_assignment=True),
- **format_map(ProviderInterface().required_credentials),
+ **format_map(provider_credentials),
)
+class Credentials(_Credentials):
+ """Credentials model used to store provider credentials"""
+
+ @field_serializer(*provider_credentials, when_used="json-unless-none")
+ def _dump_secret(self, v):
+ return v.get_secret_value()
+
+ def show(self):
+ """Unmask credentials and print them"""
+ print( # noqa: T201
+ self.__class__.__name__
+ + "\n\n"
+ + "\n".join([f"{k}: {v}" for k, v in self.model_dump(mode="json").items()])
+ )
+
+
def __repr__(self: Credentials) -> str:
return (
self.__class__.__name__
diff --git a/openbb_platform/platform/core/openbb_core/app/model/hub/hub_session.py b/openbb_platform/platform/core/openbb_core/app/model/hub/hub_session.py
index 6616b1ddb566..fb0142eafc18 100644
--- a/openbb_platform/platform/core/openbb_core/app/model/hub/hub_session.py
+++ b/openbb_platform/platform/core/openbb_core/app/model/hub/hub_session.py
@@ -1,6 +1,6 @@
from typing import Optional
-from pydantic import BaseModel, SecretStr
+from pydantic import BaseModel, SecretStr, field_serializer
class HubSession(BaseModel):
@@ -15,3 +15,7 @@ def __repr__(self) -> str:
return f"{self.__class__.__name__}\n\n" + "\n".join(
f"{k}: {v}" for k, v in self.model_dump().items()
)
+
+ @field_serializer("access_token", when_used="json-unless-none")
+ def _dump_secret(self, v):
+ return v.get_secret_value()
diff --git a/openbb_platform/platform/core/openbb_core/app/static/account.py b/openbb_platform/platform/core/openbb_core/app/static/account.py
index 185bf5fab04a..f6d605bdd2d7 100644
--- a/openbb_platform/platform/core/openbb_core/app/static/account.py
+++ b/openbb_platform/platform/core/openbb_core/app/static/account.py
@@ -117,7 +117,7 @@ def login(
if not hs.session:
raise OpenBBError("Not connected to hub.")
- json.dump(hs.session.model_dump(), f, indent=4)
+ json.dump(hs.session.model_dump(mode="json"), f, indent=4)
return self._base_app._command_runner.user_settings
From 58b5e6915bcdcaf8f782551a67f2fb46d4af4125 Mon Sep 17 00:00:00 2001
From: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Date: Mon, 23 Oct 2023 11:05:08 +0100
Subject: [PATCH 10/23] export credentials as json (#5592)
---
.../alpha_vantage/tests/test_alpha_vantage_fetchers.py | 4 +++-
.../providers/benzinga/tests/test_benzinga_fetchers.py | 4 +++-
openbb_platform/providers/cboe/tests/test_cboe_fetchers.py | 4 +++-
openbb_platform/providers/fmp/tests/test_fmp_fetchers.py | 4 +++-
openbb_platform/providers/fred/tests/test_fred_fetchers.py | 4 +++-
.../providers/intrinio/tests/test_intrinio_fetchers.py | 4 +++-
openbb_platform/providers/oecd/tests/test_oecd_fetchers.py | 4 +++-
.../providers/polygon/tests/test_polygon_fetchers.py | 4 +++-
.../providers/quandl/tests/test_quandl_fetchers.py | 4 +++-
openbb_platform/providers/tests/utils/unit_tests_generator.py | 2 +-
.../tradingeconomics/tests/test_tradingeconomics_fetchers.py | 4 +++-
.../providers/yfinance/tests/test_yfinance_fetchers.py | 4 +++-
12 files changed, 34 insertions(+), 12 deletions(-)
diff --git a/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py b/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py
index d1d65e00177e..261b8b2d9b3b 100644
--- a/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py
+++ b/openbb_platform/providers/alpha_vantage/tests/test_alpha_vantage_fetchers.py
@@ -4,7 +4,9 @@
from openbb_alpha_vantage.models.stock_historical import AVStockHistoricalFetcher
from openbb_core.app.service.user_service import UserService
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/benzinga/tests/test_benzinga_fetchers.py b/openbb_platform/providers/benzinga/tests/test_benzinga_fetchers.py
index d47a4d0548e5..a3f7914762f7 100644
--- a/openbb_platform/providers/benzinga/tests/test_benzinga_fetchers.py
+++ b/openbb_platform/providers/benzinga/tests/test_benzinga_fetchers.py
@@ -3,7 +3,9 @@
from openbb_benzinga.models.stock_news import BenzingaStockNewsFetcher
from openbb_core.app.service.user_service import UserService
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/cboe/tests/test_cboe_fetchers.py b/openbb_platform/providers/cboe/tests/test_cboe_fetchers.py
index 6993fcc31816..277dc6960d41 100644
--- a/openbb_platform/providers/cboe/tests/test_cboe_fetchers.py
+++ b/openbb_platform/providers/cboe/tests/test_cboe_fetchers.py
@@ -20,7 +20,9 @@
from openbb_cboe.models.stock_search import CboeStockSearchFetcher
from openbb_core.app.service.user_service import UserService
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py b/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py
index be931874f96e..f2d49a87ed02 100644
--- a/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py
+++ b/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py
@@ -47,7 +47,9 @@
from openbb_fmp.models.stock_splits import FMPStockSplitCalendarFetcher
from openbb_fmp.models.treasury_rates import FMPTreasuryRatesFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/fred/tests/test_fred_fetchers.py b/openbb_platform/providers/fred/tests/test_fred_fetchers.py
index c9e8b34c0ebb..91698ce80866 100644
--- a/openbb_platform/providers/fred/tests/test_fred_fetchers.py
+++ b/openbb_platform/providers/fred/tests/test_fred_fetchers.py
@@ -10,7 +10,9 @@
from openbb_fred.models.sonia_rates import FREDSONIAFetcher
from openbb_fred.models.us_yield_curve import FREDYieldCurveFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/intrinio/tests/test_intrinio_fetchers.py b/openbb_platform/providers/intrinio/tests/test_intrinio_fetchers.py
index 1864cf22ef1b..5ea472460fdd 100644
--- a/openbb_platform/providers/intrinio/tests/test_intrinio_fetchers.py
+++ b/openbb_platform/providers/intrinio/tests/test_intrinio_fetchers.py
@@ -13,7 +13,9 @@
from openbb_intrinio.models.stock_news import IntrinioStockNewsFetcher
from openbb_intrinio.models.stock_quote import IntrinioStockQuoteFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/oecd/tests/test_oecd_fetchers.py b/openbb_platform/providers/oecd/tests/test_oecd_fetchers.py
index dd51dd994eb4..be53b64f05dc 100644
--- a/openbb_platform/providers/oecd/tests/test_oecd_fetchers.py
+++ b/openbb_platform/providers/oecd/tests/test_oecd_fetchers.py
@@ -6,7 +6,9 @@
from openbb_oecd.models.gdpnom import OECDGDPNomFetcher
from openbb_oecd.models.gdpreal import OECDGDPRealFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/polygon/tests/test_polygon_fetchers.py b/openbb_platform/providers/polygon/tests/test_polygon_fetchers.py
index 966078c6e3ed..bc9d80711701 100644
--- a/openbb_platform/providers/polygon/tests/test_polygon_fetchers.py
+++ b/openbb_platform/providers/polygon/tests/test_polygon_fetchers.py
@@ -14,7 +14,9 @@
from openbb_polygon.models.stock_historical import PolygonStockHistoricalFetcher
from openbb_polygon.models.stock_news import PolygonStockNewsFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/quandl/tests/test_quandl_fetchers.py b/openbb_platform/providers/quandl/tests/test_quandl_fetchers.py
index ffc902502484..a15e2adfe71b 100644
--- a/openbb_platform/providers/quandl/tests/test_quandl_fetchers.py
+++ b/openbb_platform/providers/quandl/tests/test_quandl_fetchers.py
@@ -4,7 +4,9 @@
from openbb_quandl.models.cot_search import QuandlCotSearchFetcher
from openbb_quandl.models.sp500_multiples import QuandlSP500MultiplesFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/tests/utils/unit_tests_generator.py b/openbb_platform/providers/tests/utils/unit_tests_generator.py
index c97f3a8d73df..a21c688c960b 100644
--- a/openbb_platform/providers/tests/utils/unit_tests_generator.py
+++ b/openbb_platform/providers/tests/utils/unit_tests_generator.py
@@ -85,7 +85,7 @@ def write_test_credentials(path: str, provider: str) -> None:
)
template = """
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(mode="json")
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/tradingeconomics/tests/test_tradingeconomics_fetchers.py b/openbb_platform/providers/tradingeconomics/tests/test_tradingeconomics_fetchers.py
index 3bf2beccb671..7110cad4acf1 100644
--- a/openbb_platform/providers/tradingeconomics/tests/test_tradingeconomics_fetchers.py
+++ b/openbb_platform/providers/tradingeconomics/tests/test_tradingeconomics_fetchers.py
@@ -4,7 +4,9 @@
from openbb_core.app.service.user_service import UserService
from openbb_tradingeconomics.models.economic_calendar import TEEarningsCalendarFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
diff --git a/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py b/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py
index 4f4e877e5376..2a61f93224f0 100644
--- a/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py
+++ b/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py
@@ -16,7 +16,9 @@
from openbb_yfinance.models.stock_historical import YFinanceStockHistoricalFetcher
from openbb_yfinance.models.stock_news import YFinanceStockNewsFetcher
-test_credentials = UserService().default_user_settings.credentials.model_dump()
+test_credentials = UserService().default_user_settings.credentials.model_dump(
+ mode="json"
+)
@pytest.fixture(scope="module")
From 5d9d71ec856fa4299de732dba7f4ce9a9c328fbb Mon Sep 17 00:00:00 2001
From: Abhishek Amar <66067391+abhishek-amar@users.noreply.github.com>
Date: Tue, 24 Oct 2023 00:04:12 +0530
Subject: [PATCH 11/23] fix: A value is trying to be set on a copy of a slice
from a DataFrame #5582 (#5591)
---
openbb_terminal/stocks/fundamental_analysis/fmp_model.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/openbb_terminal/stocks/fundamental_analysis/fmp_model.py b/openbb_terminal/stocks/fundamental_analysis/fmp_model.py
index 6406c072b320..bbec51931d90 100644
--- a/openbb_terminal/stocks/fundamental_analysis/fmp_model.py
+++ b/openbb_terminal/stocks/fundamental_analysis/fmp_model.py
@@ -647,7 +647,7 @@ def clean_metrics_df(data: pd.DataFrame, num: int, mask: bool = False) -> pd.Dat
"""
# iloc will fail if number is greater than number of columns
num = min(num, data.shape[1])
- data = data.iloc[:, 0:num]
+ data = data.iloc[:, 0:num].copy()
if mask:
data = data.mask(data.astype(object).eq(num * ["None"])).dropna()
From b4db72f5e856e378ee662015868225ca0f4abc8d Mon Sep 17 00:00:00 2001
From: DidierRLopes
Date: Mon, 23 Oct 2023 17:08:07 -0700
Subject: [PATCH 12/23] Update README.md (#5598)
---
README.md | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/README.md b/README.md
index d4618e4c529c..598a545fd634 100644
--- a/README.md
+++ b/README.md
@@ -12,32 +12,35 @@
-OpenBB is committed to building the future of investment research by focusing on an open-source infrastructure accessible to everyone, everywhere.
+The first financial terminal that is free and fully open source. With over 600 commands, the terminal has access to equity, options, crypto, forex, macro economy, fixed income, alternative datasets, and more.
-
+Sign up to the [OpenBB Hub](https://my.openbb.co/login) to use our Windows or MacOS installers to get started.
+
+
+ Getting started with the OpenBB Terminal
+
+
-
+
-
Click on the GIF above for a DEMO
-
- ≪ GETTING STARTED
+ ≪ INSTALL
  ·  
-
- CONTRIBUTING
+
+ DATA
  ·  
-
- DOCUMENTATION
+
+ SEE FEATURES
  ·  
-
- SEE FEATURES »
+
+ CONTRIBUTING »
From 88b49d5c8e219d28d78838759e7e7a97fbe572f4 Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Tue, 24 Oct 2023 10:47:26 +0200
Subject: [PATCH 13/23] Check for wrong, changed, or outdated params. (#5597)
---
.../stocks/integration/test_stocks_api.py | 2 -
.../stocks/integration/test_stocks_python.py | 4 +-
.../tests/test_integration_tests_api.py | 7 +-
.../tests/test_integration_tests_python.py | 7 +-
.../tests/utils/integration_tests_testers.py | 72 +++++++++++++++++++
5 files changed, 85 insertions(+), 7 deletions(-)
diff --git a/openbb_platform/extensions/stocks/integration/test_stocks_api.py b/openbb_platform/extensions/stocks/integration/test_stocks_api.py
index ad0545c03aba..1469edc6af23 100644
--- a/openbb_platform/extensions/stocks/integration/test_stocks_api.py
+++ b/openbb_platform/extensions/stocks/integration/test_stocks_api.py
@@ -377,8 +377,6 @@ def test_stocks_fa_income_growth(params, headers):
{
"symbol": "AAPL",
"transactionType": "P-Purchase",
- "reportingCik": 3571,
- "companyCik": 3571,
"page": 1,
"provider": "fmp",
}
diff --git a/openbb_platform/extensions/stocks/integration/test_stocks_python.py b/openbb_platform/extensions/stocks/integration/test_stocks_python.py
index 045216b29c2c..9ce6bdb186d1 100644
--- a/openbb_platform/extensions/stocks/integration/test_stocks_python.py
+++ b/openbb_platform/extensions/stocks/integration/test_stocks_python.py
@@ -364,9 +364,7 @@ def test_stocks_fa_income_growth(params, obb):
(
{
"symbol": "AAPL",
- "transactionType": ["P-Purchase"],
- "reportingCik": 1,
- "companyCik": 1,
+ "transactionType": "P-Purchase",
"page": 1,
}
),
diff --git a/openbb_platform/extensions/tests/test_integration_tests_api.py b/openbb_platform/extensions/tests/test_integration_tests_api.py
index b85d0892bf28..e1022c812182 100644
--- a/openbb_platform/extensions/tests/test_integration_tests_api.py
+++ b/openbb_platform/extensions/tests/test_integration_tests_api.py
@@ -4,6 +4,7 @@
from extensions.tests.utils.integration_tests_testers import (
check_missing_integration_test_params,
check_missing_integration_test_providers,
+ check_wrong_integration_test_params,
get_integration_tests,
get_module_functions,
)
@@ -28,9 +29,13 @@ def test_api_interface_integration_test_params() -> None:
run_test("api", check_missing_integration_test_params)
+def test_api_interface_wrong_integration_test_params() -> None:
+ """Test if there are any wrong params for integration tests."""
+ run_test("api", check_wrong_integration_test_params)
+
+
def test_charting_extension_function_coverage() -> None:
"""Test if all charting extension functions are covered by integration tests."""
-
functions = ChartingService.get_implemented_charting_functions()
test_names = [f"test_chart_{func}" for func in functions]
integration_tests_modules = get_integration_tests(
diff --git a/openbb_platform/extensions/tests/test_integration_tests_python.py b/openbb_platform/extensions/tests/test_integration_tests_python.py
index c850ba9059a4..9deede09e2ff 100644
--- a/openbb_platform/extensions/tests/test_integration_tests_python.py
+++ b/openbb_platform/extensions/tests/test_integration_tests_python.py
@@ -4,6 +4,7 @@
from extensions.tests.utils.integration_tests_testers import (
check_missing_integration_test_params,
check_missing_integration_test_providers,
+ check_wrong_integration_test_params,
get_integration_tests,
get_module_functions,
)
@@ -28,9 +29,13 @@ def test_python_interface_integration_test_params() -> None:
run_test("python", check_missing_integration_test_params)
+def test_python_interface_wrong_integration_test_params() -> None:
+ """Test if there are any wrong params for integration tests."""
+ run_test("python", check_wrong_integration_test_params)
+
+
def test_charting_extension_function_coverage() -> None:
"""Test if all charting extension functions are covered by integration tests."""
-
functions = ChartingService.get_implemented_charting_functions()
test_names = [f"test_chart_{func}" for func in functions]
integration_tests_modules = get_integration_tests(
diff --git a/openbb_platform/extensions/tests/utils/integration_tests_testers.py b/openbb_platform/extensions/tests/utils/integration_tests_testers.py
index d85e8ce1d2e5..2c9b11c5e4ac 100644
--- a/openbb_platform/extensions/tests/utils/integration_tests_testers.py
+++ b/openbb_platform/extensions/tests/utils/integration_tests_testers.py
@@ -94,6 +94,73 @@ def check_missing_providers(
return missing_providers
+def check_wrong_params(
+ command_params: Union[Dict[str, Dict[str, dict]], List[Tuple[Dict[str, str], str]]],
+ function_params: List[dict],
+ function,
+ processing: bool = False,
+) -> List[str]:
+ """Check if there are any wrong params passed to a command."""
+ wrong_params = []
+ if not processing:
+ for i, test_params in enumerate(function_params):
+ if "provider" in test_params and i != 0:
+ provider = test_params["provider"]
+ if provider in command_params:
+ for param in test_params:
+ if (
+ param
+ not in command_params[provider]["QueryParams"]["fields"]
+ and param
+ not in command_params["openbb"]["QueryParams"]["fields"] # type: ignore
+ and param != "provider"
+ ):
+ wrong_params.append(
+ f"Wrong param {param} for provider {provider} in function {function}"
+ )
+ elif isinstance(command_params, dict):
+ providers = list(command_params.keys())
+ providers.remove("openbb")
+ for param in test_params:
+ is_wrong_param = True
+ for provider in providers:
+ if (
+ param in command_params[provider]["QueryParams"]["fields"]
+ or param
+ in command_params["openbb"]["QueryParams"]["fields"]
+ or param == "provider"
+ ):
+ is_wrong_param = False
+ break
+
+ if is_wrong_param:
+ wrong_params.append(
+ f"Wrong param {param} in function {function}"
+ )
+
+ else:
+ for test_params in function_params:
+ if isinstance(command_params, list):
+ try:
+ iter_commands_params = command_params[0][0]
+ except KeyError:
+ iter_commands_params = command_params[0] # type: ignore
+
+ if isinstance(test_params, dict):
+ param_keys = test_params.keys()
+ elif isinstance(test_params, tuple) and all(
+ isinstance(item, dict) for item in test_params
+ ):
+ param_keys = [key for item in test_params for key in item]
+ else:
+ continue # Skip this iteration if test_params is neither a dict nor a tuple of dicts
+
+ for key in param_keys:
+ if key not in iter_commands_params and key != "return":
+ wrong_params.append(f"Wrong param {key} in function {function}")
+ return wrong_params
+
+
def check_missing_params(
command_params: Union[Dict[str, Dict[str, dict]], List[Tuple[Dict[str, str], str]]],
function_params: List[dict],
@@ -206,3 +273,8 @@ def check_missing_integration_test_providers(functions: Dict[str, Any]) -> List[
def check_missing_integration_test_params(functions: Dict[str, Any]) -> List[str]:
"""Check if there are any missing params for integration tests."""
return check_integration_tests(functions, check_missing_params)
+
+
+def check_wrong_integration_test_params(functions: Dict[str, Any]) -> List[str]:
+ """Check if there are any wrong params for integration tests."""
+ return check_integration_tests(functions, check_wrong_params)
From 55799d9dc4c0ca8a9b9510abf75cee7861a9f69b Mon Sep 17 00:00:00 2001
From: Pratyush Shukla
Date: Wed, 25 Oct 2023 15:34:45 +0530
Subject: [PATCH 14/23] Improving `economy.cpi` for the FRED data (#5602)
* remove multiindex using coding magic
* Update field descriptions
---------
Co-authored-by: Theodore Aptekarev
---
.../openbb_provider/standard_models/cpi.py | 16 +++-----
.../openbb_provider/utils/descriptions.py | 8 +++-
.../providers/fred/openbb_fred/models/cpi.py | 38 +++++++++++--------
3 files changed, 34 insertions(+), 28 deletions(-)
diff --git a/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py b/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
index 571a59a48575..7943416ad8cd 100644
--- a/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
+++ b/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
@@ -2,6 +2,7 @@
from datetime import date as dateType
from typing import List, Literal, Optional
+from dateutil import parser
from pydantic import Field, field_validator
from openbb_provider.abstract.data import Data
@@ -91,15 +92,10 @@ class CPIQueryParams(QueryParams):
class CPIData(Data):
"""CPI data."""
- date: Optional[dateType] = Field(
- default=None, description=DATA_DESCRIPTIONS.get("date")
- )
- value: Optional[float] = Field(default=None, description="CPI value on the date.")
+ date: dateType = Field(description=DATA_DESCRIPTIONS.get("date"))
- @field_validator("value", mode="before")
+ @field_validator("date", mode="before")
@classmethod
- def value_validate(cls, v: str): # pylint: disable=E0213
- """Validate value."""
- if v == ".":
- return 0.0
- return float(v)
+ def date_validate(cls, v):
+ """Validate date."""
+ return parser.isoparse(v)
diff --git a/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py b/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
index 5e4c82c61565..7384677b34e5 100644
--- a/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
+++ b/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
@@ -11,8 +11,12 @@
"date": "A specific date to get data for.",
"limit": "The number of data entries to return.",
"countries": "The country or countries to get data.",
- "units": "The data units.",
- "frequency": "The data time frequency.",
+ "units": """The unit of measurement for the CPI data.
+ Options:
+ - `growth_previous`: growth from the previous period
+ - `growth_same`: growth from the same period in the previous year
+ - `index_2015`: index with base year 2015.""",
+ "frequency": "The frequency of the data points; options include `monthly`, `quarter`, and `annual`",
}
DATA_DESCRIPTIONS = {
diff --git a/openbb_platform/providers/fred/openbb_fred/models/cpi.py b/openbb_platform/providers/fred/openbb_fred/models/cpi.py
index b37e150e18c6..f8af6605bdd8 100644
--- a/openbb_platform/providers/fred/openbb_fred/models/cpi.py
+++ b/openbb_platform/providers/fred/openbb_fred/models/cpi.py
@@ -17,11 +17,9 @@ class FREDCPIData(CPIData):
"""CPI data."""
-class FREDCPIFetcher(Fetcher[FREDCPIQueryParams, List[Dict[str, List[FREDCPIData]]]]):
+class FREDCPIFetcher(Fetcher[FREDCPIQueryParams, List[FREDCPIData]]):
"""FRED CPI Fetcher."""
- data_type = FREDCPIData
-
@staticmethod
def transform_query(params: Dict[str, Any]) -> FREDCPIQueryParams:
return FREDCPIQueryParams(**params)
@@ -29,7 +27,7 @@ def transform_query(params: Dict[str, Any]) -> FREDCPIQueryParams:
@staticmethod
def extract_data(
query: FREDCPIQueryParams, credentials: Optional[Dict[str, str]], **kwargs: Any
- ) -> dict:
+ ) -> Dict:
api_key = credentials.get("fred_api_key") if credentials else ""
all_options = all_cpi_options(query.harmonized)
@@ -41,23 +39,31 @@ def extract_data(
series_dict = {}
fred = Fred(api_key)
for item in step_3:
- loc = f"{item['country']}-{item['frequency']}-{item['units']}"
+ loc = f"{item['country']}"
temp = fred.get_series(
item["series_id"], query.start_date, query.end_date, **kwargs
)
- series_dict[loc] = temp
+ temp = [{"date": item["date"], "value": item["value"]} for item in temp]
+ series_dict[loc] = [item for item in temp if item["value"] != "."]
return series_dict
@staticmethod
def transform_data(
- query: FREDCPIQueryParams, data: dict, **kwargs: Any
- ) -> List[Dict[str, List[FREDCPIData]]]:
- for key, value in data.items():
- data[key] = [
- FREDCPIData(date=x["date"], value=x["value"])
- for x in value
- if x["value"] != "."
- ]
-
- return [data]
+ query: FREDCPIQueryParams, data: Dict, **kwargs: Any
+ ) -> List[FREDCPIData]:
+ transformed_data = {}
+
+ # Iterate over the series_dict
+ for country, data_list in data.items():
+ for item in data_list:
+ # If the date is not in the dictionary, add it
+ if item["date"] not in transformed_data:
+ transformed_data[item["date"]] = {"date": item["date"]}
+ # Update the dictionary with the country's value data
+ transformed_data[item["date"]].update({country: item["value"]})
+
+ # Convert the dictionary to a list of dictionaries
+ transformed_data = list(transformed_data.values())
+
+ return [FREDCPIData.model_validate(item) for item in transformed_data]
From 912fc6d1f9475e82e9b84feceb4cd2da8d7e5539 Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Wed, 25 Oct 2023 12:56:16 +0200
Subject: [PATCH 15/23] Improve error message.
---
.../provider/tests/standard_models/test_standard_models.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py b/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py
index 157a5269ea92..9a759bec1532 100644
--- a/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py
+++ b/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py
@@ -49,9 +49,13 @@ def test_standard_models(standard_model):
assert QUERY_DESCRIPTIONS[name] in field.description, (
f"Description for {name} is incorrect for the {standard_model.__name__}.\n"
f"Please modify or change the field name to a non-reserved name."
+ f"To get a full list of reserved descriptions, navigate to openbb_provider.utils.descriptions.py"
+ f"You can also add extra information to the existing reserved field description in your model."
)
elif name in DATA_DESCRIPTIONS:
assert DATA_DESCRIPTIONS[name] in field.description, (
f"Description for {name} is incorrect for the {standard_model.__name__}.\n"
f"Please modify or change the field name to a non-reserved name."
+ f"To get a full list of reserved descriptions, navigate to openbb_provider.utils.descriptions.py"
+ f"You can also add extra information to the existing reserved field description in your model."
)
From 863653d84b99be397d896f3528f2639f2ff549d8 Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Wed, 25 Oct 2023 12:57:51 +0200
Subject: [PATCH 16/23] Improve
---
.../provider/tests/standard_models/test_standard_models.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py b/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py
index 9a759bec1532..424f842b91de 100644
--- a/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py
+++ b/openbb_platform/platform/provider/tests/standard_models/test_standard_models.py
@@ -48,14 +48,14 @@ def test_standard_models(standard_model):
if name in QUERY_DESCRIPTIONS:
assert QUERY_DESCRIPTIONS[name] in field.description, (
f"Description for {name} is incorrect for the {standard_model.__name__}.\n"
- f"Please modify or change the field name to a non-reserved name."
+ f"Please modify the description or change the field name to a non-reserved name."
f"To get a full list of reserved descriptions, navigate to openbb_provider.utils.descriptions.py"
f"You can also add extra information to the existing reserved field description in your model."
)
elif name in DATA_DESCRIPTIONS:
assert DATA_DESCRIPTIONS[name] in field.description, (
f"Description for {name} is incorrect for the {standard_model.__name__}.\n"
- f"Please modify or change the field name to a non-reserved name."
+ f"Please modify the description or change the field name to a non-reserved name."
f"To get a full list of reserved descriptions, navigate to openbb_provider.utils.descriptions.py"
f"You can also add extra information to the existing reserved field description in your model."
)
From 8e1231d5ad8d2372a1d93d4d15703aca7813c02c Mon Sep 17 00:00:00 2001
From: Igor Radovanovic <74266147+IgorWounds@users.noreply.github.com>
Date: Wed, 25 Oct 2023 17:38:55 +0200
Subject: [PATCH 17/23] Test tests (#5607)
* Test tests
* Add test
---
.../ta/integration/test_ta_python.py | 18 +++++++++++
.../tests/test_integration_tests_api.py | 7 +++++
.../tests/test_integration_tests_python.py | 7 +++++
.../utils/integration_tests_api_generator.py | 15 +++++-----
.../tests/utils/integration_tests_testers.py | 30 +++++++++++++++++++
5 files changed, 69 insertions(+), 8 deletions(-)
diff --git a/openbb_platform/extensions/ta/integration/test_ta_python.py b/openbb_platform/extensions/ta/integration/test_ta_python.py
index e3541447751a..aecf55bf1913 100644
--- a/openbb_platform/extensions/ta/integration/test_ta_python.py
+++ b/openbb_platform/extensions/ta/integration/test_ta_python.py
@@ -608,6 +608,24 @@ def test_ta_adx(params, data_type, obb):
assert len(result.results) > 0
+@pytest.mark.parametrize(
+ "params, data_type",
+ [
+ ({"data": "", "index": "", "offset": ""}, "stocks"),
+ ({"data": "", "index": "date", "offset": "5"}, "crypto"),
+ ],
+)
+@pytest.mark.integration
+def test_ta_ad(params, data_type, obb):
+ params = {p: v for p, v in params.items() if v}
+ params["data"] = get_data(data_type)
+
+ result = obb.ta.ad(**params)
+ assert result
+ assert isinstance(result, OBBject)
+ assert len(result.results) > 0
+
+
@pytest.mark.parametrize(
"params, data_type",
[
diff --git a/openbb_platform/extensions/tests/test_integration_tests_api.py b/openbb_platform/extensions/tests/test_integration_tests_api.py
index e1022c812182..4731c80b4446 100644
--- a/openbb_platform/extensions/tests/test_integration_tests_api.py
+++ b/openbb_platform/extensions/tests/test_integration_tests_api.py
@@ -4,6 +4,7 @@
from extensions.tests.utils.integration_tests_testers import (
check_missing_integration_test_params,
check_missing_integration_test_providers,
+ check_missing_integration_tests,
check_wrong_integration_test_params,
get_integration_tests,
get_module_functions,
@@ -51,3 +52,9 @@ def test_charting_extension_function_coverage() -> None:
]
assert missing_items == [], "\n".join(missing_items)
+
+
+def test_missing_api_integration_tests() -> None:
+ """Check if there are missing tests."""
+ missing = check_missing_integration_tests(test_type="api")
+ assert not missing, "\n".join(missing)
diff --git a/openbb_platform/extensions/tests/test_integration_tests_python.py b/openbb_platform/extensions/tests/test_integration_tests_python.py
index 9deede09e2ff..af7baee69e73 100644
--- a/openbb_platform/extensions/tests/test_integration_tests_python.py
+++ b/openbb_platform/extensions/tests/test_integration_tests_python.py
@@ -4,6 +4,7 @@
from extensions.tests.utils.integration_tests_testers import (
check_missing_integration_test_params,
check_missing_integration_test_providers,
+ check_missing_integration_tests,
check_wrong_integration_test_params,
get_integration_tests,
get_module_functions,
@@ -51,3 +52,9 @@ def test_charting_extension_function_coverage() -> None:
]
assert missing_items == [], "\n".join(missing_items)
+
+
+def test_missing_api_integration_tests() -> None:
+ """Check if there are missing tests."""
+ missing = check_missing_integration_tests(test_type="python")
+ assert not missing, "\n".join(missing)
diff --git a/openbb_platform/extensions/tests/utils/integration_tests_api_generator.py b/openbb_platform/extensions/tests/utils/integration_tests_api_generator.py
index 09b7638abf12..75b23dbd0f13 100644
--- a/openbb_platform/extensions/tests/utils/integration_tests_api_generator.py
+++ b/openbb_platform/extensions/tests/utils/integration_tests_api_generator.py
@@ -1,3 +1,4 @@
+"""Generate API integration tests."""
import argparse
import os
from typing import Dict, List, Literal, Type, get_type_hints
@@ -25,7 +26,6 @@ def get_post_flat_params(hints: Dict[str, Type]):
def write_init_test_template(http_method: str, path: str):
"""Write some common initialization for the tests with the defined template."""
-
http_template_imports = {"get": "", "post": "import json"}
template = http_template_imports[http_method]
template += """
@@ -57,7 +57,6 @@ def write_test_w_template(
chart: bool = False,
):
"""Write the test with the defined template."""
-
params_str = ",\n".join([f"({params})" for params in params_list])
http_template_request = {
@@ -103,6 +102,7 @@ def test_exists(route: str, path: str):
return route.replace("/", "_")[1:] in f.read()
+# pylint: disable=W0621
def write_commands_integration_tests(
command_map: CommandMap,
provider_interface: ProviderInterface,
@@ -111,11 +111,11 @@ def write_commands_integration_tests(
"""Write the commands integration tests."""
commands_not_found = []
- commandmap_map = command_map.map
- commandmap_models = command_map.commands_model
+ cm_map = command_map.map
+ cm_models = command_map.commands_model
provider_interface_map = provider_interface.map
- for route in commandmap_map:
+ for route in cm_map:
http_method = get_http_method(api_paths, f"/api/v1{route}")
menu = route.split("/")[1]
@@ -128,7 +128,7 @@ def write_commands_integration_tests(
if not http_method:
commands_not_found.append(route)
else:
- hints = get_type_hints(commandmap_map[route])
+ hints = get_type_hints(cm_map[route])
hints.pop("cc", None)
hints.pop("return", None)
@@ -136,7 +136,7 @@ def write_commands_integration_tests(
[{k: "" for k in get_post_flat_params(hints)}]
if http_method == "post"
else get_test_params(
- model_name=commandmap_models[route],
+ model_name=cm_models[route],
provider_interface_map=provider_interface_map,
)
)
@@ -154,7 +154,6 @@ def write_commands_integration_tests(
def write_charting_extension_integration_tests():
"""Write the charting extension integration tests."""
-
functions = ChartingService.get_implemented_charting_functions()
# we assume test file exists
diff --git a/openbb_platform/extensions/tests/utils/integration_tests_testers.py b/openbb_platform/extensions/tests/utils/integration_tests_testers.py
index 2c9b11c5e4ac..5dc18adb0d44 100644
--- a/openbb_platform/extensions/tests/utils/integration_tests_testers.py
+++ b/openbb_platform/extensions/tests/utils/integration_tests_testers.py
@@ -265,6 +265,36 @@ def check_integration_tests(
return all_missing_items
+def check_missing_integration_tests(test_type: Literal["api", "python"]) -> List[str]:
+ """Check if all endpoints have integration tests."""
+ cm = CommandMap(coverage_sep=".")
+ routes = [route[1:].replace("/", "_") for route in cm.map]
+ missing_integration_tests: List[str] = []
+
+ if test_type == "api":
+ functions = get_module_functions(get_integration_tests(test_type="api"))
+ else:
+ functions = get_module_functions(get_integration_tests(test_type="python"))
+
+ tested_functions = [
+ function.replace("test_", "")
+ for function in functions
+ if function.startswith("test_")
+ ]
+
+ for route in routes:
+ if route not in tested_functions:
+ # TODO: See how to handle edge cases that are excluded from the schema
+ # on purpose. This is currently on the econometrics router.
+ if test_type == "api" and "econometrics" in route:
+ continue
+ missing_integration_tests.append(
+ f"Missing {test_type} integration test for route {route}"
+ )
+
+ return missing_integration_tests
+
+
def check_missing_integration_test_providers(functions: Dict[str, Any]) -> List[str]:
"""Check if there are any missing providers for integration tests."""
return check_integration_tests(functions, check_missing_providers)
From b70ed0d254a178ac5b5881c34ec70ec306012b8c Mon Sep 17 00:00:00 2001
From: Henrique Joaquim
Date: Thu, 26 Oct 2023 10:21:30 +0100
Subject: [PATCH 18/23] 4.0.0a4 PyPI publishing (#5608)
* changes to publish
* fix mini conflict
* typo
---
openbb_platform/PUBLISH.md | 13 +--
openbb_platform/README.md | 8 +-
.../extensions/charting/poetry.lock | 1 +
.../extensions/charting/pyproject.toml | 6 +-
.../extensions/crypto/pyproject.toml | 4 +-
.../extensions/econometrics/pyproject.toml | 8 +-
.../economy/integration/test_economy_api.py | 4 +-
.../extensions/economy/pyproject.toml | 4 +-
.../extensions/fixedincome/pyproject.toml | 4 +-
.../extensions/forex/pyproject.toml | 4 +-
.../extensions/futures/pyproject.toml | 4 +-
.../extensions/news/pyproject.toml | 4 +-
openbb_platform/extensions/qa/pyproject.toml | 6 +-
.../extensions/stocks/pyproject.toml | 4 +-
openbb_platform/extensions/ta/pyproject.toml | 6 +-
.../openbb/package/__extensions__.py | 30 ++++---
openbb_platform/openbb/package/crypto.py | 22 +++--
openbb_platform/openbb/package/economy.py | 58 +++++++++----
.../openbb/package/extension_map.json | 17 +---
openbb_platform/openbb/package/fixedincome.py | 22 +++--
openbb_platform/openbb/package/forex.py | 22 +++--
openbb_platform/openbb/package/news.py | 47 ++++++++---
openbb_platform/openbb/package/stocks.py | 23 ++++--
openbb_platform/openbb/package/stocks_ca.py | 23 ++++--
openbb_platform/openbb/package/stocks_fa.py | 22 +++--
.../openbb/package/stocks_options.py | 23 ++++--
openbb_platform/platform/core/pyproject.toml | 4 +-
.../platform/provider/pyproject.toml | 2 +-
openbb_platform/poetry.lock | 81 +++----------------
.../providers/alpha_vantage/pyproject.toml | 4 +-
.../providers/benzinga/pyproject.toml | 4 +-
openbb_platform/providers/biztoc/poetry.lock | 14 +---
.../providers/biztoc/pyproject.toml | 4 +-
openbb_platform/providers/cboe/pyproject.toml | 4 +-
openbb_platform/providers/fmp/pyproject.toml | 4 +-
openbb_platform/providers/fred/pyproject.toml | 4 +-
.../providers/intrinio/pyproject.toml | 4 +-
openbb_platform/providers/oecd/pyproject.toml | 4 +-
.../providers/polygon/pyproject.toml | 4 +-
.../providers/quandl/pyproject.toml | 4 +-
.../providers/tradingeconomics/pyproject.toml | 4 +-
.../providers/yfinance/pyproject.toml | 6 +-
openbb_platform/pyproject.toml | 50 ++++++------
43 files changed, 332 insertions(+), 258 deletions(-)
diff --git a/openbb_platform/PUBLISH.md b/openbb_platform/PUBLISH.md
index 1e5d56b55781..7b55cbae1874 100644
--- a/openbb_platform/PUBLISH.md
+++ b/openbb_platform/PUBLISH.md
@@ -6,13 +6,16 @@ Publishing checklist:
1. Ensure all unit tests pass: `pytest openbb_platform -m "not integration"`
2. Ensure all integration tests pass: `pytest openbb_platform -m integration`
-3. Change the Platform version on `openbb_platform/platform/core/openbb_core/app/constants.py`
-4. Run the publishing script: `python openbb_platform/dev_publish.py`
-5. Update poetry files: `python openbb_platform/poetry_update.py`
+3. Change the Platform version on:
+ - `openbb_platform/platform/core/openbb_core/app/constants.py`
+ - `openbb_platform/README.md`
+4. Run the publishing script: `python openbb_platform/dev_utils/dev_publish.py`
+5. Update poetry files: `python openbb_platform/dev_utils/poetry_update.py`
6. Open a PR so that changes are reflected on the main branch
+7. If applicable, set the version on `constants.py` to use the `dev` tag again
-Finally, check if everything worked:
+Finally, check if everything works:
1. Install and test the package from Pypi on a clean environment
2. Check if all the `pyproject.toml` files are correct, including the `openbb_platform` one.
-3. Double check if there is any new extension or provider that needs to be added to [integration tests GitHub Action workflow](/.github/workflows/platform-api-integration-test.yml).
\ No newline at end of file
+3. Double check if there is any new extension or provider that needs to be added to [integration tests GitHub Action workflow](/.github/workflows/platform-api-integration-test.yml).
diff --git a/openbb_platform/README.md b/openbb_platform/README.md
index ff61c6beef2b..d3ff51ade17d 100644
--- a/openbb_platform/README.md
+++ b/openbb_platform/README.md
@@ -17,17 +17,19 @@ The OpenBB Platform provides a convenient way to access raw financial data from
The command below provides access to the core functionalities behind the OpenBB Platform.
```bash
-pip install openbb==4.0.0a2
+pip install openbb==4.0.0a4
```
+> Note that the version `4.0.0a4` is an example and you should replace it with the latest version available.
+
To install extensions that expand the core functionalities specify the extension name or use `all` to install all.
```bash
# Install single extension, e.g. openbb-charting
-pip install openbb[charting]==4.0.0a2
+pip install openbb[charting]==4.0.0a4
# Install all available extensions
-pip install openbb[all]==4.0.0a2
+pip install openbb[all]==4.0.0a4
``````
> Note: These instruction are specific to v4. For installation instructions and documentation for v3 go to our [website](https://docs.openbb.co/sdk).
diff --git a/openbb_platform/extensions/charting/poetry.lock b/openbb_platform/extensions/charting/poetry.lock
index 53753060bd5a..67e261adda9e 100644
--- a/openbb_platform/extensions/charting/poetry.lock
+++ b/openbb_platform/extensions/charting/poetry.lock
@@ -1449,6 +1449,7 @@ optional = false
python-versions = ">=3.7,<4"
files = [
{file = "reportlab-4.0.5-py3-none-any.whl", hash = "sha256:1344dbe779b9049a1888105503837d0e5b62163bf5c6b33bd1fbe84bad484f50"},
+ {file = "reportlab-4.0.5.tar.gz", hash = "sha256:9c68f277736f585c5c9938755b826dd57c877fcaeb203e21cefea12b3b1db4f5"},
]
[package.dependencies]
diff --git a/openbb_platform/extensions/charting/pyproject.toml b/openbb_platform/extensions/charting/pyproject.toml
index f295ed8fce45..f28c413cca7a 100644
--- a/openbb_platform/extensions/charting/pyproject.toml
+++ b/openbb_platform/extensions/charting/pyproject.toml
@@ -1,13 +1,13 @@
[tool.poetry]
name = "openbb-charting"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Charting extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
packages = [{ include = "openbb_charting" }]
[tool.poetry.dependencies]
-python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
+python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
scipy = "^1.10.0"
plotly = "^5.17.0"
statsmodels = "^0.14.0"
@@ -17,7 +17,7 @@ svglib = "^1.5.1"
aiohttp = "^3.8.4"
nbformat = "^5.9.2"
pandas-ta = "^0.3.14b"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/crypto/pyproject.toml b/openbb_platform/extensions/crypto/pyproject.toml
index 2f603ec3599b..10b8c03cbf96 100644
--- a/openbb_platform/extensions/crypto/pyproject.toml
+++ b/openbb_platform/extensions/crypto/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-crypto"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Crypto extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_crypto" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/econometrics/pyproject.toml b/openbb_platform/extensions/econometrics/pyproject.toml
index 3eea9e02b6aa..bec17f72a5a5 100644
--- a/openbb_platform/extensions/econometrics/pyproject.toml
+++ b/openbb_platform/extensions/econometrics/pyproject.toml
@@ -1,18 +1,18 @@
[tool.poetry]
name = "openbb-econometrics"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Econometrics Toolkit for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
packages = [{ include = "openbb_econometrics" }]
[tool.poetry.dependencies]
-python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
+python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
scipy = "^1.10.1"
statsmodels = "^0.14.0"
arch = "^5.5.0"
-linearmodels = "<=4.25" # ^4.26 has setuptools-scm in setup_requires
-openbb-core = { version = "^0.1.0a3" }
+linearmodels = "<=4.25" # ^4.26 has setuptools-scm in setup_requires
+openbb-core = { version = "^0.1.0a5" }
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/economy/integration/test_economy_api.py b/openbb_platform/extensions/economy/integration/test_economy_api.py
index b94d4f51fb59..071842c12cab 100644
--- a/openbb_platform/extensions/economy/integration/test_economy_api.py
+++ b/openbb_platform/extensions/economy/integration/test_economy_api.py
@@ -166,7 +166,7 @@ def test_economy_index(params, headers):
query_str = get_querystring(params, [])
url = f"http://0.0.0.0:8000/api/v1/economy/index?{query_str}"
- result = requests.get(url, headers=headers, timeout=10)
+ result = requests.get(url, headers=headers, timeout=20)
assert isinstance(result, requests.Response)
assert result.status_code == 200
@@ -360,7 +360,7 @@ def test_economy_sp500_multiples(params, headers):
query_str = get_querystring(params, [])
url = f"http://0.0.0.0:8000/api/v1/economy/sp500_multiples?{query_str}"
- result = requests.get(url, headers=headers, timeout=10)
+ result = requests.get(url, headers=headers, timeout=20)
assert isinstance(result, requests.Response)
assert result.status_code == 200
diff --git a/openbb_platform/extensions/economy/pyproject.toml b/openbb_platform/extensions/economy/pyproject.toml
index 577df3d3e938..77667fe646ec 100644
--- a/openbb_platform/extensions/economy/pyproject.toml
+++ b/openbb_platform/extensions/economy/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-economy"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Economy extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_economy" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/fixedincome/pyproject.toml b/openbb_platform/extensions/fixedincome/pyproject.toml
index ec57019985d7..ee796485b379 100644
--- a/openbb_platform/extensions/fixedincome/pyproject.toml
+++ b/openbb_platform/extensions/fixedincome/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-fixedincome"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Fixed income extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_fixedincome" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/forex/pyproject.toml b/openbb_platform/extensions/forex/pyproject.toml
index b149e202e03a..d45783849f71 100644
--- a/openbb_platform/extensions/forex/pyproject.toml
+++ b/openbb_platform/extensions/forex/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-forex"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Forex extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_forex" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/futures/pyproject.toml b/openbb_platform/extensions/futures/pyproject.toml
index 8cbaec61a26c..c1753ccc664f 100644
--- a/openbb_platform/extensions/futures/pyproject.toml
+++ b/openbb_platform/extensions/futures/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-futures"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Futures extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_futures" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/news/pyproject.toml b/openbb_platform/extensions/news/pyproject.toml
index ec5b87f17922..7bd37b36cbbe 100644
--- a/openbb_platform/extensions/news/pyproject.toml
+++ b/openbb_platform/extensions/news/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-news"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "News extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_news" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/qa/pyproject.toml b/openbb_platform/extensions/qa/pyproject.toml
index 7cef02f41ba4..ba7d11bc4129 100644
--- a/openbb_platform/extensions/qa/pyproject.toml
+++ b/openbb_platform/extensions/qa/pyproject.toml
@@ -1,17 +1,17 @@
[tool.poetry]
name = "openbb-qa"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Quantitative Analysis extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
packages = [{ include = "openbb_qa" }]
[tool.poetry.dependencies]
-python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
+python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
scipy = "^1.10.1"
statsmodels = "^0.14.0"
pandas-ta = "^0.3.14b"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/stocks/pyproject.toml b/openbb_platform/extensions/stocks/pyproject.toml
index 77b744826000..0d919a243956 100644
--- a/openbb_platform/extensions/stocks/pyproject.toml
+++ b/openbb_platform/extensions/stocks/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-stocks"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Stocks extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_stocks" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/extensions/ta/pyproject.toml b/openbb_platform/extensions/ta/pyproject.toml
index 703eb74ae0ba..c9e3a74a8160 100644
--- a/openbb_platform/extensions/ta/pyproject.toml
+++ b/openbb_platform/extensions/ta/pyproject.toml
@@ -1,17 +1,17 @@
[tool.poetry]
name = "openbb-ta"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Technical Analysis extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
packages = [{ include = "openbb_ta" }]
[tool.poetry.dependencies]
-python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
+python = ">=3.8,<3.12" # scipy forces python <4.0 explicitly
scipy = "^1.10.1"
statsmodels = "^0.14.0"
scikit-learn = "^1.3.1"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/openbb/package/__extensions__.py b/openbb_platform/openbb/package/__extensions__.py
index 792b3378d91d..6ede41d44940 100644
--- a/openbb_platform/openbb/package/__extensions__.py
+++ b/openbb_platform/openbb/package/__extensions__.py
@@ -1,7 +1,24 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
-
from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
+import datetime
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
+import typing_extensions
+from openbb_core.app.utils import df_to_basemodel
+from openbb_core.app.static.decorators import validate
+
+from openbb_core.app.static.filters import filter_inputs
+
+from openbb_provider.abstract.data import Data
class Extensions(Container):
@@ -21,28 +38,19 @@ class Extensions(Container):
Extensions:
- crypto@0.1.0a3
- - econometrics@0.1.0a3
- economy@0.1.0a3
- fixedincome@0.1.0a3
- forex@0.1.0a3
- - futures@0.1.0a3
- news@0.1.0a3
- - openbb_charting@0.1.0a3
- - qa@0.1.0a3
- stocks@0.1.0a3
- - ta@0.1.0a3
- alpha_vantage@0.1.0a3
- benzinga@0.1.0a3
- - cboe@0.1.0a3
- fmp@0.1.0a3
- fred@0.1.0a3
- intrinio@0.1.0a3
- - oecd@0.1.0a3
- - polygon@0.1.0a3
- - quandl@0.1.0a3
- tradingeconomics@0.1.0a3
- - yfinance@0.1.0a3 """
+ """
# fmt: on
def __repr__(self) -> str:
return self.__doc__ or ""
diff --git a/openbb_platform/openbb/package/crypto.py b/openbb_platform/openbb/package/crypto.py
index 113b76b6d1e9..6f2b22e45b67 100644
--- a/openbb_platform/openbb/package/crypto.py
+++ b/openbb_platform/openbb/package/crypto.py
@@ -1,15 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
+from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
import datetime
-from typing import List, Literal, Union
-
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
-from openbb_core.app.static.container import Container
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_crypto(Container):
diff --git a/openbb_platform/openbb/package/economy.py b/openbb_platform/openbb/package/economy.py
index dd16cd403804..96dbd073e4da 100644
--- a/openbb_platform/openbb/package/economy.py
+++ b/openbb_platform/openbb/package/economy.py
@@ -1,15 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
+from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
import datetime
-from typing import List, Literal, Union
-
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
-from openbb_core.app.static.container import Container
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_economy(Container):
@@ -428,11 +440,15 @@ def cpi(
],
units: typing_extensions.Annotated[
Literal["growth_previous", "growth_same", "index_2015"],
- OpenBBCustomParameter(description="The data units."),
+ OpenBBCustomParameter(
+ description="The unit of measurement for the CPI data.\n Options:\n - `growth_previous`: growth from the previous period\n - `growth_same`: growth from the same period in the previous year\n - `index_2015`: index with base year 2015."
+ ),
] = "growth_same",
frequency: typing_extensions.Annotated[
Literal["monthly", "quarter", "annual"],
- OpenBBCustomParameter(description="The data time frequency."),
+ OpenBBCustomParameter(
+ description="The frequency of the data points; options include `monthly`, `quarter`, and `annual`"
+ ),
] = "monthly",
harmonized: typing_extensions.Annotated[
bool,
@@ -462,9 +478,13 @@ def cpi(
countries : List[Literal['australia', 'austria', 'belgium', 'brazil', 'bulgar...
The country or countries to get data.
units : Literal['growth_previous', 'growth_same', 'index_2015']
- The data units.
+ The unit of measurement for the CPI data.
+ Options:
+ - `growth_previous`: growth from the previous period
+ - `growth_same`: growth from the same period in the previous year
+ - `index_2015`: index with base year 2015.
frequency : Literal['monthly', 'quarter', 'annual']
- The data time frequency.
+ The frequency of the data points; options include `monthly`, `quarter`, and `annual`
harmonized : bool
Whether you wish to obtain harmonized data.
start_date : Union[datetime.date, None]
@@ -492,10 +512,8 @@ def cpi(
CPI
---
- date : Optional[Union[date]]
+ date : date
The date of the data.
- value : Optional[Union[float]]
- CPI value on the date.
Example
-------
@@ -1030,7 +1048,7 @@ def gdpnom(
units: typing_extensions.Annotated[
Literal["usd", "usd_cap"],
OpenBBCustomParameter(
- description="The data units. Units to get nominal GDP in. Either usd or usd_cap indicating per capita."
+ description="The unit of measurement for the CPI data.\n Options:\n - `growth_previous`: growth from the previous period\n - `growth_same`: growth from the same period in the previous year\n - `index_2015`: index with base year 2015. Units to get nominal GDP in. Either usd or usd_cap indicating per capita."
),
] = "usd",
start_date: typing_extensions.Annotated[
@@ -1053,7 +1071,11 @@ def gdpnom(
Parameters
----------
units : Literal['usd', 'usd_cap']
- The data units. Units to get nominal GDP in. Either usd or usd_cap indicating per capita.
+ The unit of measurement for the CPI data.
+ Options:
+ - `growth_previous`: growth from the previous period
+ - `growth_same`: growth from the same period in the previous year
+ - `index_2015`: index with base year 2015. Units to get nominal GDP in. Either usd or usd_cap indicating per capita.
start_date : Union[datetime.date, None]
Start date of the data, in YYYY-MM-DD format.
end_date : Union[datetime.date, None]
@@ -1115,7 +1137,7 @@ def gdpreal(
units: typing_extensions.Annotated[
Literal["idx", "qoq", "yoy"],
OpenBBCustomParameter(
- description="The data units. Either idx (indicating 2015=100), qoq (previous period) or yoy (same period, previous year).)"
+ description="The unit of measurement for the CPI data.\n Options:\n - `growth_previous`: growth from the previous period\n - `growth_same`: growth from the same period in the previous year\n - `index_2015`: index with base year 2015. Either idx (indicating 2015=100), qoq (previous period) or yoy (same period, previous year).)"
),
] = "yoy",
start_date: typing_extensions.Annotated[
@@ -1138,7 +1160,11 @@ def gdpreal(
Parameters
----------
units : Literal['idx', 'qoq', 'yoy']
- The data units. Either idx (indicating 2015=100), qoq (previous period) or yoy (same period, previous year).)
+ The unit of measurement for the CPI data.
+ Options:
+ - `growth_previous`: growth from the previous period
+ - `growth_same`: growth from the same period in the previous year
+ - `index_2015`: index with base year 2015. Either idx (indicating 2015=100), qoq (previous period) or yoy (same period, previous year).)
start_date : Union[datetime.date, None]
Start date of the data, in YYYY-MM-DD format.
end_date : Union[datetime.date, None]
diff --git a/openbb_platform/openbb/package/extension_map.json b/openbb_platform/openbb/package/extension_map.json
index 445b047d5b60..ba02cd97fd69 100644
--- a/openbb_platform/openbb/package/extension_map.json
+++ b/openbb_platform/openbb/package/extension_map.json
@@ -1,28 +1,19 @@
{
"openbb_core_extension": [
"crypto@0.1.0a3",
- "econometrics@0.1.0a3",
"economy@0.1.0a3",
- "fixedincome@0.1.0a3",
"forex@0.1.0a3",
- "futures@0.1.0a3",
+ "fixedincome@0.1.0a3",
"news@0.1.0a3",
- "openbb_charting@0.1.0a3",
- "qa@0.1.0a3",
- "stocks@0.1.0a3",
- "ta@0.1.0a3"
+ "stocks@0.1.0a3"
],
"openbb_provider_extension": [
- "alpha_vantage@0.1.0a3",
"benzinga@0.1.0a3",
- "cboe@0.1.0a3",
"fmp@0.1.0a3",
"fred@0.1.0a3",
"intrinio@0.1.0a3",
- "oecd@0.1.0a3",
"polygon@0.1.0a3",
- "quandl@0.1.0a3",
- "tradingeconomics@0.1.0a3",
- "yfinance@0.1.0a3"
+ "alpha_vantage@0.1.0a3",
+ "tradingeconomics@0.1.0a3"
]
}
\ No newline at end of file
diff --git a/openbb_platform/openbb/package/fixedincome.py b/openbb_platform/openbb/package/fixedincome.py
index f7ece0001f36..6b16c2132c48 100644
--- a/openbb_platform/openbb/package/fixedincome.py
+++ b/openbb_platform/openbb/package/fixedincome.py
@@ -1,15 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
+from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
import datetime
-from typing import List, Literal, Union
-
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
-from openbb_core.app.static.container import Container
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_fixedincome(Container):
diff --git a/openbb_platform/openbb/package/forex.py b/openbb_platform/openbb/package/forex.py
index 0b3adc2c570f..27ce9e8bb1af 100644
--- a/openbb_platform/openbb/package/forex.py
+++ b/openbb_platform/openbb/package/forex.py
@@ -1,15 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
+from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
import datetime
-from typing import List, Literal, Union
-
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
-from openbb_core.app.static.container import Container
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_forex(Container):
diff --git a/openbb_platform/openbb/package/news.py b/openbb_platform/openbb/package/news.py
index b189e94390ad..65e5e872b827 100644
--- a/openbb_platform/openbb/package/news.py
+++ b/openbb_platform/openbb/package/news.py
@@ -1,14 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
-from typing import List, Literal, Union
-
-import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
+import datetime
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
+import typing_extensions
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_news(Container):
@@ -28,7 +41,7 @@ def globalnews(
description="The number of data entries to return. Here its the no. of articles to return."
),
] = 20,
- provider: Union[Literal["benzinga", "fmp", "intrinio"], None] = None,
+ provider: Union[Literal["benzinga", "biztoc", "fmp", "intrinio"], None] = None,
**kwargs
) -> OBBject[List[Data]]:
"""Global News. Global news data.
@@ -37,7 +50,7 @@ def globalnews(
----------
limit : int
The number of data entries to return. Here its the no. of articles to return.
- provider : Union[Literal['benzinga', 'fmp', 'intrinio'], None]
+ provider : Union[Literal['benzinga', 'biztoc', 'fmp', 'intrinio'], None]
The provider to use for the query, by default None.
If None, the provider specified in defaults is selected or 'benzinga' if there is
no default.
@@ -69,13 +82,21 @@ def globalnews(
Authors of the news to retrieve. (provider: benzinga)
content_types : Optional[Union[str]]
Content types of the news to retrieve. (provider: benzinga)
+ filter : Literal['crypto', 'hot', 'latest', 'main', 'media', 'source', 'tag']
+ Filter by type of news. (provider: biztoc)
+ source : str
+ Filter by a specific publisher. Only valid when filter is set to source. (provider: biztoc)
+ tag : Optional[Union[str]]
+ Tag, topic, to filter articles by. Only valid when filter is set to tag. (provider: biztoc)
+ term : Optional[Union[str]]
+ Search term to filter articles by. This overrides all other filters. (provider: biztoc)
Returns
-------
OBBject
results : Union[List[GlobalNews]]
Serializable results.
- provider : Union[Literal['benzinga', 'fmp', 'intrinio'], None]
+ provider : Union[Literal['benzinga', 'biztoc', 'fmp', 'intrinio'], None]
Provider name.
warnings : Optional[List[Warning_]]
List of warnings.
@@ -97,7 +118,7 @@ def globalnews(
url : Optional[Union[str]]
URL of the news.
id : Optional[Union[str]]
- ID of the news. (provider: benzinga); Article ID. (provider: intrinio)
+ ID of the news. (provider: benzinga); Unique Article ID. (provider: biztoc); Article ID. (provider: intrinio)
author : Optional[Union[str]]
Author of the news. (provider: benzinga)
teaser : Optional[Union[str]]
@@ -106,10 +127,14 @@ def globalnews(
Channels associated with the news. (provider: benzinga)
stocks : Optional[Union[str]]
Stocks associated with the news. (provider: benzinga)
- tags : Optional[Union[str]]
- Tags associated with the news. (provider: benzinga)
+ tags : Optional[Union[str, List[str]]]
+ Tags associated with the news. (provider: benzinga); Tags for the article. (provider: biztoc)
updated : Optional[Union[datetime]]
None
+ favicon : Optional[Union[str]]
+ Icon image for the source of the article. (provider: biztoc)
+ score : Optional[Union[float]]
+ Search relevance score for the article. (provider: biztoc)
site : Optional[Union[str]]
Site of the news. (provider: fmp)
company : Optional[Union[Dict[str, Any]]]
diff --git a/openbb_platform/openbb/package/stocks.py b/openbb_platform/openbb/package/stocks.py
index 38ff7d9df958..503c5bee52b7 100644
--- a/openbb_platform/openbb/package/stocks.py
+++ b/openbb_platform/openbb/package/stocks.py
@@ -1,16 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
+from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
import datetime
-from typing import List, Literal, Union
-
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
import typing_extensions
-from annotated_types import Ge
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
-from openbb_core.app.static.container import Container
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_stocks(Container):
diff --git a/openbb_platform/openbb/package/stocks_ca.py b/openbb_platform/openbb/package/stocks_ca.py
index 1d3f3a74a207..f16968410fee 100644
--- a/openbb_platform/openbb/package/stocks_ca.py
+++ b/openbb_platform/openbb/package/stocks_ca.py
@@ -1,14 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
-from typing import List, Literal, Union
-
-import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
+import datetime
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
+import typing_extensions
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_stocks_ca(Container):
diff --git a/openbb_platform/openbb/package/stocks_fa.py b/openbb_platform/openbb/package/stocks_fa.py
index b226e8db048a..444e8fef9d0b 100644
--- a/openbb_platform/openbb/package/stocks_fa.py
+++ b/openbb_platform/openbb/package/stocks_fa.py
@@ -1,15 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
+from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
import datetime
-from typing import List, Literal, Union
-
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
-from openbb_core.app.static.container import Container
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_stocks_fa(Container):
diff --git a/openbb_platform/openbb/package/stocks_options.py b/openbb_platform/openbb/package/stocks_options.py
index 5c2af298509a..73ba8b75700d 100644
--- a/openbb_platform/openbb/package/stocks_options.py
+++ b/openbb_platform/openbb/package/stocks_options.py
@@ -1,14 +1,27 @@
### THIS FILE IS AUTO-GENERATED. DO NOT EDIT. ###
-from typing import List, Literal, Union
-
-import typing_extensions
-from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
-from openbb_core.app.model.obbject import OBBject
from openbb_core.app.static.container import Container
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.model.custom_parameter import OpenBBCustomParameter
+import openbb_provider
+import pandas
+import datetime
+import pydantic
+from pydantic import BaseModel
+from inspect import Parameter
+import typing
+from typing import List, Dict, Union, Optional, Literal
+from annotated_types import Ge, Le, Gt, Lt
+import typing_extensions
+from openbb_core.app.utils import df_to_basemodel
from openbb_core.app.static.decorators import validate
+
from openbb_core.app.static.filters import filter_inputs
+
from openbb_provider.abstract.data import Data
+import openbb_core.app.model.command_context
+import openbb_core.app.model.obbject
+import types
class ROUTER_stocks_options(Container):
diff --git a/openbb_platform/platform/core/pyproject.toml b/openbb_platform/platform/core/pyproject.toml
index f092c885c9fd..6d33fd7cfc25 100644
--- a/openbb_platform/platform/core/pyproject.toml
+++ b/openbb_platform/platform/core/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-core"
-version = "0.1.0a4"
+version = "0.1.0a5"
description = "OpenBB package with core functionality"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -18,7 +18,7 @@ python-jose = "^3.3.0"
uuid7 = "^0.1.0"
posthog = "^3.0.1"
python-multipart = "^0.0.6"
-openbb-provider = "^0.1.0a3"
+openbb-provider = "^0.1.0a4"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/platform/provider/pyproject.toml b/openbb_platform/platform/provider/pyproject.toml
index fce0eb786345..d0248e790578 100644
--- a/openbb_platform/platform/provider/pyproject.toml
+++ b/openbb_platform/platform/provider/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-provider"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "OpenBB package to execute queries to financial data providers"
authors = ["OpenBB Team "]
readme = "README.md"
diff --git a/openbb_platform/poetry.lock b/openbb_platform/poetry.lock
index d9679f2739f0..5ab2e6089b87 100644
--- a/openbb_platform/poetry.lock
+++ b/openbb_platform/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
[[package]]
name = "aiohttp"
@@ -1258,47 +1258,6 @@ files = [
{file = "numpy-1.24.4.tar.gz", hash = "sha256:80f5e3a4e498641401868df4208b74581206afbee7cf7b8329daae82676d9463"},
]
-[[package]]
-name = "numpy"
-version = "1.26.1"
-description = "Fundamental package for array computing in Python"
-optional = false
-python-versions = "<3.13,>=3.9"
-files = [
- {file = "numpy-1.26.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:82e871307a6331b5f09efda3c22e03c095d957f04bf6bc1804f30048d0e5e7af"},
- {file = "numpy-1.26.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cdd9ec98f0063d93baeb01aad472a1a0840dee302842a2746a7a8e92968f9575"},
- {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d78f269e0c4fd365fc2992c00353e4530d274ba68f15e968d8bc3c69ce5f5244"},
- {file = "numpy-1.26.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ab9163ca8aeb7fd32fe93866490654d2f7dda4e61bc6297bf72ce07fdc02f67"},
- {file = "numpy-1.26.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:78ca54b2f9daffa5f323f34cdf21e1d9779a54073f0018a3094ab907938331a2"},
- {file = "numpy-1.26.1-cp310-cp310-win32.whl", hash = "sha256:d1cfc92db6af1fd37a7bb58e55c8383b4aa1ba23d012bdbba26b4bcca45ac297"},
- {file = "numpy-1.26.1-cp310-cp310-win_amd64.whl", hash = "sha256:d2984cb6caaf05294b8466966627e80bf6c7afd273279077679cb010acb0e5ab"},
- {file = "numpy-1.26.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cd7837b2b734ca72959a1caf3309457a318c934abef7a43a14bb984e574bbb9a"},
- {file = "numpy-1.26.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1c59c046c31a43310ad0199d6299e59f57a289e22f0f36951ced1c9eac3665b9"},
- {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d58e8c51a7cf43090d124d5073bc29ab2755822181fcad978b12e144e5e5a4b3"},
- {file = "numpy-1.26.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6081aed64714a18c72b168a9276095ef9155dd7888b9e74b5987808f0dd0a974"},
- {file = "numpy-1.26.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:97e5d6a9f0702c2863aaabf19f0d1b6c2628fbe476438ce0b5ce06e83085064c"},
- {file = "numpy-1.26.1-cp311-cp311-win32.whl", hash = "sha256:b9d45d1dbb9de84894cc50efece5b09939752a2d75aab3a8b0cef6f3a35ecd6b"},
- {file = "numpy-1.26.1-cp311-cp311-win_amd64.whl", hash = "sha256:3649d566e2fc067597125428db15d60eb42a4e0897fc48d28cb75dc2e0454e53"},
- {file = "numpy-1.26.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d1bd82d539607951cac963388534da3b7ea0e18b149a53cf883d8f699178c0f"},
- {file = "numpy-1.26.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:afd5ced4e5a96dac6725daeb5242a35494243f2239244fad10a90ce58b071d24"},
- {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a03fb25610ef560a6201ff06df4f8105292ba56e7cdd196ea350d123fc32e24e"},
- {file = "numpy-1.26.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dcfaf015b79d1f9f9c9fd0731a907407dc3e45769262d657d754c3a028586124"},
- {file = "numpy-1.26.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e509cbc488c735b43b5ffea175235cec24bbc57b227ef1acc691725beb230d1c"},
- {file = "numpy-1.26.1-cp312-cp312-win32.whl", hash = "sha256:af22f3d8e228d84d1c0c44c1fbdeb80f97a15a0abe4f080960393a00db733b66"},
- {file = "numpy-1.26.1-cp312-cp312-win_amd64.whl", hash = "sha256:9f42284ebf91bdf32fafac29d29d4c07e5e9d1af862ea73686581773ef9e73a7"},
- {file = "numpy-1.26.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bb894accfd16b867d8643fc2ba6c8617c78ba2828051e9a69511644ce86ce83e"},
- {file = "numpy-1.26.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e44ccb93f30c75dfc0c3aa3ce38f33486a75ec9abadabd4e59f114994a9c4617"},
- {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9696aa2e35cc41e398a6d42d147cf326f8f9d81befcb399bc1ed7ffea339b64e"},
- {file = "numpy-1.26.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a5b411040beead47a228bde3b2241100454a6abde9df139ed087bd73fc0a4908"},
- {file = "numpy-1.26.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:1e11668d6f756ca5ef534b5be8653d16c5352cbb210a5c2a79ff288e937010d5"},
- {file = "numpy-1.26.1-cp39-cp39-win32.whl", hash = "sha256:d1d2c6b7dd618c41e202c59c1413ef9b2c8e8a15f5039e344af64195459e3104"},
- {file = "numpy-1.26.1-cp39-cp39-win_amd64.whl", hash = "sha256:59227c981d43425ca5e5c01094d59eb14e8772ce6975d4b2fc1e106a833d5ae2"},
- {file = "numpy-1.26.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:06934e1a22c54636a059215d6da99e23286424f316fddd979f5071093b648668"},
- {file = "numpy-1.26.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76ff661a867d9272cd2a99eed002470f46dbe0943a5ffd140f49be84f68ffc42"},
- {file = "numpy-1.26.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:6965888d65d2848e8768824ca8288db0a81263c1efccec881cb35a0d805fcd2f"},
- {file = "numpy-1.26.1.tar.gz", hash = "sha256:c8c6c72d4a9f831f328efb1312642a1cafafaa88981d9ab76368d50d07d93cbe"},
-]
-
[[package]]
name = "openbb-alpha-vantage"
version = "0.1.0a3"
@@ -1329,16 +1288,18 @@ openbb-core = ">=0.1.0a2,<0.2.0"
[[package]]
name = "openbb-biztoc"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = ""
optional = true
-python-versions = "*"
-files = []
-develop = true
+python-versions = ">=3.8,<4.0"
+files = [
+ {file = "openbb_biztoc-0.1.0a4-py3-none-any.whl", hash = "sha256:b3c19c45d300956114f3725790b7edd9458a7d2b1ba7cefd47d149241aa8a05c"},
+ {file = "openbb_biztoc-0.1.0a4.tar.gz", hash = "sha256:4ec4e6fd0950dee6b40c90c8987738258482eb94543f7686b25d6a5fda89e836"},
+]
-[package.source]
-type = "directory"
-url = "providers/biztoc"
+[package.dependencies]
+openbb-core = ">=0.1.0a4,<0.2.0"
+requests-cache = ">=1.1.0,<2.0.0"
[[package]]
name = "openbb-cboe"
@@ -1734,8 +1695,8 @@ files = [
[package.dependencies]
numpy = [
+ {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""},
{version = ">=1.20.3", markers = "python_version < \"3.10\""},
- {version = ">=1.21.0", markers = "python_version >= \"3.10\""},
{version = ">=1.23.2", markers = "python_version >= \"3.11\""},
]
python-dateutil = ">=2.8.2"
@@ -2314,7 +2275,6 @@ files = [
{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"},
@@ -2322,15 +2282,8 @@ files = [
{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_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"},
@@ -2347,7 +2300,6 @@ files = [
{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"},
@@ -2355,7 +2307,6 @@ files = [
{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"},
@@ -2830,20 +2781,12 @@ files = [
{file = "statsmodels-0.14.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5a6a0a1a06ff79be8aa89c8494b33903442859add133f0dda1daf37c3c71682e"},
{file = "statsmodels-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77b3cd3a5268ef966a0a08582c591bd29c09c88b4566c892a7c087935234f285"},
{file = "statsmodels-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c64ebe9cf376cba0c31aed138e15ed179a1d128612dd241cdf299d159e5e882"},
- {file = "statsmodels-0.14.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:229b2f676b4a45cb62d132a105c9c06ca8a09ffba060abe34935391eb5d9ba87"},
{file = "statsmodels-0.14.0-cp310-cp310-win_amd64.whl", hash = "sha256:fb471f757fc45102a87e5d86e87dc2c8c78b34ad4f203679a46520f1d863b9da"},
{file = "statsmodels-0.14.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:582f9e41092e342aaa04920d17cc3f97240e3ee198672f194719b5a3d08657d6"},
{file = "statsmodels-0.14.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7ebe885ccaa64b4bc5ad49ac781c246e7a594b491f08ab4cfd5aa456c363a6f6"},
{file = "statsmodels-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b587ee5d23369a0e881da6e37f78371dce4238cf7638a455db4b633a1a1c62d6"},
{file = "statsmodels-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ef7fa4813c7a73b0d8a0c830250f021c102c71c95e9fe0d6877bcfb56d38b8c"},
- {file = "statsmodels-0.14.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afe80544ef46730ea1b11cc655da27038bbaa7159dc5af4bc35bbc32982262f2"},
{file = "statsmodels-0.14.0-cp311-cp311-win_amd64.whl", hash = "sha256:a6ad7b8aadccd4e4dd7f315a07bef1bca41d194eeaf4ec600d20dea02d242fce"},
- {file = "statsmodels-0.14.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0eea4a0b761aebf0c355b726ac5616b9a8b618bd6e81a96b9f998a61f4fd7484"},
- {file = "statsmodels-0.14.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4c815ce7a699047727c65a7c179bff4031cff9ae90c78ca730cfd5200eb025dd"},
- {file = "statsmodels-0.14.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:575f61337c8e406ae5fa074d34bc6eb77b5a57c544b2d4ee9bc3da6a0a084cf1"},
- {file = "statsmodels-0.14.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8be53cdeb82f49c4cb0fda6d7eeeb2d67dbd50179b3e1033510e061863720d93"},
- {file = "statsmodels-0.14.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:6f7d762df4e04d1dde8127d07e91aff230eae643aa7078543e60e83e7d5b40db"},
- {file = "statsmodels-0.14.0-cp312-cp312-win_amd64.whl", hash = "sha256:fc2c7931008a911e3060c77ea8933f63f7367c0f3af04f82db3a04808ad2cd2c"},
{file = "statsmodels-0.14.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3757542c95247e4ab025291a740efa5da91dc11a05990c033d40fce31c450dc9"},
{file = "statsmodels-0.14.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:de489e3ed315bdba55c9d1554a2e89faa65d212e365ab81bc323fa52681fc60e"},
{file = "statsmodels-0.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76e290f4718177bffa8823a780f3b882d56dd64ad1c18cfb4bc8b5558f3f5757"},
@@ -2859,8 +2802,8 @@ files = [
[package.dependencies]
numpy = [
- {version = ">=1.18", markers = "python_version != \"3.10\" or platform_system != \"Windows\" or platform_python_implementation == \"PyPy\""},
{version = ">=1.22.3", markers = "python_version == \"3.10\" and platform_system == \"Windows\" and platform_python_implementation != \"PyPy\""},
+ {version = ">=1.18", markers = "python_version != \"3.10\" or platform_system != \"Windows\" or platform_python_implementation == \"PyPy\""},
]
packaging = ">=21.3"
pandas = ">=1.0"
diff --git a/openbb_platform/providers/alpha_vantage/pyproject.toml b/openbb_platform/providers/alpha_vantage/pyproject.toml
index 85ba5550c28c..2746447ea111 100644
--- a/openbb_platform/providers/alpha_vantage/pyproject.toml
+++ b/openbb_platform/providers/alpha_vantage/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-alpha-vantage"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Alpha Vantage extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_alpha_vantage" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/benzinga/pyproject.toml b/openbb_platform/providers/benzinga/pyproject.toml
index 7b1f7b54da98..602de1079c99 100644
--- a/openbb_platform/providers/benzinga/pyproject.toml
+++ b/openbb_platform/providers/benzinga/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-benzinga"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Benzinga extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_benzinga" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/biztoc/poetry.lock b/openbb_platform/providers/biztoc/poetry.lock
index 20997b62f2e1..d0ef6754e11d 100644
--- a/openbb_platform/providers/biztoc/poetry.lock
+++ b/openbb_platform/providers/biztoc/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
[[package]]
name = "annotated-types"
@@ -583,8 +583,8 @@ files = [
[package.dependencies]
numpy = [
{version = ">=1.20.3", markers = "python_version < \"3.10\""},
- {version = ">=1.21.0", markers = "python_version >= \"3.10\""},
{version = ">=1.23.2", markers = "python_version >= \"3.11\""},
+ {version = ">=1.21.0", markers = "python_version >= \"3.10\" and python_version < \"3.11\""},
]
python-dateutil = ">=2.8.2"
pytz = ">=2020.1"
@@ -900,7 +900,6 @@ files = [
{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"},
@@ -908,15 +907,8 @@ files = [
{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_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"},
@@ -933,7 +925,6 @@ files = [
{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"},
@@ -941,7 +932,6 @@ files = [
{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"},
diff --git a/openbb_platform/providers/biztoc/pyproject.toml b/openbb_platform/providers/biztoc/pyproject.toml
index 1e8aa3ff51d2..168445616a03 100644
--- a/openbb_platform/providers/biztoc/pyproject.toml
+++ b/openbb_platform/providers/biztoc/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-biztoc"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = ""
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_biztoc" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
requests-cache = "^1.1.0"
[build-system]
diff --git a/openbb_platform/providers/cboe/pyproject.toml b/openbb_platform/providers/cboe/pyproject.toml
index e7e6e1bf7ade..f9a2072b5f84 100644
--- a/openbb_platform/providers/cboe/pyproject.toml
+++ b/openbb_platform/providers/cboe/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-cboe"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "CBOE extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -9,7 +9,7 @@ packages = [{ include = "openbb_cboe" }]
[tool.poetry.dependencies]
python = "^3.8"
requests-cache = "^1.1.0"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/fmp/pyproject.toml b/openbb_platform/providers/fmp/pyproject.toml
index 5f4d4691bceb..a3b0f04d499e 100644
--- a/openbb_platform/providers/fmp/pyproject.toml
+++ b/openbb_platform/providers/fmp/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-fmp"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "FMP extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_fmp" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/fred/pyproject.toml b/openbb_platform/providers/fred/pyproject.toml
index 33de72ae4265..e13fb5717ef2 100644
--- a/openbb_platform/providers/fred/pyproject.toml
+++ b/openbb_platform/providers/fred/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-fred"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "FRED extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_fred" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/intrinio/pyproject.toml b/openbb_platform/providers/intrinio/pyproject.toml
index c473a3c66f84..aecc980bdd78 100644
--- a/openbb_platform/providers/intrinio/pyproject.toml
+++ b/openbb_platform/providers/intrinio/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-intrinio"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Intrinio extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -9,7 +9,7 @@ packages = [{ include = "openbb_intrinio" }]
[tool.poetry.dependencies]
python = "^3.8"
requests-cache = "^1.1.0"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/oecd/pyproject.toml b/openbb_platform/providers/oecd/pyproject.toml
index afad556c8440..ab2369f41ce6 100644
--- a/openbb_platform/providers/oecd/pyproject.toml
+++ b/openbb_platform/providers/oecd/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-oecd"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "OECD extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_oecd" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
urllib3 = ">1.26.16"
[build-system]
diff --git a/openbb_platform/providers/polygon/pyproject.toml b/openbb_platform/providers/polygon/pyproject.toml
index d5dc7c3e2d26..e2ac7cb1b7d2 100644
--- a/openbb_platform/providers/polygon/pyproject.toml
+++ b/openbb_platform/providers/polygon/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-polygon"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Polygon extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_polygon" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/quandl/pyproject.toml b/openbb_platform/providers/quandl/pyproject.toml
index e71af60aff8e..7500203f8795 100644
--- a/openbb_platform/providers/quandl/pyproject.toml
+++ b/openbb_platform/providers/quandl/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-quandl"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Quandl extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -9,7 +9,7 @@ packages = [{ include = "openbb_quandl" }]
[tool.poetry.dependencies]
python = "^3.8"
quandl = ">=3.7.0"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/tradingeconomics/pyproject.toml b/openbb_platform/providers/tradingeconomics/pyproject.toml
index c4022fef94f9..2edbb920e18c 100644
--- a/openbb_platform/providers/tradingeconomics/pyproject.toml
+++ b/openbb_platform/providers/tradingeconomics/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-tradingeconomics"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "Trading Economics extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,7 +8,7 @@ packages = [{ include = "openbb_tradingeconomics" }]
[tool.poetry.dependencies]
python = "^3.8"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/providers/yfinance/pyproject.toml b/openbb_platform/providers/yfinance/pyproject.toml
index 2d5f67df0a8d..4de268854e58 100644
--- a/openbb_platform/providers/yfinance/pyproject.toml
+++ b/openbb_platform/providers/yfinance/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb-yfinance"
-version = "0.1.0a3"
+version = "0.1.0a4"
description = "yfinance extension for OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,8 +8,8 @@ packages = [{ include = "openbb_yfinance" }]
[tool.poetry.dependencies]
python = "^3.8"
-yfinance="^0.2.27"
-openbb-core = "^0.1.0a4"
+yfinance = "^0.2.27"
+openbb-core = "^0.1.0a5"
[build-system]
requires = ["poetry-core"]
diff --git a/openbb_platform/pyproject.toml b/openbb_platform/pyproject.toml
index aeec29a75811..fef690ddbc74 100644
--- a/openbb_platform/pyproject.toml
+++ b/openbb_platform/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "openbb"
-version = "4.0.0a3"
+version = "4.0.0a4"
description = "OpenBB"
authors = ["OpenBB Team "]
readme = "README.md"
@@ -8,35 +8,35 @@ packages = [{ include = "openbb" }]
[tool.poetry.dependencies]
python = ">=3.8,<3.12"
-openbb-core = "^0.1.0a4"
+openbb-core = "^0.1.0a5"
-openbb-benzinga = "^0.1.0a3"
-openbb-fmp = "^0.1.0a3"
-openbb-fred = "^0.1.0a3"
-openbb-intrinio = "^0.1.0a3"
-openbb-polygon = "^0.1.0a3"
-openbb-tradingeconomics = "^0.1.0a3"
+openbb-benzinga = "^0.1.0a4"
+openbb-fmp = "^0.1.0a4"
+openbb-fred = "^0.1.0a4"
+openbb-intrinio = "^0.1.0a4"
+openbb-polygon = "^0.1.0a4"
+openbb-tradingeconomics = "^0.1.0a4"
-openbb-crypto = "^0.1.0a3"
-openbb-economy = "^0.1.0a3"
-openbb-forex = "^0.1.0a3"
-openbb-fixedincome = "^0.1.0a3"
-openbb-news = "^0.1.0a3"
-openbb-stocks = "^0.1.0a3"
+openbb-crypto = "^0.1.0a4"
+openbb-economy = "^0.1.0a4"
+openbb-forex = "^0.1.0a4"
+openbb-fixedincome = "^0.1.0a4"
+openbb-news = "^0.1.0a4"
+openbb-stocks = "^0.1.0a4"
# Community dependencies
-openbb-alpha-vantage = { version = "^0.1.0a3", optional = true }
-openbb-biztoc = { version = "^0.1.0a3", optional = true }
-openbb-cboe = { version = "^0.1.0a3", optional = true }
-openbb-quandl = { version = "^0.1.0a3", optional = true }
-openbb-yfinance = { version = "^0.1.0a3", optional = true }
-openbb-oecd = { version = "^0.1.0a3", optional = true }
+openbb-alpha-vantage = { version = "^0.1.0a4", optional = true }
+openbb-biztoc = { version = "^0.1.0a4", optional = true }
+openbb-cboe = { version = "^0.1.0a4", optional = true }
+openbb-quandl = { version = "^0.1.0a4", optional = true }
+openbb-yfinance = { version = "^0.1.0a4", optional = true }
+openbb-oecd = { version = "^0.1.0a4", optional = true }
-openbb-charting = { version = "^0.1.0a3", optional = true }
-openbb-futures = { version = "^0.1.0a3", optional = true }
-openbb-qa = { version = "^0.1.0a3", optional = true }
-openbb-ta = { version = "^0.1.0a3", optional = true }
-openbb-econometrics = { version = "^0.1.0a3", optional = true }
+openbb-charting = { version = "^0.1.0a4", optional = true }
+openbb-futures = { version = "^0.1.0a4", optional = true }
+openbb-qa = { version = "^0.1.0a4", optional = true }
+openbb-ta = { version = "^0.1.0a4", optional = true }
+openbb-econometrics = { version = "^0.1.0a4", optional = true }
[tool.poetry.extras]
alpha_vantage = ["openbb-alpha-vantage"]
From 0fa263f0beec8844cdf01811de88515378c77aba Mon Sep 17 00:00:00 2001
From: Pratyush Shukla
Date: Thu, 26 Oct 2023 17:37:50 +0530
Subject: [PATCH 19/23] cleaned `descriptions.py`
---
.../provider/openbb_provider/utils/descriptions.py | 7 -------
1 file changed, 7 deletions(-)
diff --git a/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py b/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
index 7384677b34e5..acc42709eabc 100644
--- a/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
+++ b/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
@@ -5,17 +5,10 @@
"start_date": "Start date of the data, in YYYY-MM-DD format.",
"end_date": "End date of the data, in YYYY-MM-DD format.",
"interval": "Time interval of the data to return.",
- # "weekly": "Whether to return weekly data.",
- # "monthly": "Whether to return monthly data.",
"period": "Time period of the data to return.",
"date": "A specific date to get data for.",
"limit": "The number of data entries to return.",
"countries": "The country or countries to get data.",
- "units": """The unit of measurement for the CPI data.
- Options:
- - `growth_previous`: growth from the previous period
- - `growth_same`: growth from the same period in the previous year
- - `index_2015`: index with base year 2015.""",
"frequency": "The frequency of the data points; options include `monthly`, `quarter`, and `annual`",
}
From 386b13573b1f313c3e38e5e1926318cf296662bd Mon Sep 17 00:00:00 2001
From: Pratyush Shukla
Date: Thu, 26 Oct 2023 17:42:36 +0530
Subject: [PATCH 20/23] fix description in `cpi.py`
---
.../platform/provider/openbb_provider/standard_models/cpi.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py b/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
index 7943416ad8cd..4c5312ae1c41 100644
--- a/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
+++ b/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
@@ -73,7 +73,9 @@ class CPIQueryParams(QueryParams):
description=QUERY_DESCRIPTIONS.get("countries")
)
units: CPI_UNITS = Field(
- default="growth_same", description=QUERY_DESCRIPTIONS.get("units")
+ default="growth_same",
+ description=("Units to fetch data for. Choose between "
+ "'growth_previous', 'growth_same', 'index_2015'")
)
frequency: CPI_FREQUENCY = Field(
default="monthly", description=QUERY_DESCRIPTIONS.get("frequency")
From bc109ff5228ba36988a2cf404236b8b200e5e995 Mon Sep 17 00:00:00 2001
From: Theodore Aptekarev
Date: Thu, 26 Oct 2023 16:57:30 +0200
Subject: [PATCH 21/23] Add ETF extension to v4 (#5609)
* Add etf extension with search data model
* Add FMP ETF search
* Add fetcher tests
---
openbb_platform/extensions/etf/README.md | 11 +
.../extensions/etf/openbb_etf/__init__.py | 1 +
.../extensions/etf/openbb_etf/etf_router.py | 29 +
openbb_platform/extensions/etf/pyproject.toml | 18 +
openbb_platform/extensions/etf/tests/.gitkeep | 0
.../standard_models/etf_search.py | 4 +-
.../providers/fmp/openbb_fmp/__init__.py | 2 +
.../fmp/openbb_fmp/models/etf_search.py | 134 +
.../providers/fmp/openbb_fmp/utils/helpers.py | 9 +-
.../test_fmp_etf_search_fetcher.yaml | 3984 +++++++++++++++++
.../providers/fmp/tests/test_fmp_fetchers.py | 10 +
11 files changed, 4196 insertions(+), 6 deletions(-)
create mode 100644 openbb_platform/extensions/etf/README.md
create mode 100644 openbb_platform/extensions/etf/openbb_etf/__init__.py
create mode 100644 openbb_platform/extensions/etf/openbb_etf/etf_router.py
create mode 100644 openbb_platform/extensions/etf/pyproject.toml
create mode 100644 openbb_platform/extensions/etf/tests/.gitkeep
create mode 100644 openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py
create mode 100644 openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_search_fetcher.yaml
diff --git a/openbb_platform/extensions/etf/README.md b/openbb_platform/extensions/etf/README.md
new file mode 100644
index 000000000000..ea64529e6472
--- /dev/null
+++ b/openbb_platform/extensions/etf/README.md
@@ -0,0 +1,11 @@
+# ETF data extension for OpenBB SDK
+
+This extension provides a set of commands for ETF data retrieval.
+
+## Installation
+
+To install the extension, run the following command in this folder:
+
+```bash
+pip install .
+```
diff --git a/openbb_platform/extensions/etf/openbb_etf/__init__.py b/openbb_platform/extensions/etf/openbb_etf/__init__.py
new file mode 100644
index 000000000000..0151e352e778
--- /dev/null
+++ b/openbb_platform/extensions/etf/openbb_etf/__init__.py
@@ -0,0 +1 @@
+"""OpenBB ETF Extension."""
diff --git a/openbb_platform/extensions/etf/openbb_etf/etf_router.py b/openbb_platform/extensions/etf/openbb_etf/etf_router.py
new file mode 100644
index 000000000000..a8ff8dde67a5
--- /dev/null
+++ b/openbb_platform/extensions/etf/openbb_etf/etf_router.py
@@ -0,0 +1,29 @@
+"""ETF Router."""
+
+from openbb_core.app.model.command_context import CommandContext
+from openbb_core.app.model.obbject import OBBject
+from openbb_core.app.provider_interface import (
+ ExtraParams,
+ ProviderChoices,
+ StandardParams,
+)
+from openbb_core.app.query import Query
+from openbb_core.app.router import Router
+from pydantic import BaseModel
+
+router = Router(prefix="")
+
+
+# pylint: disable=unused-argument
+@router.command(model="EtfSearch")
+def search(
+ cc: CommandContext,
+ provider_choices: ProviderChoices,
+ standard_params: StandardParams,
+ extra_params: ExtraParams,
+) -> OBBject[BaseModel]:
+ """Search for ETFs.
+
+ An empty query returns the full list of ETFs from the provider.
+ """
+ return OBBject(results=Query(**locals()).execute())
diff --git a/openbb_platform/extensions/etf/pyproject.toml b/openbb_platform/extensions/etf/pyproject.toml
new file mode 100644
index 000000000000..73c9878f6642
--- /dev/null
+++ b/openbb_platform/extensions/etf/pyproject.toml
@@ -0,0 +1,18 @@
+[tool.poetry]
+name = "openbb-etf"
+version = "0.1.0a3"
+description = "ETF extension for OpenBB"
+authors = ["OpenBB Team "]
+readme = "README.md"
+packages = [{ include = "openbb_etf" }]
+
+[tool.poetry.dependencies]
+python = "^3.8"
+openbb-core = "^0.1.0a4"
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry.plugins."openbb_core_extension"]
+etf = "openbb_etf.etf_router:router"
diff --git a/openbb_platform/extensions/etf/tests/.gitkeep b/openbb_platform/extensions/etf/tests/.gitkeep
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/openbb_platform/platform/provider/openbb_provider/standard_models/etf_search.py b/openbb_platform/platform/provider/openbb_provider/standard_models/etf_search.py
index 6725d120c6a1..13db993169bb 100644
--- a/openbb_platform/platform/provider/openbb_provider/standard_models/etf_search.py
+++ b/openbb_platform/platform/provider/openbb_provider/standard_models/etf_search.py
@@ -10,7 +10,7 @@
class EtfSearchQueryParams(QueryParams):
- """ETF Search Query Params"""
+ """ETF Search Query Params."""
query: Optional[str] = Field(description="Search query.", default="")
@@ -18,5 +18,5 @@ class EtfSearchQueryParams(QueryParams):
class EtfSearchData(Data):
"""ETF Search Data."""
- symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))
+ symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", "") + "(ETF)")
name: Optional[str] = Field(description="Name of the ETF.", default=None)
diff --git a/openbb_platform/providers/fmp/openbb_fmp/__init__.py b/openbb_platform/providers/fmp/openbb_fmp/__init__.py
index 1250b6e7d232..5b03b72e2b67 100644
--- a/openbb_platform/providers/fmp/openbb_fmp/__init__.py
+++ b/openbb_platform/providers/fmp/openbb_fmp/__init__.py
@@ -11,6 +11,7 @@
from openbb_fmp.models.dividend_calendar import FMPDividendCalendarFetcher
from openbb_fmp.models.earnings_calendar import FMPEarningsCalendarFetcher
from openbb_fmp.models.earnings_call_transcript import FMPEarningsCallTranscriptFetcher
+from openbb_fmp.models.etf_search import FMPEtfSearchFetcher
from openbb_fmp.models.executive_compensation import FMPExecutiveCompensationFetcher
from openbb_fmp.models.financial_ratios import FMPFinancialRatiosFetcher
from openbb_fmp.models.forex_historical import FMPForexHistoricalFetcher
@@ -82,6 +83,7 @@
"CompanyFilings": FMPCompanyFilingsFetcher,
"TreasuryRates": FMPTreasuryRatesFetcher,
"ExecutiveCompensation": FMPExecutiveCompensationFetcher,
+ "EtfSearch": FMPEtfSearchFetcher,
"CryptoHistorical": FMPCryptoHistoricalFetcher,
"ForexHistorical": FMPForexHistoricalFetcher,
"ForexPairs": FMPForexPairsFetcher,
diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py b/openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py
new file mode 100644
index 000000000000..2b9545bd7122
--- /dev/null
+++ b/openbb_platform/providers/fmp/openbb_fmp/models/etf_search.py
@@ -0,0 +1,134 @@
+"""FMP ETF Search fetcher."""
+
+from typing import Any, Dict, List, Literal, Optional
+
+import pandas as pd
+from openbb_fmp.utils.helpers import create_url, get_data_many
+from openbb_provider.abstract.fetcher import Fetcher
+from openbb_provider.standard_models.etf_search import (
+ EtfSearchData,
+ EtfSearchQueryParams,
+)
+from pydantic import Field
+
+
+class FMPEtfSearchQueryParams(EtfSearchQueryParams):
+ """FMP ETF Search Query Params."""
+
+ exchange: Optional[
+ Literal["AMEX", "NYSE", "NASDAQ", "ETF", "TSX", "EURONEXT"]
+ ] = Field(
+ description="The exchange code the ETF trades on.",
+ default=None,
+ )
+ is_active: Optional[Literal[True, False]] = Field(
+ description="Whether the ETF is actively trading.",
+ default=None,
+ )
+
+
+class FMPEtfSearchData(EtfSearchData):
+ """FMP ETF Search Data."""
+
+ __alias_dict__ = {
+ "name": "companyName",
+ }
+
+ market_cap: Optional[float] = Field(
+ description="The market cap of the ETF.", alias="marketCap", default=None
+ )
+ sector: Optional[str] = Field(description="The sector of the ETF.", default=None)
+ industry: Optional[str] = Field(
+ description="The industry of the ETF.", default=None
+ )
+ beta: Optional[float] = Field(description="The beta of the ETF.", default=None)
+ price: Optional[float] = Field(
+ description="The current price of the ETF.", default=None
+ )
+ last_annual_dividend: Optional[float] = Field(
+ description="The last annual dividend paid.",
+ alias="lastAnnualDividend",
+ default=None,
+ )
+ volume: Optional[float] = Field(
+ description="The current trading volume of the ETF.", default=None
+ )
+ exchange: Optional[str] = Field(
+ description="The exchange code the ETF trades on.",
+ alias="exchangeShortName",
+ default=None,
+ )
+ exchange_name: Optional[str] = Field(
+ description="The full name of the exchange the ETF trades on.",
+ alias="exchange",
+ default=None,
+ )
+ country: Optional[str] = Field(
+ description="The country the ETF is registered in.", default=None
+ )
+ actively_trading: Optional[Literal[True, False]] = Field(
+ description="Whether the ETF is actively trading.",
+ alias="isActivelyTrading",
+ default=None,
+ )
+
+
+class FMPEtfSearchFetcher(
+ Fetcher[
+ FMPEtfSearchQueryParams,
+ List[FMPEtfSearchData],
+ ]
+):
+ """Transform the query, extract and transform the data from the FMP endpoints."""
+
+ @staticmethod
+ def transform_query(params: Dict[str, Any]) -> FMPEtfSearchQueryParams:
+ """Transform the query."""
+ return FMPEtfSearchQueryParams(**params)
+
+ @staticmethod
+ def extract_data(
+ query: FMPEtfSearchQueryParams,
+ credentials: Optional[Dict[str, str]],
+ **kwargs: Any,
+ ) -> List[Dict]:
+ """Return the raw data from the FMP endpoint."""
+ api_key = credentials.get("fmp_api_key") if credentials else ""
+
+ url = create_url(
+ 3,
+ "stock-screener",
+ api_key,
+ {"isEtf": True, "limit": 10000},
+ exclude=["symbol"],
+ )
+
+ return get_data_many(url, **kwargs)
+
+ @staticmethod
+ def transform_data(
+ query: FMPEtfSearchQueryParams, data: List[Dict], **kwargs: Any
+ ) -> List[FMPEtfSearchData]:
+ """Return the transformed data."""
+ etfs = pd.DataFrame(data)
+ etfs.drop(columns="isEtf", inplace=True)
+
+ if query.is_active:
+ etfs = etfs[etfs["isActivelyTrading"] == query.is_active]
+
+ if query.exchange:
+ etfs = etfs[etfs["exchangeShortName"] == query.exchange]
+
+ if query.query:
+ etfs = etfs[
+ etfs["companyName"].str.contains(query.query, case=False)
+ | etfs["exchangeShortName"].str.contains(query.query, case=False)
+ | etfs["exchange"].str.contains(query.query, case=False)
+ | etfs["sector"].str.contains(query.query, case=False)
+ | etfs["industry"].str.contains(query.query, case=False)
+ | etfs["country"].str.contains(query.query, case=False)
+ ]
+ for col in etfs:
+ if etfs[col].dtype in ("int", "float"):
+ etfs[col] = etfs[col].fillna(0)
+ return [FMPEtfSearchData.model_validate(d) for d in etfs.to_dict("records")]
diff --git a/openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py b/openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py
index 953e60275b03..e045cce0c432 100644
--- a/openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py
+++ b/openbb_platform/providers/fmp/openbb_fmp/utils/helpers.py
@@ -3,7 +3,7 @@
import json
from datetime import date as dateType
from io import StringIO
-from typing import Any, List, Optional, TypeVar, Union
+from typing import Any, Dict, List, Optional, TypeVar, Union
import requests
from openbb_provider import helpers
@@ -79,7 +79,7 @@ def create_url(
version: int,
endpoint: str,
api_key: Optional[str],
- query: Optional[BaseModel] = None,
+ query: Optional[Union[BaseModel, Dict]] = None,
exclude: Optional[List[str]] = None,
) -> str:
"""Return a URL for the FMP API.
@@ -102,7 +102,9 @@ def create_url(
str
The querystring.
"""
- the_dict = {} if not query else query.model_dump()
+ the_dict = {}
+ if query:
+ the_dict = query.model_dump() if isinstance(query, BaseModel) else query
query_string = get_querystring(the_dict, exclude or [])
base_url = f"https://financialmodelingprep.com/api/v{version}/"
return f"{base_url}{endpoint}?{query_string}&apikey={api_key}"
@@ -169,7 +171,6 @@ def most_recent_quarter(base: dateType = dateType.today()) -> dateType:
def get_interval(value: str) -> str:
"""Get the intervals for the FMP API."""
-
intervals = {
"m": "min",
"h": "hour",
diff --git a/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_search_fetcher.yaml b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_search_fetcher.yaml
new file mode 100644
index 000000000000..fafedab31d6c
--- /dev/null
+++ b/openbb_platform/providers/fmp/tests/record/http/test_fmp_fetchers/test_fmp_etf_search_fetcher.yaml
@@ -0,0 +1,3984 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ method: GET
+ uri: https://financialmodelingprep.com/api/v3/stock-screener?apikey=MOCK_API_KEY&isEtf=True&limit=10000
+ response:
+ body:
+ string: !!binary |
+ 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
+ 7d//B2SP8Lc/BSIA
+ headers:
+ Access-Control-Allow-Credentials:
+ - 'true'
+ Access-Control-Allow-Headers:
+ - X-Requested-With, content-type, auth-token, Authorization, stripe-signature,
+ APPS
+ Access-Control-Allow-Methods:
+ - GET, POST, OPTIONS
+ Access-Control-Allow-Origin:
+ - '*'
+ Access-Control-Max-Age:
+ - '3600'
+ Connection:
+ - keep-alive
+ Content-Encoding:
+ - gzip
+ Content-Type:
+ - application/json; charset=utf-8
+ Date:
+ - Thu, 26 Oct 2023 09:51:12 GMT
+ ETag:
+ - W/"22053f-EEOM4e1ljqq3RFQ+bm23QDVvh+o"
+ Server:
+ - nginx/1.18.0 (Ubuntu)
+ Transfer-Encoding:
+ - chunked
+ Vary:
+ - Accept-Encoding
+ X-Frame-Options:
+ - SAMEORIGIN
+ X-Powered-By:
+ - Express
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py b/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py
index f2d49a87ed02..3152cbed6e35 100644
--- a/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py
+++ b/openbb_platform/providers/fmp/tests/test_fmp_fetchers.py
@@ -14,6 +14,7 @@
from openbb_fmp.models.dividend_calendar import FMPDividendCalendarFetcher
from openbb_fmp.models.earnings_calendar import FMPEarningsCalendarFetcher
from openbb_fmp.models.earnings_call_transcript import FMPEarningsCallTranscriptFetcher
+from openbb_fmp.models.etf_search import FMPEtfSearchFetcher
from openbb_fmp.models.executive_compensation import FMPExecutiveCompensationFetcher
from openbb_fmp.models.financial_ratios import FMPFinancialRatiosFetcher
from openbb_fmp.models.forex_historical import FMPForexHistoricalFetcher
@@ -455,3 +456,12 @@ def test_fmp_financial_ratios_fetcher(credentials=test_credentials):
fetcher = FMPFinancialRatiosFetcher()
result = fetcher.test(params, credentials)
assert result is None
+
+
+@pytest.mark.record_http
+def test_fmp_etf_search_fetcher(credentials=test_credentials):
+ params = {"query": "India"}
+
+ fetcher = FMPEtfSearchFetcher()
+ result = fetcher.test(params, credentials)
+ assert result is None
From 6b8947cf29e91e4d508a385fea5bc18115092718 Mon Sep 17 00:00:00 2001
From: Theodore Aptekarev
Date: Thu, 26 Oct 2023 17:25:03 +0200
Subject: [PATCH 22/23] Add ETF historical price from yfinance (#5610)
* Add etf extension with search data model
* Add FMP ETF search
* Add fetcher tests
* Add etf historical price standard model and route
* Add etf historical data from yfinance
* Add unit tests
* Fix linter error. Organize imports
* Update test data
* Revert common descriptions erased by CPI PR
---
.../extensions/etf/openbb_etf/etf_router.py | 11 +
.../openbb_provider/standard_models/cpi.py | 13 +-
.../standard_models/etf_historical.py | 51 +++++
.../openbb_provider/utils/descriptions.py | 5 +-
.../yfinance/openbb_yfinance/__init__.py | 2 +
.../openbb_yfinance/models/etf_historical.py | 93 ++++++++
.../yfinance/openbb_yfinance/py.typed | 0
.../yfinance/openbb_yfinance/utils/helpers.py | 11 +-
...test_y_finance_etf_historical_fetcher.yaml | 207 ++++++++++++++++++
.../yfinance/tests/test_yfinance_fetchers.py | 14 ++
10 files changed, 398 insertions(+), 9 deletions(-)
create mode 100644 openbb_platform/platform/provider/openbb_provider/standard_models/etf_historical.py
create mode 100644 openbb_platform/providers/yfinance/openbb_yfinance/models/etf_historical.py
create mode 100644 openbb_platform/providers/yfinance/openbb_yfinance/py.typed
create mode 100644 openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_etf_historical_fetcher.yaml
diff --git a/openbb_platform/extensions/etf/openbb_etf/etf_router.py b/openbb_platform/extensions/etf/openbb_etf/etf_router.py
index a8ff8dde67a5..654b8d0adfbc 100644
--- a/openbb_platform/extensions/etf/openbb_etf/etf_router.py
+++ b/openbb_platform/extensions/etf/openbb_etf/etf_router.py
@@ -27,3 +27,14 @@ def search(
An empty query returns the full list of ETFs from the provider.
"""
return OBBject(results=Query(**locals()).execute())
+
+
+@router.command(model="EtfHistorical")
+def historical(
+ cc: CommandContext,
+ provider_choices: ProviderChoices,
+ standard_params: StandardParams,
+ extra_params: ExtraParams,
+) -> OBBject[BaseModel]:
+ """ETF Historical Market Price."""
+ return OBBject(results=Query(**locals()).execute())
diff --git a/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py b/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
index 4c5312ae1c41..d8cafff7e3a4 100644
--- a/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
+++ b/openbb_platform/platform/provider/openbb_provider/standard_models/cpi.py
@@ -74,11 +74,18 @@ class CPIQueryParams(QueryParams):
)
units: CPI_UNITS = Field(
default="growth_same",
- description=("Units to fetch data for. Choose between "
- "'growth_previous', 'growth_same', 'index_2015'")
+ description=QUERY_DESCRIPTIONS.get("units", "")
+ + """
+ Options:
+ - `growth_previous`: growth from the previous period
+ - `growth_same`: growth from the same period in the previous year
+ - `index_2015`: index with base year 2015.""",
)
frequency: CPI_FREQUENCY = Field(
- default="monthly", description=QUERY_DESCRIPTIONS.get("frequency")
+ default="monthly",
+ description=QUERY_DESCRIPTIONS.get("frequency", "")
+ + """
+ Options: `monthly`, `quarter`, and `annual`.""",
)
harmonized: bool = Field(
default=False, description="Whether you wish to obtain harmonized data."
diff --git a/openbb_platform/platform/provider/openbb_provider/standard_models/etf_historical.py b/openbb_platform/platform/provider/openbb_provider/standard_models/etf_historical.py
new file mode 100644
index 000000000000..a7faf874faa0
--- /dev/null
+++ b/openbb_platform/platform/provider/openbb_provider/standard_models/etf_historical.py
@@ -0,0 +1,51 @@
+"""ETF Historical End of Day Market Price."""
+
+from datetime import date as dateType
+from typing import List, Optional, Set, Union
+
+from dateutil import parser
+from pydantic import Field, NonNegativeInt, PositiveFloat, field_validator
+
+from openbb_provider.abstract.data import Data
+from openbb_provider.abstract.query_params import QueryParams
+from openbb_provider.utils.descriptions import DATA_DESCRIPTIONS, QUERY_DESCRIPTIONS
+
+
+class EtfHistoricalQueryParams(QueryParams):
+ """ETF end of day Query."""
+
+ symbol: str = Field(description=QUERY_DESCRIPTIONS.get("symbol", "") + " (ETF)")
+ start_date: Optional[dateType] = Field(
+ default=None,
+ description=QUERY_DESCRIPTIONS.get("start_date", ""),
+ )
+ end_date: Optional[dateType] = Field(
+ default=None,
+ description=QUERY_DESCRIPTIONS.get("end_date", ""),
+ )
+
+ @field_validator("symbol", mode="before", check_fields=False)
+ @classmethod
+ def validate_symbol(cls, v: Union[str, List[str], Set[str]]):
+ """Convert symbol to uppercase and remove '-'."""
+ if isinstance(v, str):
+ return v.upper()
+ return ",".join([symbol.upper() for symbol in list(v)])
+
+
+class EtfHistoricalData(Data):
+ """ETF end of day price Data."""
+
+ date: dateType = Field(description=DATA_DESCRIPTIONS.get("date", ""))
+ open: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("open", ""))
+ high: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("high", ""))
+ low: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("low", ""))
+ close: PositiveFloat = Field(description=DATA_DESCRIPTIONS.get("close", ""))
+ volume: Optional[NonNegativeInt] = Field(
+ description=DATA_DESCRIPTIONS.get("volume", "")
+ )
+
+ @field_validator("date", mode="before", check_fields=False)
+ def date_validate(cls, v): # pylint: disable=E0213
+ """Return formatted datetime."""
+ return parser.isoparse(str(v))
diff --git a/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py b/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
index acc42709eabc..9a400b94a9b2 100644
--- a/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
+++ b/openbb_platform/platform/provider/openbb_provider/utils/descriptions.py
@@ -5,11 +5,14 @@
"start_date": "Start date of the data, in YYYY-MM-DD format.",
"end_date": "End date of the data, in YYYY-MM-DD format.",
"interval": "Time interval of the data to return.",
+ # "weekly": "Whether to return weekly data.",
+ # "monthly": "Whether to return monthly data.",
"period": "Time period of the data to return.",
"date": "A specific date to get data for.",
"limit": "The number of data entries to return.",
"countries": "The country or countries to get data.",
- "frequency": "The frequency of the data points; options include `monthly`, `quarter`, and `annual`",
+ "units": "The unit of measurement for the data.",
+ "frequency": "The frequency of the data.",
}
DATA_DESCRIPTIONS = {
diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py b/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py
index 4930113bc00b..b1a314534c96 100644
--- a/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py
+++ b/openbb_platform/providers/yfinance/openbb_yfinance/__init__.py
@@ -6,6 +6,7 @@
from openbb_yfinance.models.balance_sheet import YFinanceBalanceSheetFetcher
from openbb_yfinance.models.cash_flow import YFinanceCashFlowStatementFetcher
from openbb_yfinance.models.crypto_historical import YFinanceCryptoHistoricalFetcher
+from openbb_yfinance.models.etf_historical import YFinanceEtfHistoricalFetcher
from openbb_yfinance.models.forex_historical import YFinanceForexHistoricalFetcher
from openbb_yfinance.models.futures_curve import YFinanceFuturesCurveFetcher
from openbb_yfinance.models.futures_historical import YFinanceFuturesHistoricalFetcher
@@ -27,6 +28,7 @@
"ForexHistorical": YFinanceForexHistoricalFetcher,
"MajorIndicesHistorical": YFinanceMajorIndicesHistoricalFetcher,
"StockHistorical": YFinanceStockHistoricalFetcher,
+ "EtfHistorical": YFinanceEtfHistoricalFetcher,
"FuturesHistorical": YFinanceFuturesHistoricalFetcher,
"FuturesCurve": YFinanceFuturesCurveFetcher,
"StockNews": YFinanceStockNewsFetcher,
diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/models/etf_historical.py b/openbb_platform/providers/yfinance/openbb_yfinance/models/etf_historical.py
new file mode 100644
index 000000000000..f6d12ea5d048
--- /dev/null
+++ b/openbb_platform/providers/yfinance/openbb_yfinance/models/etf_historical.py
@@ -0,0 +1,93 @@
+"""YFinance ETF Historical Market Price."""
+from datetime import datetime
+from typing import Any, Dict, List, Optional
+
+from dateutil.relativedelta import relativedelta
+from openbb_provider.abstract.fetcher import Fetcher
+from openbb_provider.standard_models.etf_historical import (
+ EtfHistoricalData,
+ EtfHistoricalQueryParams,
+)
+from openbb_provider.utils.errors import EmptyDataError
+from pandas import Timestamp
+from pydantic import Field, field_validator
+
+from ..utils.helpers import yf_download
+
+
+class YFinanceEtfHistoricalQueryParams(EtfHistoricalQueryParams):
+ """YFinance ETF Historical End of Day Market Price Query.
+
+ Source: https://finance.yahoo.com/
+ """
+
+
+class YFinanceEtfHistoricalData(EtfHistoricalData):
+ """YFinance Etf End of Day Data."""
+
+ __alias_dict__ = {
+ "adj_close": "adj close",
+ }
+
+ adj_close: float = Field(
+ description="The adjusted closing price of the ETF.",
+ )
+
+ @field_validator("date", mode="before", check_fields=False)
+ def date_validate(cls, v): # pylint: disable=E0213
+ """Return formatted datetime."""
+ if isinstance(v, Timestamp):
+ return v.to_pydatetime()
+ return v
+
+
+class YFinanceEtfHistoricalFetcher(
+ Fetcher[
+ YFinanceEtfHistoricalQueryParams,
+ List[YFinanceEtfHistoricalData],
+ ]
+):
+ """Transform the query, extract and transform the data from the yfinance endpoints."""
+
+ @staticmethod
+ def transform_query(params: Dict[str, Any]) -> YFinanceEtfHistoricalQueryParams:
+ """Transform the query."""
+ transformed_params = params
+ now = datetime.now().date()
+
+ if params.get("start_date") is None:
+ transformed_params["start_date"] = now - relativedelta(years=1)
+
+ if params.get("end_date") is None:
+ transformed_params["end_date"] = now
+
+ return YFinanceEtfHistoricalQueryParams(**params)
+
+ # pylint: disable=unused-argument
+ @staticmethod
+ def extract_data(
+ query: YFinanceEtfHistoricalQueryParams,
+ credentials: Optional[Dict[str, str]],
+ **kwargs: Any,
+ ) -> List[Dict]:
+ """Return the raw data from the yfinance endpoint."""
+ data = yf_download(
+ symbol=query.symbol,
+ start_date=query.start_date,
+ end_date=query.end_date,
+ keep_adjusted=True,
+ )
+
+ if data.empty:
+ raise EmptyDataError()
+
+ return data.to_dict("records")
+
+ @staticmethod
+ def transform_data(
+ query: YFinanceEtfHistoricalQueryParams,
+ data: List[Dict],
+ **kwargs: Any,
+ ) -> List[YFinanceEtfHistoricalData]:
+ """Transform the data to the standard format."""
+ return [YFinanceEtfHistoricalData.model_validate(d) for d in data]
diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/py.typed b/openbb_platform/providers/yfinance/openbb_yfinance/py.typed
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py b/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py
index d0a9d75c51e1..f4e7e8ad03a7 100644
--- a/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py
+++ b/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py
@@ -1,6 +1,5 @@
"""yfinance helpers module."""
-
from datetime import (
date as dateType,
datetime,
@@ -11,7 +10,8 @@
import pandas as pd
import yfinance as yf
from dateutil.relativedelta import relativedelta
-from openbb_yfinance.utils.references import MONTHS
+
+from .references import MONTHS
def get_futures_data() -> pd.DataFrame:
@@ -78,6 +78,7 @@ def get_futures_curve(symbol: str, date: Optional[dateType]) -> pd.DataFrame:
return pd.DataFrame({"Last Price": futures_curve, "expiration": futures_index})
+# pylint: disable=too-many-arguments,unused-argument
def yf_download(
symbol: str,
start_date: Optional[Union[str, dateType]] = None,
@@ -94,10 +95,10 @@ def yf_download(
repair: bool = False,
rounding: bool = False,
group_by: Literal["symbol", "column"] = "column",
+ keep_adjusted: bool = False,
**kwargs: Any,
) -> pd.DataFrame:
- """Base level yFinance OHLC helper function for returning any ticker and interval available."""
-
+ """Get yFinance OHLC data for any ticker and interval available."""
symbol = symbol.upper()
_start_date = start_date
@@ -165,7 +166,7 @@ def yf_download(
if interval not in ["1m", "2m", "5m", "15m", "30m", "90m", "60m", "1h"]:
data["date"] = data["date"].dt.tz_localize(None).dt.strftime("%Y-%m-%d")
- if actions is False:
+ if keep_adjusted is False:
data = data.drop(columns=["Adj Close"])
data.columns = data.columns.str.lower().to_list()
diff --git a/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_etf_historical_fetcher.yaml b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_etf_historical_fetcher.yaml
new file mode 100644
index 000000000000..08dd47194462
--- /dev/null
+++ b/openbb_platform/providers/yfinance/tests/record/http/test_yfinance_fetchers/test_y_finance_etf_historical_fetcher.yaml
@@ -0,0 +1,207 @@
+interactions:
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ method: GET
+ uri: https://query2.finance.yahoo.com/v8/finance/chart/IOO?interval=1d&range=1d
+ response:
+ body:
+ string: '{"chart":{"result":[{"meta":{"currency":"USD","symbol":"IOO","exchangeName":"PCX","instrumentType":"ETF","firstTradeDate":976285800,"regularMarketTime":1698331637,"gmtoffset":-14400,"timezone":"EDT","exchangeTimezoneName":"America/New_York","regularMarketPrice":71.644,"chartPreviousClose":72.31,"priceHint":2,"currentTradingPeriod":{"pre":{"timezone":"EDT","start":1698307200,"end":1698327000,"gmtoffset":-14400},"regular":{"timezone":"EDT","start":1698327000,"end":1698350400,"gmtoffset":-14400},"post":{"timezone":"EDT","start":1698350400,"end":1698364800,"gmtoffset":-14400}},"dataGranularity":"1d","range":"1d","validRanges":["1d","5d","1mo","3mo","6mo","1y","2y","5y","10y","ytd","max"]},"timestamp":[1698331637],"indicators":{"quote":[{"volume":[19268],"low":[71.4000015258789],"high":[72.0999984741211],"close":[71.64420318603516],"open":[72.05000305175781]}],"adjclose":[{"adjclose":[71.64420318603516]}]}}],"error":null}}'
+ headers:
+ Age:
+ - '0'
+ Connection:
+ - keep-alive
+ Expect-CT:
+ - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only"
+ Referrer-Policy:
+ - no-referrer-when-downgrade
+ Strict-Transport-Security:
+ - max-age=31536000
+ X-Content-Type-Options:
+ - nosniff
+ X-XSS-Protection:
+ - 1; mode=block
+ cache-control:
+ - public, max-age=10, stale-while-revalidate=20
+ content-length:
+ - '931'
+ content-type:
+ - application/json;charset=utf-8
+ date:
+ - Thu, 26 Oct 2023 14:52:53 GMT
+ server:
+ - ATS
+ vary:
+ - Origin,Accept-Encoding
+ x-envoy-decorator-operation:
+ - finance-chart-api--mtls-production-ir2.finance-k8s.svc.yahoo.local:4080/*
+ x-envoy-upstream-service-time:
+ - '50'
+ x-request-id:
+ - b0b23b93-2e0e-4611-8012-ffdafb27725b
+ x-yahoo-request-id:
+ - 5nlevs5ijkva5
+ y-rid:
+ - 5nlevs5ijkva5
+ status:
+ code: 200
+ message: OK
+- request:
+ body: null
+ headers:
+ Accept:
+ - '*/*'
+ Accept-Encoding:
+ - gzip, deflate
+ Connection:
+ - keep-alive
+ method: GET
+ uri: https://query2.finance.yahoo.com/v8/finance/chart/IOO?events=div%2Csplits%2CcapitalGains&includePrePost=False&interval=1d&period1=MOCK_PERIOD_1&period2=MOCK_PERIOD_2
+ response:
+ body:
+ string: !!binary |
+ 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
+ 249SVN49PT0+3Xz18OHNm48f/xcdPk6xj1cAAA==
+ headers:
+ Age:
+ - '1'
+ Connection:
+ - keep-alive
+ Expect-CT:
+ - max-age=31536000, report-uri="http://csp.yahoo.com/beacon/csp?src=yahoocom-expect-ct-report-only"
+ Referrer-Policy:
+ - no-referrer-when-downgrade
+ Strict-Transport-Security:
+ - max-age=31536000
+ Transfer-Encoding:
+ - chunked
+ X-Content-Type-Options:
+ - nosniff
+ X-XSS-Protection:
+ - 1; mode=block
+ cache-control:
+ - public, max-age=10, stale-while-revalidate=20
+ content-encoding:
+ - gzip
+ content-type:
+ - application/json;charset=utf-8
+ date:
+ - Thu, 26 Oct 2023 14:52:53 GMT
+ server:
+ - ATS
+ vary:
+ - Origin,Accept-Encoding
+ x-envoy-decorator-operation:
+ - finance-chart-api--mtls-production-ir2.finance-k8s.svc.yahoo.local:4080/*
+ x-envoy-upstream-service-time:
+ - '31'
+ x-request-id:
+ - a0cc5f2f-2ba3-46fc-aed6-4f8ddf0543b9
+ x-yahoo-request-id:
+ - 65556j9ijkva6
+ y-rid:
+ - 65556j9ijkva6
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py b/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py
index 2a61f93224f0..afbab841967d 100644
--- a/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py
+++ b/openbb_platform/providers/yfinance/tests/test_yfinance_fetchers.py
@@ -6,6 +6,7 @@
from openbb_yfinance.models.balance_sheet import YFinanceBalanceSheetFetcher
from openbb_yfinance.models.cash_flow import YFinanceCashFlowStatementFetcher
from openbb_yfinance.models.crypto_historical import YFinanceCryptoHistoricalFetcher
+from openbb_yfinance.models.etf_historical import YFinanceEtfHistoricalFetcher
from openbb_yfinance.models.forex_historical import YFinanceForexHistoricalFetcher
from openbb_yfinance.models.futures_curve import YFinanceFuturesCurveFetcher
from openbb_yfinance.models.futures_historical import YFinanceFuturesHistoricalFetcher
@@ -154,3 +155,16 @@ def test_y_finance_available_indices_fetcher(credentials=test_credentials):
fetcher = YFinanceAvailableIndicesFetcher()
result = fetcher.test(params, credentials)
assert result is None
+
+
+@pytest.mark.record_http
+def test_y_finance_etf_historical_fetcher(credentials=test_credentials):
+ params = {
+ "symbol": "IOO",
+ "start_date": date(2023, 1, 1),
+ "end_date": date(2023, 6, 6),
+ }
+
+ fetcher = YFinanceEtfHistoricalFetcher()
+ result = fetcher.test(params, credentials)
+ assert result is None
From c51336fa746083684903a8f9b1367e65c26b6a28 Mon Sep 17 00:00:00 2001
From: Pratyush Shukla
Date: Thu, 26 Oct 2023 21:13:35 +0530
Subject: [PATCH 23/23] remove `symbol` from data for `stocks.ca.peers`
---
.../provider/openbb_provider/standard_models/stock_peers.py | 3 +--
openbb_platform/providers/fmp/openbb_fmp/models/stock_peers.py | 1 +
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/openbb_platform/platform/provider/openbb_provider/standard_models/stock_peers.py b/openbb_platform/platform/provider/openbb_provider/standard_models/stock_peers.py
index 6fe2bc0ebc4e..e8d13f12836e 100644
--- a/openbb_platform/platform/provider/openbb_provider/standard_models/stock_peers.py
+++ b/openbb_platform/platform/provider/openbb_provider/standard_models/stock_peers.py
@@ -6,7 +6,7 @@
from openbb_provider.abstract.data import Data
from openbb_provider.abstract.query_params import QueryParams
-from openbb_provider.utils.descriptions import DATA_DESCRIPTIONS, QUERY_DESCRIPTIONS
+from openbb_provider.utils.descriptions import QUERY_DESCRIPTIONS
class StockPeersQueryParams(QueryParams):
@@ -25,7 +25,6 @@ def upper_symbol(cls, v: Union[str, List[str], Set[str]]):
class StockPeersData(Data):
"""Stock Peers data."""
- symbol: str = Field(description=DATA_DESCRIPTIONS.get("symbol", ""))
peers_list: List[str] = Field(
default_factory=list,
description="A list of stock peers based on sector, exchange and market cap.",
diff --git a/openbb_platform/providers/fmp/openbb_fmp/models/stock_peers.py b/openbb_platform/providers/fmp/openbb_fmp/models/stock_peers.py
index 6c3c1fc437bf..faf1882a5c7e 100644
--- a/openbb_platform/providers/fmp/openbb_fmp/models/stock_peers.py
+++ b/openbb_platform/providers/fmp/openbb_fmp/models/stock_peers.py
@@ -54,4 +54,5 @@ def transform_data(
query: FMPStockPeersQueryParams, data: dict, **kwargs: Any
) -> FMPStockPeersData:
"""Return the transformed data."""
+ data.pop("symbol")
return FMPStockPeersData.model_validate(data)