Fix dashboards (#3577)

* updating dependencies

* poetry export

* removed breakline from input

* Export dependencies

* Workflow

* Tests

* Workflow

* Dependencies update

* Linting

* Tests readme

* Dependencies update

* Workflow update

* Linting

* Workflow update

* Fix import

* Tests

* Linting

* Workflow update

* Re-solve the dependencies with poetry 1.1.13

* Workflow update

Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
This commit is contained in:
Henrique Joaquim
2022-11-28 17:13:22 +00:00
committed by GitHub
parent b1f3dc1bf1
commit cca3b31856
14 changed files with 132 additions and 312 deletions

View File

@@ -69,23 +69,14 @@ jobs:
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
- name: Install Extra Doc
run: poetry install --no-interaction -E doc
- name: Install Extra Optimization
run: poetry install --no-interaction -E optimization
- name: Run Extra prediction
run: poetry install --no-interaction -E prediction
- name: Run tests
env:
MPLBACKEND: Agg
run: |
source $VENV
pytest tests/ --autodoc
pytest tests/ --optimization
- name: Start Terminal and exit
run: |
@@ -141,10 +132,7 @@ jobs:
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
- name: Install Package
run: poetry install --no-interaction -E doc
run: poetry install --no-interaction -E optimization
- name: List installed packages
shell: bash -l {0}
@@ -157,7 +145,7 @@ jobs:
MPLBACKEND: Agg
run: |
source $VENV
pytest tests/
pytest tests/ --optimization
- name: Start Terminal and exit
run: |
@@ -251,7 +239,6 @@ jobs:
shell: bash -l {0}
run: |
pip install --requirement requirements-full.txt
pip install docstring_parser
- name: List installed packages (Bash)
shell: bash -l {0}
@@ -263,7 +250,7 @@ jobs:
env:
MPLBACKEND: Agg
shell: bash -l {0}
run: pytest tests/ -m "not linux"
run: pytest tests/ -m "not linux" --optimization
- name: Start Terminal and exit
shell: bash -l {0}

View File

@@ -155,7 +155,7 @@ def create_call_voila(other_args: List[str], name: str, filename: str = None) ->
console.print(
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? y/n\n")
response = input("Would you like us to run the server for you [yn]? ")
args = ""
if ns_parser.dark and not ns_parser.jupyter:
args += "--theme=dark"
@@ -201,7 +201,7 @@ def create_call_streamlit(
console.print(
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? y/n\n")
response = input("Would you like us to run the server for you [yn]? ")
args = ""
if ns_parser.input or response.lower() == "y":
subprocess.Popen(

View File

@@ -4,7 +4,6 @@ import os.path
# IMPORTATION THIRDPARTY
from dotenv import load_dotenv
import pkg_resources
import i18n
# IMPORTATION INTERNAL
@@ -143,6 +142,7 @@ GUESS_EASTER_EGG_FILE = str(
try:
if not WITH_GIT:
import pkg_resources
version = pkg_resources.get_distribution("OpenBB").version
else:
raise Exception("Using git")

229
poetry.lock generated vendored
View File

@@ -341,10 +341,10 @@ optional = false
python-versions = ">=3.6.0"
[package.extras]
dev = ["coverage (>=5.5)", "mypy (>=0.800)", "pytest (>=4.0.0)", "tox (>=3.20.1)", "sphinx (>=3.4.3)"]
doc-rtd = ["sphinx (==3.4.3)", "sphinx-rtd-theme (==0.5.1)"]
test-tox = ["mypy (>=0.800)", "pytest (>=4.0.0)"]
test-tox-coverage = ["coverage (>=5.5)"]
test-tox = ["pytest (>=4.0.0)", "mypy (>=0.800)"]
doc-rtd = ["sphinx-rtd-theme (==0.5.1)", "sphinx (==3.4.3)"]
dev = ["sphinx (>=3.4.3)", "tox (>=3.20.1)", "pytest (>=4.0.0)", "mypy (>=0.800)", "coverage (>=5.5)"]
[[package]]
name = "beautifulsoup4"
@@ -433,7 +433,7 @@ ffn = ">=0.3.5"
pyprind = ">=2.11"
[package.extras]
dev = ["pyprind (>=2.11)", "ffn (>=0.3.5)", "matplotlib (>=2)", "pandas (>=0.19)", "numpy (>=1)", "nose", "mock", "future", "flake8-black", "flake8", "cython (>=0.25)", "coverage", "codecov", "black (>=20.8b1)"]
dev = ["black (>=20.8b1)", "codecov", "coverage", "cython (>=0.25)", "flake8", "flake8-black", "future", "mock", "nose", "numpy (>=1)", "pandas (>=0.19)", "matplotlib (>=2)", "ffn (>=0.3.5)", "pyprind (>=2.11)"]
[[package]]
name = "cachetools"
@@ -585,7 +585,7 @@ optional = false
python-versions = "*"
[package.extras]
test = ["hypothesis (==3.55.3)", "flake8 (==3.7.8)"]
test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"]
[[package]]
name = "convertdate"
@@ -889,7 +889,7 @@ optional = false
python-versions = "*"
[package.extras]
tests = ["rich", "littleutils", "pytest", "asttokens"]
tests = ["asttokens", "pytest", "littleutils", "rich"]
[[package]]
name = "fastjsonschema"
@@ -1052,8 +1052,8 @@ scipy = ">=1.6"
wrapt = ">=1.0"
[package.extras]
calculus = ["sympy (>=1.3,<1.10)"]
arrow = ["pyarrow (>=1)"]
calculus = ["sympy (>=1.3,<1.10)"]
[[package]]
name = "fred"
@@ -1271,10 +1271,10 @@ six = ">=1.9"
webencodings = "*"
[package.extras]
lxml = ["lxml"]
genshi = ["genshi"]
all = ["genshi", "chardet (>=2.2)", "lxml"]
chardet = ["chardet (>=2.2)"]
all = ["lxml", "chardet (>=2.2)", "genshi"]
genshi = ["genshi"]
lxml = ["lxml"]
[[package]]
name = "httpcore"
@@ -1393,7 +1393,7 @@ python-versions = ">=3.8,<4.0"
httpx = ">=0.23.0,<0.24.0"
[package.extras]
docs = ["mkdocstrings[python] (>=0.19.0,<0.20.0)", "mkdocs-git-revision-date-localized-plugin (>=1.1.0,<2.0.0)", "mkdocs-material (>=8.5.4,<9.0.0)", "mkdocs (>=1.4.0,<2.0.0)"]
docs = ["mkdocs (>=1.4.0,<2.0.0)", "mkdocs-material (>=8.5.4,<9.0.0)", "mkdocs-git-revision-date-localized-plugin (>=1.1.0,<2.0.0)", "mkdocstrings[python] (>=0.19.0,<0.20.0)"]
[[package]]
name = "investpy"
@@ -1430,8 +1430,8 @@ python-versions = ">=3.6"
ipywidgets = ">=7.0.0"
[package.extras]
test = ["nbval", "pytest-cov", "pytest (>=4.6)"]
docs = ["sphinx-rtd-theme", "sphinx (>=1.5)", "recommonmark", "pypandoc", "pytest-check-links", "nbsphinx-link", "nbsphinx", "jupyter-sphinx"]
docs = ["jupyter-sphinx", "nbsphinx", "nbsphinx-link", "pytest-check-links", "pypandoc", "recommonmark", "sphinx (>=1.5)", "sphinx-rtd-theme"]
test = ["pytest (>=4.6)", "pytest-cov", "nbval"]
[[package]]
name = "ipykernel"
@@ -1460,20 +1460,16 @@ test = ["flaky", "ipyparallel", "pre-commit", "pytest-cov", "pytest-timeout", "p
[[package]]
name = "ipympl"
version = "0.8.8"
version = "0.8.4"
description = "Matplotlib Jupyter Extension"
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
ipython = "<9"
ipython-genutils = "*"
ipywidgets = ">=7.6.0,<8"
matplotlib = ">=2.0.0,<4"
numpy = "*"
pillow = "*"
traitlets = "<6"
ipykernel = ">=4.7"
ipywidgets = ">=7.6.0"
matplotlib = ">=2.0.0"
[[package]]
name = "ipython"
@@ -1520,22 +1516,21 @@ python-versions = "*"
[[package]]
name = "ipywidgets"
version = "7.7.2"
description = "IPython HTML widgets for Jupyter"
version = "8.0.2"
description = "Jupyter interactive widgets"
category = "main"
optional = false
python-versions = "*"
python-versions = ">=3.7"
[package.dependencies]
ipykernel = ">=4.5.1"
ipython = {version = ">=4.0.0", markers = "python_version >= \"3.3\""}
ipython-genutils = ">=0.2.0,<0.3.0"
jupyterlab-widgets = {version = ">=1.0.0,<3", markers = "python_version >= \"3.6\""}
ipython = ">=6.1.0"
jupyterlab-widgets = ">=3.0,<4.0"
traitlets = ">=4.3.1"
widgetsnbextension = ">=3.6.0,<3.7.0"
widgetsnbextension = ">=4.0,<5.0"
[package.extras]
test = ["pytest (>=3.6.0)", "pytest-cov", "mock"]
test = ["jsonschema", "pytest (>=3.6.0)", "pytest-cov", "pytz"]
[[package]]
name = "iso8601"
@@ -1638,25 +1633,9 @@ six = ">=1.11.0"
format = ["idna", "jsonpointer (>1.13)", "rfc3987", "strict-rfc3339", "webcolors"]
format_nongpl = ["idna", "jsonpointer (>1.13)", "webcolors", "rfc3986-validator (>0.1.0)", "rfc3339-validator"]
[[package]]
name = "jupyter"
version = "1.0.0"
description = "Jupyter metapackage. Install all the Jupyter components in one go."
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
ipykernel = "*"
ipywidgets = "*"
jupyter-console = "*"
nbconvert = "*"
notebook = "*"
qtconsole = "*"
[[package]]
name = "jupyter-client"
version = "7.4.3"
version = "7.4.1"
description = "Jupyter protocol implementation and client libraries"
category = "main"
optional = false
@@ -1673,25 +1652,7 @@ traitlets = "*"
[package.extras]
doc = ["ipykernel", "myst-parser", "sphinx-rtd-theme", "sphinx (>=1.3.6)", "sphinxcontrib-github-alt"]
test = ["codecov", "coverage", "ipykernel (>=6.12)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"]
[[package]]
name = "jupyter-console"
version = "6.4.4"
description = "Jupyter terminal console"
category = "main"
optional = false
python-versions = ">=3.7"
[package.dependencies]
ipykernel = "*"
ipython = "*"
jupyter-client = ">=7.0.0"
prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0"
pygments = "*"
[package.extras]
test = ["pexpect"]
test = ["codecov", "coverage", "ipykernel (>=6.5)", "ipython", "mypy", "pre-commit", "pytest", "pytest-asyncio (>=0.18)", "pytest-cov", "pytest-timeout"]
[[package]]
name = "jupyter-core"
@@ -1829,11 +1790,11 @@ test = ["codecov", "ipykernel", "jupyter-server", "openapi-core (>=0.14.2,<0.15.
[[package]]
name = "jupyterlab-widgets"
version = "1.1.1"
description = "A JupyterLab extension."
version = "3.0.3"
description = "Jupyter interactive widgets for JupyterLab"
category = "main"
optional = false
python-versions = ">=3.6"
python-versions = ">=3.7"
[[package]]
name = "kiwisolver"
@@ -1916,7 +1877,7 @@ colorama = {version = ">=0.3.4", markers = "sys_platform == \"win32\""}
win32-setctime = {version = ">=1.0.0", markers = "sys_platform == \"win32\""}
[package.extras]
dev = ["sphinx-rtd-theme (>=0.4.3)", "sphinx-autobuild (>=0.7.1)", "Sphinx (>=4.1.1)", "isort (>=5.1.1)", "black (>=19.10b0)", "pytest-cov (>=2.7.1)", "pytest (>=4.6.2)", "tox (>=3.9.0)", "flake8 (>=3.7.7)", "docutils (==0.16)", "colorama (>=0.3.4)"]
dev = ["colorama (>=0.3.4)", "docutils (==0.16)", "flake8 (>=3.7.7)", "tox (>=3.9.0)", "pytest (>=4.6.2)", "pytest-cov (>=2.7.1)", "black (>=19.10b0)", "isort (>=5.1.1)", "Sphinx (>=4.1.1)", "sphinx-autobuild (>=0.7.1)", "sphinx-rtd-theme (>=0.4.3)"]
[[package]]
name = "lunarcalendar"
@@ -1982,12 +1943,12 @@ python-versions = "~=3.6"
attrs = ">=19,<22"
[package.extras]
testing = ["pytest-regressions", "pytest-cov", "pytest-benchmark (>=3.2,<4.0)", "pytest (>=3.6,<4)", "psutil", "coverage"]
rtd = ["sphinx-book-theme", "sphinx-panels (>=0.4.0,<0.5.0)", "sphinx-copybutton", "sphinx (>=2,<4)", "pyyaml", "myst-nb (==0.13.0a1)"]
plugins = ["mdit-py-plugins"]
linkify = ["linkify-it-py (>=1.0,<2.0)"]
compare = ["panflute (>=1.12,<2.0)", "mistune (>=0.8.4,<0.9.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "markdown (>=3.2.2,<3.3.0)", "commonmark (>=0.9.1,<0.10.0)"]
code_style = ["pre-commit (==2.6)"]
compare = ["commonmark (>=0.9.1,<0.10.0)", "markdown (>=3.2.2,<3.3.0)", "mistletoe-ebp (>=0.10.0,<0.11.0)", "mistune (>=0.8.4,<0.9.0)", "panflute (>=1.12,<2.0)"]
linkify = ["linkify-it-py (>=1.0,<2.0)"]
plugins = ["mdit-py-plugins"]
rtd = ["myst-nb (==0.13.0a1)", "pyyaml", "sphinx (>=2,<4)", "sphinx-copybutton", "sphinx-panels (>=0.4.0,<0.5.0)", "sphinx-book-theme"]
testing = ["coverage", "psutil", "pytest (>=3.6,<4)", "pytest-benchmark (>=3.2,<4.0)", "pytest-cov", "pytest-regressions"]
[[package]]
name = "markupsafe"
@@ -2047,9 +2008,9 @@ python-versions = "~=3.6"
markdown-it-py = ">=1.0,<2.0"
[package.extras]
testing = ["pytest-regressions", "pytest-cov", "pytest (>=3.6,<4)", "coverage"]
rtd = ["sphinx-book-theme (>=0.1.0,<0.2.0)", "myst-parser (==0.14.0a3)"]
code_style = ["pre-commit (==2.6)"]
rtd = ["myst-parser (==0.14.0a3)", "sphinx-book-theme (>=0.1.0,<0.2.0)"]
testing = ["coverage", "pytest (>=3.6,<4)", "pytest-cov", "pytest-regressions"]
[[package]]
name = "mistune"
@@ -2568,7 +2529,7 @@ testing = ["docopt", "pytest (<6.0.0)"]
[[package]]
name = "pathspec"
version = "0.10.1"
version = "0.10.2"
description = "Utility library for gitignore style pattern matching of file paths."
category = "dev"
optional = false
@@ -2587,7 +2548,7 @@ numpy = ">=1.4"
six = "*"
[package.extras]
test = ["scipy", "pytest-cov", "pytest"]
test = ["pytest", "pytest-cov", "scipy"]
[[package]]
name = "pbr"
@@ -2671,8 +2632,8 @@ optional = false
python-versions = ">=3.6"
[package.extras]
testing = ["pytest-benchmark", "pytest"]
dev = ["tox", "pre-commit"]
dev = ["pre-commit", "tox"]
testing = ["pytest", "pytest-benchmark"]
[[package]]
name = "pmdarima"
@@ -2724,10 +2685,10 @@ python-versions = "~=3.6"
requests = ">=2.6.0,<3.0"
[package.extras]
test = ["testfixtures (>4.13.2,<7)", "pytest", "mock (>=0.8)", "betamax-serializers (>=0.2.0,<0.3)", "betamax-matchers (>=0.4.0,<0.5)", "betamax (>=0.8,<0.9)"]
lint = ["flynt", "pydocstyle", "pre-commit", "flake8", "black"]
dev = ["testfixtures (>4.13.2,<7)", "pytest", "mock (>=0.8)", "betamax-serializers (>=0.2.0,<0.3)", "betamax-matchers (>=0.4.0,<0.5)", "betamax (>=0.8,<0.9)", "flynt", "pydocstyle", "pre-commit", "flake8", "black"]
ci = ["coveralls"]
dev = ["black", "flake8", "pre-commit", "pydocstyle", "flynt", "betamax (>=0.8,<0.9)", "betamax-matchers (>=0.4.0,<0.5)", "betamax-serializers (>=0.2.0,<0.3)", "mock (>=0.8)", "pytest", "testfixtures (>4.13.2,<7)"]
lint = ["black", "flake8", "pre-commit", "pydocstyle", "flynt"]
test = ["betamax (>=0.8,<0.9)", "betamax-matchers (>=0.4.0,<0.5)", "betamax-serializers (>=0.2.0,<0.3)", "mock (>=0.8)", "pytest", "testfixtures (>4.13.2,<7)"]
[[package]]
name = "pre-commit"
@@ -3012,9 +2973,9 @@ sseclient = ">=0.0.22"
temporal-cache = ">=0.1.1"
[package.extras]
async = ["deprecation (>=2.0.6)", "ipython (>=7.2.0)", "Pillow (>=5.3.0)", "pandas (>=0.22)", "pytz (>=2019.1)", "requests (>=2.21.0)", "six", "socketIO-client-nexus (>=0.7.6)", "sseclient (>=0.0.22)", "temporal-cache (>=0.1.1)", "aiohttp (>=3.2)", "aiohttp-sse-client (>=0.2.0)", "aiostream (>=0.3.1)"]
dev = ["deprecation (>=2.0.6)", "ipython (>=7.2.0)", "Pillow (>=5.3.0)", "pandas (>=0.22)", "pytz (>=2019.1)", "requests (>=2.21.0)", "six", "socketIO-client-nexus (>=0.7.6)", "sseclient (>=0.0.22)", "temporal-cache (>=0.1.1)", "aiohttp (>=3.2)", "aiohttp-sse-client (>=0.2.0)", "aiostream (>=0.3.1)", "TA-Lib (>=0.4.17)", "black (>=20)", "bump2version (>=1.0.0)", "flake8 (>=3.7.8)", "flake8-black (>=0.2.1)", "mock", "pytest (>=4.3.0)", "pytest-cov (>=2.6.1)", "recommonmark", "Sphinx (>=1.8.4)", "sphinx-markdown-builder (>=0.5.2)", "sphinx-rtd-theme"]
studies = ["TA-Lib (>=0.4.17)"]
dev = ["sphinx-rtd-theme", "sphinx-markdown-builder (>=0.5.2)", "Sphinx (>=1.8.4)", "recommonmark", "pytest-cov (>=2.6.1)", "pytest (>=4.3.0)", "mock", "flake8-black (>=0.2.1)", "flake8 (>=3.7.8)", "bump2version (>=1.0.0)", "black (>=20)", "TA-Lib (>=0.4.17)", "aiostream (>=0.3.1)", "aiohttp-sse-client (>=0.2.0)", "aiohttp (>=3.2)", "temporal-cache (>=0.1.1)", "sseclient (>=0.0.22)", "socketIO-client-nexus (>=0.7.6)", "six", "requests (>=2.21.0)", "pytz (>=2019.1)", "pandas (>=0.22)", "Pillow (>=5.3.0)", "ipython (>=7.2.0)", "deprecation (>=2.0.6)"]
async = ["aiostream (>=0.3.1)", "aiohttp-sse-client (>=0.2.0)", "aiohttp (>=3.2)", "temporal-cache (>=0.1.1)", "sseclient (>=0.0.22)", "socketIO-client-nexus (>=0.7.6)", "six", "requests (>=2.21.0)", "pytz (>=2019.1)", "pandas (>=0.22)", "Pillow (>=5.3.0)", "ipython (>=7.2.0)", "deprecation (>=2.0.6)"]
[[package]]
name = "pyflakes"
@@ -3066,8 +3027,8 @@ numpy = ">=1.12.0"
scipy = ">=1.0.0"
[package.extras]
tests = ["pytest-xdist", "pytest"]
docs = ["jupyter-client", "nbsphinx", "sphinx-rtd-theme", "astunparse", "ipython", "sphinx"]
docs = ["sphinx", "ipython", "astunparse", "sphinx-rtd-theme", "nbsphinx", "jupyter-client"]
tests = ["pytest", "pytest-xdist"]
[[package]]
name = "pyinstaller"
@@ -3249,7 +3210,7 @@ coverage = {version = ">=5.2.1", extras = ["toml"]}
pytest = ">=4.6"
[package.extras]
testing = ["virtualenv", "pytest-xdist", "six", "process-tests", "hunter", "fields"]
testing = ["fields", "hunter", "process-tests", "six", "pytest-xdist", "virtualenv"]
[[package]]
name = "pytest-mock"
@@ -3297,7 +3258,7 @@ loguru = "*"
typing-extensions = "*"
[package.extras]
testing = ["pytest-asyncio", "pytest-mock", "pytest-socket", "pytest-cov", "pytest", "mock", "typing-extensions", "loguru", "flake8", "dnspython", "base58", "backoff", "aiohttp (>=3.7.4)", "aiodns"]
testing = ["aiodns", "aiohttp (>=3.7.4)", "backoff", "base58", "dnspython", "flake8", "loguru", "typing-extensions", "mock", "pytest", "pytest-cov", "pytest-socket", "pytest-mock", "pytest-asyncio"]
[[package]]
name = "python-binance"
@@ -3490,42 +3451,6 @@ python-versions = "*"
numpy = ">=1.7"
scipy = ">=0.13.2"
[[package]]
name = "qtconsole"
version = "5.3.2"
description = "Jupyter Qt console"
category = "main"
optional = false
python-versions = ">= 3.7"
[package.dependencies]
ipykernel = ">=4.1"
ipython-genutils = "*"
jupyter-client = ">=4.1"
jupyter-core = "*"
pygments = "*"
pyzmq = ">=17.1"
qtpy = ">=2.0.1"
traitlets = "<5.2.1 || >5.2.1,<5.2.2 || >5.2.2"
[package.extras]
doc = ["Sphinx (>=1.3)"]
test = ["flaky", "pytest", "pytest-qt"]
[[package]]
name = "qtpy"
version = "2.2.1"
description = "Provides an abstraction layer on top of the various Qt bindings (PyQt5/6 and PySide2/6)."
category = "main"
optional = false
python-versions = ">=3.7"
[package.dependencies]
packaging = "*"
[package.extras]
test = ["pytest (>=6,!=7.0.0,!=7.0.1)", "pytest-cov (>=3.0.0)", "pytest-qt"]
[[package]]
name = "quandl"
version = "3.7.0"
@@ -3709,10 +3634,10 @@ scipy = ">=1.3.2"
threadpoolctl = ">=2.0.0"
[package.extras]
tests = ["numpydoc (>=1.2.0)", "pyamg (>=4.0.0)", "mypy (>=0.961)", "black (>=22.3.0)", "flake8 (>=3.8.2)", "pytest-cov (>=2.9.0)", "pytest (>=5.0.1)", "pandas (>=1.0.5)", "scikit-image (>=0.16.2)", "matplotlib (>=3.1.2)"]
examples = ["seaborn (>=0.9.0)", "pandas (>=1.0.5)", "scikit-image (>=0.16.2)", "matplotlib (>=3.1.2)"]
docs = ["sphinxext-opengraph (>=0.4.2)", "sphinx-prompt (>=1.3.0)", "Pillow (>=7.1.2)", "numpydoc (>=1.2.0)", "sphinx-gallery (>=0.7.0)", "sphinx (>=4.0.1)", "memory-profiler (>=0.57.0)", "seaborn (>=0.9.0)", "pandas (>=1.0.5)", "scikit-image (>=0.16.2)", "matplotlib (>=3.1.2)"]
benchmark = ["memory-profiler (>=0.57.0)", "pandas (>=1.0.5)", "matplotlib (>=3.1.2)"]
benchmark = ["matplotlib (>=3.1.2)", "pandas (>=1.0.5)", "memory-profiler (>=0.57.0)"]
docs = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)", "memory-profiler (>=0.57.0)", "sphinx (>=4.0.1)", "sphinx-gallery (>=0.7.0)", "numpydoc (>=1.2.0)", "Pillow (>=7.1.2)", "sphinx-prompt (>=1.3.0)", "sphinxext-opengraph (>=0.4.2)"]
examples = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "seaborn (>=0.9.0)"]
tests = ["matplotlib (>=3.1.2)", "scikit-image (>=0.16.2)", "pandas (>=1.0.5)", "pytest (>=5.0.1)", "pytest-cov (>=2.9.0)", "flake8 (>=3.8.2)", "black (>=22.3.0)", "mypy (>=0.961)", "pyamg (>=4.0.0)", "numpydoc (>=1.2.0)"]
[[package]]
name = "scipy"
@@ -3962,8 +3887,8 @@ optional = false
python-versions = ">=3.5"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
[[package]]
name = "sphinxcontrib-devhelp"
@@ -3974,8 +3899,8 @@ optional = false
python-versions = ">=3.5"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
[[package]]
name = "sphinxcontrib-htmlhelp"
@@ -3986,8 +3911,8 @@ optional = false
python-versions = ">=3.6"
[package.extras]
test = ["html5lib", "pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest", "html5lib"]
[[package]]
name = "sphinxcontrib-jsmath"
@@ -3998,7 +3923,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
test = ["mypy", "flake8", "pytest"]
test = ["pytest", "flake8", "mypy"]
[[package]]
name = "sphinxcontrib-qthelp"
@@ -4009,8 +3934,8 @@ optional = false
python-versions = ">=3.5"
[package.extras]
lint = ["flake8", "mypy", "docutils-stubs"]
test = ["pytest"]
lint = ["docutils-stubs", "mypy", "flake8"]
[[package]]
name = "sphinxcontrib-serializinghtml"
@@ -4058,7 +3983,7 @@ executing = "*"
pure-eval = "*"
[package.extras]
tests = ["cython", "littleutils", "pygments", "typeguard", "pytest"]
tests = ["pytest", "typeguard", "pygments", "littleutils", "cython"]
[[package]]
name = "statsforecast"
@@ -4200,7 +4125,7 @@ frozendict = ">=1.2"
tzlocal = ">=2.0.0"
[package.extras]
dev = ["tzlocal (>=2.0.0)", "frozendict (>=1.2)", "sphinx-markdown-builder (>=0.5.2)", "Sphinx (>=1.8.4)", "pytest-cov (>=2.6.1)", "pytest (>=4.3.0)", "mock", "flake8-black (>=0.2.1)", "flake8 (>=3.7.8)", "bump2version (>=1.0.0)", "black (>=20)"]
dev = ["black (>=20)", "bump2version (>=1.0.0)", "flake8 (>=3.7.8)", "flake8-black (>=0.2.1)", "mock", "pytest (>=4.3.0)", "pytest-cov (>=2.6.1)", "Sphinx (>=1.8.4)", "sphinx-markdown-builder (>=0.5.2)", "frozendict (>=1.2)", "tzlocal (>=2.0.0)"]
[[package]]
name = "tenacity"
@@ -4693,26 +4618,25 @@ testing = ["coverage (>=6.2)", "coverage-enable-subprocess (>=1)", "flaky (>=3.7
[[package]]
name = "voila"
version = "0.3.6"
version = "0.4.0"
description = "Voilà turns Jupyter notebooks into standalone web applications"
category = "main"
optional = false
python-versions = ">=3.7"
[package.dependencies]
jupyter-client = ">=6.1.3,<8"
jupyter-client = ">=6.1.3,<=7.4.1"
jupyter-core = ">=4.11.0"
jupyter-server = ">=1.18,<2.0.0"
jupyterlab-server = ">=2.3.0,<3"
nbclient = ">=0.4.0,<0.6"
nbconvert = ">=6.4.5,<7"
nbclient = ">=0.4.0,<0.8"
nbconvert = ">=6.4.5,<8"
traitlets = ">=5.0.3,<6"
websockets = ">=9.0"
[package.extras]
dev = ["black", "bump2version", "jupyter-releaser (>=0.6,<1.0)"]
test = ["numpy", "pandas", "ipywidgets", "matplotlib", "mock", "pytest", "pytest-rerunfailures", "pytest-tornasync"]
visual_test = ["jupyterlab (>=3.0,<4.0)", "bqplot", "scipy", "ipympl (==0.8.7)", "ipyvolume", "jupyterlab-miami-nights (==0.3.2)"]
dev = ["black", "hatch", "jupyter-releaser"]
test = ["ipywidgets", "matplotlib", "mock", "numpy", "pandas", "papermill", "pytest", "pytest-rerunfailures", "pytest-tornasync"]
[[package]]
name = "watchdog"
@@ -4778,14 +4702,11 @@ watchdog = ["watchdog"]
[[package]]
name = "widgetsnbextension"
version = "3.6.1"
description = "IPython HTML widgets for Jupyter"
version = "4.0.3"
description = "Jupyter interactive widgets for Jupyter Notebook"
category = "main"
optional = false
python-versions = "*"
[package.dependencies]
notebook = ">=4.4.1"
python-versions = ">=3.7"
[[package]]
name = "win32-setctime"
@@ -4796,7 +4717,7 @@ optional = false
python-versions = ">=3.5"
[package.extras]
dev = ["black (>=19.3b0)", "pytest (>=4.6.2)"]
dev = ["pytest (>=4.6.2)", "black (>=19.3b0)"]
[[package]]
name = "wrapt"
@@ -4898,7 +4819,7 @@ prediction = ["torch", "pytorch-lightning", "u8darts"]
[metadata]
lock-version = "1.1"
python-versions = "^3.8,<3.11, !=3.9.7"
content-hash = "3909cf6de72eaf90a525f982970d3020bb39fa0ff7c183b683cf476079955e14"
content-hash = "8ca9e9770f3a1000767ced3d201968914db06136cde19041d046b2ea8d2ca8c1"
[metadata.files]
absl-py = []
@@ -5028,9 +4949,7 @@ jinja2 = []
joblib = []
json5 = []
jsonschema = []
jupyter = []
jupyter-client = []
jupyter-console = []
jupyter-core = []
jupyter-lsp = []
jupyter-server = []
@@ -5167,8 +5086,6 @@ pywinpty = []
pyyaml = []
pyzmq = []
qdldl = []
qtconsole = []
qtpy = []
quandl = []
rapidfuzz = []
regex = []

8
pyproject.toml vendored
View File

@@ -33,7 +33,6 @@ pytrends = "^4.7.3"
matplotlib = "^3.3.3"
plotly = "^5.0.0"
prompt-toolkit = "^3.0.16"
jupyter = "^1.0.0"
jupyterlab = "^3.2.4"
mplfinance = "^0.12.7-alpha.7"
seaborn = "^0.11.0"
@@ -69,7 +68,7 @@ jsonschema = "^3.2.0"
pandas = "^1.5.0"
pandas-market-calendars = "~3.2"
ipympl = "^0.8.2"
voila = "^0.3.0"
voila = ">=0.3.0"
rich = "^12.6.0"
investpy = "^1.0.7"
dnspython = "^2.1.0"
@@ -79,7 +78,7 @@ ascii-magic = "^1.6"
squarify = "^0.4.3"
finnhub-python = "^2.4.10"
linearmodels = "^4.25"
ipywidgets = "^7.7.0"
ipywidgets = "^8.0.2"
Jinja2 = "^3.0.3"
Riskfolio-Lib = {version = "^3.1.1", optional = true}
ccxt = "^1.91.60"
@@ -108,6 +107,7 @@ pytorch-lightning = {version = "1.6.5", optional = true}
u8darts = {extras = ["torch"], version = "0.22.0", optional = true}
docstring-parser = {version = "^0.15", optional = true}
grpcio = "<1.51.0"
jupyterlab-widgets = "^3.0.3"
[tool.poetry.dev-dependencies]
pytest = "^6.2.2"
@@ -119,7 +119,7 @@ codespell = "^2.0.0"
pyupgrade = "^2.11.0"
sphinx = "^4.5.0"
myst-parser = "^0.15.2"
black = {extras = ["jupyter"], version = "^22.1.0"}
black = {version = "^22.1.0", extras = ["jupyter"]}
bandit = "^1.7.0"
coverage = ">=5.5"
vcrpy = "^4.1.1"

56
requirements-full.txt vendored
View File

@@ -14,12 +14,12 @@ 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" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
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")
babel==2.10.3; python_version >= "3.7"
backcall==0.2.0; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
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"
@@ -35,14 +35,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==1.95.43
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; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" and implementation_name == "pypy"
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"
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_full_version < "4.0.0"
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"
@@ -54,7 +54,7 @@ cython==0.29.32; python_version >= "3.8" and python_full_version < "3.0.0" and s
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_full_version >= "3.7.0" and python_full_version < "4.0.0" 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")
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
@@ -68,7 +68,7 @@ entrypoints==0.4; python_full_version >= "3.7.0" and python_full_version < "4.0.
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" and python_full_version >= "3.7.0" and python_full_version < "4.0.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"
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"
@@ -110,25 +110,23 @@ 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"
ipympl==0.8.8
ipympl==0.8.4
ipython-genutils==0.2.0; python_version >= "3.7"
ipython==8.5.0; python_version >= "3.8"
ipywidgets==7.7.2
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" and python_full_version >= "3.7.0" and python_full_version < "4.0.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.3; python_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7"
jupyter-console==6.4.4; 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"
jupyter==1.0.0
jupyterlab-pygments==0.2.2; python_version >= "3.7"
jupyterlab-server==2.16.1; python_version >= "3.7"
jupyterlab-widgets==1.1.1; python_version >= "3.6"
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"
@@ -142,7 +140,7 @@ lxml==4.9.1; python_version >= "3.7" and python_full_version < "3.0.0" or python
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_full_version >= "3.7.0" and python_full_version < "4.0.0" and 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.2"
mdit-py-plugins==0.2.8; python_version >= "3.6" and python_version < "4.0"
@@ -180,12 +178,12 @@ pandas-ta==0.3.14b
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" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
pathspec==0.10.1; 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" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
pickleshare==0.7.5; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
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"
@@ -201,8 +199,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"
ptyprocess==0.7.0; sys_platform != "win32" and python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0" and os_name != "nt"
pure-eval==0.2.2; python_version >= "3.8" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
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"
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"
@@ -211,7 +209,7 @@ pyasn1==0.4.8; python_version >= "3.7" and python_full_version < "3.0.0" and pyt
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_full_version >= "3.7.0" and python_full_version < "4.0.0" and python_version >= "3.7" and implementation_name == "pypy"
pycparser==2.21; implementation_name == "pypy" and python_version >= "3.7" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
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"
@@ -251,8 +249,6 @@ 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"
qdldl==0.1.5.post2; python_version >= "3.7"
qtconsole==5.3.2; python_version >= "3.7"
qtpy==2.2.1; 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"
@@ -266,7 +262,7 @@ rsa==4.9; python_version >= "3.6" and python_version < "4" and (python_version >
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"
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.8.1; python_version >= "3.8" and python_version < "3.11"
scipy==1.9.3; python_version >= "3.8"
screeninfo==0.6.7
scs==3.2.0; python_version >= "3.7"
seaborn==0.11.2; python_version >= "3.6"
@@ -277,7 +273,7 @@ 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_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.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.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.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_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.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.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")
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"
@@ -293,7 +289,7 @@ 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" and python_full_version >= "3.7.0" and python_full_version < "4.0.0"
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"
@@ -321,7 +317,7 @@ 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"
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_full_version < "4.0.0" and python_version >= "3.8"
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
@@ -343,14 +339,14 @@ validators==0.20.0; python_version >= "3.7" and python_full_version < "3.9.7" or
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.3.6; 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.7.0" and python_version >= "3.8" and python_full_version < "4.0.0"
wcwidth==0.2.5; python_full_version >= "3.6.2" and python_version >= "3.8"
webencodings==0.5.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
websocket-client==1.4.1; python_version >= "3.8" and python_version < "4.0"
websockets==10.3; python_version >= "3.7"
werkzeug==2.2.2; python_version >= "3.7"
widgetsnbextension==3.6.1; python_version >= "3.6"
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"
xarray==2022.11.0; python_version >= "3.8"

18
requirements.txt vendored
View File

@@ -86,24 +86,22 @@ 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"
ipympl==0.8.8
ipympl==0.8.4
ipython-genutils==0.2.0; python_version >= "3.7"
ipython==8.5.0; python_version >= "3.8"
ipywidgets==7.7.2
ipywidgets==8.0.2; python_version >= "3.7"
iso8601==0.1.16
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.3; python_full_version >= "3.7.0" and python_version >= "3.7"
jupyter-console==6.4.4; 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"
jupyter==1.0.0
jupyterlab-pygments==0.2.2; python_version >= "3.7"
jupyterlab-server==2.16.1; python_version >= "3.7"
jupyterlab-widgets==1.1.1; python_version >= "3.6"
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"
@@ -194,8 +192,6 @@ 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"
qtconsole==5.3.2; python_version >= "3.7"
qtpy==2.2.1; 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"
@@ -208,7 +204,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"
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.8.1; python_version >= "3.8" and python_version < "3.11"
scipy==1.9.3; python_version >= "3.8"
screeninfo==0.6.7
scs==3.2.0; python_version >= "3.7"
seaborn==0.11.2; python_version >= "3.6"
@@ -254,13 +250,13 @@ 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"
voila==0.3.6; 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"
webencodings==0.5.1; python_version >= "3.7" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.7"
websocket-client==1.4.1; python_version >= "3.8" and python_version < "4.0"
websockets==10.3; python_version >= "3.7"
widgetsnbextension==3.6.1; python_version >= "3.6"
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"

2
tests/README.md vendored
View File

@@ -549,7 +549,7 @@ After updating the `pyproject.toml` you will have to export the `requirements` f
```bash
poetry export -f requirements.txt -o requirements.txt --without-hashes --dev
poetry export -f requirements.txt -o requirements-full.txt --extras prediction --without-hashes --dev
poetry export -f requirements.txt -o requirements-full.txt --extras prediction --extras optimization --without-hashes --dev
```
# 4. Maintain `unit tests`

View File

@@ -315,7 +315,7 @@ def pytest_addoption(parser: Parser):
parser.addoption(
"--optimization",
action="store_true",
help="To run tests with the marker : @pytest.mark.prediction",
help="To run tests with the marker : @pytest.mark.optimization",
)
parser.addoption(
"--rewrite-expected",

View File

@@ -1,77 +0,0 @@
from unittest import TestCase # , mock
# import vcr
# from openbb_terminal.portfolio.portfolio_optimization import optimizer_view
# from tests.helpers import check_print
class TestOptimizerView(TestCase):
pass
# @check_print(assert_in="TSLA")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/test_equal_weights.yaml",
# record_mode="new_episodes",
# )
# def test_equal_weights(self):
# optimizer_view.display_equal_weight(["TSLA", "GME"], [])
# @check_print(assert_in="TSLA")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/test_property_weights.yaml",
# record_mode="new_episodes",
# )
# def test_property_weighting(self):
# optimizer_view.display_property_weighting(
# ["TSLA", "GME"], ["-p", "previousClose"]
# )
# @check_print(assert_in="TSLA")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/general1.yaml",
# record_mode="new_episodes",
# )
# def test_max_sharpe(self):
# optimizer_view.max_sharpe(["TSLA", "GME"], [])
# @check_print(assert_in="TSLA")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/general1.yaml",
# record_mode="new_episodes",
# )
# def test_min_volatility(self):
# optimizer_view.min_volatility(["TSLA", "GME"], [])
# @check_print(assert_in="TSLA")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/general1.yaml",
# record_mode="new_episodes",
# )
# def test_max_quadratic_utility(self):
# optimizer_view.max_quadratic_utility(["TSLA", "GME"], [])
# @check_print(assert_in="The minimum volatility")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/general1.yaml",
# record_mode="new_episodes",
# )
# def test_efficient_risk(self):
# optimizer_view.efficient_risk(["TSLA", "GME"], [])
# @check_print(assert_in="TSLA")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/general1.yaml",
# record_mode="new_episodes",
# )
# def test_efficiet_return(self):
# optimizer_view.efficient_return(["TSLA", "GME"], [])
# @check_print(assert_in="\n")
# @vcr.use_cassette(
# "tests/openbb_terminal/portfolio/portfolio_optimization/cassettes/test_optimizer_view/test_show_eff.yaml",
# record_mode="new_episodes",
# )
# @mock.patch("matplotlib.pyplot.show")
# def test_show_ef(self, mock_mlp):
# # pylint: disable=unused-argument
# optimizer_view.show_ef(["TSLA", "GME"], [])

View File

@@ -5,7 +5,10 @@ import os
import pytest
# IMPORTATION INTERNAL
from openbb_terminal.portfolio.portfolio_optimization import po_controller
try:
from openbb_terminal.portfolio.portfolio_optimization import po_controller
except ImportError:
pytest.skip(allow_module_level=True)
# pylint: disable=E1101
# pylint: disable=W0603

View File

@@ -198,13 +198,6 @@ def test_call_func_expect_queue(expected_queue, func, queue):
[],
dict(),
),
(
"call_po",
[],
"PortfolioController.load_class",
[],
dict(),
),
(
"call_show",
[],

View File

View File

@@ -1,9 +1,13 @@
from typing import Optional
import pytest
from website import (
generate_sdk_markdown as gen_sdk,
generate_terminal_markdown as gen_term,
)
try:
from website import (
generate_sdk_markdown as gen_sdk,
generate_terminal_markdown as gen_term,
)
except ImportError:
pytest.skip(allow_module_level=True)
def test_generate_terminal_markdown():
@@ -36,6 +40,7 @@ def mock_func(arg1: Optional[str] = "Test", arg2: Optional[bool] = True) -> bool
return True
# pylint:disable=too-few-public-methods
class MockTrailMap:
"""Mock trail map"""