[tool.poetry] name = "openbb" version = "3.2.3" description = "Investment Research for Everyone, Anywhere." license = "MIT" authors = ["Didier Rodrigues Lopes"] packages = [ { include = "openbb_terminal" }, ] include = ["terminal.py", "openbb_terminal/.env"] readme = "website/pypi.md" homepage = "https://openbb.co" repository = "https://github.com/OpenBB-finance/OpenBBTerminal" documentation = "https://docs.openbb.co/sdk" [tool.poetry.scripts] openbb = 'terminal:main' [tool.poetry.dependencies] python = "^3.8.1,<3.11, !=3.9.7" scipy = "1.10.1" #Pinning on July 6 for pip issues iso8601 = "^0.1.14" FundamentalAnalysis = "^0.2.6" requests = "^2.31.0" alpha-vantage = "^2.3.1" finviz = "^1.4.6" bs4 = "^0.0.1" yfinance = "^0.2.28" pmaw = "^3.0.0" praw = "^7.1.4" Quandl = "^3.6.0" pytrends = "4.9.2" matplotlib = "^3.3.3" plotly = "^5.15.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" pycoingecko = "^3.1.0" detecta = "^0.0.5" tradingview-ta = "^3.2.3" finvizfinance = "0.14.7rc1" 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 = "2.1.0" 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.19.3" openpyxl = "^3.0.9" pandas = "^1.5.0" pandas-market-calendars = "~3.2" ipympl = "^0.8.2" rich = "^12.6.0" dnspython = "^2.1.0" python-dotenv = "^1.0.0" 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 = "^4.0.33" 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} watchdog = "^2.1.9" pythclient = "^0.1.2" "ruamel.yaml" = "^0.17.21" setuptools = "<65.5.0" numpy = "1.23.4" papermill = "2.4" stocksera = "^0.1.21" ipython = "8.11.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.5", 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" streamlit = "^1.24.1" pywry = "^0.6.1" svglib = "^1.5.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 intrinio-sdk = "^6.22.2" yahooquery = "^2.3.0" openai-whisper = {version = "^20230124", optional = true} setuptools-rust = {version = "^1.5.2", optional = true} transformers = {version = "4.27.1", optional = true} yt-dlp = {version = "^2023.2.17", optional = true} pydantic = "<2" posthog = "^3.0.1" reportlab = "<4" #Pinning due to build error on MacOs arch = "^5.5.0" llama-index = "^0.8.8" langchain = "0.0.266" # Pinned for llama index ffn = "0.3.6" jupyter-client = "7.4.1" jupyter-server = "1.23.6" python-jose = "^3.3.0" nixtlats = "^0.1.11" # Pinning for stability nltk = "^3.8.1" # Is a dependence for llama index [tool.poetry.extras] forecast = ["torch", "pytorch-lightning", "u8darts", "lightgbm", "openai-whisper", "setuptools-rust", "transformers", "yt-dlp"] optimization = ["Riskfolio-Lib"] all = ["torch", "pytorch-lightning", "u8darts", "Riskfolio-Lib", "lightgbm", "openai-whisper", "setuptools-rust", "transformers", "yt-dlp"] jupyterlab = ["jupyterlab-code-formatter", "jupyterlab-lsp", "jedi-language-server"] installer = ["pyinstaller"] doc = ["docstring-parser"] [tool.poetry.group.dev.dependencies] pytest-xdist = "^3.2.0" pytest = "^6.2.2" pylint = "2.17.0" mock = "^4.0.3" codespell = "^2.2.4" 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" pytest-timeout = "^2.1.0" pytest-recorder = "^0.2.1" freezegun = "^1.2.2" ruff = "^0.0.285" mypy = "^1.5.1" [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' ignore = "D401" [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", "SIM", "T20"] # These ignores should be seen as temporary solutions to problems that will NEED fixed ignore = ["PLR2004", "PLR0913", "PLR0915"] [tool.ruff.per-file-ignores] "tests/*" = ["S101"] "*init*.py" = ["F401"] "website/*" = ["T201"] [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"]