Commit Graph

2 Commits

Author SHA1 Message Date
Joseph O'Brien c39f9aab36 Add pre-commit hooks and ruff code quality configuration
- Add .pre-commit-config.yaml with trailing whitespace, ruff linter/formatter
- Configure ruff in pyproject.toml with selected rules (E, F, W, I, UP, B, C4, SIM)
- Add F401 to unfixable to preserve re-exported imports in __init__.py files
- Fix BacktestMetrics import in backtesting/engine.py
- Update todos.md with enhanced trade discovery and database implementation tasks

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 11:22:13 -05:00
Joseph O'Brien 24e955d29b Add Brave and Tavily news data vendors with retry handling
- Add Brave Search API integration for bulk news fetching
- Add Tavily API integration for bulk news fetching
- Implement timeout and retry logic with exponential backoff for both vendors
- Make bulk news vendor order configurable via default_config.py
- Add tavily-python to requirements.txt
- Document BRAVE_API_KEY and TAVILY_API_KEY in .env.example and README
- Add comprehensive unit tests for both vendors (49 tests)

The news discovery system now uses fallback chain: Tavily → Brave → Alpha Vantage → OpenAI → Google

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-03 00:43:27 -05:00