[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "tradingagents" version = "0.2.2" description = "TradingAgents: Multi-Agents LLM Financial Trading Framework" readme = "README.md" requires-python = ">=3.10" dependencies = [ "langchain-core>=0.3.81", "backtrader>=1.9.78.123", "langchain-anthropic>=0.3.15", "langchain-experimental>=0.3.4", "langchain-google-genai>=2.1.5", "langchain-openai>=0.3.23", "langgraph>=0.4.8", "pandas>=2.3.0", "parsel>=1.10.0", "python-dotenv>=1.0.0", "pytz>=2025.2", "questionary>=2.1.0", "rank-bm25>=0.2.2", "redis>=6.2.0", "requests>=2.32.4", "rich>=14.0.0", "typer>=0.21.0", "setuptools>=80.9.0", "stockstats>=0.6.5", "tqdm>=4.67.1", "typing-extensions>=4.14.0", "yfinance>=0.2.63", "finvizfinance>=0.14.0", "psycopg2-binary>=2.9.11", "pymongo>=4.12.1", "fastapi>=0.115.9", "uvicorn>=0.34.3", "websockets>=15.0.1", ] [project.scripts] tradingagents = "cli.main:app" [tool.setuptools.packages.find] include = ["tradingagents*", "cli*"] [dependency-groups] dev = [ "pytest>=9.0.2", "pytest-recording>=0.13.2", "vcrpy>=6.0.2", "pytest-socket>=0.7.0", ] [tool.pytest.ini_options] testpaths = ["tests"] markers = [ "integration: tests that replay VCR cassettes of data API calls", "e2e: tests that hit real LLM APIs (manual trigger only)", "vcr: tests that use VCR cassette recording", "slow: tests that take a long time to run", "paid_tier: marks tests that require a paid Finnhub subscription (free tier returns HTTP 403)", ] addopts = "--ignore=tests/integration --ignore=tests/e2e --disable-socket --allow-unix-socket -x -q" [tool.setuptools.package-data] cli = ["static/*"]