[tool.poetry] name = "openbb" version = "2.4.0" description = "Investment Research for Everyone, Anywhere." license = "MIT" authors = ["Didier Rodrigues Lopes"] packages = [ { include = "openbb_terminal" }, ] readme = "website/content/sdk/quickstart/installation.md" homepage = "https://openbb.co" repository = "https://github.com/OpenBB-finance/OpenBBTerminal" documentation = "https://docs.openbb.co/sdk" [tool.poetry.scripts] openbb = 'openbb_terminal.terminal_controller:parse_args_and_run' [tool.poetry.dependencies] python = "^3.8,<3.11, !=3.9.7" scipy = "^1.9.3" iso8601 = "^0.1.14" FundamentalAnalysis = "^0.2.6" requests = "^2.25.1" alpha-vantage = "^2.3.1" finviz = "^1.3.4, !=1.4.5" bs4 = "^0.0.1" yfinance = "^0.2.9" psaw = "^0.0.12" praw = "^7.1.4" Quandl = "^3.6.0" pytrends = "^4.7.3" matplotlib = "^3.3.3" plotly = "^5.0.0" prompt-toolkit = "^3.0.16" jupyterlab = "^3.2.4" mplfinance = "^0.12.7-alpha.7" seaborn = "^0.11.0" fredapi = "^0.4.3" screeninfo = "^0.6.7" robin-stocks = "^2.0.3" pyally = "^1.1.2" pycoingecko = "^2.2.0" detecta = "^0.0.5" tradingview-ta = "^3.2.3" finvizfinance = "^0.14.0" statsmodels = "^0.13" python-coinmarketcap = "^0.2" oandapyV20 = "^0.6.3" valinvest = "^0.0.2" bt = "^0.2.9" vaderSentiment = "3.3.2" GitPython = "^3.1.17" fred = "^3.1" financedatabase = "1.0.2" holidays = "^0.14.2" degiro-connector = "^2.0.3" python-binance = "^1.0.15" python-i18n = "^0.3.9" thepassiveinvestor = "^1.1.2" pandas-ta = "^0.3.14-beta.0" pyrsistent = "^0.18.0" openpyxl = "^3.0.9" jsonschema = "^3.2.0" pandas = "^1.5.0" pandas-market-calendars = "~3.2" ipympl = "^0.8.2" voila = ">=0.3.0" rich = "^12.6.0" dnspython = "^2.1.0" python-dotenv = "^0.19.2" Pygments = "^2.11.2" ascii-magic = "^1.6" squarify = "^0.4.3" finnhub-python = "^2.4.10" linearmodels = "^4.25" ipywidgets = "^8.0.2" Jinja2 = "^3.0.3" Riskfolio-Lib = {version = "^3.1.1", optional = true} ccxt = "^2.5.67" html5lib = "^1.1" feedparser = "^6.0.10" pyinstaller = {version = "^4.10", optional = true} jupyterlab-code-formatter = {version = "^1.4.10", optional = true} jupyterlab-lsp = {version = "^3.10.1", optional = true} jedi-language-server = {version = "^0.40.0", optional = true} tokenterminal = "^1.0.1" torch = {version = "~1.11.0", optional = true} charset-normalizer = "2.1.1" watchdog = "^2.1.9" pythclient = "^0.1.2" ipyflex = "^0.2.4" "ruamel.yaml" = "^0.17.21" setuptools = "<65.5.0" numpy = "1.23.4" papermill = "^2.4.0" stocksera = "^0.1.21" ipython = "8.5.0" protobuf = "3.20.1" pytorch-lightning = {version = "1.6.5", optional = true} u8darts = {extras = ["torch"], version = "0.23.0", optional = true} lightgbm = {version = "3.3.3", optional = true} # locked because this is the latest version available on conda intel mac docstring-parser = {version = "^0.15", optional = true} grpcio = "^1.51.1" jupyterlab-widgets = "^3.0.3" mstarpy = "^0.0.4" packaging = ">=22.0" rapidfuzz = "^2.13.7" streamlit = "^1.17.0" sparqlwrapper = "^2.0.0" y-py = "!=0.5.5" # Untraceable third level dependency that requires cargo to be built psutil = "!=5.9.4" # Forecasting menu and IPyKernel dependency broken on MacOs tenacity = "<8.0.0" # Finviz, papermill and plotly dep. Pinned to avoid pip resolution conflict due to finviz 1.4.5 release bug intrinio-sdk = "^6.22.2" [tool.poetry.dev-dependencies] pytest = "^6.2.2" pylint = "2.15.2" mypy = "^0.930" mock = "^4.0.3" codespell = "^2.0.0" pydocstyle = "^6.3.0" sphinx = "^4.5.0" myst-parser = "^0.15.2" black = "^23.1.0" bandit = "^1.7.0" coverage = ">=5.5" vcrpy = "^4.1.1" pytest-mock = "^3.6.1" pytest-recording = "^0.12.0" types-pytz = "^2021.3.1" types-requests = "^2.26.0" types-PyYAML = "^6.0.1" types-python-dateutil = "^2.8.3" types-setuptools = "^57.4.7" pre-commit = "^2.16.0" pytest-cov = "^3.0.0" types-six = "^1.16.12" nbmake = ">0.5.0" ruff = "^0.0.236" [tool.poetry.extras] prediction = ["torch", "pytorch-lightning", "u8darts", "lightgbm"] optimization = ["Riskfolio-Lib"] all = ["torch", "pytorch-lightning", "u8darts", "Riskfolio-Lib"] jupyterlab = ["jupyterlab-code-formatter", "jupyterlab-lsp", "jedi-language-server"] installer = ["pyinstaller"] doc = ["docstring-parser"] [build-system] requires = ["setuptools<65.5.0", "poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" [tool.pydocstyle] convention = "numpy" match = '((?!test_).)*\.py' [tool.ruff] line-length = 122 target-version = "py38" # This is an introductory addition of ruff. We should look to adding: # D: pydocstyle, PD: pandas-vet # All options here: https://github.com/charliermarsh/ruff#supported-rules select = ["E", "W", "F", "Q", "S", "UP", "I", "PLC", "PLE", "PLR", "PLW"] # These ignores should be seen as temporary solutions to problems that will NEED fixed ignore = ["S105", "S106", "S107", "S110", "PLR2004", "PLR0911", "PLR0913", "PLR0912", "PLR0915"] [tool.ruff.per-file-ignores] "tests/*" = ["S101"] [tool.ruff.flake8-import-conventions.aliases] "matplotlib.pyplot" = "plt" numpy = "np" pandas = "pd" seaborn = "sns" [tool.ruff.isort] combine-as-imports = true force-wrap-aliases = true [tool.ruff.pylint] max-args=8 max-branches=25 max-returns=9 max-statements=30 [tool.isort] profile = "black" line_length = 122 skip_gitignore = true combine_as_imports = true src_paths = ["openbb_terminal"]