Merge branch 'feature/openbb-sdk-v3' into feature/argparse_translator

This commit is contained in:
hjoaquim
2023-07-27 15:05:27 +01:00
14 changed files with 1374 additions and 41 deletions

20
openbb_sdk/README.md vendored
View File

@@ -37,16 +37,6 @@ pip install ./openbb_sdk
This will install the SDK and all the dependencies into the site-packages folder of the virtual environment.
While we're still developing it is required to create the static python interface:
```python
import openbb
openbb._rebuild_python_interface()
exit()
```
Right now you need to do this before the first launch and every time you install or uninstall a new extension.
## API keys
To connect to APIs you need to provide the API keys. Here 3 options how you can provide them:
@@ -143,3 +133,13 @@ From the root of the OpenBB Terminal repo run:
When developing a specific extension cd into the extension folder and run:
`pip install -U -e .`
While we're still developing it is required to create the static python interface:
```python
import openbb
openbb._rebuild_python_interface()
exit()
```
Right now you need to do this before the first launch and every time you install or uninstall a new extension.

View File

@@ -1,4 +1,6 @@
import csv
import os
from pathlib import Path
from typing import List, Literal
CPI_COUNTRIES = Literal[
@@ -61,8 +63,10 @@ CPI_FREQUENCY = Literal["monthly", "quarterly", "annual"]
def all_cpi_options(harmonized: bool = False) -> List[dict]:
data = []
current_dir = os.path.dirname(os.path.realpath(__file__))
file = "harmonized_cpi.csv" if harmonized else "cpi.csv"
with open(file, encoding="utf-8") as csv_file_handler:
with open(Path(current_dir, file), encoding="utf-8") as csv_file_handler:
csv_reader = csv.DictReader(csv_file_handler)
for rows in csv_reader:
row = {key.lstrip("\ufeff"): value for key, value in rows.items()}

View File

@@ -242,9 +242,10 @@ class StaticCommandRunner:
return result
@classmethod
def __execute(
def __command(
cls, system_settings: SystemSettings, func: Callable, kwargs: Dict[str, Any]
) -> CommandOutput:
"""Run a command and return the output"""
try:
context_manager: Union[warnings.catch_warnings, ContextManager[None]] = (
warnings.catch_warnings(record=True)
@@ -283,6 +284,7 @@ class StaticCommandRunner:
route: str,
**kwargs,
) -> None:
"""Create a chart from the command output"""
try:
command_output.chart = cls.charting_manager.chart(
user_settings=user_settings,
@@ -305,12 +307,13 @@ class StaticCommandRunner:
func: Callable,
kwargs: Dict[str, Any],
) -> CommandOutput:
"""Execute a function and return the output"""
user_settings = execution_context.user_settings
system_settings = execution_context.system_settings
# If we're on Jupyter we need to pop here because we will lose "chart" after
# ParametersBuilder.build. This needs to be fixed in a way that chart is not
# is added to the function signature and shared for jupyter and api
# ParametersBuilder.build. This needs to be fixed in a way that chart is
# added to the function signature and shared for jupyter and api
# We can check in the router decorator if the given function has a chart
# in the charting extension then we add it there. This way we can remove
# the chart parameter from the commands.py and package_builder, it will be
@@ -329,7 +332,7 @@ class StaticCommandRunner:
# commands.py and the function signature does not expect "chart"
kwargs.pop("chart", None)
command_output = cls.__execute(
command_output = cls.__command(
system_settings=system_settings,
func=func,
kwargs=kwargs,

View File

@@ -2,6 +2,7 @@ from typing import Optional
import requests
from fastapi import HTTPException
from jose import JWTError, jwt
from openbb_core.app.model.credentials import Credentials
from openbb_core.app.model.hub.features_keys import FeaturesKeys
from openbb_core.app.model.hub.hub_session import HubSession
@@ -113,12 +114,30 @@ class HubService:
detail = response.json().get("detail", None)
raise HTTPException(status_code, detail)
@classmethod
def check_token_expiration(cls, token: str) -> None:
"""Check token expiration, raises exception if expired."""
try:
header_data = jwt.get_unverified_header(token)
jwt.decode(
token,
key="secret",
algorithms=[header_data["alg"]],
options={"verify_signature": False, "verify_exp": True},
)
except jwt.ExpiredSignatureError as e:
raise OpenBBError("SDK personal access token expired.") from e
except JWTError as e:
raise OpenBBError("Failed to decode SDK token.") from e
@classmethod
def get_session_from_sdk_token(cls, token: str) -> HubSession:
"""Get session from SDK personal access token."""
if not token:
raise OpenBBError("SDK personal access token not found.")
cls.check_token_expiration(token)
response = requests.post(
url=cls.BASE_URL + "/sdk/login",
json={

View File

@@ -1,7 +1,9 @@
import datetime
import json
from typing import Any, Dict, List, Literal, Optional
import requests
from jose import jwt
from openbb_terminal.core.session.constants import (
BASE_URL,
@@ -53,6 +55,20 @@ def create_session(
return None
def check_token_expiration(token: str):
"""Raises ExpiredSignatureError if the token is expired."""
header_data = jwt.get_unverified_header(token)
tok = jwt.decode(
token,
key="",
algorithms=[header_data["alg"]],
options={"verify_signature": False, "verify_exp": True},
)
expiration_time = datetime.datetime.fromtimestamp(tok["exp"])
console.print(f"Token expires at {expiration_time}")
def create_session_from_token(
token: str, base_url: str = BASE_URL, timeout: int = TIMEOUT
):
@@ -67,11 +83,18 @@ def create_session_from_token(
timeout : int
The timeout, by default TIMEOUT
"""
try:
check_token_expiration(token)
data = {
"token": token,
}
return requests.post(url=base_url + "sdk/login", json=data, timeout=timeout)
except jwt.ExpiredSignatureError:
console.print(
"\n[red]Token expired. Please regenerate on the OpenBB Hub (my.openbb.co).[/red]"
)
return None
except requests.exceptions.ConnectionError:
console.print("\n[red]Connection error.[/red]")
return None

View File

@@ -659,7 +659,7 @@
" [widgets.h(3, \"Valuation (source: Finviz)\") + valuation.to_html()]\n",
")\n",
"htmlcode += widgets.row(\n",
" [widgets.h(3, \"Performance (source: Finviz)\") + valuation.to_html()]\n",
" [widgets.h(3, \"Performance (source: Finviz)\") + performance.to_html()]\n",
")\n",
"htmlcode += widgets.row([widgets.h(3, \"US markets (source: YahooFinance)\") + eqty_0])\n",
"htmlcode += widgets.row(\n",
@@ -711,7 +711,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
"version": "3.10.8"
},
"vscode": {
"interpreter": {

444
openbb_terminal/requirements-full.txt vendored Normal file
View File

@@ -0,0 +1,444 @@
absl-py==1.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
adagio==0.2.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
aiodns==3.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
aiofiles==22.1.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
aiohttp==3.8.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
aiosignal==1.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
aiosqlite==0.19.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
alabaster==0.7.13 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
alpha-vantage==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
altair==5.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
altgraph==0.17.3 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
ansi2html==1.8.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
ansiwrap==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
antlr4-python3-runtime==4.11.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
arch==5.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi-bindings==21.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
arrow==1.2.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ascii-magic==1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
astor==0.8.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
astroid==2.15.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
astropy==5.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
asttokens==2.2.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
async-timeout==4.0.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
atomicwrites==1.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
attrs==21.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
babel==2.12.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
backcall==0.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
backoff==2.2.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
backports-zoneinfo==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9"
bandit==1.7.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
base58==2.1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
beautifulsoup4==4.12.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
black==23.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
bleach==6.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
blinker==1.6.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
brotli==1.0.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and platform_python_implementation == "CPython"
brotlicffi==1.0.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and platform_python_implementation != "CPython"
bs4==0.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
bt==0.2.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cachetools==5.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
catboost==1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ccxt==4.0.33 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
certifi==2023.5.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cffi==1.15.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cfgv==3.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
charset-normalizer==3.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
click==8.1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cloudpickle==2.2.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cmdstanpy==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
codespell==2.2.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
colorama==0.4.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
comm==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
commonmark==0.9.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
contourpy==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
convertdate==2.4.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
coverage==7.2.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
coverage[toml]==7.2.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cryptography==41.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect2==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect==1.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cvxpy==1.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cycler==0.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cython==3.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
dash-core-components==2.0.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
dash-html-components==2.0.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
dash-table==5.0.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
dash==2.9.3 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
dataclasses-json==0.5.12 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
dateparser==1.1.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
datetime==5.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
debugpy==1.6.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
decorator==5.1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
defusedxml==0.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
degiro-connector==2.0.21 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
detecta==0.0.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
dill==0.3.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
distlib==0.3.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.4.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
docutils==0.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ecdsa==0.18.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ecos==2.0.12 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
entrypoints==0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ephem==4.1.4 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
et-xmlfile==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
exceptiongroup==1.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
exchange-calendars==4.2.8 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
execnet==2.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
executing==1.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fastjsonschema==2.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
feedparser==6.0.10 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ffmpeg-python==0.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ffn==0.3.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
filelock==3.12.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
financedatabase==2.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
finnhub-python==2.4.18 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
finviz==1.4.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
finvizfinance==0.14.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
flake8==6.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
flask==2.3.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
fonttools==4.41.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
formulaic==0.6.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fqdn==1.5.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
fred==3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fredapi==0.4.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
freezegun==1.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
frozendict==2.3.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
frozenlist==1.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fs==2.4.16 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fsspec==2023.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fsspec[http]==2023.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fugue-sql-antlr==0.1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fugue==0.8.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fundamentalanalysis==0.2.14 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
future==0.18.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
gitdb==4.0.10 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
gitpython==3.1.32 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
google-auth-oauthlib==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
google-auth==2.22.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
graphlib-backport==1.0.3 ; python_full_version >= "3.8.1" and python_version < "3.9"
graphviz==0.20.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
greenlet==2.0.2 ; python_full_version >= "3.8.1" and platform_machine == "aarch64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "ppc64le" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "x86_64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "amd64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "AMD64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "win32" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "WIN32" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.56.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
h11==0.14.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
hijri-converter==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
holidays==0.14.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
html5lib==1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
httpcore==0.17.3 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
huggingface-hub==0.16.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
identify==2.5.25 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
idna==3.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
imagesize==1.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
importlib-metadata==6.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
importlib-resources==6.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
inflection==0.5.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
iniconfig==2.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
interface-meta==1.3.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
intrinio-sdk==6.24.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipykernel==6.24.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipympl==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipython-genutils==0.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipython==8.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipywidgets==8.0.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
iso8601==0.1.16 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
isodate==0.6.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
isoduration==20.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
isort==5.12.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
itsdangerous==2.1.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
jedi==0.18.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jinja2==3.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
joblib==1.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
json5==0.9.14 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jsonpointer==2.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema==4.17.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema[format-nongpl]==4.17.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-client==7.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-core==5.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-dash==0.4.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
jupyter-events==0.6.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server-fileid==0.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server-ydoc==0.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server==1.23.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-ydoc==0.2.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-pygments==0.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-server==2.23.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-widgets==3.0.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab==3.6.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
kiwisolver==1.4.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
korean-lunar-calendar==0.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
langchain==0.0.237 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
langsmith==0.0.10 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
lazy-object-proxy==1.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
lightgbm==3.3.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
lightning-utilities==0.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
linearmodels==4.31 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
llama-index==0.7.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
llvmlite==0.40.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
loguru==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
lunarcalendar==0.0.9 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
lxml==4.9.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
macholib==1.16.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "darwin"
markdown-it-py==1.1.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
markdown==3.4.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
markupsafe==2.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
marshmallow==3.19.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
matplotlib-inline==0.1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib==3.7.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mccabe==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mdit-py-plugins==0.2.8 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
mistune==3.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mock==4.0.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
monotonic==1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
more-itertools==9.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mplfinance==0.12.9b7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mstarpy==0.0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
multidict==6.0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
multitasking==0.0.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mutagen==1.46.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mypy-extensions==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mypy==1.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
myst-parser==0.15.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbclassic==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbclient==0.6.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbconvert==7.7.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbformat==5.9.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbmake==1.4.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
nest-asyncio==1.5.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
networkx==3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nfoursid==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nodeenv==1.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
notebook-shim==0.2.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
notebook==6.5.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
numba==0.57.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
numexpr==2.8.4 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
numpy==1.23.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
oandapyv20==0.6.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
oauthlib==3.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
onetimepass==1.0.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
openai-whisper==20230124 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
openai==0.27.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
openapi-schema-pydantic==1.2.4 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
openpyxl==3.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
orjson==3.9.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
osqp==0.6.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
packaging==23.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-datareader==0.10.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-market-calendars==3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-ta==0.3.14b ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas==1.5.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandocfilters==1.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
papermill==2.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
parso==0.8.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pathspec==0.11.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
patsy==0.5.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pbr==5.11.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pefile==2023.2.7 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "win32"
pexpect==4.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32"
pickleshare==0.7.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pillow==9.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pkgutil-resolve-name==1.3.10 ; python_full_version >= "3.8.1" and python_version < "3.9"
platformdirs==3.9.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
plotly-resampler==0.8.3.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
plotly==5.15.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pluggy==1.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pmaw==3.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pmdarima==2.0.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
posthog==3.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
praw==7.7.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
prawcore==2.3.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pre-commit==2.21.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
prometheus-client==0.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
prompt-toolkit==3.0.39 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
property-cached==1.6.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
prophet==1.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
py==1.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==12.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1-modules==0.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1==0.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycares==4.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycodestyle==2.10.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycoingecko==3.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycparser==2.21 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycryptodome==3.18.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycryptodomex==3.18.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pydantic==1.10.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pydeck==0.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pydeprecate==0.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pydocstyle==6.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyerfa==2.0.0.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyflakes==3.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pygments==2.15.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyhdfe==0.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyinstaller-hooks-contrib==2023.6 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pyinstaller==4.10 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pylint==2.17.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyluach==2.2.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pymeeus==0.5.12 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pympler==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyobjc-core==9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyobjc-framework-cocoa==9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyod==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyotp==2.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyparsing==3.0.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyprind==2.11.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyrsistent==0.19.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-cov==3.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-mock==3.11.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-recorder==0.2.3 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pytest-recording==0.12.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-timeout==2.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytest-xdist==3.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytest==6.2.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pythclient==0.1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-binance==1.0.17 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-coinmarketcap==0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-dateutil==2.8.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-jose==3.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-json-logger==2.0.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytorch-lightning==1.6.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytz-deprecation-shim==0.1.0.post0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytz==2023.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pywin32-ctypes==0.2.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7" and sys_platform == "win32"
pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pywinpty==2.0.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and os_name == "nt"
pywry==0.5.13 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyyaml==6.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyzmq==25.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
qdldl==0.1.7.post0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
qpd==0.4.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
quandl==3.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rdflib==6.3.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
regex==2023.6.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
reportlab==3.6.13 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
requests-futures==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
requests-oauthlib==1.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
requests==2.31.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
retrying==1.3.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rfc3339-validator==0.1.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rfc3986-validator==0.1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rich==12.6.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
riskfolio-lib==3.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
robin-stocks==2.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rsa==4.9 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_full_version >= "3.8.1" and python_full_version != "3.9.7"
ruamel-yaml==0.17.32 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ruff==0.0.256 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
scikit-learn==1.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
scipy==1.10.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
screeninfo==0.6.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
scs==3.2.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
seaborn==0.11.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
semantic-version==2.10.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
send2trash==1.8.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
setproctitle==1.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools-rust==1.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools-scm[toml]==7.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools==65.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sgmllib3k==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
shap==0.42.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
six==1.16.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
slicer==0.0.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
smmap==5.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sniffio==1.3.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
snowballstemmer==2.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
soupsieve==2.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sparqlwrapper==2.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sphinx==4.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-applehelp==1.0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-devhelp==1.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-htmlhelp==2.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-jsmath==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-qthelp==1.0.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sphinxcontrib-serializinghtml==1.1.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sqlalchemy==2.0.19 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sqlglot==17.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
squarify==0.4.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
stack-data==0.6.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
statsforecast==1.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
statsmodels==0.13.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
stevedore==5.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
stocksera==0.1.21 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
streamlit==1.24.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
svglib==1.5.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tabulate==0.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tbats==1.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tenacity==8.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard-data-server==0.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tensorboard==2.13.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
terminado==0.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
textwrap3==0.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
thepassiveinvestor==1.2.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
threadpoolctl==3.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tiktoken==0.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
time-machine==2.11.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
tinycss2==1.2.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tokenizers==0.13.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tokenterminal==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
toml==0.10.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tomli==2.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tomlkit==0.11.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
toolz==0.12.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
torch==1.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
torchmetrics==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tornado==6.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tqdm==4.65.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
trace-updater==0.0.9.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
tradingview-ta==3.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
traitlets==5.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
transformers==4.27.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
triad==0.9.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
types-python-dateutil==2.8.19.14 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
types-pytz==2021.3.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
types-pyyaml==6.0.12.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
types-requests==2.31.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
types-setuptools==57.4.18 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
types-six==1.16.21.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
types-urllib3==1.26.25.14 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
typing-extensions==4.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
typing-inspect==0.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tzdata==2023.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tzlocal==4.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
u8darts[torch]==0.23.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ujson==5.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
update-checker==0.18.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
uri-template==1.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
urllib3==1.26.16 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
user-agent==0.1.10 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
vadersentiment==3.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
validators==0.20.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
valinvest==0.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
vcrpy==4.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
virtualenv==20.24.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
watchdog==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
wcwidth==0.2.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
webcolors==1.13 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
webencodings==0.5.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
websocket-client==1.6.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
websockets==11.0.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
werkzeug==2.3.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
wheel==0.40.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
widgetsnbextension==4.0.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
win32-setctime==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
wrapt==1.15.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
xarray==2023.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
xgboost==1.7.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
xlsxwriter==3.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
y-py==0.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
yahooquery==2.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
yarl==1.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
yfinance==0.2.25 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ypy-websocket==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
yt-dlp==2023.7.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
zipp==3.16.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
zope-interface==6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"

298
openbb_terminal/requirements.txt vendored Normal file
View File

@@ -0,0 +1,298 @@
aiodns==3.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
aiofiles==22.1.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
aiohttp==3.8.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
aiosignal==1.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
aiosqlite==0.19.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
alpha-vantage==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
altair==5.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ansiwrap==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
arch==5.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi-bindings==21.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
arrow==1.2.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ascii-magic==1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
astor==0.8.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
asttokens==2.2.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
async-timeout==4.0.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
attrs==21.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
babel==2.12.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
backcall==0.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
backoff==2.2.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
backports-zoneinfo==0.2.1 ; python_full_version >= "3.8.1" and python_version < "3.9"
base58==2.1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
beautifulsoup4==4.12.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
bleach==6.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
blinker==1.6.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
bs4==0.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
bt==0.2.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cachetools==5.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ccxt==4.0.33 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
certifi==2023.5.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cffi==1.15.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
charset-normalizer==3.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
click==8.1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
colorama==0.4.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
comm==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
commonmark==0.9.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
contourpy==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
convertdate==2.4.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
cryptography==41.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect2==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cssselect==1.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cycler==0.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
cython==3.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
dataclasses-json==0.5.12 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
dateparser==1.1.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
datetime==5.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
debugpy==1.6.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
decorator==5.1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
defusedxml==0.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
degiro-connector==2.0.21 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
detecta==0.0.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.4.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
ecdsa==0.18.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
entrypoints==0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
et-xmlfile==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
exceptiongroup==1.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
exchange-calendars==4.2.8 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
executing==1.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fastjsonschema==2.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
feedparser==6.0.10 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ffn==0.3.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
financedatabase==2.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
finnhub-python==2.4.18 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
finviz==1.4.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
finvizfinance==0.14.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
flake8==6.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fonttools==4.41.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
formulaic==0.6.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fqdn==1.5.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
fred==3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fredapi==0.4.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
frozendict==2.3.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
frozenlist==1.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fsspec==2023.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
fundamentalanalysis==0.2.14 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
future==0.18.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
gitdb==4.0.10 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
gitpython==3.1.32 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
graphlib-backport==1.0.3 ; python_full_version >= "3.8.1" and python_version < "3.9"
greenlet==2.0.2 ; python_full_version >= "3.8.1" and platform_machine == "aarch64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "ppc64le" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "x86_64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "amd64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "AMD64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "win32" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "WIN32" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.56.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
h11==0.14.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
hijri-converter==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
holidays==0.14.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
html5lib==1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
httpcore==0.17.3 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
idna==3.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
importlib-metadata==6.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
importlib-resources==6.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.10"
inflection==0.5.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
interface-meta==1.3.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
intrinio-sdk==6.24.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipykernel==6.24.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipympl==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipython-genutils==0.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipython==8.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ipywidgets==8.0.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
iso8601==0.1.16 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
isodate==0.6.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
isoduration==20.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jedi==0.18.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jinja2==3.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
joblib==1.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
json5==0.9.14 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jsonpointer==2.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema==4.17.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jsonschema[format-nongpl]==4.17.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-client==7.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-core==5.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-events==0.6.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server-fileid==0.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server-ydoc==0.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-server==1.23.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyter-ydoc==0.2.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-pygments==0.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-server==2.23.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab-widgets==3.0.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
jupyterlab==3.6.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
kiwisolver==1.4.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
korean-lunar-calendar==0.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
langchain==0.0.237 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
langsmith==0.0.10 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
linearmodels==4.31 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
llama-index==0.7.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
loguru==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
lxml==4.9.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
markupsafe==2.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
marshmallow==3.19.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
matplotlib-inline==0.1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
matplotlib==3.7.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mccabe==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mistune==3.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
monotonic==1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
more-itertools==9.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mplfinance==0.12.9b7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mstarpy==0.0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
multidict==6.0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
multitasking==0.0.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
mypy-extensions==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbclassic==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbclient==0.6.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbconvert==7.7.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nbformat==5.9.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
nest-asyncio==1.5.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
notebook-shim==0.2.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
notebook==6.5.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
numexpr==2.8.4 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
numpy==1.23.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
oandapyv20==0.6.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
onetimepass==1.0.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
openai==0.27.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
openapi-schema-pydantic==1.2.4 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
openpyxl==3.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
packaging==23.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-datareader==0.10.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-market-calendars==3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas-ta==0.3.14b ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandas==1.5.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pandocfilters==1.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
papermill==2.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
parso==0.8.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
patsy==0.5.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pexpect==4.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32"
pickleshare==0.7.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pillow==9.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pkgutil-resolve-name==1.3.10 ; python_full_version >= "3.8.1" and python_version < "3.9"
platformdirs==3.9.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
plotly==5.15.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pmaw==3.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
posthog==3.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
praw==7.7.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
prawcore==2.3.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
prometheus-client==0.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
prompt-toolkit==3.0.39 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
property-cached==1.6.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==12.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1==0.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycares==4.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycodestyle==2.10.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycoingecko==3.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycparser==2.21 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycryptodome==3.18.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pydantic==1.10.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pydeck==0.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyflakes==3.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pygments==2.15.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyhdfe==0.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyluach==2.2.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pymeeus==0.5.12 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
pympler==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyobjc-core==9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyobjc-framework-cocoa==9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin"
pyotp==2.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyparsing==3.0.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyprind==2.11.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyrsistent==0.19.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pythclient==0.1.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-binance==1.0.17 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-coinmarketcap==0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-dateutil==2.8.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-jose==3.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-json-logger==2.0.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytz-deprecation-shim==0.1.0.post0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytz==2023.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pywin32==306 ; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pywinpty==2.0.11 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and os_name == "nt"
pywry==0.5.13 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyyaml==6.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyzmq==25.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
quandl==3.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rdflib==6.3.2 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
regex==2023.6.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
reportlab==3.6.13 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
requests-futures==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
requests==2.31.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
retrying==1.3.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rfc3339-validator==0.1.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rfc3986-validator==0.1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rich==12.6.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
robin-stocks==2.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rsa==4.9 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_full_version >= "3.8.1" and python_full_version != "3.9.7"
ruamel-yaml==0.17.32 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
scikit-learn==1.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
scipy==1.10.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
screeninfo==0.6.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
seaborn==0.11.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
send2trash==1.8.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
setproctitle==1.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools-scm[toml]==7.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
setuptools==65.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sgmllib3k==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
six==1.16.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
smmap==5.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sniffio==1.3.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
soupsieve==2.4.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sparqlwrapper==2.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
sqlalchemy==2.0.19 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
squarify==0.4.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
stack-data==0.6.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
statsmodels==0.13.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
stocksera==0.1.21 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
streamlit==1.24.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
svglib==1.5.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tabulate==0.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tenacity==8.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
terminado==0.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
textwrap3==0.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
thepassiveinvestor==1.2.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
threadpoolctl==3.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tiktoken==0.4.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tinycss2==1.2.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tokenterminal==1.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
toml==0.10.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tomli==2.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
toolz==0.12.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
tornado==6.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tqdm==4.65.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tradingview-ta==3.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
traitlets==5.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
typing-extensions==4.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
typing-inspect==0.9.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tzdata==2023.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
tzlocal==4.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ujson==5.8.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
update-checker==0.18.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
uri-template==1.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
urllib3==1.26.16 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
user-agent==0.1.10 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
vadersentiment==3.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
validators==0.20.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
valinvest==0.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
watchdog==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
wcwidth==0.2.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
webcolors==1.13 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
webencodings==0.5.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
websocket-client==1.6.1 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
websockets==11.0.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
widgetsnbextension==4.0.8 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
win32-setctime==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "win32"
wrapt==1.15.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
y-py==0.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
yahooquery==2.3.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
yarl==1.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
yfinance==0.2.25 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ypy-websocket==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
zipp==3.16.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
zope-interface==6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"

524
poetry.lock generated vendored

File diff suppressed because it is too large Load Diff

1
pyproject.toml vendored
View File

@@ -121,6 +121,7 @@ langchain = "0.0.237"
ffn = "0.3.6"
jupyter-client = "7.4.1"
jupyter-server = "1.23.6"
python-jose = "^3.3.0"

View File

@@ -14,7 +14,7 @@ ansiwrap==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9
antlr4-python3-runtime==4.11.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and (sys_platform == "darwin" or platform_system == "Darwin")
appnope==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
arch==5.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi-bindings==21.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -81,6 +81,7 @@ dill==0.3.6 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7"
distlib==0.3.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.4.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
docutils==0.17.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ecdsa==0.18.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ecos==2.0.12 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
entrypoints==0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ephem==4.1.4 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
@@ -121,7 +122,7 @@ google-auth-oauthlib==1.0.0 ; python_full_version >= "3.8.1" and python_full_ver
google-auth==2.22.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
graphlib-backport==1.0.3 ; python_full_version >= "3.8.1" and python_version < "3.9"
graphviz==0.20.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
greenlet==2.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and (platform_machine == "win32" or platform_machine == "WIN32" or platform_machine == "AMD64" or platform_machine == "amd64" or platform_machine == "x86_64" or platform_machine == "ppc64le" or platform_machine == "aarch64")
greenlet==2.0.2 ; python_full_version >= "3.8.1" and platform_machine == "aarch64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "ppc64le" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "x86_64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "amd64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "AMD64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "win32" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "WIN32" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.56.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
h11==0.14.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
hijri-converter==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -256,7 +257,7 @@ property-cached==1.6.4 ; python_full_version >= "3.8.1" and python_full_version
prophet==1.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and (sys_platform != "win32" or os_name != "nt")
ptyprocess==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
py==1.11.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==12.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -302,6 +303,7 @@ python-coinmarketcap==0.2 ; python_full_version >= "3.8.1" and python_full_versi
python-dateutil==2.8.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-jose==3.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-json-logger==2.0.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytorch-lightning==1.6.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"

10
requirements.txt vendored
View File

@@ -8,7 +8,7 @@ altair==5.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7
ansiwrap==0.8.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
anyio==3.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appdirs==1.4.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
appnope==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and (sys_platform == "darwin" or platform_system == "Darwin")
appnope==0.1.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform == "darwin" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and platform_system == "Darwin"
arch==5.6.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi-bindings==21.2.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
argon2-cffi==21.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -53,6 +53,7 @@ defusedxml==0.7.1 ; python_full_version >= "3.8.1" and python_full_version != "3
degiro-connector==2.0.21 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
detecta==0.0.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
dnspython==2.4.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
ecdsa==0.18.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
entrypoints==0.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
et-xmlfile==1.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
exceptiongroup==1.1.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -79,7 +80,7 @@ future==0.18.3 ; python_full_version >= "3.8.1" and python_full_version != "3.9.
gitdb==4.0.10 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
gitpython==3.1.32 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
graphlib-backport==1.0.3 ; python_full_version >= "3.8.1" and python_version < "3.9"
greenlet==2.0.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and (platform_machine == "win32" or platform_machine == "WIN32" or platform_machine == "AMD64" or platform_machine == "amd64" or platform_machine == "x86_64" or platform_machine == "ppc64le" or platform_machine == "aarch64")
greenlet==2.0.2 ; python_full_version >= "3.8.1" and platform_machine == "aarch64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "ppc64le" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "x86_64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "amd64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "AMD64" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "win32" and python_full_version != "3.9.7" and python_version < "3.11" or python_full_version >= "3.8.1" and platform_machine == "WIN32" and python_full_version != "3.9.7" and python_version < "3.11"
grpcio==1.56.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
h11==0.14.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
hijri-converter==2.3.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -177,9 +178,10 @@ prompt-toolkit==3.0.39 ; python_full_version >= "3.8.1" and python_full_version
property-cached==1.6.4 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
protobuf==3.20.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
psutil==5.9.5 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
ptyprocess==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and (sys_platform != "win32" or os_name != "nt")
ptyprocess==0.7.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and sys_platform != "win32" or python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11" and os_name != "nt"
pure-eval==0.2.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyarrow==12.0.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pyasn1==0.5.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycares==4.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycodestyle==2.10.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pycoingecko==3.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -205,6 +207,7 @@ python-coinmarketcap==0.2 ; python_full_version >= "3.8.1" and python_full_versi
python-dateutil==2.8.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-dotenv==1.0.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-i18n==0.3.9 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-jose==3.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
python-json-logger==2.0.7 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytrends==4.9.2 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
pytz-deprecation-shim==0.1.0.post0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
@@ -225,6 +228,7 @@ rfc3339-validator==0.1.4 ; python_full_version >= "3.8.1" and python_full_versio
rfc3986-validator==0.1.1 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rich==12.6.0 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
robin-stocks==2.1.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
rsa==4.9 ; python_full_version >= "3.8.1" and python_version < "3.11" and python_full_version != "3.9.7"
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.11" and python_full_version >= "3.8.1" and python_full_version != "3.9.7"
ruamel-yaml==0.17.32 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"
scikit-learn==1.3.0 ; python_full_version >= "3.8.1" and python_full_version != "3.9.7" and python_version < "3.11"

View File

@@ -1,8 +1,10 @@
import json
from datetime import datetime, timedelta
from unittest.mock import MagicMock, patch
import pytest
import requests
from jose import JWTError, jwt
from openbb_terminal.core.session import hub_model
@@ -24,6 +26,18 @@ TEST_HEADER_TOKEN = [
]
def create_token(delta: int = 0):
"""Create a JWT token with a payload that expires in `delta` days."""
return jwt.encode(
claims={
"some": "claim",
"exp": (datetime.today() + timedelta(days=delta)).timestamp(),
},
key="secret",
algorithm="HS256",
)
@pytest.mark.parametrize("email, password", TEST_EMAIL_PASSWORD)
def test_create_session_success(email, password):
with patch("requests.post") as mock_post:
@@ -62,10 +76,39 @@ def test_create_session_exception(email, password):
assert response is None
# Github actions fails this test so I hard coded the test tokens
# expired: create_token(-10)
# valid: create_token(3600) this will fail in 2033 contact me by then
@pytest.mark.parametrize(
("test_type", "token"),
[
("invalid", "random"),
(
"expired",
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoiY2xhaW0iLCJleHAiOjE2ODk1MjgyMTEuMTQ3MjgxfQ.W6ElBpX19SToo3vAwfV7U9S-LdKELXzvoTD6grMVh9I",
),
(
"valid",
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoiY2xhaW0iLCJleHAiOjIwMDE0MzIyMDkuNzEzODIxfQ.lSS9OAtwpzqma7xiP3vMDdrDaeCj8vsWKwRC1lSiRFA",
),
],
)
def test_check_token_expiration(test_type, token):
if test_type == "invalid":
with pytest.raises(JWTError):
hub_model.check_token_expiration(token)
elif test_type == "expired":
with pytest.raises(jwt.ExpiredSignatureError):
hub_model.check_token_expiration(token)
elif test_type == "valid":
hub_model.check_token_expiration(token)
@pytest.mark.parametrize("token", [("test_token")])
def test_create_session_from_token_success(token):
def test_create_session_from_token_success(mocker, token):
with patch("requests.post") as mock_post:
mock_post.return_value.json.return_value = TEST_RESPONSE
mocker.patch("openbb_terminal.core.session.hub_model.check_token_expiration")
response = hub_model.create_session_from_token(token)
assert response.json() == TEST_RESPONSE

View File

@@ -6,7 +6,7 @@ keywords: [basics, installation, commands, menus, your own data, introduction, o
---
import HeadTitle from '@site/src/components/General/HeadTitle.tsx';
`<HeadTitle title="Basics - SDK | OpenBB Docs" />`
<HeadTitle title="Basics - SDK | OpenBB Docs" />
## Overview