diff --git a/build/pyinstaller/terminal.spec b/build/pyinstaller/terminal.spec index f8da04ffcde0..a5a0956c12b5 100644 --- a/build/pyinstaller/terminal.spec +++ b/build/pyinstaller/terminal.spec @@ -2,6 +2,7 @@ import os import pathlib import subprocess +import shutil from dotenv import set_key @@ -10,9 +11,6 @@ from PyInstaller.building.api import PYZ, EXE, COLLECT from PyInstaller.building.splash import Splash from PyInstaller.building.build_main import Analysis - -# import subprocess - from openbb_terminal.loggers import get_commit_hash NAME = "OpenBBTerminal" @@ -24,6 +22,9 @@ build_type = ( # Local python environment packages folder pathex = os.path.join(os.path.dirname(os.__file__), "site-packages") +# Getting the "voila.exe" path +voila_path = shutil.which("voila") + # Removing unused ARM64 binary binary_to_remove = pathlib.Path( os.path.join(pathex, "_scs_direct.cpython-39-darwin.so") @@ -73,6 +74,8 @@ added_files = [ (".env", "."), (os.path.join(pathex, "blib2to3", "Grammar.txt"), "blib2to3"), (os.path.join(pathex, "blib2to3", "PatternGrammar.txt"), "blib2to3"), + (os.path.join(pathex, "scipy.libs"), "scipy.libs"), + (voila_path, "."), ] # Python libraries that are explicitly pulled into the bundle diff --git a/openbb_terminal/dashboards/dashboards_controller.py b/openbb_terminal/dashboards/dashboards_controller.py index 12b750412208..baab82fa5d0c 100644 --- a/openbb_terminal/dashboards/dashboards_controller.py +++ b/openbb_terminal/dashboards/dashboards_controller.py @@ -5,6 +5,7 @@ import logging import os import subprocess # nosec +import sys from typing import List import openbb_terminal.config_terminal as cfg @@ -149,7 +150,7 @@ def create_call_voila( ns_parser = cls.parse_simple_args(parser, other_args) if ns_parser: - cmd = "jupyter-lab" if ns_parser.jupyter else "voila" + cmd = "jupyter-lab" if ns_parser.jupyter else cls.__get_voila_cmd() base_path = os.path.join( os.path.abspath(os.path.dirname(__file__)), "voila" ) @@ -165,10 +166,8 @@ def create_call_voila( if ns_parser.input or response.lower() == "y": cfg.LOGGING_SUPPRESS = True subprocess.Popen( - f"{cmd} {file} {args}", - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - shell=True, # nosec + [cmd, file] if not args else [cmd, file, args], + **cls.__subprocess_args(), ) cfg.LOGGING_SUPPRESS = False else: @@ -207,13 +206,49 @@ def create_call_streamlit( f"Warning: opens a port on your computer to run a {cmd} server." ) response = input("Would you like us to run the server for you [yn]? ") - args = "" if ns_parser.input or response.lower() == "y": - subprocess.Popen( - f"{cmd} {file} {args}", - stdout=subprocess.PIPE, - stderr=subprocess.STDOUT, - shell=True, - ) + cfg.LOGGING_SUPPRESS = True + subprocess.Popen([cmd, file], **cls.__subprocess_args()) + cfg.LOGGING_SUPPRESS = False else: console.print(f"Type: {cmd} stream/{file}\ninto a terminal to run.") + + @staticmethod + def __subprocess_args(cwd=None, **options): + """ + Create appropriate kwargs for subprocess calls. + Based on: https://github.com/pyinstaller/pyinstaller/wiki/Recipe-subprocess + """ + if hasattr(subprocess, "STARTUPINFO"): + si = subprocess.STARTUPINFO() + si.dwFlags |= subprocess.STARTF_USESHOWWINDOW + else: + si = None + + ret = { + "stdin": subprocess.PIPE, + "stderr": subprocess.PIPE, + "stdout": subprocess.PIPE, + "startupinfo": si, + "env": os.environ, + "cwd": cwd, + } + + ret.update(options) + + return ret + + @staticmethod + def __get_voila_cmd() -> str: + """ + This function returns the command to run Voila. + If the application is frozen using a tool like pyinstaller, + the command will return the path to the Voila executable in the frozen app's directory. + This assumes that the "voila.exe" file (that can be found using "which voila" on a command line) + was properly bundled into the dist folder. + Otherwise, the command will simply return "voila", which assumes the Voila package is installed and + available in the system's PATH or in the conda environment. + Returns: + str: The command to run Voila. + """ + return f"{sys._MEIPASS}/voila.exe" if getattr(sys, "frozen", False) else "voila" diff --git a/openbb_terminal/parent_classes.py b/openbb_terminal/parent_classes.py index 315356d8bc2e..c719edccd7f5 100644 --- a/openbb_terminal/parent_classes.py +++ b/openbb_terminal/parent_classes.py @@ -1145,7 +1145,7 @@ def call_load(self, other_args: List[str]): export_data( ns_parser.export, os.path.dirname(os.path.abspath(__file__)), - "load", + f"load_{self.ticker}", self.stock.copy(), ) diff --git a/openbb_terminal/terminal_controller.py b/openbb_terminal/terminal_controller.py index ce9f2dfcc934..ea775bd60461 100644 --- a/openbb_terminal/terminal_controller.py +++ b/openbb_terminal/terminal_controller.py @@ -410,17 +410,11 @@ def call_reports(self, _): def call_dashboards(self, _): """Process dashboards command.""" - if not is_packaged_application(): - from openbb_terminal.dashboards.dashboards_controller import ( - DashboardsController, - ) + from openbb_terminal.dashboards.dashboards_controller import ( + DashboardsController, + ) - self.queue = self.load_class(DashboardsController, self.queue) - else: - console.print("This feature is coming soon.") - console.print( - "Use the source code and an Anaconda environment if you are familiar with Python." - ) + self.queue = self.load_class(DashboardsController, self.queue) def call_alternative(self, _): """Process alternative command.""" diff --git a/poetry.lock b/poetry.lock index 7ba611b7d14c..65e249666c99 100644 --- a/poetry.lock +++ b/poetry.lock @@ -3651,19 +3651,19 @@ tests = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", [[package]] name = "scipy" -version = "1.9.3" +version = "1.10.0" description = "Fundamental algorithms for scientific computing in Python" category = "main" optional = false -python-versions = ">=3.8" +python-versions = "<3.12,>=3.8" [package.dependencies] -numpy = ">=1.18.5,<1.26.0" +numpy = ">=1.19.5,<1.27.0" [package.extras] -test = ["pytest", "pytest-cov", "pytest-xdist", "asv", "mpmath", "gmpy2", "threadpoolctl", "scikit-umfpack"] -doc = ["sphinx (!=4.1.0)", "pydata-sphinx-theme (==0.9.0)", "sphinx-panels (>=0.5.2)", "matplotlib (>2)", "numpydoc", "sphinx-tabs"] -dev = ["mypy", "typing-extensions", "pycodestyle", "flake8"] +test = ["pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "asv", "mpmath", "gmpy2", "threadpoolctl", "scikit-umfpack", "pooch"] +doc = ["sphinx (!=4.1.0)", "pydata-sphinx-theme (==0.9.0)", "sphinx-design (>=0.2.0)", "matplotlib (>2)", "numpydoc"] +dev = ["mypy", "typing-extensions", "pycodestyle", "flake8", "rich-click", "click", "doit (>=0.36.0)", "pydevtool"] [[package]] name = "screeninfo" @@ -4789,11 +4789,11 @@ python-versions = ">=3.4" [[package]] name = "yarl" -version = "1.8.1" +version = "1.7.2" description = "Yet another URL library" category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.6" [package.dependencies] idna = ">=2.0" diff --git a/requirements-full.txt b/requirements-full.txt index f3c78d0f8202..fe0ae8884c73 100644 --- a/requirements-full.txt +++ b/requirements-full.txt @@ -2,32 +2,27 @@ absl-py==1.3.0; python_version >= "3.7" aiodns==3.0.0; python_version >= "3.5.2" and python_full_version >= "3.7.0" aiohttp==3.8.3; python_version >= "3.7" and python_full_version >= "3.7.0" aiosignal==1.2.0; python_version >= "3.6" and python_full_version >= "3.7.0" -alabaster==0.7.12; python_version >= "3.6" alpha-vantage==2.3.1 altair==4.2.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" anyio==3.6.2; python_full_version >= "3.6.2" and python_version >= "3.8" and python_version < "4.0" appdirs==1.4.4 -appnope==0.1.3; sys_platform == "darwin" and python_version >= "3.8" and platform_system == "Darwin" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" +appnope==0.1.3; sys_platform == "darwin" and python_version >= "3.8" and platform_system == "Darwin" arch==5.3.1; python_version >= "3.7" argon2-cffi-bindings==21.2.0; python_version >= "3.7" argon2-cffi==21.3.0; python_version >= "3.7" ascii-magic==1.6; python_version >= "3.5" astor==0.8.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" -astroid==2.12.12; python_full_version >= "3.7.2" astropy==5.1.1; python_version >= "3.8" asttokens==2.0.8; python_version >= "3.8" async-timeout==4.0.2; python_version >= "3.6" and python_full_version >= "3.7.0" -atomicwrites==1.4.1; sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" -attrs==21.4.0; python_full_version >= "3.7.0" and python_version >= "3.7" and (python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0") and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0") +attrs==21.4.0; python_version >= "3.6" and python_full_version >= "3.7.0" and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7") babel==2.10.3; python_version >= "3.7" backcall==0.2.0; python_version >= "3.8" backoff==2.2.1; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" backports.zoneinfo==0.2.1; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.9" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6") or python_full_version > "3.9.7" and python_version >= "3.6" and python_version < "3.9" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6") -bandit==1.7.4; python_version >= "3.7" base58==2.1.1; python_version >= "3.5" and python_full_version >= "3.7.0" beartype==0.7.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.0" beautifulsoup4==4.11.1; python_full_version >= "3.6.0" and python_version >= "3.7" -black==22.12.0; python_version >= "3.7" bleach==5.0.1; python_version >= "3.7" blinker==1.5; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.5.0" or python_full_version > "3.9.7" bs4==0.0.1 @@ -36,17 +31,14 @@ cachetools==5.2.0; python_version >= "3.7" and python_version < "4.0" and (pytho catboost==1.1.1; python_version >= "3.7" ccxt==2.5.80 certifi==2022.9.24; python_version >= "3.8" and python_version < "4" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") -cffi==1.15.1; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" -cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7" +cffi==1.15.1; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" charset-normalizer==2.1.1; python_full_version >= "3.6.0" click==8.1.3; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" cloudpickle==2.2.0; python_version >= "3.7" cmdstanpy==1.0.8; python_version >= "3.7" -codespell==2.2.2; python_version >= "3.7" -colorama==0.4.6; python_full_version >= "3.7.2" and python_version >= "3.8" and sys_platform == "win32" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.7.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.7.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") or platform_system == "Windows" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and python_full_version >= "3.7.0") and (python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.8" and python_full_version >= "3.7.0") and python_full_version < "4.0.0" +colorama==0.4.6; python_full_version >= "3.7.0" and python_version >= "3.8" and sys_platform == "win32" and platform_system == "Windows" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") commonmark==0.9.1; python_full_version >= "3.6.3" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") convertdate==2.4.0; python_version >= "3.7" and python_version < "4" -coverage==6.5.0; python_version >= "3.7" cryptography==38.0.2; python_version >= "3.6" cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" cvxpy==1.2.1; python_version >= "3.7" @@ -54,26 +46,22 @@ cycler==0.11.0; python_version >= "3.7" cython==0.29.32; python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "darwin" or python_full_version >= "3.3.0" and sys_platform == "darwin" and python_version >= "3.8" dateparser==1.1.2; python_version >= "3.5" datetime==4.7; python_version >= "3.5" -debugpy==1.6.3; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" -decorator==5.1.1; python_version >= "3.8" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.5") +debugpy==1.6.3; python_version >= "3.7" +decorator==5.1.1; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8" defusedxml==0.7.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" degiro-connector==2.0.21; python_full_version >= "3.7.1" and python_full_version < "4.0.0" deprecation==2.1.0 detecta==0.0.5; python_version >= "3.6" -dill==0.3.6; python_version >= "3.7" and python_full_version >= "3.7.2" -distlib==0.3.6; python_version >= "3.7" dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0" -docutils==0.17.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" ecos==2.0.10; python_version >= "3.7" -entrypoints==0.4; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") +entrypoints==0.4; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" ephem==4.1.3; python_version >= "3.7" and python_version < "4" et-xmlfile==1.1.0; python_version >= "3.6" exchange-calendars==4.2.3; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" executing==1.1.1; python_version >= "3.8" -fastjsonschema==2.16.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +fastjsonschema==2.16.2; python_full_version >= "3.7.0" and python_version >= "3.7" feedparser==6.0.10; python_version >= "3.6" ffn==0.3.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" -filelock==3.8.0; python_version >= "3.7" financedatabase==1.0.2 finnhub-python==2.4.15 finviz==1.4.4 @@ -100,30 +88,26 @@ holidays==0.14.2; python_version >= "3.7" html5lib==1.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") httpcore==0.15.0; python_version >= "3.8" and python_version < "4.0" httpx==0.23.0; python_version >= "3.8" and python_version < "4.0" -identify==2.5.7; python_version >= "3.7" idna==3.4; python_version >= "3.8" and python_version < "4" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") -imagesize==1.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" importlib-metadata==5.0.0; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.9" or python_full_version > "3.9.7" and python_version >= "3.7" and python_version < "3.9" inflection==0.5.1; python_version >= "3.6" -iniconfig==1.1.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" interface-meta==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" investiny==0.5.0; python_version >= "3.8" and python_version < "4.0" investpy==1.0.8; python_version >= "3.7" ipyflex==0.2.4; python_version >= "3.6" -ipykernel==6.16.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +ipykernel==6.16.1; python_version >= "3.7" ipympl==0.8.4 ipython-genutils==0.2.0; python_version >= "3.7" ipython==8.5.0; python_version >= "3.8" ipywidgets==8.0.2; python_version >= "3.7" iso8601==0.1.16 -isort==5.10.1; python_full_version >= "3.7.2" and python_version < "4.0" jedi==0.18.1; python_version >= "3.8" jinja2==3.1.2; python_version >= "3.7" joblib==1.2.0; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" json5==0.9.10; python_version >= "3.7" jsonschema==3.2.0 -jupyter-client==7.4.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" -jupyter-core==4.11.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +jupyter-client==7.4.1; python_full_version >= "3.7.0" and python_version >= "3.7" +jupyter-core==4.11.2; python_full_version >= "3.7.0" and python_version >= "3.7" jupyter-server==1.21.0; python_version >= "3.7" jupyterlab-pygments==0.2.2; python_version >= "3.7" jupyterlab-server==2.16.1; python_version >= "3.7" @@ -131,38 +115,30 @@ jupyterlab-widgets==3.0.3; python_version >= "3.7" jupyterlab==3.5.0; python_version >= "3.7" kiwisolver==1.4.4; python_version >= "3.7" korean-lunar-calendar==0.3.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" -lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.7.2" lightgbm==3.3.3; python_version >= "3.7" linearmodels==4.27; python_version >= "3.8" llvmlite==0.39.1; python_version >= "3.7" loguru==0.6.0; python_version >= "3.5" and python_full_version >= "3.7.0" lunarcalendar==0.0.9; python_version >= "3.7" and python_version < "4" lxml==4.9.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" -markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0" markdown==3.4.1; python_version >= "3.7" markupsafe==2.1.1; python_version >= "3.7" -matplotlib-inline==0.1.6; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" +matplotlib-inline==0.1.6; python_version >= "3.8" matplotlib==3.5.3; python_version >= "3.7" -mccabe==0.6.1; python_full_version >= "3.7.2" -mdit-py-plugins==0.2.8; python_version >= "3.6" and python_version < "4.0" +mccabe==0.6.1; python_full_version >= "3.7.0" mistune==0.8.4; python_version >= "3.7" -mock==4.0.3; python_version >= "3.6" more-itertools==9.0.0; python_version >= "3.7" mplfinance==0.12.9b1 multidict==6.0.2; python_version >= "3.7" and python_full_version >= "3.7.0" multitasking==0.0.11 mypy-extensions==0.4.3; python_version >= "3.8" -mypy==0.930; python_version >= "3.6" -myst-parser==0.15.2; python_version >= "3.6" nbclassic==0.4.5; python_version >= "3.7" -nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7" and python_full_version < "4.0.0" +nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7" nbconvert==6.5.4; python_version >= "3.7" -nbformat==5.7.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" -nbmake==1.3.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" -nest-asyncio==1.5.6; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +nbformat==5.7.0; python_full_version >= "3.7.0" and python_version >= "3.7" +nest-asyncio==1.5.6; python_full_version >= "3.7.0" and python_version >= "3.7" networkx==2.8.7; python_version >= "3.8" nfoursid==1.0.1; python_version >= "3.7" -nodeenv==1.7.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.7.0" and python_version >= "3.7" notebook-shim==0.2.0; python_version >= "3.7" notebook==6.5.1; python_version >= "3.7" numba==0.56.4; python_version >= "3.7" @@ -180,29 +156,24 @@ pandas==1.5.1; python_version >= "3.8" pandocfilters==1.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" papermill @ git+https://github.com/nteract/papermill.git@main ; python_version >= "3.7" parso==0.8.3; python_version >= "3.8" -pathspec==0.10.2; python_version >= "3.7" patsy==0.5.3; python_version >= "3.8" -pbr==5.11.0; python_version >= "3.8" pexpect==4.8.0; sys_platform != "win32" and python_version >= "3.8" pickleshare==0.7.5; python_version >= "3.8" pillow==9.2.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" -platformdirs==2.5.2; python_version >= "3.7" and python_full_version >= "3.7.2" plotly==5.10.0; python_version >= "3.6" -pluggy==1.0.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" pmdarima==2.0.1; python_version >= "3.7" praw==7.6.0; python_version >= "3.7" and python_version < "4.0" prawcore==2.3.0; python_version >= "3.7" and python_version < "4.0" -pre-commit==2.20.0; python_version >= "3.7" prometheus-client==0.15.0; python_version >= "3.7" prompt-toolkit==3.0.31; python_full_version >= "3.6.2" property-cached==1.6.4; python_version >= "3.8" prophet==1.1.1; python_version >= "3.7" protobuf==3.20.1; python_version >= "3.7" psaw==0.0.12; python_version >= "3" -psutil==5.9.3; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +psutil==5.9.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" ptyprocess==0.7.0; sys_platform != "win32" and python_version >= "3.8" and os_name != "nt" pure-eval==0.2.2; python_version >= "3.8" -py==1.11.0; python_full_version >= "3.7.0" and python_version >= "3.7" and python_full_version < "4.0.0" and implementation_name == "pypy" +py==1.11.0; python_version >= "3.7" and python_full_version < "3.0.0" and implementation_name == "pypy" or implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.5.0" pyally==1.1.2 pyarrow==9.0.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" pyasn1-modules==0.2.8; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" @@ -211,7 +182,6 @@ pycares==4.2.2; python_version >= "3.5.2" and python_full_version >= "3.7.0" pycodestyle==2.7.0; python_full_version >= "3.7.0" pycoingecko==2.3.0 pycparser==2.21; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" -pydantic==1.8.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" pydeck==0.8.0b4; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" pydeprecate==0.3.2; python_version >= "3.7" pyerfa==2.0.0.1; python_version >= "3.8" @@ -219,7 +189,6 @@ pyex==0.5.0 pyflakes==2.3.1; python_full_version >= "3.7.0" pygments==2.13.0; python_version >= "3.6" pyhdfe==0.1.0; python_version >= "3.8" -pylint==2.15.2; python_full_version >= "3.7.2" pyluach==2.0.2; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" pymeeus==0.5.11; python_version >= "3.7" and python_version < "4" pympler==1.0.1; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.6" @@ -230,10 +199,6 @@ pyotp==2.7.0; python_version >= "3.6" pyparsing==3.0.9; python_full_version >= "3.6.8" and python_version >= "3.7" pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" pyrsistent==0.18.1; python_version >= "3.7" -pytest-cov==3.0.0; python_version >= "3.6" -pytest-mock==3.10.0; python_version >= "3.7" -pytest-recording==0.12.1; python_version >= "3.5" -pytest==6.2.5; python_version >= "3.6" pythclient==0.1.2; python_full_version >= "3.7.0" python-binance==1.0.16 python-coinmarketcap==0.2 @@ -244,11 +209,10 @@ pytorch-lightning==1.6.5; python_version >= "3.7" pytrends==4.8.0 pytz-deprecation-shim==0.1.0.post0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6" pytz==2022.5; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and python_version < "4.0" -pyupgrade==2.38.4; python_version >= "3.7" pywin32==304; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7" pywinpty==2.0.8; os_name == "nt" and python_version >= "3.7" pyyaml==6.0; python_version >= "3.8" -pyzmq==24.0.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +pyzmq==24.0.1; python_version >= "3.7" qdldl==0.1.5.post2; python_version >= "3.7" quandl==3.7.0; python_version >= "3.6" rapidfuzz==1.9.1; python_version >= "2.7" @@ -262,9 +226,8 @@ robin-stocks==2.1.0; python_version >= "3" rsa==4.9; python_version >= "3.6" and python_version < "4" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") ruamel.yaml.clib==0.2.7; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.5" ruamel.yaml==0.17.21; python_version >= "3" -ruff==0.0.210; python_version >= "3.7" scikit-learn==1.1.2; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" -scipy==1.9.3; python_version >= "3.8" +scipy==1.10.0; python_version >= "3.8" and python_version < "3.12" screeninfo==0.6.7 scs==3.2.0; python_version >= "3.7" seaborn==0.11.2; python_version >= "3.6" @@ -275,26 +238,17 @@ setuptools-git==1.2; python_version >= "3.7" setuptools-scm==6.4.2; python_version >= "3.8" sgmllib3k==1.0.0; python_version >= "3.6" shap==0.41.0; python_version >= "3.7" -six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7") and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0") and (python_version >= "3.8" and python_full_version < "3.0.0" or python_version >= "3.8" and python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") +six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7") and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7") slicer==0.0.7; python_version >= "3.7" smmap==5.0.0; python_version >= "3.7" sniffio==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.2" -snowballstemmer==2.2.0; python_version >= "3.6" socketio-client-nexus==0.7.6 soupsieve==2.3.2.post1; python_version >= "3.6" and python_full_version >= "3.6.0" -sphinx==4.5.0; python_version >= "3.6" -sphinxcontrib-applehelp==1.0.2; python_version >= "3.6" -sphinxcontrib-devhelp==1.0.2; python_version >= "3.6" -sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6" -sphinxcontrib-jsmath==1.0.1; python_version >= "3.6" -sphinxcontrib-qthelp==1.0.3; python_version >= "3.6" -sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" squarify==0.4.3 sseclient==0.0.27 stack-data==0.5.1; python_version >= "3.8" statsforecast==1.3.1; python_version >= "3.7" statsmodels==0.13.2; python_version >= "3.7" -stevedore==4.1.0; python_version >= "3.8" stocksera==0.1.21; python_version >= "3.6" streamlit==1.13.0; (python_version >= "3.7" and python_full_version < "3.9.7") or (python_full_version > "3.9.7") tabulate==0.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" @@ -308,26 +262,17 @@ terminado==0.16.0; python_version >= "3.7" thepassiveinvestor==1.0.11 threadpoolctl==3.1.0; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" tinycss2==1.2.1; python_version >= "3.7" -tokenize-rt==4.2.1; python_full_version >= "3.6.1" and python_version >= "3.7" tokenterminal==1.0.1 -toml==0.10.2; python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0" -tomli==2.0.1; python_version < "3.11" and python_full_version >= "3.7.2" and python_version >= "3.8" and python_full_version <= "3.11.0a6" -tomlkit==0.11.5; python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.7.2" +toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7" +tomli==2.0.1; python_version >= "3.8" toolz==0.12.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") torch==1.11.0; python_full_version >= "3.7.0" torchmetrics==0.10.3; python_version >= "3.7" -tornado==6.2; python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0" +tornado==6.2; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" tqdm==4.64.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" tradingview-ta==3.3.0; python_version >= "3.6" -traitlets==5.5.0; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" -types-python-dateutil==2.8.19.2 -types-pytz==2021.3.8 -types-pyyaml==6.0.12 -types-requests==2.28.11.2 -types-setuptools==57.4.18 -types-six==1.16.21 -types-urllib3==1.26.25.1 -typing-extensions==4.4.0; python_full_version >= "3.7.2" and python_full_version < "4.0.0" and python_version < "3.9" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") +traitlets==5.5.0; python_full_version >= "3.7.0" and python_version >= "3.8" +typing-extensions==4.4.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version < "3.9" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") tzdata==2022.5; python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or python_version >= "3.7" and python_full_version < "3.9.7" and platform_system == "Windows" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6" and platform_system == "Windows" tzlocal==4.2; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.6" u8darts==0.23.0; python_version >= "3.7" @@ -339,8 +284,6 @@ user-agent==0.1.10 vadersentiment==3.3.2 validators==0.20.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.4" valinvest==0.0.2; python_version >= "3.6" -vcrpy==4.2.1; python_version >= "3.7" -virtualenv==20.16.5; python_version >= "3.7" voila==0.4.0; python_version >= "3.7" watchdog==2.1.9; python_version >= "3.6" wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.8" @@ -350,11 +293,11 @@ websockets==10.3; python_version >= "3.7" werkzeug==2.2.2; python_version >= "3.7" widgetsnbextension==4.0.3; python_version >= "3.7" win32-setctime==1.1.0; python_version >= "3.5" and python_full_version >= "3.7.0" and sys_platform == "win32" -wrapt==1.14.1; python_full_version >= "3.7.2" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") and python_version >= "3.8" and python_version < "3.11" +wrapt==1.14.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" xarray==2022.11.0; python_version >= "3.8" xgboost==1.7.2; python_version >= "3.8" xlsxwriter==3.0.3; python_version >= "3.7" -yarl==1.8.1; python_version >= "3.7" and python_full_version >= "3.7.0" +yarl==1.7.2; python_version >= "3.6" and python_full_version >= "3.7.0" yfinance==0.2.4 zipp==3.10.0; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.10" or python_full_version > "3.9.7" and python_version >= "3.7" and python_version < "3.10" zope.interface==5.5.0; python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5" diff --git a/requirements.txt b/requirements.txt index 17bfd5a5913d..41bad8a7ee7d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,27 +1,30 @@ aiodns==3.0.0; python_version >= "3.5.2" and python_full_version >= "3.7.0" aiohttp==3.8.3; python_version >= "3.6" and python_full_version >= "3.7.0" aiosignal==1.2.0; python_version >= "3.6" and python_full_version >= "3.7.0" +alabaster==0.7.12; python_version >= "3.6" alpha-vantage==2.3.1 altair==4.2.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" anyio==3.6.2; python_full_version >= "3.6.2" and python_version >= "3.8" and python_version < "4.0" appdirs==1.4.4 -appnope==0.1.3; sys_platform == "darwin" and python_version >= "3.8" and platform_system == "Darwin" -arch==5.3.1; python_version >= "3.7" +appnope==0.1.3; sys_platform == "darwin" and python_version >= "3.8" and platform_system == "Darwin" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" argon2-cffi-bindings==21.2.0; python_version >= "3.7" argon2-cffi==21.3.0; python_version >= "3.7" ascii-magic==1.6; python_version >= "3.5" astor==0.8.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" -astropy==5.1.1; python_version >= "3.8" +astroid==2.12.12; python_full_version >= "3.7.2" asttokens==2.0.8; python_version >= "3.8" async-timeout==4.0.2; python_version >= "3.6" and python_full_version >= "3.7.0" -attrs==21.4.0; python_version >= "3.6" and python_full_version >= "3.7.0" and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7") +atomicwrites==1.4.1; sys_platform == "win32" and python_version >= "3.7" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" +attrs==21.4.0; python_full_version >= "3.7.0" and python_version >= "3.7" and (python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.5.0") and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0") babel==2.10.3; python_version >= "3.7" backcall==0.2.0; python_version >= "3.8" backoff==2.2.1; python_version >= "3.7" and python_version < "4.0" and python_full_version >= "3.7.0" backports.zoneinfo==0.2.1; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.9" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6") or python_full_version > "3.9.7" and python_version >= "3.6" and python_version < "3.9" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6") +bandit==1.7.4; python_version >= "3.7" base58==2.1.1; python_version >= "3.5" and python_full_version >= "3.7.0" beartype==0.7.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.0" beautifulsoup4==4.11.1; python_full_version >= "3.6.0" and python_version >= "3.7" +black==22.12.0; python_version >= "3.7" bleach==5.0.1; python_version >= "3.7" blinker==1.5; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.5.0" or python_full_version > "3.9.7" bs4==0.0.1 @@ -29,34 +32,39 @@ bt==0.2.9; (python_version >= "2.7" and python_full_version < "3.0.0") or (pytho cachetools==5.2.0; python_version >= "3.7" and python_version < "4.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") ccxt==2.5.80 certifi==2022.9.24; python_version >= "3.8" and python_version < "4" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") -cffi==1.15.1; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" +cffi==1.15.1; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" +cfgv==3.3.1; python_full_version >= "3.6.1" and python_version >= "3.7" charset-normalizer==2.1.1; python_full_version >= "3.6.0" click==8.1.3; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" -colorama==0.4.6; python_full_version >= "3.7.0" and python_version >= "3.8" and sys_platform == "win32" and platform_system == "Windows" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") +codespell==2.2.2; python_version >= "3.7" +colorama==0.4.6; python_full_version >= "3.7.2" and python_version >= "3.8" and sys_platform == "win32" and (python_version >= "3.6" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.6" and python_full_version >= "3.7.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or platform_system == "Windows" and python_version >= "3.7" and python_full_version >= "3.7.0") and (python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") or platform_system == "Windows" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and python_full_version >= "3.7.0") and (python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "win32" or sys_platform == "win32" and python_version >= "3.8" and python_full_version >= "3.7.0") and python_full_version < "4.0.0" commonmark==0.9.1; python_full_version >= "3.6.3" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") convertdate==2.4.0; python_version >= "3.7" and python_version < "4" +coverage==6.5.0; python_version >= "3.7" cryptography==38.0.2; python_version >= "3.6" cssselect==1.1.0; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" -cvxpy==1.2.1; python_version >= "3.7" cycler==0.11.0; python_version >= "3.7" cython==0.29.32; python_version >= "3.8" and python_full_version < "3.0.0" and sys_platform == "darwin" or python_full_version >= "3.3.0" and sys_platform == "darwin" and python_version >= "3.8" dateparser==1.1.2; python_version >= "3.5" datetime==4.7; python_version >= "3.5" -debugpy==1.6.3; python_version >= "3.7" -decorator==5.1.1; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8" +debugpy==1.6.3; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +decorator==5.1.1; python_version >= "3.8" and (python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.5") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.5") defusedxml==0.7.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7" degiro-connector==2.0.21; python_full_version >= "3.7.1" and python_full_version < "4.0.0" deprecation==2.1.0 detecta==0.0.5; python_version >= "3.6" +dill==0.3.6; python_version >= "3.7" and python_full_version >= "3.7.2" +distlib==0.3.6; python_version >= "3.7" dnspython==2.2.1; python_version >= "3.6" and python_version < "4.0" -ecos==2.0.10; python_version >= "3.7" -entrypoints==0.4; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" +docutils==0.17.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" +entrypoints==0.4; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") et-xmlfile==1.1.0; python_version >= "3.6" exchange-calendars==4.2.3; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" executing==1.1.1; python_version >= "3.8" -fastjsonschema==2.16.2; python_full_version >= "3.7.0" and python_version >= "3.7" +fastjsonschema==2.16.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" feedparser==6.0.10; python_version >= "3.6" ffn==0.3.6; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" +filelock==3.8.0; python_version >= "3.7" financedatabase==1.0.2 finnhub-python==2.4.15 finviz==1.4.4 @@ -79,26 +87,30 @@ holidays==0.14.2; python_version >= "3.7" html5lib==1.1; (python_version >= "2.7" and python_full_version < "3.0.0") or (python_full_version >= "3.5.0") httpcore==0.15.0; python_version >= "3.8" and python_version < "4.0" httpx==0.23.0; python_version >= "3.8" and python_version < "4.0" +identify==2.5.7; python_version >= "3.7" idna==3.4; python_version >= "3.8" and python_version < "4" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") +imagesize==1.4.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" importlib-metadata==5.0.0; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.10" or python_full_version > "3.9.7" and python_version >= "3.7" and python_version < "3.10" inflection==0.5.1; python_version >= "3.6" +iniconfig==1.1.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" interface-meta==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.1" and python_full_version < "4.0.0" investiny==0.5.0; python_version >= "3.8" and python_version < "4.0" investpy==1.0.8; python_version >= "3.7" ipyflex==0.2.4; python_version >= "3.6" -ipykernel==6.16.1; python_version >= "3.7" +ipykernel==6.16.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" ipympl==0.8.4 ipython-genutils==0.2.0; python_version >= "3.7" ipython==8.5.0; python_version >= "3.8" ipywidgets==8.0.2; python_version >= "3.7" iso8601==0.1.16 +isort==5.10.1; python_full_version >= "3.7.2" and python_version < "4.0" jedi==0.18.1; python_version >= "3.8" jinja2==3.1.2; python_version >= "3.7" joblib==1.2.0; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" json5==0.9.10; python_version >= "3.7" jsonschema==3.2.0 -jupyter-client==7.4.1; python_full_version >= "3.7.0" and python_version >= "3.7" -jupyter-core==4.11.2; python_full_version >= "3.7.0" and python_version >= "3.7" +jupyter-client==7.4.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +jupyter-core==4.11.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" jupyter-server==1.21.0; python_version >= "3.7" jupyterlab-pygments==0.2.2; python_version >= "3.7" jupyterlab-server==2.16.1; python_version >= "3.7" @@ -106,25 +118,32 @@ jupyterlab-widgets==3.0.3; python_version >= "3.7" jupyterlab==3.5.0; python_version >= "3.7" kiwisolver==1.4.4; python_version >= "3.7" korean-lunar-calendar==0.3.1; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" +lazy-object-proxy==1.7.1; python_version >= "3.6" and python_full_version >= "3.7.2" linearmodels==4.27; python_version >= "3.8" loguru==0.6.0; python_version >= "3.5" and python_full_version >= "3.7.0" lxml==4.9.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" +markdown-it-py==1.1.0; python_version >= "3.6" and python_version < "4.0" markupsafe==2.1.1; python_version >= "3.7" -matplotlib-inline==0.1.6; python_version >= "3.8" +matplotlib-inline==0.1.6; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" matplotlib==3.5.3; python_version >= "3.7" -mccabe==0.6.1; python_full_version >= "3.7.0" +mccabe==0.6.1; python_full_version >= "3.7.2" +mdit-py-plugins==0.2.8; python_version >= "3.6" and python_version < "4.0" mistune==0.8.4; python_version >= "3.7" +mock==4.0.3; python_version >= "3.6" more-itertools==9.0.0; python_version >= "3.7" mplfinance==0.12.9b1 multidict==6.0.2; python_version >= "3.7" and python_full_version >= "3.7.0" multitasking==0.0.11 mypy-extensions==0.4.3; python_version >= "3.8" +mypy==0.930; python_version >= "3.6" +myst-parser==0.15.2; python_version >= "3.6" nbclassic==0.4.5; python_version >= "3.7" -nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7" +nbclient==0.5.13; python_full_version >= "3.7.0" and python_version >= "3.7" and python_full_version < "4.0.0" nbconvert==6.5.4; python_version >= "3.7" -nbformat==5.7.0; python_full_version >= "3.7.0" and python_version >= "3.7" -nest-asyncio==1.5.6; python_full_version >= "3.7.0" and python_version >= "3.7" -networkx==2.8.7; python_version >= "3.8" +nbformat==5.7.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +nbmake==1.3.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" +nest-asyncio==1.5.6; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" +nodeenv==1.7.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.7.0" and python_version >= "3.7" notebook-shim==0.2.0; python_version >= "3.7" notebook==6.5.1; python_version >= "3.7" numpy==1.23.4; python_version >= "3.8" @@ -132,7 +151,6 @@ oandapyv20==0.6.3 oauthlib==3.2.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" onetimepass==1.0.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" openpyxl==3.0.10; python_version >= "3.6" -osqp==0.6.2.post5; python_version >= "3.7" packaging==22.0; python_version >= "3.7" pandas-datareader==0.10.0; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.6" pandas-market-calendars==3.2; python_full_version >= "3.7.0" @@ -141,34 +159,40 @@ pandas==1.5.1; python_version >= "3.8" pandocfilters==1.5.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" papermill @ git+https://github.com/nteract/papermill.git@main ; python_version >= "3.7" parso==0.8.3; python_version >= "3.8" +pathspec==0.10.2; python_version >= "3.7" patsy==0.5.3; python_version >= "3.8" +pbr==5.11.0; python_version >= "3.8" pexpect==4.8.0; sys_platform != "win32" and python_version >= "3.8" pickleshare==0.7.5; python_version >= "3.8" pillow==9.2.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" +platformdirs==2.5.2; python_version >= "3.7" and python_full_version >= "3.7.2" plotly==5.10.0; python_version >= "3.6" +pluggy==1.0.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" praw==7.6.0; python_version >= "3.7" and python_version < "4.0" prawcore==2.3.0; python_version >= "3.7" and python_version < "4.0" +pre-commit==2.20.0; python_version >= "3.7" prometheus-client==0.15.0; python_version >= "3.7" prompt-toolkit==3.0.31; python_full_version >= "3.6.2" property-cached==1.6.4; python_version >= "3.8" protobuf==3.20.1; python_version >= "3.7" psaw==0.0.12; python_version >= "3" -psutil==5.9.3; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" +psutil==5.9.3; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" ptyprocess==0.7.0; sys_platform != "win32" and python_version >= "3.8" and os_name != "nt" pure-eval==0.2.2; python_version >= "3.8" -py==1.11.0; python_version >= "3.7" and python_full_version < "3.0.0" and implementation_name == "pypy" or implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.5.0" +py==1.11.0; python_full_version >= "3.7.0" and python_version >= "3.7" and python_full_version < "4.0.0" and implementation_name == "pypy" pyally==1.1.2 pyarrow==9.0.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" pycares==4.2.2; python_version >= "3.5.2" and python_full_version >= "3.7.0" pycodestyle==2.7.0; python_full_version >= "3.7.0" pycoingecko==2.3.0 pycparser==2.21; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.6" +pydantic==1.8.2; python_full_version >= "3.7.0" and python_full_version < "4.0.0" pydeck==0.8.0b4; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" -pyerfa==2.0.0.1; python_version >= "3.8" pyex==0.5.0 pyflakes==2.3.1; python_full_version >= "3.7.0" pygments==2.13.0; python_version >= "3.6" pyhdfe==0.1.0; python_version >= "3.8" +pylint==2.15.2; python_full_version >= "3.7.2" pyluach==2.0.2; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" pymeeus==0.5.11; python_version >= "3.7" and python_version < "4" pympler==1.0.1; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.6" @@ -178,6 +202,10 @@ pyotp==2.7.0; python_version >= "3.6" pyparsing==3.0.9; python_full_version >= "3.6.8" and python_version >= "3.7" pyprind==2.11.3; python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" pyrsistent==0.18.1; python_version >= "3.7" +pytest-cov==3.0.0; python_version >= "3.6" +pytest-mock==3.10.0; python_version >= "3.7" +pytest-recording==0.12.1; python_version >= "3.5" +pytest==6.2.5; python_version >= "3.6" pythclient==0.1.2; python_full_version >= "3.7.0" python-binance==1.0.16 python-coinmarketcap==0.2 @@ -187,11 +215,11 @@ python-i18n==0.3.9 pytrends==4.8.0 pytz-deprecation-shim==0.1.0.post0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6" pytz==2022.5; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and python_version < "4.0" +pyupgrade==2.38.4; python_version >= "3.7" pywin32==304; sys_platform == "win32" and platform_python_implementation != "PyPy" and python_version >= "3.7" pywinpty==2.0.8; os_name == "nt" and python_version >= "3.7" -pyyaml==6.0; python_version >= "3.8" -pyzmq==24.0.1; python_version >= "3.7" -qdldl==0.1.5.post2; python_version >= "3.7" +pyyaml==6.0; python_version >= "3.7" +pyzmq==24.0.1; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" quandl==3.7.0; python_version >= "3.6" rapidfuzz==1.9.1; python_version >= "2.7" regex==2022.3.2; python_version >= "3.6" @@ -199,29 +227,37 @@ requests-oauthlib==1.3.1; python_version >= "2.7" and python_full_version < "3.0 requests==2.28.1; python_version >= "3.7" and python_version < "4" rfc3986==1.5.0; python_version >= "3.8" and python_version < "4.0" rich==12.6.0; python_full_version >= "3.6.3" and python_full_version < "4.0.0" -riskfolio-lib==3.3.0; python_version >= "3.7" robin-stocks==2.1.0; python_version >= "3" ruamel.yaml.clib==0.2.7; platform_python_implementation == "CPython" and python_version < "3.11" and python_version >= "3.5" ruamel.yaml==0.17.21; python_version >= "3" +ruff==0.0.210; python_version >= "3.7" scikit-learn==1.1.2; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" -scipy==1.9.3; python_version >= "3.8" +scipy==1.10.0; python_version >= "3.8" and python_version < "3.12" screeninfo==0.6.7 -scs==3.2.0; python_version >= "3.7" seaborn==0.11.2; python_version >= "3.6" semver==2.13.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.4.0" or python_full_version > "3.9.7" send2trash==1.8.0; python_version >= "3.7" sentiment-investor==2.1.0; python_version >= "3.8" and python_version < "4.0" setuptools-scm==6.4.2; python_version >= "3.8" sgmllib3k==1.0.0; python_version >= "3.6" -six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7") and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.8") +six==1.16.0; python_full_version >= "3.7.1" and python_version >= "3.8" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7") and (python_version >= "3.8" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.8") and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0" and python_version >= "3.7") and (python_version >= "2.7" and python_full_version < "3.0.0" or python_full_version >= "3.3.0") and (python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0") and (python_version >= "3.8" and python_full_version < "3.0.0" or python_version >= "3.8" and python_full_version >= "3.3.0") smmap==5.0.0; python_version >= "3.7" sniffio==1.3.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.6.2" +snowballstemmer==2.2.0; python_version >= "3.6" socketio-client-nexus==0.7.6 soupsieve==2.3.2.post1; python_version >= "3.6" and python_full_version >= "3.6.0" +sphinx==4.5.0; python_version >= "3.6" +sphinxcontrib-applehelp==1.0.2; python_version >= "3.6" +sphinxcontrib-devhelp==1.0.2; python_version >= "3.6" +sphinxcontrib-htmlhelp==2.0.0; python_version >= "3.6" +sphinxcontrib-jsmath==1.0.1; python_version >= "3.6" +sphinxcontrib-qthelp==1.0.3; python_version >= "3.6" +sphinxcontrib-serializinghtml==1.1.5; python_version >= "3.6" squarify==0.4.3 sseclient==0.0.27 stack-data==0.5.1; python_version >= "3.8" statsmodels==0.13.2; python_version >= "3.7" +stevedore==4.1.0; python_version >= "3.8" stocksera==0.1.21; python_version >= "3.6" streamlit==1.13.0; (python_version >= "3.7" and python_full_version < "3.9.7") or (python_full_version > "3.9.7") tabulate==0.9.0; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.7" @@ -231,15 +267,24 @@ terminado==0.16.0; python_version >= "3.7" thepassiveinvestor==1.0.11 threadpoolctl==3.1.0; python_version >= "3.8" and python_full_version < "3.0.0" or python_full_version >= "3.6.0" and python_version >= "3.8" tinycss2==1.2.1; python_version >= "3.7" +tokenize-rt==4.2.1; python_full_version >= "3.6.1" and python_version >= "3.7" tokenterminal==1.0.1 -toml==0.10.2; python_version >= "3.7" and python_full_version < "3.0.0" or python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.3.0" or python_full_version > "3.9.7" -tomli==2.0.1; python_version >= "3.8" +toml==0.10.2; python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0" +tomli==2.0.1; python_version < "3.11" and python_full_version >= "3.7.2" and python_version >= "3.8" and python_full_version <= "3.11.0a6" +tomlkit==0.11.5; python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.7.2" toolz==0.12.0; python_version >= "3.8" and python_version < "4.0" and python_full_version >= "3.7.0" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") -tornado==6.2; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7" +tornado==6.2; python_version >= "3.7" and python_full_version < "3.9.7" and python_full_version >= "3.7.0" or python_full_version > "3.9.7" and python_version >= "3.7" and python_full_version < "4.0.0" tqdm==4.64.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.4.0" and python_version >= "3.7" tradingview-ta==3.3.0; python_version >= "3.6" -traitlets==5.5.0; python_full_version >= "3.7.0" and python_version >= "3.8" -typing-extensions==4.4.0; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version < "3.9" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") +traitlets==5.5.0; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" +types-python-dateutil==2.8.19.2 +types-pytz==2021.3.8 +types-pyyaml==6.0.12 +types-requests==2.28.11.2 +types-setuptools==57.4.18 +types-six==1.16.21 +types-urllib3==1.26.25.1 +typing-extensions==4.4.0; python_full_version >= "3.7.2" and python_full_version < "4.0.0" and python_version < "3.9" and python_version >= "3.7" and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.7") and (python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7") tzdata==2022.5; python_version >= "3.7" and python_full_version < "3.0.0" and platform_system == "Windows" or python_version >= "3.7" and python_full_version < "3.9.7" and platform_system == "Windows" and python_full_version >= "3.6.0" or python_full_version > "3.9.7" and python_version >= "3.6" and platform_system == "Windows" tzlocal==4.2; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.6" ujson==5.5.0; python_version >= "3.7" @@ -250,6 +295,8 @@ user-agent==0.1.10 vadersentiment==3.3.2 validators==0.20.0; python_version >= "3.7" and python_full_version < "3.9.7" or python_full_version > "3.9.7" and python_version >= "3.4" valinvest==0.0.2; python_version >= "3.6" +vcrpy==4.2.1; python_version >= "3.7" +virtualenv==20.16.5; python_version >= "3.7" voila==0.4.0; python_version >= "3.7" watchdog==2.1.9; python_version >= "3.6" wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.8" @@ -258,9 +305,8 @@ websocket-client==1.4.1; python_version >= "3.8" and python_version < "4.0" websockets==10.3; python_version >= "3.7" widgetsnbextension==4.0.3; python_version >= "3.7" win32-setctime==1.1.0; python_version >= "3.5" and python_full_version >= "3.7.0" and sys_platform == "win32" -wrapt==1.14.1; python_full_version >= "3.7.1" and python_full_version < "4.0.0" and python_version >= "3.8" -xlsxwriter==3.0.3; python_version >= "3.7" -yarl==1.8.1; python_version >= "3.7" and python_full_version >= "3.7.0" +wrapt==1.14.1; python_full_version >= "3.7.2" and python_full_version < "4.0.0" and (python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7") and python_version >= "3.8" and python_version < "3.11" +yarl==1.7.2; python_version >= "3.7" and python_full_version >= "3.7.0" yfinance==0.2.4 zipp==3.10.0; python_version >= "3.7" and python_full_version < "3.9.7" and python_version < "3.10" or python_full_version > "3.9.7" and python_version >= "3.7" and python_version < "3.10" zope.interface==5.5.0; python_version >= "3.5" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.5"